Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tf_mesh_io.h
Go to the documentation of this file.
1/*******************************************************************************
2 * This file is part of Tissue Forge.
3 * Copyright (c) 2022-2024 T.J. Sego and Tien Comlekoglu
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
25#ifndef _MODELS_VERTEX_SOLVER_TF_MESH_IO_H_
26#define _MODELS_VERTEX_SOLVER_TF_MESH_IO_H_
27
28#include "tfVertex.h"
29#include "tfSurface.h"
30#include "tfBody.h"
31#include "tfMesh.h"
32#include "tfMeshQuality.h"
33#include "actors/tf_actors.h"
34
35#include <io/tf_io.h>
36
37
38namespace TissueForge::io {
39
40
41 template <>
42 HRESULT toFile(TissueForge::models::vertex::Vertex *dataElement, const MetaData &metaData, IOElement &fileElement);
43
45 template <>
46 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::Vertex **dataElement);
47
48 template <>
49 HRESULT toFile(const TissueForge::models::vertex::VertexHandle &dataElement, const MetaData &metaData, IOElement &fileElement);
50
51 template <>
52 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::VertexHandle *dataElement);
53
54 template <>
55 HRESULT toFile(TissueForge::models::vertex::Surface *dataElement, const MetaData &metaData, IOElement &fileElement);
56
58 template <>
59 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::Surface **dataElement);
60
61 template <>
62 HRESULT toFile(const TissueForge::models::vertex::SurfaceHandle &dataElement, const MetaData &metaData, IOElement &fileElement);
63
64 template <>
65 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::SurfaceHandle *dataElement);
66
67 template <>
68 HRESULT toFile(const TissueForge::models::vertex::SurfaceType &dataElement, const MetaData &metaData, IOElement &fileElement);
69
70 template <>
71 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::SurfaceType **dataElement);
72
73 template <>
74 HRESULT toFile(TissueForge::models::vertex::Body *dataElement, const MetaData &metaData, IOElement &fileElement);
75
77 template <>
78 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::Body **dataElement);
79
80 template <>
81 HRESULT toFile(const TissueForge::models::vertex::BodyHandle &dataElement, const MetaData &metaData, IOElement &fileElement);
82
83 template <>
84 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::BodyHandle *dataElement);
85
86 template <>
87 HRESULT toFile(const TissueForge::models::vertex::BodyType &dataElement, const MetaData &metaData, IOElement &fileElement);
88
89 template <>
90 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::BodyType **dataElement);
91
92 template <>
93 HRESULT toFile(TissueForge::models::vertex::Mesh *dataElement, const MetaData &metaData, IOElement &fileElement);
94
95 template <>
96 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::Mesh *dataElement);
97
98 template <>
99 HRESULT toFile(const TissueForge::models::vertex::MeshQuality &dataElement, const MetaData &metaData, IOElement &fileElement);
100
101 template <>
102 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::MeshQuality *dataElement);
103
104 template <>
105 HRESULT toFile(TissueForge::models::vertex::MeshObjActor *dataElement, const MetaData &metaData, IOElement &fileElement);
106
107 template <>
108 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::MeshObjActor **dataElement);
109
110 template <>
111 HRESULT toFile(TissueForge::models::vertex::Adhesion *dataElement, const MetaData &metaData, IOElement &fileElement);
112
113 template <>
114 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::Adhesion **dataElement);
115
116 template <>
117 HRESULT toFile(TissueForge::models::vertex::BodyForce *dataElement, const MetaData &metaData, IOElement &fileElement);
118
119 template <>
120 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::BodyForce **dataElement);
121
122 template <>
123 HRESULT toFile(TissueForge::models::vertex::ConvexPolygonConstraint *dataElement, const MetaData &metaData, IOElement &fileElement);
124
125 template <>
126 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::ConvexPolygonConstraint **dataElement);
127
128 template <>
129 HRESULT toFile(TissueForge::models::vertex::EdgeTension *dataElement, const MetaData &metaData, IOElement &fileElement);
130
131 template <>
132 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::EdgeTension **dataElement);
133
134 template <>
135 HRESULT toFile(TissueForge::models::vertex::FlatSurfaceConstraint *dataElement, const MetaData &metaData, IOElement &fileElement);
136
137 template <>
138 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::FlatSurfaceConstraint **dataElement);
139
140 template <>
141 HRESULT toFile(TissueForge::models::vertex::NormalStress *dataElement, const MetaData &metaData, IOElement &fileElement);
142
143 template <>
144 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::NormalStress **dataElement);
145
146 template <>
147 HRESULT toFile(TissueForge::models::vertex::PerimeterConstraint *dataElement, const MetaData &metaData, IOElement &fileElement);
148
149 template <>
150 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::PerimeterConstraint **dataElement);
151
152 template <>
153 HRESULT toFile(TissueForge::models::vertex::SurfaceAreaConstraint *dataElement, const MetaData &metaData, IOElement &fileElement);
154
155 template <>
156 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::SurfaceAreaConstraint **dataElement);
157
158 template <>
159 HRESULT toFile(TissueForge::models::vertex::SurfaceTraction *dataElement, const MetaData &metaData, IOElement &fileElement);
160
161 template <>
162 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::SurfaceTraction **dataElement);
163
164 template <>
165 HRESULT toFile(TissueForge::models::vertex::VolumeConstraint *dataElement, const MetaData &metaData, IOElement &fileElement);
166
167 template <>
168 HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, TissueForge::models::vertex::VolumeConstraint **dataElement);
169
170
171}
172
173#endif // _MODELS_VERTEX_SOLVER_TF_MESH_IO_H_
The mesh body is a volume-enclosing object of mesh surfaces.
Definition tfBody.h:59
Contains all Vertex, Surface and Body instances.
Definition tfMesh.h:52
An object that schedules topological operations on a mesh to maintain its quality.
Definition tfMeshQuality.h:205
The mesh surface is an area-enclosed object of implicit mesh edges defined by mesh vertices.
Definition tfSurface.h:65
The mesh vertex is a volume of a mesh centered at a point in a space.
Definition tfVertex.h:71
Tissue Forge I/O.
Definition tfThreeDFAngleMeshGenerator.h:28
HRESULT toFile(const T &dataElement, const MetaData &metaData, IOElement &fileElement)
Convert an object to an intermediate I/O object.
HRESULT fromFile(const IOElement &fileElement, const MetaData &metaData, T *dataElement)
Instantiate an object from an intermediate I/O object.
Container for _IOElement.
Definition tf_io.h:71
Tissue Forge meta data.
Definition tf_io.h:131
Models adhesion between pairs of Surface or Body instances by type.
Definition tfAdhesion.h:60
Imposes a body force on Body instances.
Definition tfBodyForce.h:39
A handle to a Body.
Definition tfBody.h:345
Mesh body type.
Definition tfBody.h:608
Imposes that surfaces are convex.
Definition tfConvexPolygonConstraint.h:42
Models tension between connected vertices.
Definition tfEdgeTension.h:53
Imposes that surfaces remain flat.
Definition tfFlatSurfaceConstraint.h:42
Base definition of how a mesh object acts on another mesh object.
Definition tfMeshObj.h:97
Models a stress acting on a Surface along its normal.
Definition tfNormalStress.h:39
Imposes a perimeter constraint on a surface.
Definition tfPerimeterConstraint.h:49
Imposes a surface area constraint on Body or Surface instances.
Definition tfSurfaceAreaConstraint.h:50
A handle to a Surface.
Definition tfSurface.h:630
Models a traction force.
Definition tfSurfaceTraction.h:39
Mesh surface type.
Definition tfSurface.h:1099
A handle to a Vertex.
Definition tfVertex.h:493
Imposes a volume constraint.
Definition tfVolumeConstraint.h:50
int32_t HRESULT
Definition tf_port.h:255