#include
Inherits pe_params.
Public Attributes | |
| Vec3 | pos |
| quaternionf | q |
| float | scale |
| Note that since there's no per-entity scale, it gets 'baked' into individual parts' scales. | |
| Matrix34 * | pMtx3x4 |
| Optional position+orientation. | |
| Matrix33 * | pMtx3x3 |
| Optional orientation via 3x3 matrix. | |
| int | iSimClass |
| See the sim_class enum. | |
| int | bRecalcBounds |
| Tells to recompute the bounding boxes. | |
| bool | bEntGridUseOBB |
| Whether or not to use part OBBs rather than object AABB when registering in the entity grid. | |
| const IPhysicalEntity * | pGridRefEnt |
| New grid (set via a reference entity) | |
Sets position and orientation of entity.
#include
// Sets the position of a physical entity using the pe_params_pos structure
void SetPhysicalEntityPosition(IPhysicalEntity& physicalEntity)
{
// The pe_params_pos structure is used to set position, orientation and scale
pe_params_pos positionParams;
// Move the entity to {50,50,50} in world coordinates
positionParams.pos = Vec3(50, 50, 50);
// Reset the entity orientation
positionParams.q = IDENTITY;
// Make sure we use default scaling (100%)
positionParams.scale = 1.f;
// IPhysicalEntity::SetParams may be queued if the physics thread is empty or there are other commands queued.
// We can change isThreadSafe to 1 if we are operating on a physics thread to have to event processed immediately
int isThreadSafe = 0;
// Set the position on the entity
physicalEntity.SetParams(&positionParams, isThreadSafe);
}