object::Object Class Reference

3D Object class. More...

#include <_src_object_object.hh>

Inheritance diagram for object::Object:

object::DummyObject object::Dyna game::Projectile object::Craft program::Carrier game::Missile object::Aircraft

List of all members.

Public Types

enum  eMatrixChange { PLACEMENT, ROTATION, TRANSLATION }
enum  eCollision { COLLISION_NONE, COLLISION, COLLISION_FATAL }

Public Member Functions

CLASS_METHOD shptr< ObjectMakeDummyObject (void)
 Object (shptr< Graph > graph, const WorldVertex &pos)
virtual ~Object ()
virtual const string GetName (void)
virtual bool IfDyna (void)
void Zombify (void)
virtual void Reset (void)
virtual bool IfReproducible (void)
bool IfDisabled (void)
bool IfZombie (void)
bool IfDummy (void)
virtual void Draw (void)
virtual void SetPosition (const WorldVertex &position)
virtual WorldVertex GetPosition (void)
virtual fp GetRadius (void)
shptr< GraphGetGraph (void)
void Scale (const Vector3 &v)
void Scale (const fp scale)
RefPtr< Node > GetRootNode (void)
virtual void SetMatrix (const Matrix &matrix, Object::eMatrixChange change=PLACEMENT)
virtual Matrix GetMatrix (void)
virtual void SetQuaternion (const Quaternion &quat)
virtual Quaternion GetQuaternion (void)
virtual void Translate (uint axis, fp inc)
virtual void Translate (const Vector3 &v)
virtual void Rotate (uint axis, Radian rad)
void SetCollidable (const bool collidable)
bool IfCollidable (void)
virtual void SetCollision (const eCollision collision)
bool IfCollision (void)
bool IfCollisionFatal (void)
virtual NodeSort GetNodeSort (void)
CLASS_METHOD int GetObjectCount (void)

Protected Attributes

shptr< GraphmGraph
 for state-sorting
fp mRadius
 approximate
Bits mBits

Private Member Functions

fp ComputeRadius (void)

Private Attributes

CLASS_VAR int msObjectCount = 0
CLASS_CONST NodeSort msDefaultNodeSort
RefPtr< osg::MatrixTransform > mTransformNode
 force derivatives to use SetMatrix() which can intercept incorrect positions

Classes

struct  Bits


Detailed Description

3D Object class.

Member Enumeration Documentation

Enumerator:
PLACEMENT 
ROTATION 
TRANSLATION 

Enumerator:
COLLISION_NONE 
COLLISION 
COLLISION_FATAL 


Constructor & Destructor Documentation

object::Object::Object ( shptr< Graph graph,
const WorldVertex &  pos 
)

object::Object::~Object (  )  [virtual]


Member Function Documentation

shptr< Object > object::Object::MakeDummyObject ( void   ) 

Make a dummy Object.

virtual const string object::Object::GetName ( void   )  [inline, virtual]

virtual bool object::Object::IfDyna ( void   )  [inline, virtual]

Reimplemented in object::Dyna.

void object::Object::Zombify ( void   ) 

Ok to call repeatedly (NOP). Zombification reduces memory consumption by freeing an Object's Graph. Some 3D models consume tens of megabytes (which a Graph holds). Replacing Graph is potentially dangerous but so is manipulating a detached Object.

virtual void object::Object::Reset ( void   )  [inline, virtual]

Reimplemented in object::Aircraft, object::Craft, and object::Dyna.

virtual bool object::Object::IfReproducible ( void   )  [inline, virtual]

Reimplemented in object::Dyna.

bool object::Object::IfDisabled ( void   )  [inline]

bool object::Object::IfZombie ( void   )  [inline]

bool object::Object::IfDummy ( void   )  [inline]

void object::Object::Draw ( void   )  [virtual]

Draw Object.

void object::Object::SetPosition ( const WorldVertex &  position  )  [virtual]

Set/get position of Object. Position is defined by the matrix origin.

Reimplemented in object::Aircraft.

WorldVertex object::Object::GetPosition ( void   )  [virtual]

virtual fp object::Object::GetRadius ( void   )  [inline, virtual]

fp object::Object::ComputeRadius ( void   )  [private]

Compute approximate radius of Object.

shptr<Graph> object::Object::GetGraph ( void   )  [inline]

void object::Object::Scale ( const Vector3 &  v  ) 

Scale an Object.

void object::Object::Scale ( const fp  scale  ) 

RefPtr<Node> object::Object::GetRootNode ( void   )  [inline]

virtual void object::Object::SetMatrix ( const Matrix &  matrix,
Object::eMatrixChange  change = PLACEMENT 
) [virtual]

Reimplemented in object::Aircraft, and object::Dyna.

virtual Matrix object::Object::GetMatrix ( void   )  [inline, virtual]

virtual void object::Object::SetQuaternion ( const Quaternion &  quat  )  [virtual]

Quaternion object::Object::GetQuaternion ( void   )  [virtual]

void object::Object::Translate ( uint  axis,
fp  inc 
) [virtual]

Move Object along one of its local axis.

Reimplemented in object::Aircraft.

void object::Object::Translate ( const Vector3 &  v  )  [virtual]

Translate Object by adding a 3D vector offset.

Reimplemented in object::Aircraft.

virtual void object::Object::Rotate ( uint  axis,
Radian  rad 
) [virtual]

Reimplemented in object::Aircraft.

void object::Object::SetCollidable ( const bool  collidable  ) 

Set whether an Object is collidable.

bool object::Object::IfCollidable ( void   )  [inline]

void object::Object::SetCollision ( const eCollision  collision  )  [virtual]

Set collision flag. If COLLISION_FATAL then Object will zombify itself which will broadcast the DestroyObject event.

Reimplemented in object::Aircraft.

bool object::Object::IfCollision ( void   )  [inline]

bool object::Object::IfCollisionFatal ( void   )  [inline]

virtual NodeSort object::Object::GetNodeSort ( void   )  [inline, virtual]

Reimplemented in object::Aircraft, and program::Carrier.

CLASS_METHOD int object::Object::GetObjectCount ( void   )  [inline]


Member Data Documentation

int object::Object::msObjectCount = 0 [private]

shptr<Graph> object::Object::mGraph [protected]

for state-sorting

RefPtr<osg::MatrixTransform> object::Object::mTransformNode [private]

force derivatives to use SetMatrix() which can intercept incorrect positions

approximate


The documentation for this class was generated from the following files:
Palomino Flight Simulator documents generated by doxygen 1.5.6 on Tue Sep 28 11:37:49 2010