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

Dataoperator * ()
Dataoperator-> ()
const Dataoperator * () const
const Dataoperator-> () const
void setData (const Data d)
DatagetData ()
void subdivide (const S &defaultData=S())
void simplify ()
Celllocate (const U &p)
bool isLeaf () const
Vertexvertex (unsigned short i) const
Cellfather () const
unsigned short fatherPos () const
Cellchild (unsigned short i) const
Vertex center () const
Vertex diagonal () const
FloatingPointType size (unsigned short i) const
Face face (unsigned short pos) const
CellcellSharingFace (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
CellcellSharingEdge (unsigned short i) const
bool hasUncleSharingFace (unsigned short i) const
bool hasUncleSharingEdge (unsigned short edge) const
CelluncleSharingFace (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
CellgetNeighbour (const unsigned int f) const
 Get the neighbour connected on face f.

void printPos (std::ostream &out) const

Public Attributes

Data data_
Cellchildren_ [8]
Cellfather_
unsigned short pos_
VertexPtr vertices_ [8]
std::deque< VertexPtrtoDelete_

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)
VertexPtrvertexPtrAtCenterOfFace (unsigned short face)
VertexPtrvertexPtrAtCenterOfEdge (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,
output
const
 

template<class T, class S, class U>
template<class O>
O animal::octree::FastOctree< T, S, U >::Cell::copyChildrenTouchingFace unsigned short  face,
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