Tissue Forge C 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfCMesh.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 _WRAPS_C_VERTEX_SOLVER_TFCMESH_H_
26#define _WRAPS_C_VERTEX_SOLVER_TFCMESH_H_
27
28#include <tf_port_c.h>
29
30#include "tfCMeshQuality.h"
31
32
34// Module functions //
36
37
43CAPI_FUNC(HRESULT) tfVertexSolverMeshHasQuality(bool *result);
44
51
58
64CAPI_FUNC(HRESULT) tfVertexSolverMeshQualityWorking(bool *result);
65
71CAPI_FUNC(HRESULT) tfVertexSolverMeshEnsureAvailableVertices(unsigned int numAlloc);
72
78CAPI_FUNC(HRESULT) tfVertexSolverMeshEnsureAvailableSurfaces(unsigned int numAlloc);
79
85CAPI_FUNC(HRESULT) tfVertexSolverMeshEnsureAvailableBodies(unsigned int numAlloc);
86
93CAPI_FUNC(HRESULT) tfVertexSolverMeshCreateVertex(struct tfVertexSolverVertexHandleHandle *handle, unsigned int pid);
94
102CAPI_FUNC(HRESULT) tfVertexSolverMeshCreateVertices(struct tfVertexSolverVertexHandleHandle **handles, unsigned int *pids, unsigned int numObjs);
103
110
117CAPI_FUNC(HRESULT) tfVertexSolverMeshCreateSurfaces(struct tfVertexSolverSurfaceHandleHandle **handles, unsigned int numObjs);
118
125
132CAPI_FUNC(HRESULT) tfVertexSolverMeshCreateBodies(struct tfVertexSolverBodyHandleHandle *handles, unsigned int numObjs);
133
137CAPI_FUNC(HRESULT) tfVertexSolverMeshLock();
138
142CAPI_FUNC(HRESULT) tfVertexSolverMeshUnlock();
143
152 tfFloatP_t *pos,
153 tfFloatP_t tol,
155);
156
163CAPI_FUNC(HRESULT) tfVertexSolverMeshGetVertexByPID(unsigned int pid, struct tfVertexSolverVertexHandleHandle *v);
164
171CAPI_FUNC(HRESULT) tfVertexSolverMeshGetVertex(unsigned int idx, struct tfVertexSolverVertexHandleHandle *v);
172
179CAPI_FUNC(HRESULT) tfVertexSolverMeshGetSurface(unsigned int idx, struct tfVertexSolverSurfaceHandleHandle *s);
180
187CAPI_FUNC(HRESULT) tfVertexSolverMeshGetBody(unsigned int idx, struct tfVertexSolverBodyHandleHandle *b);
188
194CAPI_FUNC(HRESULT) tfVertexSolverMeshNumVertices(unsigned int *result);
195
201CAPI_FUNC(HRESULT) tfVertexSolverMeshNumSurfaces(unsigned int *result);
202
208CAPI_FUNC(HRESULT) tfVertexSolverMeshNumBodies(unsigned int *result);
209
215CAPI_FUNC(HRESULT) tfVertexSolverMeshSizeVertices(unsigned int *result);
216
222CAPI_FUNC(HRESULT) tfVertexSolverMeshSizeSurfaces(unsigned int *result);
223
229CAPI_FUNC(HRESULT) tfVertexSolverMeshSizeBodies(unsigned int *result);
230
236CAPI_FUNC(HRESULT) tfVertexSolverMeshValidate(bool *result);
237
241CAPI_FUNC(HRESULT) tfVertexSolverMeshMakeDirty();
242
253 bool *result
254);
255
266 bool *result
267);
268
279 bool *result
280);
281
288
295CAPI_FUNC(HRESULT) tfVertexSolverMeshRemoveVertices(struct tfVertexSolverVertexHandleHandle **v, unsigned int numObjs);
296
303
310CAPI_FUNC(HRESULT) tfVertexSolverMeshRemoveSurfaces(struct tfVertexSolverSurfaceHandleHandle **s, unsigned int numObjs);
311
318
325CAPI_FUNC(HRESULT) tfVertexSolverMeshRemoveBodies(struct tfVertexSolverBodyHandleHandle **b, unsigned int numObjs);
326
334CAPI_FUNC(HRESULT) tfVertexSolverMeshIs3D(bool *result);
335
336#endif // _WRAPS_C_VERTEX_SOLVER_TFCMESH_H_
Handle to a models::vertex::BodyHandle instance.
Definition tfCBody.h:57
Handle to a models::vertex::MeshQuality instance.
Definition tfCMeshQuality.h:36
Handle to a models::vertex::SurfaceHandle instance.
Definition tfCSurface.h:68
Handle to a models::vertex::VertexHandle instance.
Definition tfCVertex.h:39
HRESULT tfVertexSolverMeshGetSurface(unsigned int idx, struct tfVertexSolverSurfaceHandleHandle *s)
Get a surface at a location in the list of surfaces.
HRESULT tfVertexSolverMeshRemoveVertices(struct tfVertexSolverVertexHandleHandle **v, unsigned int numObjs)
Remove vertices from the mesh; all connected surfaces and bodies are also removed.
HRESULT tfVertexSolverMeshRemoveVertex(struct tfVertexSolverVertexHandleHandle *v)
Remove a vertex from the mesh; all connected surfaces and bodies are also removed.
HRESULT tfVertexSolverMeshValidate(bool *result)
Validate state of the mesh.
HRESULT tfVertexSolverMeshFindVertex(tfFloatP_t *pos, tfFloatP_t tol, struct tfVertexSolverVertexHandleHandle *v)
Find a vertex in this mesh.
HRESULT tfVertexSolverMeshCreateBodies(struct tfVertexSolverBodyHandleHandle *handles, unsigned int numObjs)
Create a bodies.
HRESULT tfVertexSolverMeshSizeVertices(unsigned int *result)
Get the size of the list of vertices.
HRESULT tfVertexSolverMeshGetBody(unsigned int idx, struct tfVertexSolverBodyHandleHandle *b)
Get a body at a location in the list of bodies.
HRESULT tfVertexSolverMeshConnectedSurfaces(struct tfVertexSolverSurfaceHandleHandle *s1, struct tfVertexSolverSurfaceHandleHandle *s2, bool *result)
Check whether two surfaces are connected.
HRESULT tfVertexSolverMeshConnectedVertices(struct tfVertexSolverVertexHandleHandle *v1, struct tfVertexSolverVertexHandleHandle *v2, bool *result)
Check whether two vertices are connected.
HRESULT tfVertexSolverMeshCreateVertices(struct tfVertexSolverVertexHandleHandle **handles, unsigned int *pids, unsigned int numObjs)
Create a vertices.
HRESULT tfVertexSolverMeshMakeDirty()
Manually notify that the mesh has been changed.
HRESULT tfVertexSolverMeshNumVertices(unsigned int *result)
Get the number of vertices.
HRESULT tfVertexSolverMeshCreateSurfaces(struct tfVertexSolverSurfaceHandleHandle **handles, unsigned int numObjs)
Create surfaces.
HRESULT tfVertexSolverMeshNumBodies(unsigned int *result)
Get the number of bodies.
HRESULT tfVertexSolverMeshCreateBody(struct tfVertexSolverBodyHandleHandle *handle)
Create a body.
HRESULT tfVertexSolverMeshQualityWorking(bool *result)
Test whether a mesh quality instance is working on the mesh.
HRESULT tfVertexSolverMeshSetQuality(struct tfVertexSolverMeshQualityHandle *quality)
Set the mesh quality instance.
HRESULT tfVertexSolverMeshHasQuality(bool *result)
Test whether this mesh has a mesh quality instance.
HRESULT tfVertexSolverMeshRemoveSurfaces(struct tfVertexSolverSurfaceHandleHandle **s, unsigned int numObjs)
Remove surfaces from the mesh; all connected bodies are also removed.
HRESULT tfVertexSolverMeshRemoveBodies(struct tfVertexSolverBodyHandleHandle **b, unsigned int numObjs)
Remove bodies from the mesh.
HRESULT tfVertexSolverMeshEnsureAvailableVertices(unsigned int numAlloc)
Ensure that there are a given number of allocated vertices.
HRESULT tfVertexSolverMeshSizeSurfaces(unsigned int *result)
Get the size of the list of surfaces.
HRESULT tfVertexSolverMeshGetVertexByPID(unsigned int pid, struct tfVertexSolverVertexHandleHandle *v)
Get the vertex for a given particle id.
HRESULT tfVertexSolverMeshRemoveBody(struct tfVertexSolverBodyHandleHandle *b)
Remove a body from the mesh.
HRESULT tfVertexSolverMeshConnectedBodies(struct tfVertexSolverBodyHandleHandle *b1, struct tfVertexSolverBodyHandleHandle *b2, bool *result)
Check whether two bodies are connected.
HRESULT tfVertexSolverMeshNumSurfaces(unsigned int *result)
Get the number of surfaces.
HRESULT tfVertexSolverMeshIs3D(bool *result)
Test whether the mesh is 3D.
HRESULT tfVertexSolverMeshGetVertex(unsigned int idx, struct tfVertexSolverVertexHandleHandle *v)
Get the vertex at a location in the list of vertices.
HRESULT tfVertexSolverMeshRemoveSurface(struct tfVertexSolverSurfaceHandleHandle *s)
Remove a surface from the mesh; all connected bodies are also removed.
HRESULT tfVertexSolverMeshUnlock()
Unlocks the mesh for thread-safe operations.
HRESULT tfVertexSolverMeshLock()
Locks the mesh for thread-safe operations.
HRESULT tfVertexSolverMeshEnsureAvailableSurfaces(unsigned int numAlloc)
Ensure that there are a given number of allocated surfaces.
HRESULT tfVertexSolverMeshGetQuality(struct tfVertexSolverMeshQualityHandle *quality)
Get the mesh quality instance.
HRESULT tfVertexSolverMeshSizeBodies(unsigned int *result)
Get the size of the list of bodies.
HRESULT tfVertexSolverMeshCreateVertex(struct tfVertexSolverVertexHandleHandle *handle, unsigned int pid)
Create a vertex.
HRESULT tfVertexSolverMeshEnsureAvailableBodies(unsigned int numAlloc)
Ensure that there are a given number of allocated bodies.
HRESULT tfVertexSolverMeshCreateSurface(struct tfVertexSolverSurfaceHandleHandle *handle)
Create a surface.