# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NLPACS::CEdgeQuad Class Reference

a quadgrid of list of edge chain. More...

#include <edge_quad.h>

List of all members.

Public Methods

 CEdgeQuad ()
 Constructor. More...

 CEdgeQuad (const CEdgeQuad &o)
 Copy Constructor. More...

 ~CEdgeQuad ()
 Destructor. More...

CEdgeQuad & operator= (const CEdgeQuad &o)
 operator=. More...

void clear ()
 clear. More...

void build (const CExteriorMesh &em, const CGlobalRetriever &global, CCollisionSurfaceTemp &cst, uint32 thisInstance)
 build a chain quad, with a list of exterior Edges and the global retriever. More...

sint selectEdges (const NLMISC::CAABBox &bbox, CCollisionSurfaceTemp &cst) const
 look in the quad to select a list of chain from a bbox. More...

sint selectEdges (CVector start, CVector end, CCollisionSurfaceTemp &cst) const
 look in the quad to select a list of chain from a line. More...

const std::vector< CExteriorEdgeEntry > & getEdgeEntries () const
 Get the whole set of edge entries. More...

const CExteriorEdgeEntrygetEdgeEntry (uint entry) const
 Get a single edge entry. More...

void serial (NLMISC::IStream &f)
 serial. More...

void removeLinks (sint32 instanceId)
void removeLinks ()

Private Methods

void getGridBounds (sint32 &x0, sint32 &y0, sint32 &x1, sint32 &y1, const CVector &minP, const CVector &maxP) const

Private Attributes

std::vector< uint8 * > _Quad
 W*H pointers on array of CExteriorEdgeEntry indexes. More...

std::vector< CExteriorEdgeEntry_EdgeEntries
 The real exterior edge entries. More...

uint32 _Width
 Width of the quadgrid. More...

uint32 _Height
 Height of the quadgrid. More...

sint32 _X
 Postion of the chainquad. More...

sint32 _Y
 Postion of the chainquad. More...

uint8_QuadData
 Single memory block of CExteriorEdgeEntry chains. More...

uint32 _QuadDataLen
 size (in byte) of _QuadData. More...


Static Private Attributes

const float _QuadElementSize = 4


Detailed Description

a quadgrid of list of edge chain.

Author:
Benjamin Legros , Nevrax France
Date:
2001

Definition at line 61 of file edge_quad.h.


Constructor & Destructor Documentation

NLPACS::CEdgeQuad::CEdgeQuad  
 

Constructor.

Definition at line 44 of file edge_quad.cpp.

References _QuadData, and _QuadDataLen.

NLPACS::CEdgeQuad::CEdgeQuad const CEdgeQuad &    o
 

Copy Constructor.

Definition at line 55 of file edge_quad.cpp.

References _QuadData, and _QuadDataLen.

NLPACS::CEdgeQuad::~CEdgeQuad  
 

Destructor.

Definition at line 50 of file edge_quad.cpp.

References clear.


Member Function Documentation

void NLPACS::CEdgeQuad::build const CExteriorMesh   em,
const CGlobalRetriever   global,
CCollisionSurfaceTemp   cst,
uint32    thisInstance
 

build a chain quad, with a list of exterior Edges and the global retriever.

Definition at line 130 of file edge_quad.cpp.

References _EdgeEntries, _Height, _Quad, _QuadData, _QuadDataLen, _QuadElementSize, _Width, _X, _Y, NLMISC::contReset, getGridBounds, nlerror, nlinfo, nlwarning, NLPACS::TCollisionSurfaceDescVector, x, and y.

void NLPACS::CEdgeQuad::clear  
 

clear.

Definition at line 100 of file edge_quad.cpp.

References _EdgeEntries, _Height, _Quad, _QuadData, _QuadDataLen, _Width, _X, and _Y.

Referenced by ~CEdgeQuad.

const std::vector<CExteriorEdgeEntry>& NLPACS::CEdgeQuad::getEdgeEntries   const [inline]
 

Get the whole set of edge entries.

Definition at line 104 of file edge_quad.h.

References _EdgeEntries.

const CExteriorEdgeEntry& NLPACS::CEdgeQuad::getEdgeEntry uint    entry const [inline]
 

Get a single edge entry.

Definition at line 106 of file edge_quad.h.

References _EdgeEntries.

void NLPACS::CEdgeQuad::getGridBounds sint32   x0,
sint32   y0,
sint32   x1,
sint32   y1,
const CVector &    minP,
const CVector &    maxP
const [private]
 

Definition at line 115 of file edge_quad.cpp.

References _Height, _QuadElementSize, _Width, _X, _Y, and min.

Referenced by build, and selectEdges.

CEdgeQuad & NLPACS::CEdgeQuad::operator= const CEdgeQuad &    o
 

operator=.

Definition at line 62 of file edge_quad.cpp.

References _EdgeEntries, _Height, _Quad, _QuadData, _QuadDataLen, _Width, _X, and _Y.

void NLPACS::CEdgeQuad::removeLinks   [inline]
 

Definition at line 127 of file edge_quad.h.

References _EdgeEntries.

void NLPACS::CEdgeQuad::removeLinks sint32    instanceId [inline]
 

Definition at line 113 of file edge_quad.h.

References _EdgeEntries.

sint NLPACS::CEdgeQuad::selectEdges CVector    start,
CVector    end,
CCollisionSurfaceTemp   cst
const
 

look in the quad to select a list of chain from a line.

NB: The outpout do not contains any redundant edge. An edge appears only one time in the result.

Parameters:
start  the starting point of the selection segment.
end  the ending point of the selection segment.
cst  the array of CExteriorEdgeEntry to fill. contain also OChainLUT, an array for internal use. In: must be filled with 0xFFFF. Out: still filled with 0xFFFF.
Returns:
number of exterioredge found. stored in cst.ExteriorEdgeEntries (array cleared first).

Definition at line 462 of file edge_quad.cpp.

References _Height, _Quad, _QuadElementSize, _Width, _X, _Y, index, x, and y.

sint NLPACS::CEdgeQuad::selectEdges const NLMISC::CAABBox   bbox,
CCollisionSurfaceTemp   cst
const
 

look in the quad to select a list of chain from a bbox.

NB: The outpout do not contains any redundant edge. An edge appears only one time in the result.

Parameters:
bbox  the area of interest.
cst  the array of CExteriorEdgeEntry to fill. contain also OChainLUT, an array for internal use. In: must be filled with 0xFFFF. Out: still filled with 0xFFFF.
Returns:
number of exterioredge found. stored in cst.ExteriorEdgeEntries (array cleared first).

Definition at line 407 of file edge_quad.cpp.

References _Quad, _Width, getGridBounds, NLMISC::CAABBox::getMax, NLMISC::CAABBox::getMin, index, x, and y.

void NLPACS::CEdgeQuad::serial NLMISC::IStream   f
 

serial.

Definition at line 568 of file edge_quad.cpp.

References _EdgeEntries, _Height, _Quad, _QuadData, _QuadDataLen, _Width, _X, _Y, NLMISC::contReset, NLMISC::IStream::isReading, NLMISC::IStream::serial, NLMISC::IStream::serialCont, and NLMISC::IStream::serialVersion.


Member Data Documentation

std::vector<CExteriorEdgeEntry> NLPACS::CEdgeQuad::_EdgeEntries [private]
 

The real exterior edge entries.

Definition at line 145 of file edge_quad.h.

Referenced by build, clear, getEdgeEntries, getEdgeEntry, operator=, removeLinks, and serial.

uint32 NLPACS::CEdgeQuad::_Height [private]
 

Height of the quadgrid.

Definition at line 149 of file edge_quad.h.

Referenced by build, clear, getGridBounds, operator=, selectEdges, and serial.

std::vector<uint8*> NLPACS::CEdgeQuad::_Quad [private]
 

W*H pointers on array of CExteriorEdgeEntry indexes.

NULL if no edge in this quad. Each array is 1xuint16(LEN) + LEN*CExteriorEdgeEntryIndex(16 bits).

Definition at line 143 of file edge_quad.h.

Referenced by build, clear, operator=, selectEdges, and serial.

uint8* NLPACS::CEdgeQuad::_QuadData [private]
 

Single memory block of CExteriorEdgeEntry chains.

Definition at line 153 of file edge_quad.h.

Referenced by build, CEdgeQuad, clear, operator=, and serial.

uint32 NLPACS::CEdgeQuad::_QuadDataLen [private]
 

size (in byte) of _QuadData.

Definition at line 155 of file edge_quad.h.

Referenced by build, CEdgeQuad, clear, operator=, and serial.

const float NLPACS::CEdgeQuad::_QuadElementSize = 4 [static, private]
 

Definition at line 40 of file edge_quad.cpp.

Referenced by build, getGridBounds, and selectEdges.

uint32 NLPACS::CEdgeQuad::_Width [private]
 

Width of the quadgrid.

Definition at line 147 of file edge_quad.h.

Referenced by build, clear, getGridBounds, operator=, selectEdges, and serial.

sint32 NLPACS::CEdgeQuad::_X [private]
 

Postion of the chainquad.

Definition at line 151 of file edge_quad.h.

Referenced by build, clear, getGridBounds, operator=, selectEdges, and serial.

sint32 NLPACS::CEdgeQuad::_Y [private]
 

Postion of the chainquad.

Definition at line 151 of file edge_quad.h.

Referenced by build, clear, getGridBounds, operator=, selectEdges, and serial.


The documentation for this class was generated from the following files: