25#ifndef _WRAPS_C_VERTEX_SOLVER_TFCBODY_H_
26#define _WRAPS_C_VERTEX_SOLVER_TFCBODY_H_
39 tfFloatP_t **bodyForceComps;
40 tfFloatP_t *surfaceAreaLam;
41 tfFloatP_t *surfaceAreaVal;
42 tfFloatP_t *volumeLam;
43 tfFloatP_t *volumeVal;
46 tfFloatP_t *adhesionValues;
47 unsigned int numAdhesionValues;
568 unsigned int *numChars
581 unsigned int *numChars
636 unsigned int *numChars
674 unsigned int numSurfaces,
738 unsigned int numSurfaces,
768 unsigned int numTypes
Handle to a io::ThreeDFMeshData instance.
Definition tfC_io.h:94
Handle to a models::vertex::BodyHandle instance.
Definition tfCBody.h:57
Handle to a models::vertex::BodyType instance.
Definition tfCBody.h:65
Body type definition in Tissue Forge C.
Definition tfCBody.h:37
Handle to a models::vertex::SurfaceHandle instance.
Definition tfCSurface.h:68
Handle to a models::vertex::SurfaceType instance.
Definition tfCSurface.h:76
Handle to a models::vertex::VertexHandle instance.
Definition tfCVertex.h:39
HRESULT tfVertexSolverBodyType_setName(struct tfVertexSolverBodyTypeHandle *handle, const char *name)
Set the name of this body type.
HRESULT tfVertexSolverBodyHandle_destroyBodies(struct tfVertexSolverBodyHandleHandle **handles, unsigned int numObjs)
Destroy instances.
HRESULT tfVertexSolverFindBodyTypeFromName(const char *name, struct tfVertexSolverBodyTypeHandle *btype)
Get a registered type by name.
HRESULT tfVertexSolverBodyType_createBodyS(struct tfVertexSolverBodyTypeHandle *handle, struct tfVertexSolverSurfaceHandleHandle **surfaces, unsigned int numSurfaces, struct tfVertexSolverBodyHandleHandle *newObj)
Construct a body of this type from a set of surfaces.
HRESULT tfVertexSolverBodyType_str(struct tfVertexSolverBodyTypeHandle *handle, char **str, unsigned int *numChars)
Get a summary string.
HRESULT tfVertexSolverBodyHandle_validate(struct tfVertexSolverBodyHandleHandle *handle, bool *result)
Validate the body.
HRESULT tfVertexSolverBodyType_createBodyIO(struct tfVertexSolverBodyTypeHandle *handle, struct tfIoThreeDFMeshDataHandle *ioMesh, struct tfVertexSolverSurfaceTypeHandle *stype, struct tfVertexSolverBodyHandleHandle *newObj)
Construct a body of this type from a mesh.
HRESULT tfVertexSolverBodyHandle_sharedVertices(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyHandleHandle *other, struct tfVertexSolverVertexHandleHandle **objs, int *numObjs)
Get the vertices that define both this body and another body.
HRESULT tfVertexSolverBodyHandle_getVertexVolume(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverVertexHandleHandle *v, tfFloatP_t *result)
Get the volume contribution of a vertex to this body.
HRESULT tfVertexSolverCreateBodyByIOData(struct tfIoThreeDFMeshDataHandle *ioMesh, struct tfVertexSolverBodyHandleHandle *newObj)
Construct a body from a mesh.
HRESULT tfVertexSolverBodyType_extend(struct tfVertexSolverBodyTypeHandle *handle, struct tfVertexSolverSurfaceHandleHandle *base, tfFloatP_t *pos, struct tfVertexSolverBodyHandleHandle *newObj)
Create a body from a surface in the mesh and a position.
HRESULT tfVertexSolverBodyHandle_remove(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle *s)
Remove a surface.
HRESULT tfVertexSolverBodyHandle_neighborSurfaces(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle *s, struct tfVertexSolverSurfaceHandleHandle **objs, int *numObjs)
Get the neighboring surfaces of a surface on this body.
HRESULT tfVertexSolverBodyHandle_getVelocity(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t **result)
Get the velocity, calculated as the velocity of the centroid.
HRESULT tfVertexSolverBodyHandle_isOutside(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *pos, bool *result)
Test whether a point is outside. Test is performed using the nearest surface.
HRESULT tfVertexSolverBodyType_registerType(struct tfVertexSolverBodyTypeHandle *handle)
Registers a type with the engine.
HRESULT tfVertexSolverBodyHandle_destroyBody(struct tfVertexSolverBodyHandleHandle *handle)
Destroy the body.
HRESULT tfVertexSolverBodyHandle_contactArea(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyHandleHandle *other, tfFloatP_t *result)
Get the contacting surface area of this body with another body.
HRESULT tfVertexSolverBodyType_initD(struct tfVertexSolverBodyTypeHandle *handle, struct tfVertexSolverBodyTypeSpec bdef)
Initialize an instance from a definition.
HRESULT tfVertexSolverBodyHandle_positionChanged(struct tfVertexSolverBodyHandleHandle *handle)
Update internal data due to a change in position.
HRESULT tfVertexSolverBodyHandle_getType(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyTypeHandle *btype)
Get the body type.
HRESULT tfVertexSolverBodyHandle_setDensity(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t density)
Set the mass density.
HRESULT tfVertexSolverBindBodyTypeAdhesion(struct tfVertexSolverBodyTypeHandle **btypes, struct tfVertexSolverBodyTypeSpec *bdefs, unsigned int numTypes)
Bind adhesion for all types with matching specification.
HRESULT tfVertexSolverBodyType_getDensity(struct tfVertexSolverBodyTypeHandle *handle, tfFloatP_t *result)
Get the mass density.
HRESULT tfVertexSolverBodyHandle_getVertexArea(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverVertexHandleHandle *v, tfFloatP_t *result)
Get the surface area contribution of a vertex to this body.
HRESULT tfVertexSolverBodyHandle_findInterface(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyHandleHandle *b, struct tfVertexSolverSurfaceHandleHandle **objs, int *numObjs)
Get the surfaces that define the interface between this body and another body.
HRESULT tfVertexSolverBodyType_fromString(struct tfVertexSolverBodyTypeHandle *handle, const char *s)
Create an instance from a JSON string representation.
HRESULT tfVertexSolverBodyHandle_getId(struct tfVertexSolverBodyHandleHandle *handle, int *objId)
Get the object id.
HRESULT tfVertexSolverBodyHandle_getArea(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *result)
Get the surface area.
HRESULT tfVertexSolverBodyHandle_objType(struct tfVertexSolverBodyHandleHandle *handle, unsigned int *label)
Get the mesh object type.
HRESULT tfVertexSolverBodyHandle_getVolume(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *result)
Get the volume.
HRESULT tfVertexSolverBodyType_getInstanceIds(struct tfVertexSolverBodyTypeHandle *handle, int **ids, int *numObjs)
Get a list of instances ids that belong to this type.
HRESULT tfVertexSolverCreateBodyBySurfaces(struct tfVertexSolverSurfaceHandleHandle **surfaces, unsigned int numSurfaces, struct tfVertexSolverBodyHandleHandle *newObj)
Construct a body from a set of surfaces.
HRESULT tfVertexSolverBodyHandle_split(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *cp_pos, tfFloatP_t *cp_norm, struct tfVertexSolverSurfaceTypeHandle *stype, struct tfVertexSolverBodyHandleHandle *newObj)
Split into two bodies. The split is defined by a cut plane.
HRESULT tfVertexSolverBodyHandle_init(struct tfVertexSolverBodyHandleHandle *handle, int id)
Initialize an instance.
HRESULT tfVertexSolverBodyHandle_fromString(struct tfVertexSolverBodyHandleHandle *handle, const char *s)
Create an instance from a JSON string representation.
HRESULT tfVertexSolverBodyHandle_findSurface(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *dir, struct tfVertexSolverSurfaceHandleHandle *s)
Find a surface that defines this body.
HRESULT tfVertexSolverBodyHandle_getSurfaces(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle **objs, int *numObjs)
Get the surfaces that define the body.
HRESULT tfVertexSolverBodyHandle_destroyBodyC(struct tfVertexSolverBodyHandleHandle *handle)
Destroy the body.
HRESULT tfVertexSolverBodyType_objType(struct tfVertexSolverBodyTypeHandle *handle, unsigned int *label)
Get the mesh object type.
HRESULT tfVertexSolverBodyHandle_getMass(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *result)
Get the mass.
HRESULT tfVertexSolverBodyHandle_replace(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle *toInsert, struct tfVertexSolverSurfaceHandleHandle *toRemove)
Replace a surface a surface.
HRESULT tfVertexSolverBodyHandle_adjacentBodies(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyHandleHandle **objs, int *numObjs)
Get the adjacent bodies.
HRESULT tfVertexSolverBodyType_getInstances(struct tfVertexSolverBodyTypeHandle *handle, struct tfVertexSolverBodyHandleHandle **objs, int *numObjs)
Get a list of instances that belong to this type.
HRESULT tfVertexSolverBodyType_getName(struct tfVertexSolverBodyTypeHandle *handle, char **str, unsigned int *numChars)
Name of this body type.
HRESULT tfVertexSolverBodyHandle_getCentroid(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t **result)
Get the centroid.
HRESULT tfVertexSolverBodyHandle_getVertices(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverVertexHandleHandle **objs, int *numObjs)
Get the vertices that define the body.
HRESULT tfVertexSolverBodyHandle_definedBySurface(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle *s, bool *result)
Test whether a body is defined by a surface.
struct tfVertexSolverBodyTypeSpec tfVertexSolverBodyTypeSpec_init()
Get a default definition.
HRESULT tfVertexSolverBodyHandle_become(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyTypeHandle *btype)
Become a different type.
HRESULT tfVertexSolverBodyHandle_definedByVertex(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverVertexHandleHandle *v, bool *result)
Test whether a body is defined by a vertex.
HRESULT tfVertexSolverBodyType_setDensity(struct tfVertexSolverBodyTypeHandle *handle, tfFloatP_t density)
Set the mass density.
HRESULT tfVertexSolverBodyHandle_getVertexMass(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverVertexHandleHandle *v, tfFloatP_t *result)
Get the mass contribution of a vertex to this body.
HRESULT tfVertexSolverBodyHandle_connectedBodies(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverBodyHandleHandle **objs, int *numObjs)
Get the connected bodies.
HRESULT tfVertexSolverBodyType_init(struct tfVertexSolverBodyTypeHandle *handle)
Initialize a new instance.
HRESULT tfVertexSolverBodyType_isRegistered(struct tfVertexSolverBodyTypeHandle *handle, bool *result)
Tests whether this type is registered.
HRESULT tfVertexSolverBodyHandle_destroy(struct tfVertexSolverBodyHandleHandle *handle)
Destroy an instance.
HRESULT tfVertexSolverBodyHandle_str(struct tfVertexSolverBodyHandleHandle *handle, char **str, unsigned int *numChars)
Get a summary string.
HRESULT tfVertexSolverBodyType_extrude(struct tfVertexSolverBodyTypeHandle *handle, struct tfVertexSolverSurfaceHandleHandle *base, tfFloatP_t normLen, struct tfVertexSolverBodyHandleHandle *newObj)
Create a body from a surface in a mesh by extruding along the outward-facing normal of the surface.
HRESULT tfVertexSolverBodyHandle_findVertex(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *dir, struct tfVertexSolverVertexHandleHandle *v)
Find a vertex that defines this body.
HRESULT tfVertexSolverBodyHandle_add(struct tfVertexSolverBodyHandleHandle *handle, struct tfVertexSolverSurfaceHandleHandle *s)
Add a surface.
HRESULT tfVertexSolverBodyHandle_toString(struct tfVertexSolverBodyHandleHandle *handle, char **str, unsigned int *numChars)
Get a JSON string representation.
HRESULT tfVertexSolverBodyHandle_getDensity(struct tfVertexSolverBodyHandleHandle *handle, tfFloatP_t *result)
Get the mass density.
HRESULT tfVertexSolverBodyType_toString(struct tfVertexSolverBodyTypeHandle *handle, char **str, unsigned int *numChars)
Get a JSON string representation.