#include <collision_surface_temp.h>
Nevrax France
Definition at line 251 of file collision_surface_temp.h.
Public Types | |
typedef std::pair< uint16, uint16 > | TExteriorEdgeIndex |
Public Member Functions | |
CCollisionSurfaceTemp () | |
Constructor. | |
void | decSurface (sint32 surf) |
void | incSurface (sint32 surf) |
Access to EdgeCollideNode | |
uint32 | allocEdgeCollideNode (uint32 size=1) |
return first Id. | |
CEdgeCollideNode & | getEdgeCollideNode (uint32 id) |
return first Id. | |
void | resetEdgeCollideNodes () |
return first Id. | |
Data Fields | |
std::vector< CCollisionChain > | CollisionChains |
Array of near Collision Chains. | |
TCollisionSurfaceDescVector | CollisionDescs |
Result of collision testMove(). | |
std::vector< sint32 > | CollisionInstances |
CGlobalRetriever instance possibly colliding movement. | |
std::vector< CEdgeChainEntry > | EdgeChainEntries |
std::vector< uint16 > | ExteriorEdgeIndexes |
std::vector< CMoveSurfaceDesc > | MoveDescs |
result of testMovementWithCollisionChains(). | |
uint16 | OChainLUT [65536] |
For CChainQuad::selectEdges(). | |
uint8 | OutCounter |
std::vector< uint16 > | PossibleSurfaces |
NLMISC::CVector | PrecDeltaPos |
NLMISC::CVector | PrecStartPos |
CSurfaceIdent | PrecStartSurface |
For testMove/doMove, prec settings. | |
bool | PrecValid |
std::vector< CRotSurfaceDesc > | RotDescs |
result of testRotWithCollisionChains(). | |
std::vector< CDistanceSurface > | SortedSurfaces |
CSurfaceLUTEntry | SurfaceLUT [65536] |
Array of possible near surfaces. | |
Private Attributes | |
std::vector< CEdgeCollideNode > | _EdgeCollideNodes |
Allocator of EdgeCollideNode. |
|
Definition at line 254 of file collision_surface_temp.h. |
|
Constructor.
Definition at line 45 of file collision_surface_temp.cpp. References _EdgeCollideNodes, CollisionChains, CollisionDescs, CollisionInstances, EdgeChainEntries, MoveDescs, OChainLUT, OutCounter, PossibleSurfaces, PrecValid, RotDescs, NLPACS::StartCollisionChainSize, NLPACS::StartCollisionDescSize, NLPACS::StartCollisionInstanceSize, NLPACS::StartEdgeChainEntrySize, NLPACS::StartEdgeCollideNodeSize, SurfaceLUT, and uint16.
00046 { 00047 memset(OChainLUT, 0xFF, 65536*sizeof(uint16)); 00048 memset(SurfaceLUT, 0x00, 65536*sizeof(CSurfaceLUTEntry)); 00049 _EdgeCollideNodes.reserve(StartEdgeCollideNodeSize); 00050 CollisionChains.reserve(StartCollisionChainSize); 00051 EdgeChainEntries.reserve(StartEdgeChainEntrySize); 00052 CollisionDescs.reserve(StartCollisionDescSize); 00053 MoveDescs.reserve(StartCollisionDescSize); 00054 RotDescs.reserve(StartCollisionDescSize); 00055 CollisionInstances.reserve(StartCollisionInstanceSize); 00056 PossibleSurfaces.reserve(32); 00057 PrecValid= false; 00058 OutCounter = 0; 00059 } |
|
return first Id.
Definition at line 68 of file collision_surface_temp.cpp. References _EdgeCollideNodes, size, and uint32. Referenced by NLPACS::CLocalRetriever::testCollision(), and NLPACS::CRetrieverInstance::testExteriorCollision().
00069 { 00070 uint32 id= _EdgeCollideNodes.size(); 00071 _EdgeCollideNodes.resize(id+size); 00072 return id; 00073 } |
|
Definition at line 354 of file collision_surface_temp.h. References NLPACS::CCollisionSurfaceTemp::CSurfaceLUTEntry::Counter, NLPACS::CCollisionSurfaceTemp::CSurfaceLUTEntry::IsPossible, OutCounter, PossibleSurfaces, sint32, SurfaceLUT, and uint16. Referenced by NLPACS::CLocalRetriever::retrieveAccuratePosition(), and NLPACS::CLocalRetriever::retrievePosition().
00355 { 00356 if (surf >= 0) 00357 { 00358 if (!SurfaceLUT[surf].IsPossible) 00359 PossibleSurfaces.push_back((uint16)surf); 00360 SurfaceLUT[surf].IsPossible = true; 00361 --SurfaceLUT[surf].Counter; 00362 } 00363 else 00364 { 00365 --OutCounter; 00366 } 00367 } |
|
return first Id.
Definition at line 75 of file collision_surface_temp.cpp. References _EdgeCollideNodes, and uint32. Referenced by NLPACS::CLocalRetriever::testCollision(), NLPACS::CGlobalRetriever::testCollisionWithCollisionChains(), NLPACS::CRetrieverInstance::testExteriorCollision(), NLPACS::CGlobalRetriever::testMovementWithCollisionChains(), and NLPACS::CGlobalRetriever::testRotCollisionWithCollisionChains().
00076 { 00077 return _EdgeCollideNodes[id]; 00078 } |
|
Definition at line 338 of file collision_surface_temp.h. References NLPACS::CCollisionSurfaceTemp::CSurfaceLUTEntry::Counter, NLPACS::CCollisionSurfaceTemp::CSurfaceLUTEntry::IsPossible, OutCounter, PossibleSurfaces, sint32, SurfaceLUT, and uint16. Referenced by NLPACS::CLocalRetriever::retrieveAccuratePosition(), and NLPACS::CLocalRetriever::retrievePosition().
00339 { 00340 if (surf >= 0) 00341 { 00342 if (!SurfaceLUT[surf].IsPossible) 00343 PossibleSurfaces.push_back((uint16)surf); 00344 SurfaceLUT[surf].IsPossible = true; 00345 ++SurfaceLUT[surf].Counter; 00346 } 00347 else 00348 { 00349 ++OutCounter; 00350 } 00351 } |
|
return first Id.
Definition at line 63 of file collision_surface_temp.cpp. References _EdgeCollideNodes. Referenced by NLPACS::CGlobalRetriever::findCollisionChains().
00064 { 00065 _EdgeCollideNodes.clear(); 00066 } |
|
Allocator of EdgeCollideNode.
Definition at line 371 of file collision_surface_temp.h. Referenced by allocEdgeCollideNode(), CCollisionSurfaceTemp(), getEdgeCollideNode(), and resetEdgeCollideNodes(). |
|
Array of near Collision Chains.
Definition at line 299 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), NLPACS::CGlobalRetriever::findCollisionChains(), NLPACS::CLocalRetriever::testCollision(), NLPACS::CGlobalRetriever::testCollisionWithCollisionChains(), NLPACS::CRetrieverInstance::testExteriorCollision(), NLPACS::CGlobalRetriever::testMovementWithCollisionChains(), and NLPACS::CGlobalRetriever::testRotCollisionWithCollisionChains(). |
|
Result of collision testMove().
Definition at line 311 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), NLPACS::CGlobalRetriever::doMove(), NLPACS::CGlobalRetriever::testBBoxMove(), NLPACS::CGlobalRetriever::testBBoxRot(), NLPACS::CGlobalRetriever::testCollisionWithCollisionChains(), NLPACS::CGlobalRetriever::testCylinderMove(), and NLPACS::CGlobalRetriever::testRotCollisionWithCollisionChains(). |
|
CGlobalRetriever instance possibly colliding movement.
Definition at line 315 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), NLPACS::CGlobalRetriever::findCollisionChains(), NLPACS::CGlobalRetriever::getBorders(), NLPACS::CGlobalRetriever::makeLinks(), NLPACS::CGlobalRetriever::refreshLrAround(), NLPACS::CGlobalRetriever::refreshLrAroundNow(), NLPACS::CGlobalRetriever::retrievePosition(), and NLPACS::CGlobalRetriever::selectInstances(). |
|
|
Definition at line 288 of file collision_surface_temp.h. Referenced by NLPACS::CEdgeQuad::selectEdges(), and NLPACS::CRetrieverInstance::testExteriorCollision(). |
|
result of testMovementWithCollisionChains().
Definition at line 303 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), and NLPACS::CGlobalRetriever::testMovementWithCollisionChains(). |
|
For CChainQuad::selectEdges().
Definition at line 286 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), NLPACS::CEdgeQuad::selectEdges(), NLPACS::CChainQuad::selectEdges(), NLPACS::CLocalRetriever::testCollision(), and NLPACS::CRetrieverInstance::testExteriorCollision(). |
|
Definition at line 293 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), decSurface(), incSurface(), and NLPACS::CRetrieverInstance::retrievePosition(). |
|
|
Definition at line 321 of file collision_surface_temp.h. Referenced by NLPACS::CGlobalRetriever::doMove(), NLPACS::CGlobalRetriever::testBBoxMove(), and NLPACS::CGlobalRetriever::testCylinderMove(). |
|
Definition at line 320 of file collision_surface_temp.h. Referenced by NLPACS::CGlobalRetriever::doMove(), NLPACS::CGlobalRetriever::testBBoxMove(), and NLPACS::CGlobalRetriever::testCylinderMove(). |
|
For testMove/doMove, prec settings.
Definition at line 319 of file collision_surface_temp.h. Referenced by NLPACS::CGlobalRetriever::doMove(), NLPACS::CGlobalRetriever::testBBoxMove(), and NLPACS::CGlobalRetriever::testCylinderMove(). |
|
Definition at line 322 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), NLPACS::CGlobalRetriever::doMove(), NLPACS::CGlobalRetriever::testBBoxMove(), NLPACS::CGlobalRetriever::testBBoxRot(), and NLPACS::CGlobalRetriever::testCylinderMove(). |
|
result of testRotWithCollisionChains().
Definition at line 307 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), and NLPACS::CGlobalRetriever::testRotCollisionWithCollisionChains(). |
|
Definition at line 295 of file collision_surface_temp.h. Referenced by NLPACS::CRetrieverInstance::retrievePosition(), and NLPACS::CGlobalRetriever::retrievePosition(). |
|
Array of possible near surfaces.
Definition at line 292 of file collision_surface_temp.h. Referenced by CCollisionSurfaceTemp(), decSurface(), incSurface(), NLPACS::CRetrieverInstance::retrievePosition(), NLPACS::CLocalRetriever::retrievePosition(), and NLPACS::CLocalRetriever::testPosition(). |