Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
SoftBodySharedSettings::Skinned Class Reference

A constraint that skins a vertex to joints and limits the distance that the simulated vertex can travel from this vertex. More...

#include <SoftBodySharedSettings.h>

Public Member Functions

 Skinned ()=default
 Constructor.
 
 Skinned (uint32 inVertex, float inMaxDistance, float inBackStopDistance, float inBackStopRadius)
 
void NormalizeWeights ()
 Normalize the weights so that they add up to 1.
 

Public Attributes

uint32 mVertex = 0
 Index in mVertices which indicates which vertex is being skinned.
 
SkinWeight mWeights [cMaxSkinWeights]
 Skin weights, the bind pose of the vertex is assumed to be stored in Vertex::mPosition. The first weight that is zero indicates the end of the list. Weights should add up to 1.
 
float mMaxDistance = FLT_MAX
 Maximum distance that this vertex can reach from the skinned vertex, disabled when FLT_MAX. 0 when you want to hard skin the vertex to the skinned vertex.
 
float mBackStopDistance = FLT_MAX
 Disabled if mBackStopDistance >= mMaxDistance. The faces surrounding mVertex determine an average normal. mBackStopDistance behind the vertex in the opposite direction of this normal, the back stop sphere starts. The simulated vertex will be pushed out of this sphere and it can be used to approximate the volume of the skinned mesh behind the skinned vertex.
 
float mBackStopRadius = 40.0f
 Radius of the backstop sphere. By default this is a fairly large radius so the sphere approximates a plane.
 
uint32 mNormalInfo = 0
 Information needed to calculate the normal of this vertex, lowest 24 bit is start index in mSkinnedConstraintNormals, highest 8 bit is number of faces (generated by CalculateSkinnedConstraintNormals())
 

Static Public Attributes

static constexpr uint cMaxSkinWeights = 4
 Maximum number of skin weights.
 

Detailed Description

A constraint that skins a vertex to joints and limits the distance that the simulated vertex can travel from this vertex.

Constructor & Destructor Documentation

◆ Skinned() [1/2]

SoftBodySharedSettings::Skinned::Skinned ( )
default

Constructor.

◆ Skinned() [2/2]

SoftBodySharedSettings::Skinned::Skinned ( uint32  inVertex,
float  inMaxDistance,
float  inBackStopDistance,
float  inBackStopRadius 
)
inline

Member Function Documentation

◆ NormalizeWeights()

void SoftBodySharedSettings::Skinned::NormalizeWeights ( )
inline

Normalize the weights so that they add up to 1.

Member Data Documentation

◆ cMaxSkinWeights

constexpr uint SoftBodySharedSettings::Skinned::cMaxSkinWeights = 4
staticconstexpr

Maximum number of skin weights.

◆ mBackStopDistance

float SoftBodySharedSettings::Skinned::mBackStopDistance = FLT_MAX

Disabled if mBackStopDistance >= mMaxDistance. The faces surrounding mVertex determine an average normal. mBackStopDistance behind the vertex in the opposite direction of this normal, the back stop sphere starts. The simulated vertex will be pushed out of this sphere and it can be used to approximate the volume of the skinned mesh behind the skinned vertex.

◆ mBackStopRadius

float SoftBodySharedSettings::Skinned::mBackStopRadius = 40.0f

Radius of the backstop sphere. By default this is a fairly large radius so the sphere approximates a plane.

◆ mMaxDistance

float SoftBodySharedSettings::Skinned::mMaxDistance = FLT_MAX

Maximum distance that this vertex can reach from the skinned vertex, disabled when FLT_MAX. 0 when you want to hard skin the vertex to the skinned vertex.

◆ mNormalInfo

uint32 SoftBodySharedSettings::Skinned::mNormalInfo = 0

Information needed to calculate the normal of this vertex, lowest 24 bit is start index in mSkinnedConstraintNormals, highest 8 bit is number of faces (generated by CalculateSkinnedConstraintNormals())

◆ mVertex

uint32 SoftBodySharedSettings::Skinned::mVertex = 0

Index in mVertices which indicates which vertex is being skinned.

◆ mWeights

SkinWeight SoftBodySharedSettings::Skinned::mWeights[cMaxSkinWeights]

Skin weights, the bind pose of the vertex is assumed to be stored in Vertex::mPosition. The first weight that is zero indicates the end of the list. Weights should add up to 1.


The documentation for this class was generated from the following file: