internal::GridReordering3d::Orienter Class Reference

List of all members.

Static Public Member Functions

static bool orient_mesh (std::vector< CellData< 3 > > &incubes)

Private Member Functions

 Orienter (const std::vector< CellData< 3 > > &incubes)
bool orient_edges ()
void orient_cubes ()
bool get_next_unoriented_cube ()
bool is_oriented (const unsigned int cell_num) const
bool orient_edges_in_current_cube ()
bool orient_edge_set_in_current_cube (const unsigned int edge_set)
bool orient_next_unoriented_edge ()
bool cell_is_consistent (const unsigned int cell_num) const
void get_adjacent_cubes ()
bool get_next_active_cube ()

Private Attributes

Mesh mesh
unsigned int cur_posn
unsigned int marker_cube
unsigned int cur_edge_group
std::vector< intsheet_to_process
bool edge_orient_array [12]

Detailed Description

The class that orients the edges of a triangulation in 3d. The member variables basically only store the present state of the algorithm.


Constructor & Destructor Documentation

internal::GridReordering3d::Orienter::Orienter ( const std::vector< CellData< 3 > > &  incubes  )  [private]

Constructor. Take a list of cells and set up the internal data structures of the mesh member variable.

Since it is private, the only entry point of this class is the static function orient_mesh().


Member Function Documentation

static bool internal::GridReordering3d::Orienter::orient_mesh ( std::vector< CellData< 3 > > &  incubes  )  [static]

Orient the given mesh. Creates an object of the present type and lets that toil away at the task.

This function is the single entry point to the functionality of this class.

Returns, whether a consistent orientation of lines was possible for the given mesh.

bool internal::GridReordering3d::Orienter::orient_edges (  )  [private]

Orient all the edges of a mesh.

Returns, whether this action was carried out successfully.

void internal::GridReordering3d::Orienter::orient_cubes (  )  [private]

Given oriented edges, rotate the cubes so that the edges are in standard direction.

bool internal::GridReordering3d::Orienter::get_next_unoriented_cube (  )  [private]
bool internal::GridReordering3d::Orienter::is_oriented ( const unsigned int  cell_num  )  const [private]

Return whether the cell with cell number cell_num is fully oriented.

bool internal::GridReordering3d::Orienter::orient_edges_in_current_cube (  )  [private]
bool internal::GridReordering3d::Orienter::orient_edge_set_in_current_cube ( const unsigned int  edge_set  )  [private]
bool internal::GridReordering3d::Orienter::orient_next_unoriented_edge (  )  [private]
bool internal::GridReordering3d::Orienter::cell_is_consistent ( const unsigned int  cell_num  )  const [private]

Return whether the cell is consistenty oriented at present (i.e. only considering those edges that are already oriented. This is a sanity check that should be called from inside an assert macro.

void internal::GridReordering3d::Orienter::get_adjacent_cubes (  )  [private]
bool internal::GridReordering3d::Orienter::get_next_active_cube (  )  [private]

Member Data Documentation

Internal representation of the given list of cells, including connectivity information and the like.

The cube we're looking at presently.

We have fully oriented all cubes before this one.

The index of the sheet or equivalence class we are presently processing.

Indices of the cells to be processed withing the present sheet. If a cell is being processed presently, it is taken from this list.

Which edges of the current cell have been oriented during the current iteration. Is reset when moving on to the next cube.


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

deal.II documentation generated on Mon Nov 23 22:58:23 2009 by doxygen 1.6.1