The Nebula Device 3: PhysicsFeature::PhysicsProperty Class Reference

The Nebula Device 3

PhysicsFeature::PhysicsProperty Class Reference

#include <physicsproperty.h>

Inherited by PhysicsFeature::ActorPhysicsProperty.


Detailed Description

A physics property adds basic physical behaviour to a game entity. The default behaviour is that of a passive physics object which will just passively roll and bounce around. Implement more advanced behaviour in subclasses.

The physics property maintains the attributes:

Attr::Transform Attr::Velocity

(C) 2005 Radon Labs GmbH

Public Member Functions

 PhysicsProperty ()
 constructor
virtual ~PhysicsProperty ()
 destructor
virtual void SetupCallbacks ()
 setup callbacks for this property
virtual void SetupDefaultAttributes ()
 setup default entity attributes
virtual void OnActivate ()
 called from Entity::ActivateProperties()
virtual void OnDeactivate ()
 called from Entity::DeactivateProperties()
virtual void SetupAcceptedMessages ()
 override to register accepted messages
virtual void HandleMessage (const Ptr< Messaging::Message > &msg)
 handle a single message
virtual void OnMoveAfter ()
 called after movement has happened
virtual
Physics::PhysicsEntity * 
GetPhysicsEntity () const
 get a pointer to the physics entity
void SetEnabled (bool enabled)
 enable/disable physics
bool IsEnabled () const
 is physics enabled

Protected Member Functions

virtual void EnablePhysics ()
 enable and activate the physics, overload in subclass
virtual void DisablePhysics ()
 disable and cleanup the physics, overload in subclass
void ApplyImpulseAtPos (const Math::vector &impulse, const Math::vector &pos, bool multByMass=false)
 apply a global impulse vector at the next time step at a global position

Member Function Documentation

void PhysicsFeature::PhysicsProperty::OnActivate (  )  [virtual]

called from Entity::ActivateProperties()

Called when property is attached to a game entity. This will create and setup the required physics entities.

void PhysicsFeature::PhysicsProperty::OnDeactivate (  )  [virtual]

called from Entity::DeactivateProperties()

Called when property is going to be removed from its game entity. This will release the physics entity owned by the game entity.

void PhysicsFeature::PhysicsProperty::OnMoveAfter (  )  [virtual]

called after movement has happened

Called after the physics subsystem has been triggered. This will transfer the physics entity's new transform back into the game entity.

Physics::PhysicsEntity * PhysicsFeature::PhysicsProperty::GetPhysicsEntity (  )  const [virtual]

get a pointer to the physics entity

Get pointer to physics entity. Note that this method may return 0!

void PhysicsFeature::PhysicsProperty::ApplyImpulseAtPos ( const Math::vector impulse,
const Math::vector pos,
bool  multByMass = false 
) [protected]

apply a global impulse vector at the next time step at a global position

Apply an impulse vector at a position in the global coordinate frame.