34 #define FLEX_API __declspec(dllexport)
121 struct FlexExtContainer;
150 FLEX_API
FlexExtAsset*
flexExtCreateClothFromMesh(
const float* particles,
int numVertices,
const int* indices,
int numTriangles,
float stretchStiffness,
float bendStiffness,
float tetherStiffness,
float tetherGive,
float pressure);
242 FLEX_API
void flexExtGetParticleData(FlexExtContainer* container,
float** particles,
float** velocities,
int** phases,
float** normals);
258 FLEX_API
void flexExtGetRigidData(FlexExtContainer* container,
float** rotations,
float** positions);
int * mParticleIndices
Simulation particle indices.
Definition: flexExt.h:79
float mInflatableVolume
The rest volume for the inflatable constraint.
Definition: flexExt.h:69
Apply field value as an impulse.
Definition: flexExt.h:100
int mNumSprings
Number of springs.
Definition: flexExt.h:57
FLEX_API FlexExtAsset * flexExtCreateRigidFromMesh(const float *vertices, int numVertices, const int *indices, int numTriangleIndices, float radius)
FLEX_API void flexExtTickContainer(FlexExtContainer *container, float dt, int numSubsteps, FlexTimers *timers=NULL)
float mRadius
Radius of the force field.
Definition: flexExt.h:112
int mNumParticles
Number of simulation particles.
Definition: flexExt.h:80
float mRigidStiffness
Rigid body constraint stiffness.
Definition: flexExt.h:60
bool mInflatable
Whether an inflatable constraint should be added.
Definition: flexExt.h:68
int * mTriangleIndices
Indexed triangle mesh for clothing.
Definition: flexExt.h:64
FLEX_API void flexExtDestroyInstance(FlexExtContainer *container, const FlexExtInstance *instance)
FLEX_API int flexExtAllocParticles(FlexExtContainer *container, int n, int *indices)
FLEX_API void flexExtGetRigidData(FlexExtContainer *container, float **rotations, float **positions)
int mTriangleIndex
Index in the container's triangle array.
Definition: flexExt.h:82
Apply field value as a velocity change.
Definition: flexExt.h:103
const FlexExtAsset * mAsset
Source asset used to create this instance.
Definition: flexExt.h:86
float mInflatableStiffness
How stiff the inflatable is.
Definition: flexExt.h:71
FLEX_API void flexExtGetTriangleData(FlexExtContainer *container, int **indices, float **normals)
FLEX_API void flexExtApplyForceFields(FlexExtContainer *container, float dt)
FLEX_API void flexExtGetParticleData(FlexExtContainer *container, float **particles, float **velocities, int **phases, float **normals)
FLEX_API void flexExtSetForceFields(FlexExtContainer *container, const FlexExtForceField *forceFields, int numForceFields, FlexMemory source)
Apply field value as a force.
Definition: flexExt.h:97
FLEX_API int flexExtCreateWeldedMeshIndices(const float *vertices, int numVertices, int *uniqueVerts, int *originalToUniqueMap, float threshold)
void * mUserData
User data pointer.
Definition: flexExt.h:88
FlexMemory
Definition: flex.h:206
FLEX_API void flexExtDestroyContainer(FlexExtContainer *container)
FlexForceExtMode
Definition: flexExt.h:94
FLEX_API void flexExtPushToDevice(FlexExtContainer *container)
FLEX_API FlexExtInstance * flexExtCreateInstance(FlexExtContainer *container, const FlexExtAsset *asset, const float *transform, float vx, float vy, float vz, int phase, float invMassScale)
FLEX_API FlexExtAsset * flexExtCreateClothFromMesh(const float *particles, int numVertices, const int *indices, int numTriangles, float stretchStiffness, float bendStiffness, float tetherStiffness, float tetherGive, float pressure)
FlexForceExtMode mMode
Mode of field application.
Definition: flexExt.h:114
float * mSpringRestLengths
Spring rest-lengths.
Definition: flexExt.h:56
float * mParticles
Local space particle positions, x,y,z,1/mass.
Definition: flexExt.h:50
int mNumTriangles
Number of triangles.
Definition: flexExt.h:65
bool mLinearFalloff
Linear or no falloff.
Definition: flexExt.h:115
float mPosition[3]
Center of force field.
Definition: flexExt.h:111
int * mSpringIndices
Spring indices.
Definition: flexExt.h:54
int mRigidIndex
Index in the container's rigid body constraints array.
Definition: flexExt.h:83
float mRigidCenter[3]
Local space center of mass of the particles.
Definition: flexExt.h:61
FLEX_API void flexExtFreeParticles(FlexExtContainer *container, int n, const int *indices)
FLEX_API FlexExtContainer * flexExtCreateContainer(FlexSolver *solver, int maxParticles)
float mStrength
Strength of the force field.
Definition: flexExt.h:113
float mInflatablePressure
How much over the rest volume the inflatable should attempt to maintain.
Definition: flexExt.h:70
int mNumParticles
Number of particles.
Definition: flexExt.h:51
FLEX_API void flexExtPullFromDevice(FlexExtContainer *container)
FLEX_API void flexExtDestroyAsset(FlexExtAsset *asset)
FLEX_API int flexExtGetActiveList(FlexExtContainer *container, int *indices)
float * mSpringCoefficients
Spring coefficients.
Definition: flexExt.h:55
Definition: flexExt.h:109
int mInflatableIndex
Index in the container's inflatables array.
Definition: flexExt.h:84