Class BulletPhysicBody3D
The BulletPhysicBody3D implements Bullet physic object for Evergine.
Inheritance
Inherited Members
Namespace: Evergine.Bullet
Assembly: Evergine.Bullet.dll
Syntax
public abstract class BulletPhysicBody3D : DisposableObject, IPhysicBody3D, IDisposable
Constructors
BulletPhysicBody3D(BulletPhysicManager3D, PhysicBodyDef3D)
Initializes a new instance of the BulletPhysicBody3D class.
Declaration
public BulletPhysicBody3D(BulletPhysicManager3D simulation3D, PhysicBodyDef3D bodyDef)
Parameters
Type | Name | Description |
---|---|---|
BulletPhysicManager3D | simulation3D | The bullet world. |
PhysicBodyDef3D | bodyDef | The definition of static body. |
Fields
EmptyCollider
The empty shape.
Declaration
protected static BulletEmptyCollider3D EmptyCollider
Field Value
Type | Description |
---|---|
BulletEmptyCollider3D |
bodyComponent
The user data.
Declaration
protected PhysicBody3D bodyComponent
Field Value
Type | Description |
---|---|
PhysicBody3D |
bodyDef
Rigid body definition.
Declaration
protected PhysicBodyDef3D bodyDef
Field Value
Type | Description |
---|---|
PhysicBodyDef3D |
collider
The single collider.
Declaration
protected BulletCollider3D collider
Field Value
Type | Description |
---|---|
BulletCollider3D |
colliders
Colliders set.
Declaration
protected HashSet<BulletCollider3D> colliders
Field Value
Type | Description |
---|---|
HashSet<BulletCollider3D> |
collisionCategories
The collision flags.
Declaration
protected CollisionCategory3D collisionCategories
Field Value
Type | Description |
---|---|
CollisionCategory3D |
hasOffset
This body has an offset applied.
Declaration
protected bool hasOffset
Field Value
Type | Description |
---|---|
bool |
maskBits
The mask bits.
Declaration
protected CollisionCategory3D maskBits
Field Value
Type | Description |
---|---|
CollisionCategory3D |
offsetScale
The offset scale.
Declaration
protected Vector3 offsetScale
Field Value
Type | Description |
---|---|
Vector3 |
Properties
AnisotropicFriction
Gets or sets the anisotropic friction.
Declaration
public Vector3 AnisotropicFriction { get; set; }
Property Value
Type | Description |
---|---|
Vector3 |
BodyComponent
Gets or sets physic body component. This is usually the component that has created this physic body.
Declaration
public PhysicBody3D BodyComponent { get; set; }
Property Value
Type | Description |
---|---|
PhysicBody3D |
CcdMotionThreshold
Gets or sets the CCD motion threshold.
Declaration
public float CcdMotionThreshold { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
CCD motion clamping activates for convex objects that exceed a (squared to avoid taking square roots) velocity threshold. By default this threshold is zero, which means this feature is disabled for rigid bodies.
CcdSweptSphereRadius
Gets or sets the CCD swept shere radius.
Declaration
public float CcdSweptSphereRadius { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
CCD works on an embedded sphere of radius, make sure this radius is embedded inside the convex objects, preferably smaller.
Collider
Gets or sets the associated collider.
Declaration
protected BulletCollider3D Collider { get; set; }
Property Value
Type | Description |
---|---|
BulletCollider3D |
ColliderShapes
Gets the colliders enumerable.
Declaration
public IEnumerable<IColliderShape3D> ColliderShapes { get; }
Property Value
Type | Description |
---|---|
IEnumerable<IColliderShape3D> |
CollisionCategories
Gets or sets the collision category bits.
Declaration
public CollisionCategory3D CollisionCategories { get; set; }
Property Value
Type | Description |
---|---|
CollisionCategory3D |
CompanionId
Gets or sets the Companion ID.
Declaration
public int CompanionId { get; set; }
Property Value
Type | Description |
---|---|
int |
CompoundCollider
Gets or sets the compound collider.
Declaration
protected BulletCompoundCollider3D CompoundCollider { get; set; }
Property Value
Type | Description |
---|---|
BulletCompoundCollider3D |
ContactDamping
Gets the contact damping.
Declaration
public float ContactDamping { get; }
Property Value
Type | Description |
---|---|
float |
ContactProcessingThreshold
Gets or sets the contact processing threshold.
Declaration
public float ContactProcessingThreshold { get; set; }
Property Value
Type | Description |
---|---|
float |
ContactStiffness
Gets the contact stiffness.
Declaration
public float ContactStiffness { get; }
Property Value
Type | Description |
---|---|
float |
DeactivationTime
Gets or sets the deactivation time.
Declaration
public float DeactivationTime { get; set; }
Property Value
Type | Description |
---|---|
float |
Flags
Gets or sets the rigid body flags.
Declaration
public StaticBody3DFlags Flags { get; set; }
Property Value
Type | Description |
---|---|
StaticBody3DFlags |
Friction
Gets or sets the friction of the rigid body.
Declaration
public float Friction { get; set; }
Property Value
Type | Description |
---|---|
float |
HasContactResponse
Gets a value indicating whether has contact response.
Declaration
public bool HasContactResponse { get; }
Property Value
Type | Description |
---|---|
bool |
HitFraction
Gets or sets the hit fraction.
Declaration
public float HitFraction { get; set; }
Property Value
Type | Description |
---|---|
float |
InternalBody
Gets the internal body.
Declaration
public object InternalBody { get; }
Property Value
Type | Description |
---|---|
object |
InterpolationAngularVelocity
Gets or sets the angular velocity interpolated.
Declaration
public Vector3 InterpolationAngularVelocity { get; set; }
Property Value
Type | Description |
---|---|
Vector3 |
InterpolationLinearVelocity
Gets or sets the linear velocity interpolated.
Declaration
public Vector3 InterpolationLinearVelocity { get; set; }
Property Value
Type | Description |
---|---|
Vector3 |
InterpolationWorldTransform
Gets or sets the world transform interpolated.
Declaration
public Matrix4x4 InterpolationWorldTransform { get; set; }
Property Value
Type | Description |
---|---|
Matrix4x4 |
IsActive
Gets a value indicating whether this body is active.
Declaration
public bool IsActive { get; }
Property Value
Type | Description |
---|---|
bool |
IsKinematicObject
Gets a value indicating whether this body is kinematic.
Declaration
public virtual bool IsKinematicObject { get; }
Property Value
Type | Description |
---|---|
bool |
IsSensor
Gets or sets a value indicating whether this body collects contact information but never generates a collision response.
Declaration
public bool IsSensor { get; set; }
Property Value
Type | Description |
---|---|
bool |
IsStaticObject
Gets a value indicating whether this body is static.
Declaration
public virtual bool IsStaticObject { get; }
Property Value
Type | Description |
---|---|
bool |
IsStaticOrKinematicObject
Gets a value indicating whether this body is kinematic or kinematic.
Declaration
public bool IsStaticOrKinematicObject { get; }
Property Value
Type | Description |
---|---|
bool |
IslandTag
Gets or sets the island tag.
Declaration
public int IslandTag { get; set; }
Property Value
Type | Description |
---|---|
int |
MaskBits
Gets or sets the collision mask bits.
Declaration
public CollisionCategory3D MaskBits { get; set; }
Property Value
Type | Description |
---|---|
CollisionCategory3D |
Restitution
Gets or sets the restitution of the rigid body.
Declaration
public float Restitution { get; set; }
Property Value
Type | Description |
---|---|
float |
RollingFriction
Gets or sets the rolling friction.
Declaration
public float RollingFriction { get; set; }
Property Value
Type | Description |
---|---|
float |
SpinningFriction
Gets or sets the spinning fraction.
Declaration
public float SpinningFriction { get; set; }
Property Value
Type | Description |
---|---|
float |
Transform
Gets the world transform of the body.
Declaration
public Matrix4x4 Transform { get; }
Property Value
Type | Description |
---|---|
Matrix4x4 |
Methods
AddColliderShape(IColliderShape3D)
Add collider shape to the body.
Declaration
public virtual void AddColliderShape(IColliderShape3D shape)
Parameters
Type | Name | Description |
---|---|---|
IColliderShape3D | shape | The shape. |
BaseAddToWorld()
Add this body to the world simulation.
Declaration
protected virtual void BaseAddToWorld()
BaseInstantiateCollisionObject(PhysicBodyDef3D)
Base method of physic body instantiation.
Declaration
protected void BaseInstantiateCollisionObject(PhysicBodyDef3D bodyDef)
Parameters
Type | Name | Description |
---|---|---|
PhysicBodyDef3D | bodyDef | The body definition. |
BaseRemoveFromWorld()
Remove physic body from simulation world.
Declaration
protected virtual void BaseRemoveFromWorld()
ComputeTransform(ref Vector3, ref Quaternion, out Matrix4x4)
Compute a transform from translation and orientation. It applies the world scale.
Declaration
protected void ComputeTransform(ref Vector3 position, ref Quaternion orientation, out Matrix4x4 transform)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | position | The position. |
Quaternion | orientation | The orientation. |
Matrix4x4 | transform | The transform. |
Destroy()
Destroy all resources of this instance.
Declaration
protected override void Destroy()
Overrides
GetColliderShapeByIndex(int)
Gets collider shape by index.
Declaration
public IColliderShape3D GetColliderShapeByIndex(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index. |
Returns
Type | Description |
---|---|
IColliderShape3D | The collider shape. |
GetColliderShapeIndex(BulletCollider3D)
Gets shpae index of the specified collider.
Declaration
public int GetColliderShapeIndex(BulletCollider3D shape)
Parameters
Type | Name | Description |
---|---|---|
BulletCollider3D | shape | The collider shape. |
Returns
Type | Description |
---|---|
int | The index. |
InstantiateCollisionObject(PhysicBodyDef3D)
Create the rigid body.
Declaration
protected abstract void InstantiateCollisionObject(PhysicBodyDef3D bodyDef)
Parameters
Type | Name | Description |
---|---|---|
PhysicBodyDef3D | bodyDef | The body definition. |
RemoveColliderShape(IColliderShape3D)
Remove collider shape to the body.
Declaration
public virtual void RemoveColliderShape(IColliderShape3D shape)
Parameters
Type | Name | Description |
---|---|---|
IColliderShape3D | shape | The shape to remove. |
SetTransform(Vector3, Quaternion, Vector3)
Set the position of the body's origin and rotation. This breaks any contacts and wakes the other bodies. Manipulating a body's transform may cause non-physical behavior.
Declaration
public virtual void SetTransform(Vector3 position, Quaternion orientation, Vector3 scale)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | position | the world position of the body's local origin. |
Quaternion | orientation | the world rotation as a quaternion. |
Vector3 | scale | the world scale. |