From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a02943.html | 3477 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3477 insertions(+) create mode 100644 docs/doxygen/nel/a02943.html (limited to 'docs/doxygen/nel/a02943.html') diff --git a/docs/doxygen/nel/a02943.html b/docs/doxygen/nel/a02943.html new file mode 100644 index 00000000..b8dd44a2 --- /dev/null +++ b/docs/doxygen/nel/a02943.html @@ -0,0 +1,3477 @@ + + +NeL: NLPACS::CMoveContainer class Reference + + + +
+

NLPACS::CMoveContainer Class Reference

#include <move_container.h> +

+

Inheritance diagram for NLPACS::CMoveContainer: +

+ +NLPACS::UMoveContainer + +

Detailed Description

+A container for movable objects Some constraints: * The move bounding box must be lower than the cell size

+

Author:
Cyril 'Hulud' Corvazier

+Nevrax France

+
Date:
2001
+ +

+ +

+Definition at line 56 of file move_container.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

UMovePrimitiveaddCollisionablePrimitive (uint8 firstWorldImage, uint8 numWorldImage, const UMovePrimitive *copyFrom=NULL)
 Add a collisionable primitive in the container. Return the pointer on the primitive.

void addCollisionnablePrimitiveBlock (UPrimitiveBlock *pb, uint8 firstWorldImage, uint8 numWorldImage, std::vector< UMovePrimitive * > *primitives, float orientation, const NLMISC::CVector &position, bool dontSnapToGround=false, const NLMISC::CVector &scale=NLMISC::CVector(1.0f, 1.0f, 1.0f))
 Add a block of collsionnable primitives.

UMovePrimitiveaddNonCollisionablePrimitive (const UMovePrimitive *copyFrom=NULL)
 Add a noncollisionable primitive in the container. Return the pointer on the primitive.

CMoveElementallocateMoveElement ()
 Allocate a move element.

 CMoveContainer (CGlobalRetriever *retriever, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage, uint maxIteration, uint otSize)
 Init the container with a global retriever.

 CMoveContainer (double xmin, double ymin, double xmax, double ymax, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage, uint maxIteration, uint otSize)
 Constructor.

void duplicateWorldImage (uint8 source, uint8 dest)
 Duplicate world image.

void evalCollision (double deltaTime, uint8 worldImage)
 Evaluation of the collision system.

bool evalNCPrimitiveCollision (double deltaTime, UMovePrimitive *primitive, uint8 worldImage)
void freeMoveElement (CMoveElement *element)
 Free move element.

CGlobalRetrievergetGlobalRetriever () const
 Get the retriever.

uint getNumTriggerInfo () const
 Get number of trigger informations.

virtual void getPrimitives (std::vector< const UMovePrimitive * > &dest) const
 Get all the primitives in the container.

const UTriggerInfogetTriggerInfo (uint id) const
 Get the n-th trigger informations.

void init (CGlobalRetriever *retriever, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage, uint maxIteration, uint otSize)
 Init the container with a global retriever.

void init (double xmin, double ymin, double xmax, double ymax, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage, uint maxIteration, uint otSize)
 Init the container without global retriever.

bool loadCollisionablePrimitiveBlock (const char *filename, uint8 firstWorldImage, uint8 numWorldImage, std::vector< UMovePrimitive * > *primitives, float orientation, const NLMISC::CVector &position, bool dontSnapToGround=false)
 Load a block of collisionable primitive.

void removePrimitive (UMovePrimitive *primitive)
 Remove a primitive from the container.

void setAsStatic (uint8 worldImage)
 Set world image as static world image.

bool testMove (UMovePrimitive *primitive, const NLMISC::CVectorD &speed, double deltaTime, uint8 worldImage, NLMISC::CVectorD *contactNormal)
 Make a move test.

virtual ~CMoveContainer ()
 Destructor.


Static Public Member Functions

Create methods.
UMoveContainercreateMoveContainer (UGlobalRetriever *retriever, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage=1, uint maxIteration=100, uint otSize=100)
UMoveContainercreateMoveContainer (double xmin, double ymin, double xmax, double ymax, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage=1, uint maxIteration=100, uint otSize=100)
void deleteMoveContainer (UMoveContainer *container)
void getPACSCoordsFromMatrix (NLMISC::CVector &pos, float &angle, const NLMISC::CMatrix &mat)
Create methods.
UMoveContainercreateMoveContainer (UGlobalRetriever *retriever, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage=1, uint maxIteration=100, uint otSize=100)
UMoveContainercreateMoveContainer (double xmin, double ymin, double xmax, double ymax, uint widthCellCount, uint heightCellCount, double primitiveMaxSize, uint8 numWorldImage=1, uint maxIteration=100, uint otSize=100)
void deleteMoveContainer (UMoveContainer *container)
void getPACSCoordsFromMatrix (NLMISC::CVector &pos, float &angle, const NLMISC::CMatrix &mat)

Private Member Functions

CCollisionOTDynamicInfoallocateOTDynamicInfo ()
CCollisionOTStaticInfoallocateOTStaticInfo ()
CMovePrimitiveallocatePrimitive (uint8 firstWorldImage, uint8 numWorldImage)
CPrimitiveWorldImageallocateWorldImage ()
CPrimitiveWorldImage ** allocateWorldImagesPtrs (uint numPtrs)
void changed (CMovePrimitive *primitive, uint8 worldImage)
void checkOT ()
void checkSortedList ()
void clear ()
void clearModifiedList (uint8 worldImage)
void clearOT ()
void evalAllCollisions (double beginTime, uint8 worldImage)
bool evalOnePrimitiveCollision (double beginTime, CMovePrimitive *primitive, uint8 worldImage, uint8 primitiveWorldImage, bool testMove, bool secondIsStatic, bool &testMoveValid, CCollisionOTDynamicInfo *dynamicColInfo, NLMISC::CVectorD *contactNormal)
bool evalOneTerrainCollision (double beginTime, CMovePrimitive *primitive, uint8 primitiveWorldImage, bool testMove, bool &testMoveValid, CCollisionOTStaticInfo *staticColInfo, NLMISC::CVectorD *contactNormal)
bool evalPrimAgainstPrimCollision (double beginTime, CMovePrimitive *primitive, CMovePrimitive *otherPrimitive, CPrimitiveWorldImage *wI, CPrimitiveWorldImage *otherWI, bool testMove, uint8 firstWorldImage, uint8 secondWorldImage, bool secondIsStatic, CCollisionOTDynamicInfo *dynamicColInfo, NLMISC::CVectorD *contactNormal)
void freeAllOTInfo ()
void freePrimitive (CMovePrimitive *primitive)
void freeWorldImage (CPrimitiveWorldImage *worldImage)
void freeWorldImagesPtrs (CPrimitiveWorldImage **ptrs)
void getCells (CMovePrimitive *primitive, uint8 worldImage, uint8 primitiveWorldImage, CMoveElement **elementArray)
void newCollision (CMovePrimitive *first, const CCollisionSurfaceDesc &desc, uint8 worldImage, double beginTime, CCollisionOTStaticInfo *staticColInfo)
void newCollision (CMovePrimitive *first, CMovePrimitive *second, const CCollisionDesc &desc, bool collision, bool enter, bool exit, bool inside, uint firstWorldImage, uint secondWorldImage, bool secondIsStatic, CCollisionOTDynamicInfo *dynamicColInfo)
void newTrigger (CMovePrimitive *first, CMovePrimitive *second, const CCollisionDesc &desc, uint triggerType)
void reaction (const CCollisionOTInfo &first)
void removeFromModifiedList (CMovePrimitive *primitive, uint8 worldImage)
void removeModifiedFromOT (uint8 worldImage)
void removeNCFromModifiedList (CMovePrimitive *primitive, uint8 worldImage)
void unlinkMoveElement (CMoveElement *element, uint8 worldImage)
void updateCells (CMovePrimitive *primitive, uint8 worldImage)
void updatePrimitives (double deltaTime, uint8 worldImage)

Private Attributes

NLMISC::CPoolMemory< CCollisionOTDynamicInfo_AllocOTDynamicInfo
NLMISC::CPoolMemory< CCollisionOTStaticInfo_AllocOTStaticInfo
uint _CellCountHeight
uint _CellCountWidth
 Cells count.

double _CellHeight
double _CellWidth
 Cells width and height.

std::vector< CMovePrimitive * > _ChangedRoot
 Root of modified primitive for each world image.

double _DeltaTime
 Current deltaTime.

uint32 _MaxTestIteration
 Max test iterations.

uint _OtSize
 The time ordered table size.

CCollisionOT_PreviousCollisionNode
 Previous collision node in the OT.

double _PrimitiveMaxSize
 Max primitive size.

std::set< CMovePrimitive * > _PrimitiveSet
 Set of primitives.

CGlobalRetriever_Retriever
 Retriver pointner.

std::set< uint8_StaticWorldImage
 Set of primitives.

CCollisionSurfaceTemp _SurfaceTemp
uint32 _TestTime
 Current test time.

std::vector< CCollisionOT_TimeOT
 The time ordered table.

std::vector< UTriggerInfo_Triggers
 Memory manager for CCollisionOTInfo.

std::vector< std::vector<
+ CMoveCell > > 
_VectorCell
 Cells array.

double _Xmax
double _Xmin
 Area size.

double _Ymax
double _Ymin

Friends

class CMovePrimitive
class CPrimitiveWorldImage
+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NLPACS::CMoveContainer::CMoveContainer double  xmin,
double  ymin,
double  xmax,
double  ymax,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage,
uint  maxIteration,
uint  otSize
[inline]
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 62 of file move_container.h. +

+References init(), uint, and uint8. +

+

00064         {
+00065                 init (xmin, ymin, xmax, ymax, widthCellCount, heightCellCount, primitiveMaxSize, numWorldImage, maxIteration, otSize);
+00066         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NLPACS::CMoveContainer::CMoveContainer CGlobalRetriever retriever,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage,
uint  maxIteration,
uint  otSize
[inline]
+
+ + + + + +
+   + + +

+Init the container with a global retriever. +

+ +

+Definition at line 69 of file move_container.h. +

+References init(), uint, and uint8. +

+

00071         {
+00072                 init (retriever, widthCellCount, heightCellCount, primitiveMaxSize, numWorldImage, maxIteration, otSize);
+00073         }
+
+

+ + + + +
+ + + + + + + + + +
virtual NLPACS::CMoveContainer::~CMoveContainer  )  [virtual]
+
+ + + + + +
+   + + +

+Destructor. +

+

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
UMovePrimitive* NLPACS::CMoveContainer::addCollisionablePrimitive uint8  firstWorldImage,
uint8  numWorldImage,
const UMovePrimitive copyFrom = NULL
[virtual]
+
+ + + + + +
+   + + +

+Add a collisionable primitive in the container. Return the pointer on the primitive. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::addCollisionnablePrimitiveBlock UPrimitiveBlock pb,
uint8  firstWorldImage,
uint8  numWorldImage,
std::vector< UMovePrimitive * > *  primitives,
float  orientation,
const NLMISC::CVector position,
bool  dontSnapToGround = false,
const NLMISC::CVector scale = NLMISC::CVector(1.0f, 1.0f, 1.0f)
[virtual]
+
+ + + + + +
+   + + +

+Add a block of collsionnable primitives. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + +
UMovePrimitive* NLPACS::CMoveContainer::addNonCollisionablePrimitive const UMovePrimitive copyFrom = NULL  )  [virtual]
+
+ + + + + +
+   + + +

+Add a noncollisionable primitive in the container. Return the pointer on the primitive. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + +
CMoveElement* NLPACS::CMoveContainer::allocateMoveElement  ) 
+
+ + + + + +
+   + + +

+Allocate a move element. +

+ +

+Referenced by NLPACS::CPrimitiveWorldImage::addMoveElement().

+

+ + + + +
+ + + + + + + + + +
CCollisionOTDynamicInfo* NLPACS::CMoveContainer::allocateOTDynamicInfo  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
CCollisionOTStaticInfo* NLPACS::CMoveContainer::allocateOTStaticInfo  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
CMovePrimitive* NLPACS::CMoveContainer::allocatePrimitive uint8  firstWorldImage,
uint8  numWorldImage
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
CPrimitiveWorldImage* NLPACS::CMoveContainer::allocateWorldImage  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
CPrimitiveWorldImage** NLPACS::CMoveContainer::allocateWorldImagesPtrs uint  numPtrs  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::changed CMovePrimitive primitive,
uint8  worldImage
[inline, private]
+
+ + + + + +
+   + + +

+ +

+Definition at line 36 of file move_container_inline.h. +

+References _ChangedRoot, NLPACS::CMovePrimitive::getWorldImage(), NLPACS::CMovePrimitive::isCollisionable(), NLPACS::CPrimitiveWorldImage::isInModifiedListFlag(), NLPACS::CPrimitiveWorldImage::linkInModifiedList(), NLPACS::CPrimitiveWorldImage::setInModifiedListFlag(), and uint8. +

+Referenced by NLPACS::CPrimitiveWorldImage::dirtBB(). +

+

00037 {
+00038         // Primitive noncollisionable ?
+00039         if (primitive->isCollisionable())
+00040         {
+00041                 // Get the world image
+00042                 CPrimitiveWorldImage *wI;
+00043                 
+00044                 wI=primitive->getWorldImage (worldImage);
+00045 
+00046                 // Not yet in the list ?
+00047                 if (!wI->isInModifiedListFlag ())
+00048                 {
+00049                         // Flag it
+00050                         wI->setInModifiedListFlag (true);
+00051                         
+00052                         // Link it
+00053                         wI->linkInModifiedList (_ChangedRoot[worldImage]);
+00054 
+00055                         // Change root list
+00056                         _ChangedRoot[worldImage]=primitive;
+00057                 }
+00058         }
+00059 }
+
+

+ + + + +
+ + + + + + + + + +
void NLPACS::CMoveContainer::checkOT  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
void NLPACS::CMoveContainer::checkSortedList  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
void NLPACS::CMoveContainer::clear  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::clearModifiedList uint8  worldImage  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
void NLPACS::CMoveContainer::clearOT  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UMoveContainer* NLPACS::UMoveContainer::createMoveContainer UGlobalRetriever retriever,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage = 1,
uint  maxIteration = 100,
uint  otSize = 100
[static, inherited]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UMoveContainer* NLPACS::UMoveContainer::createMoveContainer double  xmin,
double  ymin,
double  xmax,
double  ymax,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage = 1,
uint  maxIteration = 100,
uint  otSize = 100
[static, inherited]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::UMoveContainer::deleteMoveContainer UMoveContainer container  )  [static, inherited]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::duplicateWorldImage uint8  source,
uint8  dest
[virtual]
+
+ + + + + +
+   + + +

+Duplicate world image. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::evalAllCollisions double  beginTime,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::evalCollision double  deltaTime,
uint8  worldImage
[virtual]
+
+ + + + + +
+   + + +

+Evaluation of the collision system. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::evalNCPrimitiveCollision double  deltaTime,
UMovePrimitive primitive,
uint8  worldImage
[virtual]
+
+ + + + + +
+   + + +

+Evaluation of a single non collisionable primitive. The method test first collisions against the terrai, then test collisions against primitives inserted in the world images declared as static, then test the collision against the primitives inserted in the world image to evaluate.

+

Parameters:
+ + + + +
deltaTime is the delta time of the system evaluation.
primitive is the prmitive pointer
worldImage is the world image to eval.
+
+
Returns:
false if the primitive is a collisionable primitive.
+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::evalOnePrimitiveCollision double  beginTime,
CMovePrimitive primitive,
uint8  worldImage,
uint8  primitiveWorldImage,
bool  testMove,
bool  secondIsStatic,
bool &  testMoveValid,
CCollisionOTDynamicInfo dynamicColInfo,
NLMISC::CVectorD contactNormal
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::evalOneTerrainCollision double  beginTime,
CMovePrimitive primitive,
uint8  primitiveWorldImage,
bool  testMove,
bool &  testMoveValid,
CCollisionOTStaticInfo staticColInfo,
NLMISC::CVectorD contactNormal
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::evalPrimAgainstPrimCollision double  beginTime,
CMovePrimitive primitive,
CMovePrimitive otherPrimitive,
CPrimitiveWorldImage wI,
CPrimitiveWorldImage otherWI,
bool  testMove,
uint8  firstWorldImage,
uint8  secondWorldImage,
bool  secondIsStatic,
CCollisionOTDynamicInfo dynamicColInfo,
NLMISC::CVectorD contactNormal
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
void NLPACS::CMoveContainer::freeAllOTInfo  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::freeMoveElement CMoveElement element  ) 
+
+ + + + + +
+   + + +

+Free move element. +

+ +

+Referenced by NLPACS::CPrimitiveWorldImage::removeMoveElement().

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::freePrimitive CMovePrimitive primitive  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::freeWorldImage CPrimitiveWorldImage worldImage  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::freeWorldImagesPtrs CPrimitiveWorldImage **  ptrs  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::getCells CMovePrimitive primitive,
uint8  worldImage,
uint8  primitiveWorldImage,
CMoveElement **  elementArray
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + +
CGlobalRetriever* NLPACS::CMoveContainer::getGlobalRetriever  )  const [inline]
+
+ + + + + +
+   + + +

+Get the retriever. +

+ +

+Definition at line 124 of file move_container.h. +

+Referenced by NLPACS::CPrimitiveWorldImage::setGlobalPosition(). +

+

00125         {
+00126                 return _Retriever;
+00127         }
+
+

+ + + + +
+ + + + + + + + + +
uint NLPACS::CMoveContainer::getNumTriggerInfo  )  const [inline, virtual]
+
+ + + + + +
+   + + +

+Get number of trigger informations. +

+ +

+Implements NLPACS::UMoveContainer. +

+Definition at line 130 of file move_container.h. +

+References _Triggers, and uint. +

+

00131         {
+00132                 return _Triggers.size();
+00133         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::UMoveContainer::getPACSCoordsFromMatrix NLMISC::CVector pos,
float &  angle,
const NLMISC::CMatrix mat
[static, inherited]
+
+ + + + + +
+   + + +

+Get a pacs position and an orientation from a matrix

+

+ + + + +
+ + + + + + + + + + +
virtual void NLPACS::CMoveContainer::getPrimitives std::vector< const UMovePrimitive * > &  dest  )  const [virtual]
+
+ + + + + +
+   + + +

+Get all the primitives in the container. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + +
const UTriggerInfo& NLPACS::CMoveContainer::getTriggerInfo uint  id  )  const [inline, virtual]
+
+ + + + + +
+   + + +

+Get the n-th trigger informations. +

+ +

+Implements NLPACS::UMoveContainer. +

+Definition at line 136 of file move_container.h. +

+References _Triggers, nlassert, and uint. +

+

00137         {
+00138                 // check
+00139                 nlassert (id<_Triggers.size());
+00140                 
+00141                 return _Triggers[id];
+00142         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::init CGlobalRetriever retriever,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage,
uint  maxIteration,
uint  otSize
+
+ + + + + +
+   + + +

+Init the container with a global retriever. +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::init double  xmin,
double  ymin,
double  xmax,
double  ymax,
uint  widthCellCount,
uint  heightCellCount,
double  primitiveMaxSize,
uint8  numWorldImage,
uint  maxIteration,
uint  otSize
+
+ + + + + +
+   + + +

+Init the container without global retriever. +

+ +

+Referenced by CMoveContainer().

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::loadCollisionablePrimitiveBlock const char *  filename,
uint8  firstWorldImage,
uint8  numWorldImage,
std::vector< UMovePrimitive * > *  primitives,
float  orientation,
const NLMISC::CVector position,
bool  dontSnapToGround = false
[virtual]
+
+ + + + + +
+   + + +

+Load a block of collisionable primitive. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::newCollision CMovePrimitive first,
const CCollisionSurfaceDesc desc,
uint8  worldImage,
double  beginTime,
CCollisionOTStaticInfo staticColInfo
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::newCollision CMovePrimitive first,
CMovePrimitive second,
const CCollisionDesc desc,
bool  collision,
bool  enter,
bool  exit,
bool  inside,
uint  firstWorldImage,
uint  secondWorldImage,
bool  secondIsStatic,
CCollisionOTDynamicInfo dynamicColInfo
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::newTrigger CMovePrimitive first,
CMovePrimitive second,
const CCollisionDesc desc,
uint  triggerType
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::reaction const CCollisionOTInfo first  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::removeFromModifiedList CMovePrimitive primitive,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::removeModifiedFromOT uint8  worldImage  )  [private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::removeNCFromModifiedList CMovePrimitive primitive,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::removePrimitive UMovePrimitive primitive  )  [virtual]
+
+ + + + + +
+   + + +

+Remove a primitive from the container. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + +
void NLPACS::CMoveContainer::setAsStatic uint8  worldImage  )  [virtual]
+
+ + + + + +
+   + + +

+Set world image as static world image. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NLPACS::CMoveContainer::testMove UMovePrimitive primitive,
const NLMISC::CVectorD speed,
double  deltaTime,
uint8  worldImage,
NLMISC::CVectorD contactNormal
[virtual]
+
+ + + + + +
+   + + +

+Make a move test. +

+ +

+Implements NLPACS::UMoveContainer.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::unlinkMoveElement CMoveElement element,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+ +

+Referenced by NLPACS::CPrimitiveWorldImage::removeMoveElement().

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::updateCells CMovePrimitive primitive,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLPACS::CMoveContainer::updatePrimitives double  deltaTime,
uint8  worldImage
[private]
+
+ + + + + +
+   + + +

+

+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CMovePrimitive [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 58 of file move_container.h.

+

+ + + + +
+ + +
friend class CPrimitiveWorldImage [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 59 of file move_container.h.

+


Field Documentation

+

+ + + + +
+ + +
NLMISC::CPoolMemory<CCollisionOTDynamicInfo> NLPACS::CMoveContainer::_AllocOTDynamicInfo [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 201 of file move_container.h.

+

+ + + + +
+ + +
NLMISC::CPoolMemory<CCollisionOTStaticInfo> NLPACS::CMoveContainer::_AllocOTStaticInfo [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 202 of file move_container.h.

+

+ + + + +
+ + +
uint NLPACS::CMoveContainer::_CellCountHeight [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 190 of file move_container.h.

+

+ + + + +
+ + +
uint NLPACS::CMoveContainer::_CellCountWidth [private] +
+
+ + + + + +
+   + + +

+Cells count. +

+ +

+Definition at line 189 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_CellHeight [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 186 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_CellWidth [private] +
+
+ + + + + +
+   + + +

+Cells width and height. +

+ +

+Definition at line 185 of file move_container.h.

+

+ + + + +
+ + +
std::vector<CMovePrimitive*> NLPACS::CMoveContainer::_ChangedRoot [private] +
+
+ + + + + +
+   + + +

+Root of modified primitive for each world image. +

+ +

+Definition at line 158 of file move_container.h. +

+Referenced by changed().

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_DeltaTime [private] +
+
+ + + + + +
+   + + +

+Current deltaTime. +

+ +

+Definition at line 173 of file move_container.h.

+

+ + + + +
+ + +
uint32 NLPACS::CMoveContainer::_MaxTestIteration [private] +
+
+ + + + + +
+   + + +

+Max test iterations. +

+ +

+Definition at line 152 of file move_container.h.

+

+ + + + +
+ + +
uint NLPACS::CMoveContainer::_OtSize [private] +
+
+ + + + + +
+   + + +

+The time ordered table size. +

+ +

+Definition at line 164 of file move_container.h.

+

+ + + + +
+ + +
CCollisionOT* NLPACS::CMoveContainer::_PreviousCollisionNode [private] +
+
+ + + + + +
+   + + +

+Previous collision node in the OT. +

+ +

+Definition at line 170 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_PrimitiveMaxSize [private] +
+
+ + + + + +
+   + + +

+Max primitive size. +

+ +

+Definition at line 176 of file move_container.h.

+

+ + + + +
+ + +
std::set<CMovePrimitive*> NLPACS::CMoveContainer::_PrimitiveSet [private] +
+
+ + + + + +
+   + + +

+Set of primitives. +

+ +

+Definition at line 155 of file move_container.h.

+

+ + + + +
+ + +
CGlobalRetriever* NLPACS::CMoveContainer::_Retriever [private] +
+
+ + + + + +
+   + + +

+Retriver pointner. +

+ +

+Definition at line 196 of file move_container.h.

+

+ + + + +
+ + +
std::set<uint8> NLPACS::CMoveContainer::_StaticWorldImage [private] +
+
+ + + + + +
+   + + +

+Set of primitives. +

+ +

+Definition at line 161 of file move_container.h.

+

+ + + + +
+ + +
CCollisionSurfaceTemp NLPACS::CMoveContainer::_SurfaceTemp [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 197 of file move_container.h.

+

+ + + + +
+ + +
uint32 NLPACS::CMoveContainer::_TestTime [private] +
+
+ + + + + +
+   + + +

+Current test time. +

+ +

+Definition at line 149 of file move_container.h.

+

+ + + + +
+ + +
std::vector<CCollisionOT> NLPACS::CMoveContainer::_TimeOT [private] +
+
+ + + + + +
+   + + +

+The time ordered table. +

+ +

+Definition at line 167 of file move_container.h.

+

+ + + + +
+ + +
std::vector<UTriggerInfo> NLPACS::CMoveContainer::_Triggers [private] +
+
+ + + + + +
+   + + +

+Memory manager for CCollisionOTInfo. +

+ +

+Definition at line 200 of file move_container.h. +

+Referenced by getNumTriggerInfo(), and getTriggerInfo().

+

+ + + + +
+ + +
std::vector<std::vector<CMoveCell> > NLPACS::CMoveContainer::_VectorCell [private] +
+
+ + + + + +
+   + + +

+Cells array. +

+ +

+Definition at line 193 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_Xmax [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 181 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_Xmin [private] +
+
+ + + + + +
+   + + +

+Area size. +

+ +

+Definition at line 179 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_Ymax [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 182 of file move_container.h.

+

+ + + + +
+ + +
double NLPACS::CMoveContainer::_Ymin [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 180 of file move_container.h.

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 14:17:37 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1