Class RigidBody3D
RigidBody3D enables your entities to act under the control of physics. The Rigidbody can receive forces and torque to make your objects move in a realistic way. Any entity must contain a Rigidbody to be influenced by gravity, act under added forces, or interact with other objects through the physics engine.
Inheritance
Implements
Inherited Members
Namespace: Evergine.Framework.Physics3D
Assembly: Evergine.Framework.dll
Syntax
public sealed class RigidBody3D : PhysicBody3D<IRigidBody3D, RigidBodyDef3D>, IDependencyObject
Constructors
RigidBody3D()
Initializes a new instance of the RigidBody3D class.
Declaration
public RigidBody3D()
Properties
AngularDamping
Gets or sets the angular damping.
Declaration
[RenderProperty(Tooltip = "Angular damping is use to reduce the angular velocity. The damping parameter can be larger than 1.0f but the damping effect becomes sensitive to the time step when the damping parameter is large.")]
public float AngularDamping { get; set; }
Property Value
| Type | Description |
|---|---|
| float | The angular damping. |
Remarks
The angular damping is used to reduce the angular velocity. The damping parameter can be larger than 1.0f, but the damping effect becomes sensitive to the time step when the damping parameter is large.
AngularFactor
Gets or sets a value indicating whether the rotation is fixed.
Declaration
[RenderProperty(Tooltip = "Should this body be prevented from rotating? Useful for characters.")]
public Vector3 AngularFactor { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
|
AngularVelocity
Gets or sets the angular velocity of the physics entity.
Declaration
[RenderProperty(Tooltip = "The angular velocity of the body.")]
public Vector3 AngularVelocity { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 | The angular velocity. |
Gravity
Gets or sets the gravity applied to this body.
Declaration
[RenderProperty(AttachToTag = 1, AttachToValue = true, Tooltip = "Scale the gravity applied to this body.")]
public Vector3 Gravity { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
LinearDamping
Gets or sets the linear damping.
Declaration
[RenderProperty(Tooltip = "Linear damping is use to reduce the linear velocity. The damping parameter can be larger than 1.0f but the damping effect becomes sensitive to the time step when the damping parameter is large.")]
public float LinearDamping { get; set; }
Property Value
| Type | Description |
|---|---|
| float | The linear damping. |
Remarks
Linear damping is used to reduce the linear velocity. The damping parameter can be larger than 1.0f, but the damping effect becomes sensitive to the time step when the damping parameter is large.
LinearFactor
Gets or sets a value indicating whether [fixed rotation].
Declaration
[RenderProperty(Tooltip = "Should this body be prevented from rotating? Useful for characters.")]
public Vector3 LinearFactor { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
|
LinearVelocity
Gets or sets the linear velocity of the physics entity.
Declaration
[RenderProperty(Tooltip = "The linear velocity of the body's origin in world co-ordinates.")]
public Vector3 LinearVelocity { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 | The linear velocity. |
LocalInertia
Gets the rotational inertia of the body about the local origin.
Declaration
public Vector3 LocalInertia { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
Mass
Gets or sets the total mass of the body.
Declaration
public float Mass { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
OverrideGravity
Gets or sets a value indicating whether the gravity is overridden.
Declaration
[RenderProperty(Tag = 1, Tooltip = "Scale the gravity applied to this body.")]
public bool OverrideGravity { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
PhysicBodyType
Gets or sets the type of the physical body.
Declaration
[RenderProperty(Tooltip = "The body type: static, kinematic, or dynamic. Note: if a dynamic body would have zero mass, the mass is set to one.")]
public RigidBodyType3D PhysicBodyType { get; set; }
Property Value
| Type | Description |
|---|---|
| RigidBodyType3D | The type of the physical body. |
Methods
ApplyForce(Vector3)
Applies a central force to the rigid body.
Declaration
public void ApplyForce(Vector3 force)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | force | The force. |
ApplyForceAtPosition(Vector3, Vector3)
Applies a force to the rigid body.
Declaration
public void ApplyForceAtPosition(Vector3 force, Vector3 position)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | force | The force vector in world coordinates. |
| Vector3 | position | The position in world coordinates. |
ApplyImpulse(Vector3)
Applies an impulse to the center of the rigid body.
Declaration
public void ApplyImpulse(Vector3 impulse)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | impulse | The impulse in world coordinates. |
ApplyImpulseAtPosition(Vector3, Vector3)
Applies an impulse to the rigid body.
Declaration
public void ApplyImpulseAtPosition(Vector3 impulse, Vector3 position)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | impulse | The impulse in world coordinates. |
| Vector3 | position | The position in world coordinates. |
ApplyTorque(Vector3)
Applies a torque force to the rigid body.
Declaration
public void ApplyTorque(Vector3 torque)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | torque | The torque. |
ApplyTorqueImpulse(Vector3)
Applies a torque impulse to the rigid body.
Declaration
public void ApplyTorqueImpulse(Vector3 torque)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | torque | The torque impulse. |
ClearForces()
Clears all forces applied to the rigid body.
Declaration
public void ClearForces()
Update(TimeSpan)
Allows this instance to execute custom logic during its Update.
Declaration
protected override void Update(TimeSpan gameTime)
Parameters
| Type | Name | Description |
|---|---|---|
| TimeSpan | gameTime | The game time. |
Overrides
Remarks
WakeUp()
Wakes up the rigid body.
Declaration
public void WakeUp()