pe_action_impulse

Resets dynamic state of an entity. More...

#include

Inherits pe_action.

Public Types

enum entype { type_id = ePE_action_impulse }

Public Attributes

Vec3 impulse
Vec3 angImpulse
optional
Vec3 point
point of application, in world CS, optional
int partid
receiver part identifier
int ipart
alternatively, part index can be used
int iApplyTime
0-apply immediately, 1-apply before the next time step, 2-apply after the next time step
int iSource
reserved for internal use
const IPhysicalEntity * pGridRefEnt
source grid of the impulse (set via a reference entity)

Detailed Description

Resets dynamic state of an entity.

Used to apply an impulse on a physical entity

#include 

// Applies an impulse on a physical entity
void ActionImpulse(IPhysicalEntity& physicalEntity)
{
    pe_action_impulse actionImpulse;
    // Apply the impulse one unit upwards
    // This can be combined with pe_action_impulse::point to apply the impulse on a specific point
    actionImpulse.impulse = Vec3(0, 0, 1);
    // Apply spin to the entity
    actionImpulse.angImpulse = Vec3(0, 0, 1);

    // IPhysicalEntity::Action 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;
    // Apply the impulse on the entity
    physicalEntity.Action(&actionImpulse, isThreadSafe);
}