Go to Overview over all GrAL packages.
Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Complex2D Class Reference

General 2D grid class. More...

#include <complex2d.h>

Inheritance diagram for Complex2D:

Inheritance graph
[legend]
Collaboration diagram for Complex2D:

Collaboration graph
[legend]
List of all members.

Public Types

typedef Vertex2D_Iterator VertexIterator
typedef Edge2D_Iterator EdgeIterator
typedef Edge2D_Iterator FacetIterator
typedef Cell2D_Iterator CellIterator
typedef BoundaryFacet2D_Iterator BoundaryFacetIterator
typedef BoundaryComponent_Vertex2D_Iterator BoundaryVertexIterator
typedef vertex_base::CoordType CoordType

Public Methods

Constructors
 Complex2D ()
 Complex2D (const Complex2D &rhs)
Complex2D & operator= (const Complex2D &rhs)
 ~Complex2D ()
STL half-open ranges
VertexIterator FirstVertex () const
VertexIterator EndVertex () const
EdgeIterator FirstEdge () const
EdgeIterator EndEdge () const
FacetIterator FirstFacet () const
FacetIterator EndFacet () const
CellIterator FirstCell () const
CellIterator EndCell () const
switch operations
void switch_vertex (Vertex &v, Edge const &e) const
void switch_edge (Vertex const &v, Edge &e, Cell const &c) const
void switch_facet (Vertex const &v, Edge &e, Cell const &c) const
void switch_cell (Edge const &e, Cell &c) const
Vertex switched_vertex (Vertex const &v, Edge const &e) const
Edge switched_edge (Vertex const &v, Edge const &e, Cell const &c) const
Facet switched_facet (Vertex const &v, Edge const &e, Cell const &c) const
Cell switched_cell (Edge const &e, Cell const &c) const
Boundary iteration
BoundaryFacetIterator FirstBoundaryFacet () const
BoundaryFacetIterator FirstBoundaryEdge () const
BoundaryVertexIterator FirstBoundaryVertex () const
int NumOfBoundaryVertices () const
int NumOfBoundaryFacets () const
int NumOfBoundaryComponents () const
Size information
int NumOfVertices () const
int NumOfEdges () const
int NumOfFacets () const
int NumOfFaces () const
int NumOfCells () const
Boundary predicates
cell_handle outer_cell_handle () const
 invalid cell_handle for marking "outside". More...

bool IsOnBoundary (EdgeOnCellIterator const &e) const
bool IsOnBoundary (Edge const &e) const
bool IsInside (cell_handle c) const
bool IsInside (const Cell &c) const
geometry
Todo:
: Remove this functionality (It's the job of geometry classes).


const CoordTypeCoord (const Vertex &v) const
CoordTypeCoord (const Vertex &v)
Element <-> Handle conversion
cell_handle handle (Cell const &C) const
cell_handle handle (CellIterator const &c) const
cell_handle handle (CellNeighbourIterator const &c) const
vertex_handle handle (Vertex const &V) const
vertex_handle handle (VertexIterator const &v) const
vertex_handle handle (VertexOnCellIterator const &v) const
bool is_valid_vertex (vertex_handle v) const
bool is_valid_cell (cell_handle c) const
edge_handle handle (const Edge &E) const
Vertex vertex (const vertex_handle &v) const
Cell cell (const cell_handle &c) const
Edge edge (const edge_handle &e) const
Edge facet (const edge_handle &e) const

Public Attributes

cell_list_complex2d _cells
vertex_list_complex2d _vertices
boundary_facet_list _boundary

Friends

class friend_for_input
class Vertex2D
class Edge2D
class Cell2D
class VertexOnCell2D_Iterator
class EdgeOnCell2D_Iterator
class BoundaryFacet2D_Iterator
class CellOnCell2D_Iterator
class CellOnVertex2D_Iterator
class Vertex2D_Iterator
class Edge2D_Iterator
class Cell2D_Iterator

Detailed Description

General 2D grid class.

An object of type Complex2D can represent a general two-dimensional grid of homogeneous dimension. The cells can be arbitrary simple polygons. The vertex sets of facets must be unique, else the facet-cell incidence relation will not be calculated correctly.

Complex2D is a model of Grid-With-Boundary, VertexRange, EdgeRange, FacetRange, and CellRange.

Its Cell type (Cell2D) is a model of VertexRange, EdgeRange, and CellRange. That is, there are types for the GridIncidenceIterator's VertexOnCellIterator (model of VertexOnCellIterator), EdgeOnCellIterator (model of EdgeOnCellIterator), and CellOnCellIterator (model of CellOnCellIterator).

Its Vertex type (Vertex2D) is a model of CellRange. That is, there is a type CellOnVertexIterator (model of CellOnVertexIterator).

Its Edge type (Edge2D) is a model of VertexRange and CellRange. That is, there are types VertexOnEdgeIterator and CellOnEdgeIterator.

Its Facet type is a typedef to its Edge type.

Definition at line 249 of file complex2d.h.


Member Typedef Documentation

typedef Vertex2D_Iterator Complex2D::VertexIterator
 

Definition at line 265 of file complex2d.h.

Referenced by EndVertex, and FirstVertex.

typedef Edge2D_Iterator Complex2D::EdgeIterator
 

Definition at line 266 of file complex2d.h.

Referenced by EndEdge, EndFacet, FirstEdge, and FirstFacet.

typedef Edge2D_Iterator Complex2D::FacetIterator
 

Definition at line 267 of file complex2d.h.

typedef Cell2D_Iterator Complex2D::CellIterator
 

Definition at line 268 of file complex2d.h.

Referenced by EndCell, and FirstCell.

typedef BoundaryFacet2D_Iterator Complex2D::BoundaryFacetIterator
 

Definition at line 270 of file complex2d.h.

Referenced by FirstBoundaryEdge, FirstBoundaryFacet, and grid_types< Complex2D >::hash.

typedef BoundaryComponent_Vertex2D_Iterator Complex2D::BoundaryVertexIterator
 

Definition at line 271 of file complex2d.h.

Referenced by FirstBoundaryVertex, and grid_types< Complex2D >::hash.

typedef vertex_base::CoordType Complex2D::CoordType
 

Definition at line 273 of file complex2d.h.

Referenced by friend_for_input::_vertices, Complex2D, and Coord.


Constructor & Destructor Documentation

Complex2D::Complex2D   [inline]
 

Definition at line 277 of file complex2d.h.

References CoordType, and vertex_base::CoordType.

Complex2D::Complex2D const Complex2D &    rhs
 

Definition at line 20 of file complex2d.C.

References ConstructGrid.

Complex2D::~Complex2D  
 

Definition at line 36 of file complex2d.C.


Member Function Documentation

Complex2D & Complex2D::operator= const Complex2D &    rhs
 

Definition at line 26 of file complex2d.C.

References ConstructGrid.

Complex2D::VertexIterator Complex2D::FirstVertex   const [inline]
 

Definition at line 62 of file complex2d.C.

References VertexIterator.

Referenced by TestComplex2D::test_complex2d_iterators, and Vertex2D::Vertex2D.

Complex2D::VertexIterator Complex2D::EndVertex   const [inline]
 

Definition at line 65 of file complex2d.C.

References NumOfVertices, and VertexIterator.

Complex2D::EdgeIterator Complex2D::FirstEdge   const [inline]
 

Definition at line 69 of file complex2d.C.

References EdgeIterator, complex2d_types::EdgeOnCellIterator, FirstCell, and Cell2D_Iterator::IsDone.

Referenced by Edge2D::Edge2D, FirstFacet, and TestComplex2D::test_complex2d_iterators.

Complex2D::EdgeIterator Complex2D::EndEdge   const [inline]
 

Definition at line 77 of file complex2d.C.

References EdgeIterator, complex2d_types::EdgeOnCellIterator, and EndCell.

Referenced by EndFacet.

Complex2D::EdgeIterator Complex2D::FirstFacet   const [inline]
 

Definition at line 80 of file complex2d.C.

References EdgeIterator, and FirstEdge.

Complex2D::EdgeIterator Complex2D::EndFacet   const [inline]
 

Definition at line 82 of file complex2d.C.

References EdgeIterator, and EndEdge.

Complex2D::CellIterator Complex2D::FirstCell   const [inline]
 

Definition at line 139 of file complex2d.C.

References CellIterator.

Referenced by Cell2D::Cell2D, FirstEdge, and TestComplex2D::test_complex2d_iterators.

Complex2D::CellIterator Complex2D::EndCell   const [inline]
 

Definition at line 141 of file complex2d.C.

References CellIterator, and NumOfCells.

Referenced by EndEdge.

void Complex2D::switch_vertex Vertex   v,
Edge const &    e
const [inline]
 

Definition at line 85 of file complex2d.C.

References complex2d_types::Edge, and complex2d_types::Vertex.

Referenced by switched_vertex.

void Complex2D::switch_edge Vertex const &    v,
Edge   e,
Cell const &    c
const [inline]
 

Definition at line 89 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, and complex2d_types::Vertex.

Referenced by switch_facet, switched_edge, and switched_facet.

void Complex2D::switch_facet Vertex const &    v,
Edge   e,
Cell const &    c
const [inline]
 

Definition at line 304 of file complex2d.h.

References complex2d_types::Cell, complex2d_types::Edge, switch_edge, and complex2d_types::Vertex.

void Complex2D::switch_cell Edge const &    e,
Cell   c
const [inline]
 

Definition at line 95 of file complex2d.C.

References complex2d_types::Cell, and complex2d_types::Edge.

Referenced by switched_cell.

Complex2D::Vertex Complex2D::switched_vertex Vertex const &    v,
Edge const &    e
const [inline]
 

Definition at line 100 of file complex2d.C.

References complex2d_types::Edge, switch_vertex, and complex2d_types::Vertex.

Complex2D::Edge Complex2D::switched_edge Vertex const &    v,
Edge const &    e,
Cell const &    c
const [inline]
 

Definition at line 105 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, switch_edge, and complex2d_types::Vertex.

Complex2D::Facet Complex2D::switched_facet Vertex const &    v,
Edge const &    e,
Cell const &    c
const [inline]
 

Definition at line 111 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, switch_edge, and complex2d_types::Vertex.

Complex2D::Cell Complex2D::switched_cell Edge const &    e,
Cell const &    c
const [inline]
 

Definition at line 117 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, and switch_cell.

Complex2D::BoundaryFacetIterator Complex2D::FirstBoundaryFacet   const [inline]
 

Definition at line 122 of file complex2d.C.

References _boundary, and BoundaryFacetIterator.

Referenced by FirstBoundaryVertex, and TestComplex2D::test_complex2d_iterators.

Complex2D::BoundaryFacetIterator Complex2D::FirstBoundaryEdge   const [inline]
 

Definition at line 125 of file complex2d.C.

References BoundaryFacetIterator.

Complex2D::BoundaryVertexIterator Complex2D::FirstBoundaryVertex   const [inline]
 

Definition at line 128 of file complex2d.C.

References BoundaryVertexIterator, FirstBoundaryFacet, and BoundaryFacet2D_Iterator::IsDone.

int Complex2D::NumOfBoundaryVertices   const [inline]
 

Definition at line 323 of file complex2d.h.

int Complex2D::NumOfBoundaryFacets   const [inline]
 

Definition at line 324 of file complex2d.h.

Referenced by NumOfEdges.

int Complex2D::NumOfBoundaryComponents   const [inline]
 

Definition at line 331 of file complex2d.h.

References _boundary.

int Complex2D::NumOfVertices   const [inline]
 

Definition at line 337 of file complex2d.h.

Referenced by EndVertex, and TestComplex2D::test_complex2d_iterators.

int Complex2D::NumOfEdges   const [inline]
 

Definition at line 338 of file complex2d.h.

References NumOfBoundaryFacets.

int Complex2D::NumOfFacets   const [inline]
 

Definition at line 340 of file complex2d.h.

int Complex2D::NumOfFaces   const [inline]
 

Definition at line 341 of file complex2d.h.

int Complex2D::NumOfCells   const [inline]
 

Definition at line 342 of file complex2d.h.

References _vertices.

Referenced by EndCell, outer_cell_handle, and TestComplex2D::test_complex2d_iterators.

cell_handle Complex2D::outer_cell_handle   const [inline]
 

invalid cell_handle for marking "outside".

Definition at line 348 of file complex2d.h.

References NumOfCells.

Referenced by IsInside.

bool Complex2D::IsOnBoundary EdgeOnCellIterator const &    e const [inline]
 

Referenced by CellOnCell2D_Iterator::CyclicPred, CellOnCell2D_Iterator::CyclicSucc, and CellOnCell2D_Iterator::operator--.

bool Complex2D::IsOnBoundary Edge const &    e const [inline]
 

bool Complex2D::IsInside cell_handle    c const [inline]
 

Definition at line 354 of file complex2d.h.

Referenced by TestComplex2D::test_complex2d_iterators.

bool Complex2D::IsInside const Cell   c const [inline]
 

Definition at line 355 of file complex2d.h.

References complex2d_types::cell_handle, complex2d_types::Edge, complex2d_types::EdgeOnCellIterator, and outer_cell_handle.

const Complex2D::CoordType & Complex2D::Coord const Vertex   v const [inline]
 

Definition at line 177 of file complex2d.C.

References _vertices, CoordType, and complex2d_types::Vertex.

Referenced by friend_for_input::add_cell_on_vertex, and stored_geometry_complex2D_base::coord.

Complex2D::CoordType & Complex2D::Coord const Vertex   v [inline]
 

Definition at line 180 of file complex2d.C.

References _vertices, CoordType, and complex2d_types::Vertex.

cell_handle Complex2D::handle Cell const &    C const [inline]
 

cell_handle Complex2D::handle CellIterator const &    c const [inline]
 

cell_handle Complex2D::handle CellNeighbourIterator const &    c const [inline]
 

vertex_handle Complex2D::handle Vertex const &    V const [inline]
 

vertex_handle Complex2D::handle VertexIterator const &    v const [inline]
 

vertex_handle Complex2D::handle VertexOnCellIterator const &    v const [inline]
 

bool Complex2D::is_valid_vertex vertex_handle    v const [inline]
 

Definition at line 413 of file complex2d.h.

References complex2d_types::cell_handle.

bool Complex2D::is_valid_cell cell_handle    c const [inline]
 

Definition at line 414 of file complex2d.h.

References complex2d_types::cell_handle, complex2d_types::CellNeighbourIterator, complex2d_types::Vertex, complex2d_types::vertex_handle, and complex2d_types::VertexOnCellIterator.

edge_handle Complex2D::handle const Edge   E const [inline]
 

Vertex Complex2D::vertex const vertex_handle   v const [inline]
 

Definition at line 420 of file complex2d.h.

References _vertices, and complex2d_types::vertex_handle.

Cell Complex2D::cell const cell_handle   c const [inline]
 

Definition at line 421 of file complex2d.h.

References _cells, and complex2d_types::cell_handle.

Edge2D Complex2D::edge const edge_handle   e const [inline]
 

Definition at line 34 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, complex2d_types::edge_handle, and complex2d_types::EdgeOnCellIterator.

Referenced by Edge2D::Edge2D.

Edge2D Complex2D::facet const edge_handle   e const [inline]
 

Definition at line 37 of file complex2d.C.

References complex2d_types::Cell, complex2d_types::Edge, complex2d_types::edge_handle, and complex2d_types::EdgeOnCellIterator.


Friends And Related Function Documentation

friend class friend_for_input [friend]
 

Definition at line 367 of file complex2d.h.

friend class Vertex2D [friend]
 

Definition at line 368 of file complex2d.h.

friend class Edge2D [friend]
 

Definition at line 369 of file complex2d.h.

friend class Cell2D [friend]
 

Definition at line 370 of file complex2d.h.

friend class VertexOnCell2D_Iterator [friend]
 

Definition at line 372 of file complex2d.h.

friend class EdgeOnCell2D_Iterator [friend]
 

Definition at line 373 of file complex2d.h.

friend class BoundaryFacet2D_Iterator [friend]
 

Definition at line 374 of file complex2d.h.

friend class CellOnCell2D_Iterator [friend]
 

Definition at line 375 of file complex2d.h.

friend class CellOnVertex2D_Iterator [friend]
 

Definition at line 376 of file complex2d.h.

friend class Vertex2D_Iterator [friend]
 

Definition at line 378 of file complex2d.h.

friend class Edge2D_Iterator [friend]
 

Definition at line 379 of file complex2d.h.

friend class Cell2D_Iterator [friend]
 

Definition at line 380 of file complex2d.h.


Member Data Documentation

cell_list_complex2d Complex2D::_cells
 

Definition at line 257 of file complex2d.h.

Referenced by cell.

vertex_list_complex2d Complex2D::_vertices
 

Definition at line 258 of file complex2d.h.

Referenced by friend_for_input::_new_vertex, Coord, NumOfCells, and vertex.

boundary_facet_list Complex2D::_boundary
 

Definition at line 259 of file complex2d.h.

Referenced by friend_for_input::_new_cell, FirstBoundaryFacet, BoundaryFacet2D_Iterator::IsDone, and NumOfBoundaryComponents.


The documentation for this class was generated from the following files:
Copyright (c) Guntram Berti 1997-2002. See the GrAL Homepage for up-to-date information.

Generated at Tue Feb 26 16:06:59 2002 for GrAL Complex2D by doxygen 1.2.11-20011104 written by Dimitri van Heesch, © 1997-2000