#include <eng_object.hh>

Public Member Functions | |
| Object (SharedPtr< Graph > graph, const WorldVertex &pos, SharedPtr0< Volume > volume=NULL) | |
| virtual | ~Object () |
| virtual void | PostConstruct (void) |
| virtual void | SelfDestruct (void) |
| virtual bool | Reproducible (void)=0 |
| virtual bool | IfTranslucent (void) |
| virtual const string | GetName (void)=0 |
| virtual void | Draw (void) |
| virtual void | SetPosition (const WorldVertex &position) |
| virtual WorldVertex | GetPosition (void) |
| virtual SharedPtr0 < Volume > | GetWorldVolume (void) |
| fp | GetRadius (void) |
| SharedPtr< Graph > | GetGraph (void) |
| virtual SharedPtr < const Matrix > | GetMatrix (void) |
| virtual void | SetMatrix (const Matrix &matrix) |
| SharedPtr0 < TransformNode > | GetTransformNode (void) |
| void | SetCollidable (bool collidable) |
| CLASS_METHOD int | GetObjectCnt (void) |
Protected Member Functions | |
| Object (shptr< Graph > graph) | |
| void | SetRecomputeNormals (void) |
Protected Attributes | |
| SharedPtr< Graph > | mGraph |
| TransformNode::Ptr | mTransformNode |
| shptr0< Volume > | mWorldVolume |
| shptr0 used since shptr is incompatible with abstract objects | |
| fp | mRadius |
| WorldVertex | mPosition |
| maintained by SetPosition() | |
Private Member Functions | |
| void | SetPosition_ (const WorldVertex &position, const bool initial) |
| void | ComputeVolume (void) |
| void | CHECK_POSITION (void) |
Private Attributes | |
| CLASS_VAR int | msObjectCnt = 0 |
| bool | mDebugChangingPosition |
| SetPosition() is executing. | |
Friends | |
| class | VisitorDraw |
Classes | |
| class | VisitorComputeVolume |
See implementation.html::Objects
Matrix: In case changes to a matrix need to be intercepted, the matrix interface consists of calling GetMatrix() to get const Matrix and calling SetMatrix() to modify a matrix.
Special Objects with minimal Graphs that aren't attached to World: Use Graph::MakeMinimalGraph() with Object ctor that lacks a position arg. The flag Graph::mMinimal will be set which bypasses assertion checks such as the BSP code rejecting a Graph with no volume.
| eng::Object::Object | ( | SharedPtr< Graph > | graph, | |
| const WorldVertex & | pos, | |||
| SharedPtr0< Volume > | volume = NULL | |||
| ) |
| eng::Object::Object | ( | shptr< Graph > | graph | ) | [protected] |
| eng::Object::~Object | ( | ) | [virtual] |
| void eng::Object::PostConstruct | ( | void | ) | [virtual] |
Post-construction actions.
| void eng::Object::SelfDestruct | ( | void | ) | [virtual] |
An object destroys itself.
| virtual bool eng::Object::Reproducible | ( | void | ) | [pure virtual] |
Implemented in eng::Sprite.
| virtual bool eng::Object::IfTranslucent | ( | void | ) | [inline, virtual] |
Reimplemented in eng::Sprite.
| virtual const string eng::Object::GetName | ( | void | ) | [pure virtual] |
Implemented in eng::Sprite.
| void eng::Object::Draw | ( | void | ) | [virtual] |
Draw Object.
Reimplemented in eng::Sprite.
| virtual void eng::Object::SetPosition | ( | const WorldVertex & | position | ) | [inline, virtual] |
| void eng::Object::SetPosition_ | ( | const WorldVertex & | position, | |
| const bool | initial | |||
| ) | [private] |
| virtual WorldVertex eng::Object::GetPosition | ( | void | ) | [inline, virtual] |
| virtual SharedPtr0<Volume> eng::Object::GetWorldVolume | ( | void | ) | [inline, virtual] |
| fp eng::Object::GetRadius | ( | void | ) | [inline] |
| void eng::Object::ComputeVolume | ( | void | ) | [private] |
Calculate world volume and radius from local vertexs + position. Output: mWorldVolume mRadius
| SharedPtr<Graph> eng::Object::GetGraph | ( | void | ) | [inline] |
| virtual SharedPtr<const Matrix> eng::Object::GetMatrix | ( | void | ) | [inline, virtual] |
| virtual void eng::Object::SetMatrix | ( | const Matrix & | matrix | ) | [virtual] |
| SharedPtr0<TransformNode> eng::Object::GetTransformNode | ( | void | ) | [inline] |
| void eng::Object::SetRecomputeNormals | ( | void | ) | [protected] |
Schedule recomputing normal vectors. Recomputing is scheduled rather than done immediately since this Object may not be visible.
| void eng::Object::SetCollidable | ( | bool | collidable | ) |
| CLASS_METHOD int eng::Object::GetObjectCnt | ( | void | ) | [inline] |
| void eng::Object::CHECK_POSITION | ( | void | ) | [private] |
Macro to ensure the definitions of an Object's position stay synchronized.
friend class VisitorDraw [friend] |
int eng::Object::msObjectCnt = 0 [private] |
SharedPtr<Graph> eng::Object::mGraph [protected] |
TransformNode::Ptr eng::Object::mTransformNode [protected] |
shptr0<Volume> eng::Object::mWorldVolume [protected] |
shptr0 used since shptr is incompatible with abstract objects
fp eng::Object::mRadius [protected] |
WorldVertex eng::Object::mPosition [protected] |
maintained by SetPosition()
bool eng::Object::mDebugChangingPosition [private] |
SetPosition() is executing.
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:24 2007