|
Public Member Functions | |
AtlasInstanceGeomTOC () | |
~AtlasInstanceGeomTOC () | |
void | clear (const F32 deltaT) |
void | processLOD (SceneState *s) |
void | renderBounds (S32 debugMode) |
void | batchGeometry (AtlasClipMapBatcher *cmb) |
virtual void | requestLoad (AtlasInstanceGeomStub *stub, U32 reason, F32 priority) |
virtual void | cancelLoadRequest (AtlasInstanceGeomStub *stub, U32 reason) |
void | loadCollisionLeafChunks () |
Load leaf chunks to fulfill collision requests. | |
bool | castRay (const Point3F &start, const Point3F &end, RayInfo *info, bool emptyCollide) |
Cast a ray. (Done in file space). | |
bool | buildCollisionInfo (const Box3F &box, Convex *c, AbstractPolyList *poly, AtlasInstance *object) |
This is a unified internal collision interface for Atlas. | |
void | initCuller (SceneState *state) |
Private Types | |
typedef AtlasInstanceTOC< AtlasInstanceGeomStub, AtlasResourceGeomTOC > | Parent |
Private Member Functions | |
void | doSplit (StubType *s) |
bool | attemptSplit (StubType *s) |
void | warmUpData (StubType *s, F32 priority) |
U16 | computeLod (const Box3F &bounds) const |
void | updateBounds (AtlasInstanceGeomStub *stub, U32 i, S32 x, S32 y) |
Callback to allow subclasses to update stub data when we initialize. | |
Private Attributes | |
bool | mLeafCollisionMode |
FrustrumCuller | mCuller |
Used to perform frustrum clipping. | |
Classes | |
struct | StackNode |
typedef AtlasInstanceTOC<AtlasInstanceGeomStub, AtlasResourceGeomTOC> AtlasInstanceGeomTOC::Parent [private] |
AtlasInstanceGeomTOC::AtlasInstanceGeomTOC | ( | ) | [inline] |
AtlasInstanceGeomTOC::~AtlasInstanceGeomTOC | ( | ) | [inline] |
void AtlasInstanceGeomTOC::updateBounds | ( | AtlasInstanceGeomStub * | stub, | |
U32 | i, | |||
S32 | x, | |||
S32 | y | |||
) | [inline, private, virtual] |
Callback to allow subclasses to update stub data when we initialize.
Reimplemented from AtlasInstanceTOC< AtlasInstanceGeomStub, AtlasResourceGeomTOC >.
void AtlasInstanceGeomTOC::processLOD | ( | SceneState * | s | ) |
void AtlasInstanceGeomTOC::batchGeometry | ( | AtlasClipMapBatcher * | cmb | ) |
virtual void AtlasInstanceGeomTOC::requestLoad | ( | AtlasInstanceGeomStub * | stub, | |
U32 | reason, | |||
F32 | priority | |||
) | [virtual] |
Reimplemented from AtlasInstanceTOC< AtlasInstanceGeomStub, AtlasResourceGeomTOC >.
virtual void AtlasInstanceGeomTOC::cancelLoadRequest | ( | AtlasInstanceGeomStub * | stub, | |
U32 | reason | |||
) | [virtual] |
Reimplemented from AtlasInstanceTOC< AtlasInstanceGeomStub, AtlasResourceGeomTOC >.
void AtlasInstanceGeomTOC::loadCollisionLeafChunks | ( | ) |
Load leaf chunks to fulfill collision requests.
This also jiggers our load semantics so we don't unload them inadvertently.
bool AtlasInstanceGeomTOC::castRay | ( | const Point3F & | start, | |
const Point3F & | end, | |||
RayInfo * | info, | |||
bool | emptyCollide | |||
) |
Cast a ray. (Done in file space).
bool AtlasInstanceGeomTOC::buildCollisionInfo | ( | const Box3F & | box, | |
Convex * | c, | |||
AbstractPolyList * | poly, | |||
AtlasInstance * | object | |||
) |
This is a unified internal collision interface for Atlas.
We end up recursing by bounding box down into the chunks, so it makes more sense to have one set of functions that take different terminal actions rather than having to live with two sets of code. AtlasInstance2::buildConvex() and AtlasInstance2::buildPolyList() methods simply wrap this, and it fills in what is appropriate. If you were super-clever you'd go and do your poly and convex queries simultaneously.
localMat | is used to transform everything from objectspace to worldspace. |
void AtlasInstanceGeomTOC::initCuller | ( | SceneState * | state | ) | [inline] |
bool AtlasInstanceGeomTOC::mLeafCollisionMode [private] |
FrustrumCuller AtlasInstanceGeomTOC::mCuller [private] |
Used to perform frustrum clipping.