GltfPhysicsBody
Represents a glTF physics body.
Represents a glTF physics body.
Represents a physics body as an intermediary between the OMI_physics_body glTF data and Reckfell's nodes, and it's abstracted in a way that allows adding support for different glTF physics extensions in the future.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
GltfPhysicsBodyConstructor
public GltfPhysicsBody();Properties8
AngularVelocityProperty
public Vector3 AngularVelocity { get; set; }The angular velocity of the physics body, in radians per second. This is only used when the body type is "rigid" or "vehicle".
BodyTypeProperty
public string BodyType { get; set; }The type of the body.
When importing, this controls what type of CollisionObject3D node Reckfell should generate. Valid values are "static", "animatable", "character", "rigid", "vehicle", and "trigger".
When exporting, this will be squashed down to one of "static", "kinematic", or "dynamic" motion types, or the "trigger" property.
CenterOfMassProperty
public Vector3 CenterOfMass { get; set; }The center of mass of the body, in meters. This is in local space relative to the body. By default, the center of the mass is the body's origin.
InertiaDiagonalProperty
public Vector3 InertiaDiagonal { get; set; }The inertia strength of the physics body, in kilogram meter squared (kg⋅m²). This represents the inertia around the principle axes, the diagonal of the inertia tensor matrix. This is only used when the body type is "rigid" or "vehicle".
When converted to a Reckfell RigidBody3D node, if this value is zero, then the inertia will be calculated automatically.
InertiaOrientationProperty
public Quaternion InertiaOrientation { get; set; }The inertia orientation of the physics body. This defines the rotation of the inertia's principle axes relative to the object's local axes. This is only used when the body type is "rigid" or "vehicle" and GltfPhysicsBody.InertiaDiagonal is set to a non-zero value.
InertiaTensorProperty · Deprecated
public Basis InertiaTensor { get; set; }The inertia tensor of the physics body, in kilogram meter squared (kg⋅m²). This is only used when the body type is "rigid" or "vehicle".
When converted to a Reckfell RigidBody3D node, if this value is zero, then the inertia will be calculated automatically.
LinearVelocityProperty
public Vector3 LinearVelocity { get; set; }The linear velocity of the physics body, in meters per second. This is only used when the body type is "rigid" or "vehicle".
MassProperty
public float Mass { get; set; }The mass of the physics body, in kilograms. This is only used when the body type is "rigid" or "vehicle".
Methods20
FromDictionaryGltfPhysicsBody
public static GltfPhysicsBody FromDictionary(Reckfell.Collections.Dictionary dictionary);Creates a new GLTFPhysicsBody instance by parsing the given Reckfell.Collections.Dictionary in the OMI_physics_body glTF extension format.
| Name | Type | Default |
|---|---|---|
dictionary | Reckfell.Collections.Dictionary | — |
GltfPhysicsBodyFromNodeGltfPhysicsBody
public static GltfPhysicsBody FromNode(CollisionObject3D bodyNode);Creates a new GLTFPhysicsBody instance from the given Reckfell CollisionObject3D node.
| Name | Type | Default |
|---|---|---|
bodyNode | CollisionObject3D | — |
GltfPhysicsBodyGetAngularVelocityVector3
public Vector3 GetAngularVelocity();Vector3GetBodyTypestring
public string GetBodyType();stringGetCenterOfMassVector3
public Vector3 GetCenterOfMass();Vector3GetInertiaDiagonalVector3
public Vector3 GetInertiaDiagonal();Vector3GetInertiaOrientationQuaternion
public Quaternion GetInertiaOrientation();QuaternionGetInertiaTensorBasis
public Basis GetInertiaTensor();BasisGetLinearVelocityVector3
public Vector3 GetLinearVelocity();Vector3GetMassfloat
public float GetMass();floatSetAngularVelocityvoid
public void SetAngularVelocity(Vector3 angularVelocity);| Name | Type | Default |
|---|---|---|
angularVelocity | Vector3 | — |
SetBodyTypevoid
public void SetBodyType(string bodyType);| Name | Type | Default |
|---|---|---|
bodyType | string | — |
SetCenterOfMassvoid
public void SetCenterOfMass(Vector3 centerOfMass);| Name | Type | Default |
|---|---|---|
centerOfMass | Vector3 | — |
SetInertiaDiagonalvoid
public void SetInertiaDiagonal(Vector3 inertiaDiagonal);| Name | Type | Default |
|---|---|---|
inertiaDiagonal | Vector3 | — |
SetInertiaOrientationvoid
public void SetInertiaOrientation(Quaternion inertiaOrientation);| Name | Type | Default |
|---|---|---|
inertiaOrientation | Quaternion | — |
SetInertiaTensorvoid
public void SetInertiaTensor(Basis inertiaTensor);| Name | Type | Default |
|---|---|---|
inertiaTensor | Basis | — |
SetLinearVelocityvoid
public void SetLinearVelocity(Vector3 linearVelocity);| Name | Type | Default |
|---|---|---|
linearVelocity | Vector3 | — |
SetMassvoid
public void SetMass(float mass);| Name | Type | Default |
|---|---|---|
mass | float | — |
ToDictionaryReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary ToDictionary();Serializes this GLTFPhysicsBody instance into a Reckfell.Collections.Dictionary. It will be in the format expected by the OMI_physics_body glTF extension.
Reckfell.Collections.DictionaryToNodeCollisionObject3D
public CollisionObject3D ToNode();Converts this GLTFPhysicsBody instance into a Reckfell CollisionObject3D node.
CollisionObject3D