Class FeModel
Namespace: ValveResourceFormat.ResourceTypes.RubikonPhysics.Softbody
Assembly: ValveResourceFormat.dll
Soft-body (cloth) model embedded in a physics aggregate (m_pFeModel). Every member mirrors one PhysFeModelDesc_t field as serialized; arrays are parsed on first access.
public sealed class FeModelInheritance
Constructors
FeModel(KVObject)
Initializes a new instance of the class from a parsed m_pFeModel sub-object.
public FeModel(KVObject data)Parameters
data KVObject
Properties
AddWorldCollisionRadius
Gets m_flAddWorldCollisionRadius.
public float AddWorldCollisionRadius { get; }Property Value
AnimStrayRadii
Gets m_AnimStrayRadii.
public FeModel.FeAnimStrayRadius[] AnimStrayRadii { get; }Property Value
AntiTunnelBytecode
Gets m_AntiTunnelBytecode.
public uint[] AntiTunnelBytecode { get; }Property Value
uint[]
AntiTunnelProbes
Gets m_AntiTunnelProbes.
public FeModel.FeAntiTunnelProbe[] AntiTunnelProbes { get; }Property Value
AntiTunnelTargetNodes
Gets m_AntiTunnelTargetNodes, the nodes target.
public int[] AntiTunnelTargetNodes { get; }Property Value
int[]
AxialEdges
Gets m_AxialEdges, the axial bend edges the rigid edge hinge option produces.
public FeModel.FeAxialEdgeBend[] AxialEdges { get; }Property Value
BoneMergeLinks
Gets m_BoneMergeLinks.
public FeModel.FeBoneMergeLink[] BoneMergeLinks { get; }Property Value
BoxRigids
Gets m_BoxRigids. Older files store the frame as a matrix in tmFrame.
public FeModel.FeBoxRigid[] BoxRigids { get; }Property Value
CollisionPlanes
Gets m_CollisionPlanes.
public FeModel.FeCollisionPlane[] CollisionPlanes { get; }Property Value
CtrlHash
Gets m_CtrlHash, the hash of each .
public uint[] CtrlHash { get; }Property Value
uint[]
CtrlName
Gets m_CtrlName, the per-node control names. Generated proxy-mesh nodes are prefixed with $, the rest are skeleton bone names.
public string[] CtrlName { get; }Property Value
string[]
CtrlOffsets
Gets m_CtrlOffsets, the generated-node anchor offsets.
public FeModel.FeCtrlOffset[] CtrlOffsets { get; }Property Value
CtrlOsOffsets
Gets m_CtrlOsOffsets, the parent and child of every object-space-offset virtual node.
public FeModel.FeCtrlOsOffset[] CtrlOsOffsets { get; }Property Value
CtrlSoftOffsets
Gets m_CtrlSoftOffsets.
public FeModel.FeCtrlSoftOffset[] CtrlSoftOffsets { get; }Property Value
Data
Gets the raw m_pFeModel data.
public KVObject Data { get; }Property Value
KVObject
DefaultExpAirDrag
Gets m_flDefaultExpAirDrag.
public float DefaultExpAirDrag { get; }Property Value
DefaultExpQuadAirDrag
Gets m_flDefaultExpQuadAirDrag.
public float DefaultExpQuadAirDrag { get; }Property Value
DefaultExpRodAirDrag
Gets m_flDefaultExpRodAirDrag, or null when the file does not carry it (older files only).
public float? DefaultExpRodAirDrag { get; }Property Value
DefaultGravityScale
Gets m_flDefaultGravityScale, or null when the file does not carry it.
public float? DefaultGravityScale { get; }Property Value
DefaultSurfaceStretch
Gets m_flDefaultSurfaceStretch.
public float DefaultSurfaceStretch { get; }Property Value
DefaultThreadStretch
Gets m_flDefaultThreadStretch.
public float DefaultThreadStretch { get; }Property Value
DefaultTimeDilation
Gets m_flDefaultTimeDilation.
public float DefaultTimeDilation { get; }Property Value
DefaultVelAirDrag
Gets m_flDefaultVelAirDrag.
public float DefaultVelAirDrag { get; }Property Value
DefaultVelQuadAirDrag
Gets m_flDefaultVelQuadAirDrag.
public float DefaultVelQuadAirDrag { get; }Property Value
DefaultVelRodAirDrag
Gets m_flDefaultVelRodAirDrag, or null when the file does not carry it (older files only).
public float? DefaultVelRodAirDrag { get; }Property Value
DefaultVolumetricSolveAmount
Gets m_flDefaultVolumetricSolveAmount.
public float DefaultVolumetricSolveAmount { get; }Property Value
DynKinLinks
Gets m_DynKinLinks, one per authored ClothFollowBone.
public FeModel.FeDynKinLink[] DynKinLinks { get; }Property Value
DynNodeFriction
Gets m_DynNodeFriction, the friction indexed by node minus .
public float[] DynNodeFriction { get; }Property Value
float[]
DynNodeVertexSet
Gets m_DynNodeVertexSet, each dynamic node's index into .
public byte[] DynNodeVertexSet { get; }Property Value
byte[]
DynNodeWindBases
Gets m_DynNodeWindBases, indexed by node minus .
public FeModel.FeNodeWindBase[] DynNodeWindBases { get; }Property Value
DynamicNodeFlags
Gets m_nDynamicNodeFlags.
public uint DynamicNodeFlags { get; }Property Value
Effects
Gets m_Effects, the named cloth effects.
public FeModel.FeEffectDesc[] Effects { get; }Property Value
ExtraGoalIterations
Gets m_nExtraGoalIterations.
public int ExtraGoalIterations { get; }Property Value
ExtraIterations
Gets m_nExtraIterations.
public int ExtraIterations { get; }Property Value
ExtraPressureIterations
Gets m_nExtraPressureIterations.
public int ExtraPressureIterations { get; }Property Value
FirstPositionDrivenNode
Gets m_nFirstPositionDrivenNode, or null when the file does not carry it.
public int? FirstPositionDrivenNode { get; }Property Value
int?
FitMatrices
Gets m_FitMatrices. Each fit covers the from the previous one's end to its own.
public FeModel.FeFitMatrix[] FitMatrices { get; }Property Value
FitWeights
Gets m_FitWeights.
public FeModel.FeFitWeight[] FitWeights { get; }Property Value
FollowNodes
Gets m_FollowNodes.
public FeModel.FeFollowNode[] FollowNodes { get; }Property Value
FreeNodes
Gets m_FreeNodes.
public int[] FreeNodes { get; }Property Value
int[]
GoalDampedSpringIntegrators
Gets m_GoalDampedSpringIntegrators, a bitmask with one bit per dynamic node.
public uint[] GoalDampedSpringIntegrators { get; }Property Value
uint[]
HingeLimits
Gets m_HingeLimits.
public FeModel.FeHingeLimit[] HingeLimits { get; }Property Value
InitPose
Gets m_InitPose, the per-node rest transform in model space.
public FeModel.FeTransform[] InitPose { get; }Property Value
InternalPressure
Gets m_flInternalPressure.
public float InternalPressure { get; }Property Value
JiggleBones
Gets m_JiggleBones.
public FeModel.FeIndexedJiggleBone[] JiggleBones { get; }Property Value
KelagerBends
Gets m_KelagerBends, the three-node bend constraints built for chain joints with a stiff hinge.
public FeModel.FeKelagerBend[] KelagerBends { get; }Property Value
LegacyStretchForce
Gets m_LegacyStretchForce.
public float[] LegacyStretchForce { get; }Property Value
float[]
LocalDrag1
Gets m_flLocalDrag1.
public float LocalDrag1 { get; }Property Value
LocalForce
Gets m_flLocalForce, the local force multiplier of every node when is empty.
public float LocalForce { get; }Property Value
LocalForces
Gets m_LocalForce, the local force multipliers indexed by node minus .
public float[] LocalForces { get; }Property Value
float[]
LocalRotation
Gets m_flLocalRotation, the local rotation multiplier of every node when is empty.
public float LocalRotation { get; }Property Value
LocalRotations
Gets m_LocalRotation, the local rotation multipliers indexed by node minus .
public float[] LocalRotations { get; }Property Value
float[]
LockToGoal
Gets m_LockToGoal, the nodes locked to their animated goal.
public int[] LockToGoal { get; }Property Value
int[]
LockToParent
Gets m_LockToParent, the nodes held at a fixed offset from their parent.
public FeModel.FeCtrlOffset[] LockToParent { get; }Property Value
MorphLayers
Gets m_MorphLayers, the deprecated morph layers.
public FeModel.FeMorphLayer[] MorphLayers { get; }Property Value
MorphSetData
Gets m_MorphSetData.
public byte[] MorphSetData { get; }Property Value
byte[]
MotionSmoothCdt
Gets m_flMotionSmoothCDT.
public float MotionSmoothCdt { get; }Property Value
NodeBaseJiggleboneDependsCount
Gets m_nNodeBaseJiggleboneDependsCount.
public int NodeBaseJiggleboneDependsCount { get; }Property Value
NodeBases
Gets m_NodeBases, the explicit orientation basis of generated nodes.
public FeModel.FeNodeBase[] NodeBases { get; }Property Value
NodeCollisionRadii
Gets m_NodeCollisionRadii, the world-collision radii indexed by node minus .
public float[] NodeCollisionRadii { get; }Property Value
float[]
NodeCount
Gets m_nNodeCount, the total number of control nodes.
public int NodeCount { get; }Property Value
NodeIntegrator
Gets m_NodeIntegrator, the per-node solver integrator parameters.
public FeModel.FeNodeIntegrator[] NodeIntegrator { get; }Property Value
NodeInvMasses
Gets m_NodeInvMasses, the per-node inverse mass. 0 marks a static (pinned) node.
public float[] NodeInvMasses { get; }Property Value
float[]
NodeStrayBoxes
Gets m_NodeStrayBoxes.
public FeModel.FeNodeStrayBox[] NodeStrayBoxes { get; }Property Value
QuadCount1
Gets m_nQuadCount1.
public int QuadCount1 { get; }Property Value
QuadCount2
Gets m_nQuadCount2.
public int QuadCount2 { get; }Property Value
QuadVelocitySmoothIterations
Gets m_nQuadVelocitySmoothIterations.
public int QuadVelocitySmoothIterations { get; }Property Value
QuadVelocitySmoothRate
Gets m_flQuadVelocitySmoothRate.
public float QuadVelocitySmoothRate { get; }Property Value
Quads
Gets m_Quads, the cloth surface quads.
public FeModel.FeQuad[] Quads { get; }Property Value
ReservedUint8
Gets m_nReservedUint8.
public int ReservedUint8 { get; }Property Value
ReverseOffsets
Gets m_ReverseOffsets.
public FeModel.FeNodeReverseOffset[] ReverseOffsets { get; }Property Value
RigidColliderPriorities
Gets m_RigidColliderPriorities. The last row holds each rigid array's length, so priority group g owns [row[g], row[g + 1]) of every array.
public FeModel.FeRigidColliderIndices[] RigidColliderPriorities { get; }Property Value
FeModel.FeRigidColliderIndices[]
RodVelocitySmoothIterations
Gets m_nRodVelocitySmoothIterations.
public int RodVelocitySmoothIterations { get; }Property Value
RodVelocitySmoothRate
Gets m_flRodVelocitySmoothRate.
public float RodVelocitySmoothRate { get; }Property Value
Rods
Gets m_Rods, the distance constraints between nodes.
public FeModel.FeRodConstraint[] Rods { get; }Property Value
RopeCount
Gets m_nRopeCount, the number of runs in .
public int RopeCount { get; }Property Value
Ropes
Gets m_Ropes: the exclusive end offset of each of the runs, then the runs' nodes.
public int[] Ropes { get; }Property Value
int[]
RotLockStaticNodes
Gets m_nRotLockStaticNodes, the number of leading static nodes whose rotation is locked.
public int RotLockStaticNodes { get; }Property Value
SDFRigids
Gets m_SDFRigids.
public FeModel.FeSDFRigid[] SDFRigids { get; }Property Value
SelfCollisionLayers
Gets m_SelfCollisionLayers.
public FeModel.FeModelSelfCollisionLayer[] SelfCollisionLayers { get; }Property Value
FeModel.FeModelSelfCollisionLayer[]
SimdAnimStrayRadii
Gets m_SimdAnimStrayRadii, packed four to a block.
public FeModel.FeSimdAnimStrayRadius[] SimdAnimStrayRadii { get; }Property Value
FeModel.FeSimdAnimStrayRadius[]
SimdNodeBases
Gets m_SimdNodeBases, packed four to a block.
public FeModel.FeSimdNodeBase[] SimdNodeBases { get; }Property Value
SimdQuadCount1
Gets m_nSimdQuadCount1.
public int SimdQuadCount1 { get; }Property Value
SimdQuadCount2
Gets m_nSimdQuadCount2.
public int SimdQuadCount2 { get; }Property Value
SimdQuads
Gets m_SimdQuads, packed four to a block.
public FeModel.FeSimdQuad[] SimdQuads { get; }Property Value
SimdRods
Gets m_SimdRods, rods packed four to a block.
public FeModel.FeSimdRodConstraint[] SimdRods { get; }Property Value
SimdRodsAnim
Gets m_SimdRodsAnim, the rods of chain joints declared with animated_length, packed four to a block.
public FeModel.FeSimdRodConstraintAnim[] SimdRodsAnim { get; }Property Value
FeModel.FeSimdRodConstraintAnim[]
SimdSpringIntegrator
Gets m_SimdSpringIntegrator, packed four to a block.
public FeModel.FeSimdSpringIntegrator[] SimdSpringIntegrator { get; }Property Value
FeModel.FeSimdSpringIntegrator[]
SimdTriCount1
Gets m_nSimdTriCount1.
public int SimdTriCount1 { get; }Property Value
SimdTriCount2
Gets m_nSimdTriCount2.
public int SimdTriCount2 { get; }Property Value
SimdTris
Gets m_SimdTris, packed four to a block.
public FeModel.FeSimdTri[] SimdTris { get; }Property Value
SkelParents
Gets m_SkelParents, the per-node parent node index, or -1 for a root.
public int[] SkelParents { get; }Property Value
int[]
SourceElems
Gets m_SourceElems: a count per element arity from 1 to 4, then that many elements of each arity in turn. Empty when the file stores it as a blob.
public int[] SourceElems { get; }Property Value
int[]
SphereRigids
Gets m_SphereRigids. Older files store the sphere as m_vSphere, or as vCenter and flRadius.
public FeModel.FeSphereRigid[] SphereRigids { get; }Property Value
SpringIntegrator
Gets m_SpringIntegrator.
public FeModel.FeSpringIntegrator[] SpringIntegrator { get; }Property Value
StaticNodeFlags
Gets m_nStaticNodeFlags.
public uint StaticNodeFlags { get; }Property Value
StaticNodes
Gets m_nStaticNodes, the number of leading static (pinned) nodes.
public int StaticNodes { get; }Property Value
TaperedCapsuleRigids
Gets m_TaperedCapsuleRigids. Older files store each sphere as vCenter and flRadius.
public FeModel.FeTaperedCapsuleRigid[] TaperedCapsuleRigids { get; }Property Value
FeModel.FeTaperedCapsuleRigid[]
TaperedCapsuleStretches
Gets m_TaperedCapsuleStretches.
public FeModel.FeTaperedCapsuleStretch[] TaperedCapsuleStretches { get; }Property Value
FeModel.FeTaperedCapsuleStretch[]
TreeChildren
Gets m_TreeChildren.
public FeModel.FeTreeChildren[] TreeChildren { get; }Property Value
TreeCollisionMasks
Gets m_TreeCollisionMasks: a collision mask per dynamic node, then the OR of each subtree.
public int[] TreeCollisionMasks { get; }Property Value
int[]
TreeDepth
Gets m_nTreeDepth, the depth of the collision bounding-volume tree.
public int TreeDepth { get; }Property Value
TreeParents
Gets m_TreeParents.
public int[] TreeParents { get; }Property Value
int[]
TriCount1
Gets m_nTriCount1.
public int TriCount1 { get; }Property Value
TriCount2
Gets m_nTriCount2.
public int TriCount2 { get; }Property Value
Tris
Gets m_Tris, the cloth surface triangles.
public FeModel.FeTri[] Tris { get; }Property Value
Twists
Gets m_Twists. The compiler emits one record per directed pair per chain declaration without de-duplicating, so a node or pair can appear several times.
public FeModel.FeTwistConstraint[] Twists { get; }Property Value
VertexMapValues
Gets m_VertexMapValues, the per-node weights of every entry, 0 to 255.
public byte[] VertexMapValues { get; }Property Value
byte[]
VertexMaps
Gets m_VertexMaps, the named vertex selections whose weights are in .
public FeModel.FeVertexMapDesc[] VertexMaps { get; }Property Value
VertexSetNames
Gets m_VertexSetNames, the vertex set name hashes.
public uint[] VertexSetNames { get; }Property Value
uint[]
WindDrag
Gets m_flWindDrag.
public float WindDrag { get; }Property Value
Windage
Gets m_flWindage.
public float Windage { get; }Property Value
WorldCollisionNodes
Gets m_WorldCollisionNodes, the nodes that collide with the world.
public int[] WorldCollisionNodes { get; }Property Value
int[]
WorldCollisionParams
Gets m_WorldCollisionParams, the friction of each range of .
public FeModel.FeWorldCollisionParams[] WorldCollisionParams { get; }Property Value
FeModel.FeWorldCollisionParams[]
See Also
https://s2v.app/SchemaExplorer/cs2/physicslib/PhysFeModelDesc_t

