Documentation


animal::octree::FastOctree< T, S, U >::Cell Class Reference

#include <fastoctreedeformableconstrained.h>

List of all members.


Detailed Description

template<class T, class S, class U>
class animal::octree::FastOctree< T, S, U >::Cell

This is the main class, the one you work with most of the time. The FastOctree class is just a wrapper that is needed to access the root cell of an octree. Note that a Cell is not a FastOctree from the C++ class hierarchy point of view. To "transform" a Cell into a FastOctree, use FastOctree(Cell*).

Definition at line 243 of file fastoctreedeformableconstrained.h.

Public Member Functions

Data & operator * ()
Data * operator-> ()
const Data & operator * () const
const Data * operator-> () const
void setData (const Data d)
Data & getData ()
void subdivide (const S &defaultData=S())
void simplify ()
Cell * locate (const U &p)
bool isLeaf () const
Vertex * vertex (unsigned short i) const
Cell * father () const
unsigned short fatherPos () const
Cell * child (unsigned short i) const
Vertex center () const
Vertex diagonal () const
FloatingPointType size (unsigned short i) const
Face face (unsigned short pos) const
Cell * cellSharingFace (unsigned short i) const
template<class O> O copyChildrenTouchingFace (unsigned short face, O output) const
template<class O> O copyCellsTouchingFace (unsigned short face, O output) const
Cell * cellSharingEdge (unsigned short i) const
bool hasUncleSharingFace (unsigned short i) const
bool hasUncleSharingEdge (unsigned short edge) const
Cell * uncleSharingFace (unsigned short i) const
bool edgeOnRootFace (unsigned short edge) const
bool edgeOnRootEdge (unsigned short edge) const
bool faceOnRootFace (unsigned short face) const
bool contains (const U &p) const
int memorySize () const
bool isRoot () const
Cell * getNeighbour (const unsigned int f) const
 Get the neighbour connected on face f.

void printPos (std::ostream &out) const

Public Attributes

Data data_
Cell * children_ [8]
Cell * father_
unsigned short pos_
VertexPtr vertices_ [8]
std::deque< VertexPtr > toDelete_

Static Public Attributes

const unsigned short connectedVertices [8][3]

Protected Member Functions

 Cell (Cell &f, unsigned short p, VertexPtr vertices[27], const S &defaultData)
 Cell (const U &min, const FloatingPointType &size, const S &defaultData=S())
 Cell (const U &min, const FloatingPointType &,const FloatingPointType &,const FloatingPointType &, const S &defaultData=S())
 ~Cell ()
VertexPtr createRootVertex (const FloatingPointType x, const FloatingPointType y, const FloatingPointType z)
VertexPtr createFreeVertex (const U &v)
VertexPtr createFreeVertex (const FloatingPointType x, const FloatingPointType y, const FloatingPointType z)
VertexPtr createFreeVertex (VertexPtr v1, VertexPtr v2)
VertexPtr createFreeVertex (VertexPtr v1, VertexPtr v2, VertexPtr v3, VertexPtr v4)
VertexPtr createFreeVertex (VertexPtr v1, VertexPtr v2, VertexPtr v3, VertexPtr v4, VertexPtr v5, VertexPtr v6, VertexPtr v7, VertexPtr v8)
VertexPtr createLinkedVertex (VertexPtr v1, VertexPtr v2)
VertexPtr createLinkedVertex (VertexPtr v1, VertexPtr v2, VertexPtr v3, VertexPtr v4)
VertexPtr & vertexPtrAtCenterOfFace (unsigned short face)
VertexPtr & vertexPtrAtCenterOfEdge (unsigned short edge)
void removeVertex (VertexPtr vp)

Protected Attributes

Cell * _faceNeighbours [6]
 The 6 face neighbours.


Static Protected Attributes

const unsigned short faceAlongEdge [12][2]

Friends

class FastOctree< T, S, U >


Constructor & Destructor Documentation

template<class T, class S, class U>
animal::octree::FastOctree< T, S, U >::Cell::Cell (  Cell &  f,
unsigned short  p,
VertexPtr  vertices[27],
const S &  defaultData
)  [protected]
 

template<class T, class S, class U>
animal::octree::FastOctree< T, S, U >::Cell::Cell (  const U &  min,
const FloatingPointType &  size,
const S &  defaultData = S()
)  [protected]
 

template<class T, class S, class U>
animal::octree::FastOctree< T, S, U >::Cell::Cell (  const U &  min,
const FloatingPointType &  ,
const FloatingPointType &  ,
const FloatingPointType &  ,
const S &  defaultData = S()
)  [protected]
 

template<class T, class S, class U>
animal::octree::FastOctree< T, S, U >::Cell::~Cell (   )  [protected]
 


Member Function Documentation

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::cellSharingEdge (  unsigned short  i  )  const
 

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::cellSharingFace (  unsigned short  i  )  const
 

template<class T, class S, class U>
Vertex animal::octree::FastOctree< T, S, U >::Cell::center (   )  const [inline]
 

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::child (  unsigned short  i  )  const [inline]
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::contains (  const U &  p  )  const
 

template<class T, class S, class U>
template<class O>
O animal::octree::FastOctree< T, S, U >::Cell::copyCellsTouchingFace (  unsigned short  face,
O  output
)  const
 

template<class T, class S, class U>
template<class O>
O animal::octree::FastOctree< T, S, U >::Cell::copyChildrenTouchingFace (  unsigned short  face,
O  output
)  const
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createFreeVertex (  VertexPtr  v1,
VertexPtr  v2,
VertexPtr  v3,
VertexPtr  v4,
VertexPtr  v5,
VertexPtr  v6,
VertexPtr  v7,
VertexPtr  v8
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createFreeVertex (  VertexPtr  v1,
VertexPtr  v2,
VertexPtr  v3,
VertexPtr  v4
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createFreeVertex (  VertexPtr  v1,
VertexPtr  v2
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createFreeVertex (  const FloatingPointType  x,
const FloatingPointType  y,
const FloatingPointType  z
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createFreeVertex (  const U &  v  )  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createLinkedVertex (  VertexPtr  v1,
VertexPtr  v2,
VertexPtr  v3,
VertexPtr  v4
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createLinkedVertex (  VertexPtr  v1,
VertexPtr  v2
)  [inline, protected]
 

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::createRootVertex (  const FloatingPointType  x,
const FloatingPointType  y,
const FloatingPointType  z
)  [inline, protected]
 

template<class T, class S, class U>
Vertex animal::octree::FastOctree< T, S, U >::Cell::diagonal (   )  const [inline]
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::edgeOnRootEdge (  unsigned short  edge  )  const
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::edgeOnRootFace (  unsigned short  edge  )  const
 

template<class T, class S, class U>
Face animal::octree::FastOctree< T, S, U >::Cell::face (  unsigned short  pos  )  const [inline]
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::faceOnRootFace (  unsigned short  face  )  const
 

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::father (   )  const [inline]
 

template<class T, class S, class U>
unsigned short animal::octree::FastOctree< T, S, U >::Cell::fatherPos (   )  const [inline]
 

template<class T, class S, class U>
Data& animal::octree::FastOctree< T, S, U >::Cell::getData (   )  [inline]
 

Definition at line 273 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::getNeighbour (  const unsigned int  f  )  const [inline]
 

Get the neighbour connected on face f.

Definition at line 325 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Cell::_faceNeighbours, and Require.

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::hasUncleSharingEdge (  unsigned short  edge  )  const
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::hasUncleSharingFace (  unsigned short  i  )  const
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::isLeaf (   )  const [inline]
 

template<class T, class S, class U>
bool animal::octree::FastOctree< T, S, U >::Cell::isRoot (   )  const [inline]
 

Definition at line 316 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Cell::father_.

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::locate (  const U &  p  ) 
 

template<class T, class S, class U>
int animal::octree::FastOctree< T, S, U >::Cell::memorySize (   )  const [inline]
 

template<class T, class S, class U>
const Data& animal::octree::FastOctree< T, S, U >::Cell::operator * (   )  const [inline]
 

Definition at line 260 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
Data& animal::octree::FastOctree< T, S, U >::Cell::operator * (   )  [inline]
 

Use this public member to store any data at each cell of the octree. One should also use the operator*()<> and operator->()<> to consider the an octree cell as a pointer to its data.

Definition at line 252 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
const Data* animal::octree::FastOctree< T, S, U >::Cell::operator-> (   )  const [inline]
 

Definition at line 264 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
Data* animal::octree::FastOctree< T, S, U >::Cell::operator-> (   )  [inline]
 

Definition at line 256 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
void animal::octree::FastOctree< T, S, U >::Cell::printPos (  std::ostream &  out  )  const
 

template<class T, class S, class U>
void animal::octree::FastOctree< T, S, U >::Cell::removeVertex (  VertexPtr  vp  )  [inline, protected]
 

template<class T, class S, class U>
void animal::octree::FastOctree< T, S, U >::Cell::setData (  const Data  d  )  [inline]
 

Definition at line 269 of file fastoctreedeformableconstrained.h.

References animal::octree::FastOctree< T, S, U >::Data, and animal::octree::FastOctree< T, S, U >::Cell::data_.

template<class T, class S, class U>
void animal::octree::FastOctree< T, S, U >::Cell::simplify (   ) 
 

template<class T, class S, class U>
FloatingPointType animal::octree::FastOctree< T, S, U >::Cell::size (  unsigned short  i  )  const [inline]
 

template<class T, class S, class U>
void animal::octree::FastOctree< T, S, U >::Cell::subdivide (  const S &  defaultData = S()  ) 
 

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::uncleSharingFace (  unsigned short  i  )  const
 

template<class T, class S, class U>
Vertex* animal::octree::FastOctree< T, S, U >::Cell::vertex (  unsigned short  i  )  const [inline]
 

template<class T, class S, class U>
VertexPtr& animal::octree::FastOctree< T, S, U >::Cell::vertexPtrAtCenterOfEdge (  unsigned short  edge  )  [inline, protected]
 

template<class T, class S, class U>
VertexPtr& animal::octree::FastOctree< T, S, U >::Cell::vertexPtrAtCenterOfFace (  unsigned short  face  )  [inline, protected]
 


Friends And Related Function Documentation

template<class T, class S, class U>
friend class FastOctree< T, S, U > [friend]
 

Definition at line 334 of file fastoctreedeformableconstrained.h.


Member Data Documentation

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::_faceNeighbours[6] [protected]
 

The 6 face neighbours.

Definition at line 339 of file fastoctreedeformableconstrained.h.

Referenced by animal::octree::FastOctree< T, S, U >::Cell::getNeighbour().

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::children_[8]
 

Definition at line 369 of file fastoctreedeformableconstrained.h.

template<class T, class S, class U>
const unsigned short animal::octree::FastOctree< T, S, U >::Cell::connectedVertices[8][3] [static]
 

Definition at line 376 of file fastoctreedeformableconstrained.h.

template<class T, class S, class U>
Data animal::octree::FastOctree< T, S, U >::Cell::data_
 

Definition at line 368 of file fastoctreedeformableconstrained.h.

Referenced by animal::octree::FastOctree< T, S, U >::Cell::getData(), animal::octree::FastOctree< T, S, U >::Cell::operator *(), animal::octree::FastOctree< T, S, U >::Cell::operator->(), and animal::octree::FastOctree< T, S, U >::Cell::setData().

template<class T, class S, class U>
const unsigned short animal::octree::FastOctree< T, S, U >::Cell::faceAlongEdge[12][2] [static, protected]
 

Definition at line 363 of file fastoctreedeformableconstrained.h.

template<class T, class S, class U>
Cell* animal::octree::FastOctree< T, S, U >::Cell::father_
 

Definition at line 370 of file fastoctreedeformableconstrained.h.

Referenced by animal::octree::FastOctree< T, S, U >::Cell::isRoot().

template<class T, class S, class U>
unsigned short animal::octree::FastOctree< T, S, U >::Cell::pos_
 

Definition at line 371 of file fastoctreedeformableconstrained.h.

template<class T, class S, class U>
std::deque<VertexPtr> animal::octree::FastOctree< T, S, U >::Cell::toDelete_
 

Definition at line 373 of file fastoctreedeformableconstrained.h.

template<class T, class S, class U>
VertexPtr animal::octree::FastOctree< T, S, U >::Cell::vertices_[8]
 

Definition at line 372 of file fastoctreedeformableconstrained.h.


The documentation for this class was generated from the following file:
Generated on Thu Dec 23 13:52:32 2004 by doxygen 1.3.6