EdgeCell Class Reference

The model for all Edges of a CellComplex. More...

#include </usr1/tp517/Tumble/trunk/src/tumble/cell.h>

Inheritance diagram for EdgeCell:

[legend]
Collaboration diagram for EdgeCell:
[legend]
List of all members.

Public Types

typedef PersistantArray< VertexCell *,
2 >::iterator 
vertex_iterator
typedef PersistantArray< VertexCell *,
2 >::const_iterator 
vertex_const_iterator
typedef PersistantArray< FaceCell *,
2 >::iterator 
face_iterator
typedef PersistantArray< FaceCell *,
2 >::const_iterator 
face_const_iterator

Public Member Functions

 EdgeCell (PersistantStore &, VertexCell *v1, VertexCell *v2)
 Generate an empty EdgeCell.
virtual ~EdgeCell ()
void add_face (FaceCell *f)
 Add FaceCell to the face set.
void delete_face (FaceCell *f)
 Remove FaceCell from the face set.
bool has_vertex (const VertexCell *v) const
 Check if this EdgeCell has given VertexCell as a sub-cell.
bool has_face (const FaceCell *f) const
 Check if this EdgeCell is a sub-cell of given FaceCell.
int num_faces () const
 Get number of faces with this edge as a sub-cell.
vertex_iterator begin_vertices ()
vertex_const_iterator begin_vertices () const
vertex_iterator end_vertices ()
vertex_const_iterator end_vertices () const
VertexCellget_canon_vertex ()
const VertexCellget_canon_vertex () const
VertexCellget_vertex (int i)
const VertexCellget_vertex (int i) const
face_iterator begin_faces ()
face_const_iterator begin_faces () const
face_iterator end_faces ()
face_const_iterator end_faces () const
FaceCellget_any_face ()
const FaceCellget_any_face () const

Private Member Functions

 EdgeCell (const EdgeCell &o)
EdgeCelloperator= (const EdgeCell &o)

Private Attributes

PersistantArray< VertexCell *, 2 > vertices_
PersistantArray< FaceCell *, 2 > faces_

Detailed Description

The model for all Edges of a CellComplex.

The EdgeCell keeps track of which VertexCells are sub-cells of this EdgeCell, and which FaceCells, have this EdgeCell as a sub-cell. In the case of a self-loop we store the single VeretexCell twice.

Definition at line 177 of file cell.h.


Member Typedef Documentation

typedef PersistantArray<VertexCell*,2>::iterator EdgeCell::vertex_iterator

Definition at line 196 of file cell.h.

typedef PersistantArray<VertexCell*,2>::const_iterator EdgeCell::vertex_const_iterator

Definition at line 197 of file cell.h.

typedef PersistantArray<FaceCell*,2>::iterator EdgeCell::face_iterator

Definition at line 198 of file cell.h.

typedef PersistantArray<FaceCell*,2>::const_iterator EdgeCell::face_const_iterator

Definition at line 199 of file cell.h.


Constructor & Destructor Documentation

EdgeCell::EdgeCell ( PersistantStore ,
VertexCell v1,
VertexCell v2 
)

Generate an empty EdgeCell.

Definition at line 161 of file cell.C.

References PersistantArray< Datum, N >::access(), faces_, and vertices_.

Here is the call graph for this function:

virtual EdgeCell::~EdgeCell (  )  [inline, virtual]

Definition at line 187 of file cell.h.

EdgeCell::EdgeCell ( const EdgeCell o  )  [private]


Member Function Documentation

void EdgeCell::add_face ( FaceCell f  ) 

Add FaceCell to the face set.

Since it is only possible for an EdgeCell to be a sub-simplex of two unique FaceCells, fail, if there are already two unique faces. Also fail if FaceCell is already in face set.

Parameters:
f The FaceCell to add
Returns:
true if addition is successfull, false otherwise

Definition at line 179 of file cell.C.

References PersistantArray< Datum, N >::access(), faces_, has_face(), and num_faces().

Here is the call graph for this function:

void EdgeCell::delete_face ( FaceCell f  ) 

Remove FaceCell from the face set.

Parameters:
f The FaceCell to remove from the face set
Returns:
true is FaceCell removal successful, false if FaceCell not found in face set

Definition at line 197 of file cell.C.

References PersistantArray< Datum, N >::access(), and faces_.

Here is the call graph for this function:

bool EdgeCell::has_vertex ( const VertexCell v  )  const

Check if this EdgeCell has given VertexCell as a sub-cell.

Definition at line 212 of file cell.C.

References vertices_.

bool EdgeCell::has_face ( const FaceCell f  )  const

Check if this EdgeCell is a sub-cell of given FaceCell.

Definition at line 219 of file cell.C.

References faces_.

Referenced by add_face(), and BezierMesh::orient_edge_triangle().

int EdgeCell::num_faces (  )  const

Get number of faces with this edge as a sub-cell.

Definition at line 226 of file cell.C.

References faces_.

Referenced by add_face(), Visualization::draw_smooth_debug(), end_faces(), BezierMesh::flip(), BezierMesh::function_angle(), BezierMesh::locate_point_in_linear_mesh(), BezierMesh::protect_boundarys(), BezierMesh::remove_vertex(), BezierMesh::replace_control_point(), BezierMesh::should_flip(), BezierMesh::should_refine_func_angle(), and BezierMesh::smooth_edge().

vertex_iterator EdgeCell::begin_vertices (  )  [inline]

Definition at line 201 of file cell.h.

References vertices_.

Referenced by BoundaryEdge::get_d0_vertex(), and operator<<().

vertex_const_iterator EdgeCell::begin_vertices (  )  const [inline]

Definition at line 202 of file cell.h.

References vertices_.

vertex_iterator EdgeCell::end_vertices (  )  [inline]

Definition at line 204 of file cell.h.

References vertices_.

Referenced by BoundaryEdge::get_d0_vertex(), and operator<<().

vertex_const_iterator EdgeCell::end_vertices (  )  const [inline]

Definition at line 205 of file cell.h.

References vertices_.

VertexCell * EdgeCell::get_canon_vertex (  ) 

Definition at line 234 of file cell.C.

References vertices_.

Referenced by BezierMesh::remove_vertex().

const VertexCell * EdgeCell::get_canon_vertex (  )  const

Definition at line 240 of file cell.C.

References vertices_.

VertexCell* EdgeCell::get_vertex ( int  i  )  [inline]

Reimplemented in BoundaryEdge, and BezierEdge.

Definition at line 211 of file cell.h.

References vertices_.

Referenced by BezierEdge::get_vertex(), and BoundaryEdge::get_vertex().

const VertexCell* EdgeCell::get_vertex ( int  i  )  const [inline]

Reimplemented in BoundaryEdge, and BezierEdge.

Definition at line 215 of file cell.h.

References vertices_.

face_iterator EdgeCell::begin_faces (  )  [inline]

Definition at line 220 of file cell.h.

References faces_.

Referenced by BezierMesh::clean_insert_edge_midpoint(), Visualization::draw_smooth_debug(), BezierMesh::function_angle(), BezierMesh::function_angle_refine(), operator<<(), BezierMesh::should_refine_func_angle(), and BezierMesh::smooth_edge().

face_const_iterator EdgeCell::begin_faces (  )  const [inline]

Definition at line 221 of file cell.h.

References faces_.

face_iterator EdgeCell::end_faces (  )  [inline]

Definition at line 223 of file cell.h.

References faces_, and num_faces().

Referenced by BezierMesh::clean_insert_edge_midpoint(), BezierMesh::function_angle_refine(), operator<<(), and BezierMesh::should_refine_func_angle().

Here is the call graph for this function:

face_const_iterator EdgeCell::end_faces (  )  const [inline]

Definition at line 224 of file cell.h.

References faces_, and num_faces().

Here is the call graph for this function:

FaceCell * EdgeCell::get_any_face (  ) 

Definition at line 246 of file cell.C.

References faces_.

const FaceCell * EdgeCell::get_any_face (  )  const

Definition at line 252 of file cell.C.

References faces_.

EdgeCell& EdgeCell::operator= ( const EdgeCell o  )  [private]


Member Data Documentation

PersistantArray<VertexCell*, 2> EdgeCell::vertices_ [private]

Definition at line 179 of file cell.h.

Referenced by begin_vertices(), EdgeCell(), end_vertices(), get_canon_vertex(), get_vertex(), and has_vertex().

PersistantArray<FaceCell*, 2> EdgeCell::faces_ [private]

Definition at line 180 of file cell.h.

Referenced by add_face(), begin_faces(), delete_face(), EdgeCell(), end_faces(), get_any_face(), has_face(), and num_faces().


The documentation for this class was generated from the following files:
Generated on Mon May 24 09:53:33 2010 for TUMBLE by  doxygen 1.5.2