class PhysicsSource
Constants 4
static const float KMH2MS = 1 / 3.6! Constant for converting km/h to m/s
static const float MS2KMH = 3.6! Constant for converting m/s to km/h
static const float STANDARD_GRAVITY = 9.81static const vector VGravity = "0 -9.81 0"Methods 60
proto external void Destroy()Destroys the physics body
proto external void SetInteractionLayer(int mask)Sets interaction layer mask of the physics body.
mask- Bit mask of layers
proto external void GetWorldTransform(out vector mat[4])Returns world space transformation of the physics body (including scale).
proto external void GetDirectWorldTransform(out vector mat[4])Returns internal world space transformation of the physics body (excluding scale).
Sets interaction layer mask of the geometry element.
proto external int GetInteractionLayer()Returns interaction layer mask of the physics body.
Returns true if the physics body has enabled interaction with other body's layer mask
Returns interaction layer mask of the geometry element.
Changes state of the continuous collision detection (CCD). If both maxMotion and shapeCastRadius is >=0 then the CCD is enabled. If you want to disable it, use -1.
maxMotion- Max motion threshold when sphere-cast is performed, to find time of impact. It should be little bit less than size of the geometry to catch the situation when tunneling can happen.
sphereCastRadius- The radius of the largest possible sphere, that is completely inside the body geometry.
proto external void ChangeSimulationState(SimulationState simState)Changes simulation state of the physics body.
proto external SimulationState GetSimulationState()Returns simulation state of the physics body.
proto external vector GetCenterOfMass()Returns center of mass offset of the physics body.
proto external void SetActive(ActiveState act)Changes activation state of the physics body.
proto external bool IsActive()Returns whether the physics body is being simulated (awake).
proto external bool IsDynamic()Returns whether the physics body is dynamic (a rigid body).
proto external bool IsKinematic()Returns whether the physics body is kinematic (animated)
Changes damping parameters of the physics body.
proto external float GetMass()Returns mass of the physics body.
proto external void SetMass(float mass)Changes mass of the physics body.
proto external void SetInertiaTensorV(vector v)Changes inertia tensor of the physics body.
v- Diagonal elements of the inertia tensor (a rigid body is aligned with the principle axes of inertia)
proto external vector GetAngularVelocity()Returns angular velocity of the physics body.
Returns linear velocity of the physics body at a position (world space coordinates).
Changes thresholds used to determine whether the physics body can stop simulation.
proto external void SetLinearFactor(vector linearFactor)Sets scale factor for all impulses/velocities/forces. Default is <1,1,1>. Zero any axis if you want to do 2D physics.
proto external vector GetVelocity()Returns linear velocity of the physics body.
proto external void SetVelocity(vector velocity)Sets linear velocity of the physics body.
proto external void SetAngularVelocity(vector velocity)Sets angular velocity of the physics body.
Sets target transformation. If timeslice == dt (simulation step delta time), it will happen in next step, otherwise in time = timeslice.
proto external void ApplyImpulse(vector impulse)Applies impulse on the physics body.
Applies impulse on the physics body at a position (world space coordinates).
proto external void ApplyForce(vector force)Applies constant force on the physics body (at origin).
Applies constant force on the physics body at a position (world space coordinates).
proto external void ApplyTorque(vector torque)Applies constant torque on the physics body.
proto external void ClearForces()Clear forces and torques on the physics body.
proto external vector GetTotalForce()Returns total force currently applied to the physics body.
proto external vector GetTotalTorque()Returns total torque currently applied to the physics body.
proto external void SetResponseIndex(int responseIndex)Changes index to response matrix, see "project settings/physics/interactions/response matrix". Usually this index is set by physics component property, but can be overriden at runtime.
proto external int GetResponseIndex()Returns actual index to response matrix.
proto external int AddGeom(string name, PhysicsGeom geom, vector frame[4], string material, int interactionLayer)Adds new geometry and returns an index of the geometry or -1 when an error occurred
name- Name of the element
geom- Physics geometry shape
frame- Local transformation
material- Material resource name
interactionLayer- Bit mask of layers geometry belongs to
PhysicsGeom geom = PhysicsGeom.CreateBox(Vector(1, 1, 1));
vector frame[4];
Math3D.MatrixIdentity4(frame);
frame[3] = vector.Up;
string material = "{D745FD8FC67DB26A}Common/Materials/Game/stone.gamemat";
GetPhysics().AddGeom("Box", geom, frame, material, 0xffffffff);Finds a geometry by its name and returns its index or -1 if the geometry wasn't found
proto external int GetNumGeoms()Returns number of geometries of the entity
proto external bool UpdateGeometries(int interactionLayerAnd = 0xffffffff, int interactionLayerOr = 0)Returns world space transformation of a geometry element
Returns world space transformation of a geometry element
Returns entity space transformation of a geometry element
Returns internal physics space transformation of a geometry element
Returns world space position of a geometry element
Returns entity space position of a geometry element
Returns internal physics space position of a geometry element
Returns world bounds of a geometry element
Returns internal physics bounds of a geometry element (at scale 1)
proto external void GetGeomSurfaces(int index, notnull out array<SurfaceProperties> surfaces)Returns all surface properties of a geometry element
proto external int GetNumBones()Returns the number of bones
Creates a static physics body from geometry embedded in attached VObject. If there is not any, false is returned.
ent- Entity that will be associated with the physics body
layerMask- Bit mask of layers that is ANDed with layers in object geometry. Use 0xffffffff if you want to keep it unmodified
static proto Physics CreateStaticEx(notnull IEntity ent, PhysicsGeomDef geoms[])Creates a static physics body from custom made geometries. The geometries are deleted when rigid body is destroyed.
ent- Entity that will be associated with the physics body
geoms- Array of custom made geometries
PhysicsGeom geom = PhysicsGeom.CreateBox(Vector(1, 1, 1));
string material = "{D745FD8FC67DB26A}Common/Materials/Game/stone.gamemat";
PhysicsGeomDef geoms[] = { PhysisGeomDef("Box", geom, material, 0xffffffff) };
Physics.CreateStaticEx(this, geoms);Creates a dynamic physics body from geometry embedded in attached VObject. If there is not any, false is returned.
ent- Entity that will be associated with the physics body
mass- Body mass
layerMask- Bit mask of layers that is ANDed with layers in object geometry. Use 0xffffffff if you want to keep it unmodified
static proto Physics CreateDynamicEx(notnull IEntity ent, vector centerOfMass, float mass, PhysicsGeomDef geoms[])Creates a dynamic physics body from custom made geometries. The geometries are deleted when rigid body is destroyed.
ent- Entity that will be associated with the physics body
centerOfMass- Offset from object-pivot to center of mass
mass- Body mass
geoms- Array of custom made geometries
PhysicsGeom geom = PhysicsGeom.CreateBox(Vector(1, 1, 1));
string material = "{D745FD8FC67DB26A}Common/Materials/Game/stone.gamemat";
PhysicsGeomDef geoms[] = { PhysicsGeomDef("", geom, material, 0xffffffff) };
vector center = 2 * vector.Up;
Physics.CreateDynamicEx(this, center, 1.0, geoms);static proto Physics CreateGhostEx(notnull IEntity ent, PhysicsGeomDef geoms[])Creates a ghost physics body from custom made geometries. The geometries are deleted when rigid body is destroyed.
ent- Entity that will be associated with the physics body
geoms- Array of custom made geometries