Obi  7.0.5
Unified particle physics for Unity
All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
Obi.ObiBone Class Reference
Inheritance diagram for Obi.ObiBone:
Obi.ObiActor Obi.IStretchShearConstraintsUser Obi.IBendTwistConstraintsUser Obi.ISkinConstraintsUser Obi.IAerodynamicConstraintsUser Obi.IObiParticleCollection

Classes

class  BonePropertyCurve
 
class  IgnoredBone
 

Public Member Functions

void UpdateBlueprint ()
 
override void RequestReadback ()
 
override void SimulationEnd (float simulatedTime, float substepTime)
 
override void ProvideDeformableEdges (ObiNativeIntList deformableEdges)
 
void UpdateRadius ()
 
void UpdateMasses ()
 
Vector3 GetSkinRadiiBackstop (ObiSkinConstraintsBatch batch, int constraintIndex)
 
float GetSkinCompliance (ObiSkinConstraintsBatch batch, int constraintIndex)
 
Vector3 GetBendTwistCompliance (ObiBendTwistConstraintsBatch batch, int constraintIndex)
 
Vector2 GetBendTwistPlasticity (ObiBendTwistConstraintsBatch batch, int constraintIndex)
 
Vector3 GetStretchShearCompliance (ObiStretchShearConstraintsBatch batch, int constraintIndex)
 
float GetDrag (ObiAerodynamicConstraintsBatch batch, int constraintIndex)
 
float GetLift (ObiAerodynamicConstraintsBatch batch, int constraintIndex)
 
void FixedUpdate ()
 
override void SimulationStart (float timeToSimulate, float substepTime)
 
void LateUpdate ()
 
void ResetToCurrentShape ()
 Resets particle orientations/positions to match the current pose of the bone hierarchy, and sets all their velocities to zero. More...
 
- Public Member Functions inherited from Obi.ObiActor
delegate void ActorCallback (ObiActor actor)
 
delegate void ActorStepCallback (ObiActor actor, float simulatedTime, float substepTime)
 
delegate void ActorBlueprintCallback (ObiActor actor, ObiActorBlueprint blueprint)
 
void AddToSolver ()
 Adds this actor to its solver, if any. Automatically called by ObiSolver. More...
 
void RemoveFromSolver ()
 Remove this actor from its solver, if any. Automatically called by ObiSolver. More...
 
virtual void ProvideDeformableTriangles (ObiNativeIntList deformableTriangles, ObiNativeVector2List deformableUVs)
 
virtual int GetDeformableEdgeCount ()
 
virtual bool CopyParticle (int actorSourceIndex, int actorDestIndex)
 Copies all data (position, velocity, phase, etc) from one particle to another one. More...
 
void TeleportParticle (int actorIndex, Vector3 position)
 Teleports one actor particle to a certain position in solver space. More...
 
virtual Matrix4x4 Teleport (Vector3 position, Quaternion rotation)
 Teleports the entire actor to a new location / orientation. More...
 
virtual bool ActivateParticle ()
 Activates one particle. More...
 
virtual bool DeactivateParticle (int actorIndex)
 Deactivates one particle. More...
 
virtual bool IsParticleActive (int actorIndex)
 Returns whether a given particle is active. More...
 
virtual void SetSelfCollisions (bool selfCollisions)
 Updates particle phases in the solver at runtime, including or removing the self-collision flag. More...
 
virtual void SetOneSided (bool oneSided)
 Updates particle phases in the solver at runtime, including or removing the one-sided flag. More...
 
void SetSimplicesDirty ()
 Marks simplices dirty. More...
 
void SetConstraintsDirty (Oni.ConstraintType constraintType)
 Marks a given constraint type as dirty. More...
 
void SetRenderingDirty (Oni.RenderingSystemType rendererType)
 Marks rendering dirty. More...
 
IObiConstraints GetConstraintsByType (Oni.ConstraintType type)
 Returns the data representation of constraints of a given type being simulated by this solver. More...
 
virtual void UpdateParticleProperties ()
 Call when some particle properties have been modified and need updating. More...
 
int GetParticleRuntimeIndex (int actorIndex)
 Returns the index of this particle in the solver arrays. More...
 
Vector3 GetParticlePosition (int solverIndex)
 Given a solver particle index, returns the position of that particle in world space. More...
 
Quaternion GetParticleOrientation (int solverIndex)
 Given a solver particle index, returns the orientation of that particle in world space. More...
 
Vector3 GetParticleRestPosition (int solverIndex)
 Given a solver particle index, returns the rest position of that particle. More...
 
Quaternion GetParticleRestOrientation (int solverIndex)
 Given a solver particle index, returns the rest orientation of that particle. More...
 
void GetParticleAnisotropy (int solverIndex, ref Vector4 b1, ref Vector4 b2, ref Vector4 b3)
 Given a solver particle index, returns the anisotropic frame of that particle in world space. More...
 
float GetParticleMaxRadius (int solverIndex)
 Given a solver particle index, returns the maximum world space radius of that particle, in any axis. More...
 
Color GetParticleColor (int solverIndex)
 Given a solver particle index, returns the color of that particle. More...
 
void SetFilterCategory (int newCategory)
 Sets a given category value for all particles in the actor. More...
 
void SetFilterMask (int newMask)
 Sets a given mask value for all particles in the actor. More...
 
void SetMass (float mass)
 Sets the inverse mass of each particle so that the total actor mass matches the one passed by parameter. More...
 
float GetMass (out Vector3 com)
 Returns the actor's mass (sum of all particle masses), and the position of its center of mass. More...
 
void AddForce (Vector3 force, ForceMode forceMode)
 Adds an external force to all particles in the actor. More...
 
void AddTorque (Vector3 force, ForceMode forceMode)
 Adds a torque to the actor. More...
 
void ResetParticles ()
 Resets the position and velocity of all particles, to the values stored in the blueprint. More...
 
bool SaveStateToBlueprint (ObiActorBlueprint bp)
 Resets the position and velocity of all particles, to the values stored in the blueprint. More...
 
void ClearState ()
 
virtual void Interpolate (float simulatedTime, float substepTime)
 
virtual void OnSolverVisibilityChanged (bool visible)
 

Public Attributes

bool fixRoot = true
 
bool stretchBones = true
 
List< IgnoredBoneignored = new List<IgnoredBone>()
 
- Public Attributes inherited from Obi.ObiActor
ObiNativeIntList solverIndices
 Index of each one of the actor's particles in the solver. More...
 
List< int >[] solverBatchOffsets
 For each of the actor's constraint types, offset of every batch in the solver. More...
 
int groupID = 0
 

Protected Member Functions

override void Awake ()
 
override void OnDestroy ()
 
override void OnValidate ()
 
- Protected Member Functions inherited from Obi.ObiActor
virtual void OnEnable ()
 
virtual void OnDisable ()
 
void SetSolver (ObiSolver newSolver)
 Forcibly changes the solver in charge of this actor More...
 
void SetMassScale (float scale)
 Sets the mass of all particles in the actor to their blueprint values, multiplied by a scale factor. More...
 
virtual void OnBlueprintRegenerate (ObiActorBlueprint blueprint)
 
void UpdateCollisionMaterials ()
 
virtual void SwapWithFirstInactiveParticle (int actorIndex)
 
void StoreState ()
 

Protected Attributes

ObiBoneBlueprint m_BoneBlueprint
 
bool m_SelfCollisions = false
 
BonePropertyCurve _radius = new BonePropertyCurve(0.1f, 1)
 
BonePropertyCurve _mass = new BonePropertyCurve(0.1f, 1)
 
BonePropertyCurve _rotationalMass = new BonePropertyCurve(0.1f, 1)
 
bool _skinConstraintsEnabled = true
 
BonePropertyCurve _skinCompliance = new BonePropertyCurve(0.01f, 1)
 
BonePropertyCurve _skinRadius = new BonePropertyCurve(0.1f, 1)
 
bool _stretchShearConstraintsEnabled = true
 
BonePropertyCurve _stretchCompliance = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _shear1Compliance = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _shear2Compliance = new BonePropertyCurve(0, 1)
 
bool _bendTwistConstraintsEnabled = true
 
BonePropertyCurve _torsionCompliance = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _bend1Compliance = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _bend2Compliance = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _plasticYield = new BonePropertyCurve(0, 1)
 
BonePropertyCurve _plasticCreep = new BonePropertyCurve(0, 1)
 
bool _aerodynamicsEnabled = true
 
BonePropertyCurve _drag = new BonePropertyCurve(0.05f, 1)
 
BonePropertyCurve _lift = new BonePropertyCurve(0.02f, 1)
 
- Protected Attributes inherited from Obi.ObiActor
int m_ActiveParticleCount = 0
 
ObiSolver m_Solver
 
bool m_Loaded = false
 
ObiCollisionMaterial m_CollisionMaterial
 
bool m_SurfaceCollisions = false
 
float m_MassScale = 1
 

Properties

int Filter [get, set]
 Collision filter value used by fluid particles. More...
 
bool selfCollisions [get, set]
 Whether particles in this actor colide with particles using the same phase value. More...
 
BonePropertyCurve radius [get, set]
 Particle radius distribution over this bone hierarchy length. More...
 
BonePropertyCurve mass [get, set]
 Mass distribution over this bone hierarchy length. More...
 
BonePropertyCurve rotationalMass [get, set]
 Rotational mass distribution over this bone hierarchy length. More...
 
bool skinConstraintsEnabled [get, set]
 Whether this actor's skin constraints are enabled. More...
 
BonePropertyCurve skinCompliance [get, set]
 Compliance of this actor's skin constraints. More...
 
BonePropertyCurve skinRadius [get, set]
 Compliance of this actor's skin radius More...
 
bool stretchShearConstraintsEnabled [get, set]
 Whether this actor's stretch/shear constraints are enabled. More...
 
BonePropertyCurve stretchCompliance [get, set]
 Compliance of this actor's stretch/shear constraints, along their length. More...
 
BonePropertyCurve shear1Compliance [get, set]
 Shearing compliance of this actor's stretch/shear constraints, along the first axis orthogonal to their length. More...
 
BonePropertyCurve shear2Compliance [get, set]
 Shearing compliance of this actor's stretch/shear constraints, along the second axis orthogonal to their length. More...
 
bool bendTwistConstraintsEnabled [get, set]
 Whether this actor's bend/twist constraints are enabled. More...
 
BonePropertyCurve torsionCompliance [get, set]
 Torsional compliance of this actor's bend/twist constraints along their length. More...
 
BonePropertyCurve bend1Compliance [get, set]
 Bending compliance of this actor's bend/twist constraints along the first axis orthogonal to their length. More...
 
BonePropertyCurve bend2Compliance [get, set]
 Bending compliance of this actor's bend/twist constraints along the second axis orthogonal to their length. More...
 
BonePropertyCurve plasticYield [get, set]
 Threshold for plastic behavior. More...
 
BonePropertyCurve plasticCreep [get, set]
 Percentage of deformation that gets absorbed into the rest shape per second, once deformation goes above the plasticYield threshold. More...
 
bool aerodynamicsEnabled [get, set]
 Whether this actor's aerodynamic constraints are enabled. More...
 
BonePropertyCurve drag [get, set]
 Aerodynamic drag value. More...
 
BonePropertyCurve lift [get, set]
 Aerodynamic lift value. More...
 
override ObiActorBlueprint sourceBlueprint [get]
 
ObiBoneBlueprint boneBlueprint [get, set]
 
- Properties inherited from Obi.ObiActor
int deformableEdgesOffset [get, set]
 
ObiSolver solver [get]
 The solver in charge of simulating this actor. More...
 
bool isLoaded [get]
 True if the actor blueprint has been loaded into a solver. If true, it guarantees actor.solver, actor.solverIndices and actor.solverBatchOffsets won't be null. More...
 
ObiCollisionMaterial collisionMaterial [get, set]
 The collision material being used by this actor. More...
 
virtual bool surfaceCollisions [get, set]
 Whether to use simplices (triangles, edges) for contact generation. More...
 
float massScale [get, set]
 Scale applied to this actor's particle masses. More...
 
int particleCount [get]
 Amount of particles allocated by this actor. More...
 
int activeParticleCount [get]
 Amount of particles in use by this actor. More...
 
bool usesOrientedParticles [get]
 Whether this actors makes use of particle orientations or not. More...
 
virtual bool usesAnisotropicParticles [get]
 If true, it means particles may not be completely spherical, but ellipsoidal. More...
 
Oni.SimplexType simplexTypes [get]
 
Matrix4x4 actorLocalToSolverMatrix [get]
 Matrix that transforms from the actor's local space to the solver's local space. More...
 
Matrix4x4 actorSolverToLocalMatrix [get]
 Matrix that transforms from the solver's local space to the actor's local space. More...
 
abstract ObiActorBlueprint sourceBlueprint [get]
 Reference to the blueprint asset used by this actor. More...
 
ObiActorBlueprint sharedBlueprint [get]
 Reference to the blueprint in use by this actor. More...
 
ObiActorBlueprint blueprint [get]
 Returns a unique instance of this actor's sourceBlueprint. More...
 
- Properties inherited from Obi.IObiParticleCollection
int particleCount [get]
 
int activeParticleCount [get]
 
bool usesOrientedParticles [get]
 
- Properties inherited from Obi.IStretchShearConstraintsUser
bool stretchShearConstraintsEnabled [get, set]
 
- Properties inherited from Obi.IBendTwistConstraintsUser
bool bendTwistConstraintsEnabled [get, set]
 
- Properties inherited from Obi.ISkinConstraintsUser
bool skinConstraintsEnabled [get, set]
 
- Properties inherited from Obi.IAerodynamicConstraintsUser
bool aerodynamicsEnabled [get, set]
 

Additional Inherited Members

- Events inherited from Obi.ObiActor
ActorBlueprintCallback OnBlueprintLoaded
 Called when the actor blueprint has been loaded into the solver. More...
 
ActorBlueprintCallback OnBlueprintUnloaded
 Called when the actor blueprint has been unloaded from the solver. More...
 
ActorBlueprintCallback OnBlueprintRegenerated
 Called when the blueprint currently in use has been re-generated. This will always be preceded by a call to OnBlueprintUnloaded and OnBlueprintLoaded. More...
 
ActorStepCallback OnSimulationStart
 Called before simulation starts. More...
 
ActorStepCallback OnSimulationEnd
 Called after simulation ends. More...
 
ActorCallback OnRequestReadback
 You can use this callback to issue GPU->CPU readbacks. More...
 
ActorStepCallback OnInterpolate
 Called at the end of each frame, after interpolation but before rendering. More...
 

Member Function Documentation

void Obi.ObiBone.ResetToCurrentShape ( )

Resets particle orientations/positions to match the current pose of the bone hierarchy, and sets all their velocities to zero.

Property Documentation

bool Obi.ObiBone.aerodynamicsEnabled
getset

Whether this actor's aerodynamic constraints are enabled.

BonePropertyCurve Obi.ObiBone.bend1Compliance
getset

Bending compliance of this actor's bend/twist constraints along the first axis orthogonal to their length.

BonePropertyCurve Obi.ObiBone.bend2Compliance
getset

Bending compliance of this actor's bend/twist constraints along the second axis orthogonal to their length.

bool Obi.ObiBone.bendTwistConstraintsEnabled
getset

Whether this actor's bend/twist constraints are enabled.

BonePropertyCurve Obi.ObiBone.drag
getset

Aerodynamic drag value.

int Obi.ObiBone.Filter
getset

Collision filter value used by fluid particles.

BonePropertyCurve Obi.ObiBone.lift
getset

Aerodynamic lift value.

BonePropertyCurve Obi.ObiBone.mass
getset

Mass distribution over this bone hierarchy length.

BonePropertyCurve Obi.ObiBone.plasticCreep
getset

Percentage of deformation that gets absorbed into the rest shape per second, once deformation goes above the plasticYield threshold.

BonePropertyCurve Obi.ObiBone.plasticYield
getset

Threshold for plastic behavior.

Once bending goes above this value, a percentage of the deformation (determined by plasticCreep) will be permanently absorbed into the rod's rest shape.

BonePropertyCurve Obi.ObiBone.radius
getset

Particle radius distribution over this bone hierarchy length.

BonePropertyCurve Obi.ObiBone.rotationalMass
getset

Rotational mass distribution over this bone hierarchy length.

bool Obi.ObiBone.selfCollisions
getset

Whether particles in this actor colide with particles using the same phase value.

BonePropertyCurve Obi.ObiBone.shear1Compliance
getset

Shearing compliance of this actor's stretch/shear constraints, along the first axis orthogonal to their length.

BonePropertyCurve Obi.ObiBone.shear2Compliance
getset

Shearing compliance of this actor's stretch/shear constraints, along the second axis orthogonal to their length.

BonePropertyCurve Obi.ObiBone.skinCompliance
getset

Compliance of this actor's skin constraints.

bool Obi.ObiBone.skinConstraintsEnabled
getset

Whether this actor's skin constraints are enabled.

BonePropertyCurve Obi.ObiBone.skinRadius
getset

Compliance of this actor's skin radius

BonePropertyCurve Obi.ObiBone.stretchCompliance
getset

Compliance of this actor's stretch/shear constraints, along their length.

bool Obi.ObiBone.stretchShearConstraintsEnabled
getset

Whether this actor's stretch/shear constraints are enabled.

BonePropertyCurve Obi.ObiBone.torsionCompliance
getset

Torsional compliance of this actor's bend/twist constraints along their length.


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