Obi
6.4
Unified particle physics for Unity
|
Classes | |
class | Meristem |
struct | Node |
class | SurfacePoint |
Public Types | |
enum | LeafType { Square, Cross, Diamond, DiamondCross, Long, Custom } |
Public Member Functions | |
void | Start () |
int | AddGenerator (ObiPlantGenerator.GeneratorType type, string name, int parent) |
void | RemoveGenerator (int index) |
bool | IsGrowing () |
int | GetGeneratorLevel (ObiPlantGenerator generator) |
void | InstantGrow () |
void | GenerateTrunkGeometry () |
void | GenerateTrunkCurves () |
Public Member Functions inherited from Obi.ObiActor | |
delegate void | ActorCallback (ObiActor actor) |
delegate void | ActorStepCallback (ObiActor actor, float stepTime) |
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 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 void | Teleport (Vector3 position, Quaternion rotation) |
Teleports the entire actor to a new location / orientation. More... | |
bool | ActivateParticle (int actorIndex) |
Activates one particle. More... | |
bool | DeactivateParticle (int actorIndex) |
Deactivates one particle. More... | |
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... | |
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... | |
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... | |
void | SaveStateToBlueprint (ObiActorBlueprint bp) |
Resets the position and velocity of all particles, to the values stored in the blueprint. More... | |
void | ClearState () |
virtual void | LoadBlueprint (ObiSolver solver) |
Loads this actor's blueprint into a given solver. Automatically called by ObiSolver. More... | |
virtual void | UnloadBlueprint (ObiSolver solver) |
Unloads this actor's blueprint from a given solver. Automatically called by ObiSolver. More... | |
virtual void | PrepareFrame () |
virtual void | PrepareStep (float stepTime) |
virtual void | BeginStep (float stepTime) |
virtual void | Substep (float substepTime) |
virtual void | EndStep (float substepTime) |
virtual void | Interpolate () |
virtual void | OnSolverVisibilityChanged (bool visible) |
Public Attributes | |
const float | DEFAULT_PARTICLE_ROTATIONAL_MASS = 0.005f |
const float | MAX_YOUNG_MODULUS = 25000000000 |
const float | MIN_YOUNG_MODULUS = 10 |
int | pooledParticles = 250 |
bool | instantGrowth = true |
int | seed = 0 |
List< ObiPlantGenerator > | generators = new List<ObiPlantGenerator>() |
List< Meristem > | meristems |
int[] | parentIndices |
float[] | parentOffsets |
int[] | levels |
SurfacePoint[] | closestSurfaces |
Public Attributes inherited from Obi.ObiActor | |
int[] | 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... | |
Protected Member Functions | |
override void | OnEnable () |
override void | OnDisable () |
void | LazyMeshInitialization () |
void | UpdateMesh () |
Protected Member Functions inherited from Obi.ObiActor | |
virtual void | Awake () |
virtual void | OnDestroy () |
virtual void | OnValidate () |
void | SetSolver (ObiSolver newSolver) |
Forcibly changed the solver in charge of this actor More... | |
virtual void | OnBlueprintRegenerate (ObiActorBlueprint blueprint) |
void | UpdateCollisionMaterials () |
virtual void | SwapWithFirstInactiveParticle (int actorIndex) |
void | StoreState () |
Properties | |
int | UsedParticles [get] |
override ObiActorBlueprint | sourceBlueprint [get] |
Properties inherited from Obi.ObiActor | |
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... | |
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... | |
virtual bool | usesCustomExternalForces [get] |
If true, it means external forces aren't applied to the particles directly. More... | |
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] |
Additional Inherited Members | |
Protected Attributes inherited from Obi.ObiActor | |
int | m_ActiveParticleCount = 0 |
ObiSolver | m_Solver |
bool | m_Loaded = false |
ObiCollisionMaterial | m_CollisionMaterial |
bool | m_SurfaceCollisions = false |
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... | |
ActorCallback | OnPrepareFrame |
Called at the start of the solver's FixedUpdate (for Fixed and LateFixed updaters) or the solver's Update (for Late updaters) More... | |
ActorStepCallback | OnPrepareStep |
Called at the beginning of a time step, before dirty constraints and active particles have been updated. More... | |
ActorStepCallback | OnBeginStep |
Called at the beginning of a time step, after dirty constraints and active particles have been updated. More... | |
ActorStepCallback | OnSubstep |
Called at the beginning of each substep. More... | |
ActorStepCallback | OnEndStep |
Called at the end of a timestep, after external forces have been reset and collision callbacks called. More... | |
ActorCallback | OnInterpolate |
Called at the end of each frame. More... | |
int Obi.ObiPlant.AddGenerator | ( | ObiPlantGenerator.GeneratorType | type, |
string | name, | ||
int | parent | ||
) |
Generates the particle based physical representation of the rope. This is the initialization method for the rope object and should not be called directly once the object has been created.
void Obi.ObiPlant.GenerateTrunkGeometry | ( | ) |
Clears the plant mesh, and then fills it with trunk geometry by first calculating curves and then generating vertices/triangles around them.
float [] Obi.ObiPlant.parentOffsets |
normalized offset from the parent particle's center