#include <eng_world.hh>
Public Types | |
| enum | eState { EMPTY, SHRUNK, POPULATING, POPULATED } |
Public Member Functions | |
| Quadrant (const Int3 &triplet, const fp edge, const uint seed) | |
| ~Quadrant () | |
| FN_LOCKED void | Populate (void) |
| FN_LOCKED uint | Shrink (void) |
| FN_LOCKED eAttached | Attach (SharedPtr< Object > object) |
| FN_LOCKED eAttached | Detach (SharedPtr< Object > object) |
| FN_REENTRANT void | Draw (void) |
| FN_LOCKED const BoxVolume & | GetBoxVolume (void) |
| FN_LOCKED WorldVertex | GetCenter (void) |
| FN_LOCKED Int3 | GetTriplet (void) |
| FN_REENTRANT eState | GetState (void) |
| FN_LOCKED void | SetState (eState state) |
| FN_LOCKED uint | GetSeed (void) |
| FN_REENTRANT uint | GetObjectCnt (void) |
Public Attributes | |
| SlowLock | mLock |
| Quadrant's thread must lock Quadrant. | |
Private Member Functions | |
| BoxVolume | ComputeBoxVolume (const Int3 &triplet, const fp edge) |
Private Attributes | |
| Int3 | mTriplet |
| tuple | |
| eState | mState |
| populating, shrunk, empty | |
| uint | mSeed |
| random seed | |
| BSP | mBSP |
| defines the Quadrant in world space | |
| int | mObjectCnt |
| how many Objects | |
| CLASS_VAR fp | msEdge |
| width in World Space | |
Friends | |
| void | ThreadQuadrantPopulate (long quadrant) |
Classes | |
| class | ShrinkEachObjectFunctor |
Quadrant must be threadable. Quadrants are populated by separate thread. A busy flag is used to prevent more than one thread populating the same Quadrant.
Construct a quadrant.
| triplet | mQuadrants[x,y,z]. | |
| edge | Edge of any quadrant (world coord). Each edge is the same width. | |
| seed | Random seed used for populating this Quadrant. |
| eng::World::Quadrant::~Quadrant | ( | ) |
| void eng::World::Quadrant::Populate | ( | void | ) |
| uint eng::World::Quadrant::Shrink | ( | void | ) |
Shrink Quadrant. Delete reproducible Objects in this Quadrant to save memory. This occurs when a Locus moves away from a Quadrant.
NOTE: Quadrant::GetObjectCnt() will still count shrunk Objects. The reason is that they will be marked-for-deletion. That's why Shrink() returns the count of Objects that were shrunk.
| void eng::World::Quadrant::Draw | ( | void | ) |
Draw Quadrant. See Engine::Draw().
| WorldVertex eng::World::Quadrant::GetCenter | ( | void | ) |
| Int3 eng::World::Quadrant::GetTriplet | ( | void | ) |
| World::Quadrant::eState eng::World::Quadrant::GetState | ( | void | ) |
| void eng::World::Quadrant::SetState | ( | eState | state | ) |
| uint eng::World::Quadrant::GetSeed | ( | void | ) |
| uint eng::World::Quadrant::GetObjectCnt | ( | void | ) |
| void ThreadQuadrantPopulate | ( | long | quadrant | ) | [friend] |
| SlowLock eng::World::Quadrant::mLock |
Quadrant's thread must lock Quadrant.
Int3 eng::World::Quadrant::mTriplet [private] |
tuple
eState eng::World::Quadrant::mState [private] |
populating, shrunk, empty
uint eng::World::Quadrant::mSeed [private] |
random seed
BSP eng::World::Quadrant::mBSP [private] |
defines the Quadrant in world space
int eng::World::Quadrant::mObjectCnt [private] |
how many Objects
fp eng::World::Quadrant::msEdge [private] |
width in World Space
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:25 2007