Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
concepts::Quad Class Reference

A quadrilateral in the topology. More...

#include <topology.hh>

Inheritance diagram for concepts::Quad:
Inheritance graph
[legend]
Collaboration diagram for concepts::Quad:
Collaboration graph
[legend]

List of all members.

Public Member Functions

const Attributeattrib () const
 Returns the attribute of the connector.
virtual Quadchild (uint i, bool mode=0)
 Returns a child.
virtual const Quadchild (uint i) const
Quadclone (Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3) const
 Returns the pointer of a new Quad with the same attribute, the same key and the same rho but NO children and sibling.
Edgeedge (uint i) const
 Returns a 1D component: edge.
const QuadSubdivisiongetStrategy () const
 Returns the subdivision strategy of this quad.
const Keykey () const
 Returns the key of the connector.
int numEdges () const
int numVertices () const
int operator== (const Connector &cntr) const
 Comparison operator.
 Quad (const Quad &quad, uint i)
 Creating of intermediate cells through coalescing of two of the four childs (only for subdivision in four quadrilaterials)
 Quad (Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3, const Attribute attrib=Attribute())
 Constructor.
bool regular () const
int related (const Connector &conn) const
 Checks if this connector is related to conn.
Z2 rho (int i) const
 Returns the orientation of an edge.
void setStrategy (const QuadSubdivision *strategy=0) throw (StrategyChange)
 Sets the subdivision strategy of this quad.
Vertexvertex (uint i) const
 Returns a 0D component: vertex A 2D element consists of 1D and 0D elements, the vertices can be queried here.
virtual ~Quad ()
 Destructor.

Protected Member Functions

Scan< Quad > * children_ () const
 Scanner over the children.
void edgeAssertion_ () const
 Assert, that the vertices of the four edges match properly.
virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 Quad (Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3, const Attribute attrib, const Key &key, const Z2 rho[])
 Constructor used by clone()

Protected Attributes

Attribute attrib_
 Attribute.
concepts::Joiner< Quad *, 1 > * chld_
 List of Pointers to the children.
Edgeedg_ [4]
 Array of the edges.
Key key_
 Unique key of the connector.
bool regular_
 Regular Cell, deleting of children possible.
Z2 rho_ [4]
 Array of the orientation flags for the edges.
const QuadSubdivisionsubdivStrategy_
 Subdivision strategy for the quadrilateral.

Static Protected Attributes

static uint cnt_
 Counter for the connectors.
static std::map< Key, Z2rhoTriv_
 orientation of trivial edges (with idential vertices)

Friends

class QuadSubdiv2H
class QuadSubdiv2V
class QuadSubdiv4

Detailed Description

A quadrilateral in the topology.

Implements the abstract methods from the parent classes to query the children, the vertices and the edges of the quadrilateral.

Every edge can have two different orientations in the quadrilateral, this orientation is stored in the array rho.

Examples:

meshes.cc.

Definition at line 267 of file topology.hh.


Constructor & Destructor Documentation

concepts::Quad::Quad ( Edge edg0,
Edge edg1,
Edge edg2,
Edge edg3,
const Attribute  attrib = Attribute() 
)

Constructor.

Creates a quadrilateral out of four edges. The edges must form a quadrilateral: the 1st and the 2nd edge, the 2nd and the 3rd edge, the 3rd and the 4th edge and the 4th and the 1st edge must have a common vertex. The edges can have an arbitrary orientation. The orientation is detected and stored in rho_.

Parameters:
edg01st edge.
edg12nd edge.
edg23rd edge.
edg34th edge.
attribAttribute of the edge
concepts::Quad::Quad ( const Quad quad,
uint  i 
)

Creating of intermediate cells through coalescing of two of the four childs (only for subdivision in four quadrilaterials)

New cell is not regular, children are not deleted in its destructor

virtual concepts::Quad::~Quad ( ) [virtual]

Destructor.

concepts::Quad::Quad ( Edge edg0,
Edge edg1,
Edge edg2,
Edge edg3,
const Attribute  attrib,
const Key key,
const Z2  rho[] 
) [protected]

Constructor used by clone()


Member Function Documentation

const Attribute& concepts::Connector::attrib ( ) const [inline, inherited]

Returns the attribute of the connector.

Definition at line 104 of file connector.hh.

virtual Quad* concepts::Quad::child ( uint  i,
bool  mode = 0 
) [virtual]

Returns a child.

If children are created, four new children are created (with the same attributes as this one). All edges of the quadrilateral are refined and four new edges introduced.

Parameters:
iIndex of the child to be returned.
modemode = 1: No children are created
mode = 0: If no childs exist, four new children are created. setStrategy() is called before creating the children.

Implements concepts::Connector2.

virtual const Quad* concepts::Quad::child ( uint  i) const [virtual]

Implements concepts::Connector2.

Scan<Quad>* concepts::Quad::children_ ( ) const [inline, protected]

Scanner over the children.

Definition at line 385 of file topology.hh.

Quad * concepts::Quad::clone ( Edge edg0,
Edge edg1,
Edge edg2,
Edge edg3 
) const [inline]

Returns the pointer of a new Quad with the same attribute, the same key and the same rho but NO children and sibling.

Definition at line 393 of file topology.hh.

Here is the call graph for this function:

Edge* concepts::Quad::edge ( uint  i) const [inline, virtual]

Returns a 1D component: edge.

A 2D element consists of 1D and 0D elements, the edges can be queried here.

Parameters:
iIndex of the edge

Implements concepts::Connector2.

Definition at line 312 of file topology.hh.

void concepts::Quad::edgeAssertion_ ( ) const [protected]

Assert, that the vertices of the four edges match properly.

const QuadSubdivision* concepts::Quad::getStrategy ( ) const [inline]

Returns the subdivision strategy of this quad.

If you want to find check against another strategy use

quad.getStrategy() == QuadSubdiv2V::instance()

Definition at line 358 of file topology.hh.

virtual std::ostream& concepts::Quad::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::Connector.

const Key& concepts::Connector::key ( ) const [inline, inherited]

Returns the key of the connector.

Definition at line 101 of file connector.hh.

int concepts::Quad::numEdges ( ) const [inline]

Definition at line 319 of file topology.hh.

int concepts::Quad::numVertices ( ) const [inline]

Definition at line 315 of file topology.hh.

int concepts::Connector::operator== ( const Connector cntr) const [inline, inherited]

Comparison operator.

Definition at line 98 of file connector.hh.

bool concepts::Quad::regular ( ) const [inline]

Definition at line 332 of file topology.hh.

int concepts::Connector::related ( const Connector conn) const [inherited]

Checks if this connector is related to conn.

It is being checked if one of the two is an ancestor of the other.

Parameters:
connOther connector
Returns:
An integer i.
i=0 if there is no relationship or the connectors are identical
i>0 if conn is an ancestor of this connector
i<0 if conn is a descendant of this connector
|i| gives the number of generations between the connectors
Z2 concepts::Quad::rho ( int  i) const [inline]

Returns the orientation of an edge.

rho = 0 : Edge is oriented counter-clockwise in the quadrilateral. rho = 1 : Edge is oriented clockwise in the quadrilateral.

Parameters:
iIndex of the edge.

Definition at line 330 of file topology.hh.

void concepts::Quad::setStrategy ( const QuadSubdivision strategy = 0) throw (StrategyChange)

Sets the subdivision strategy of this quad.

If the parameter is set to 0 (or if the method is called without parameter) the strategy is set to the default (if not already set). The default subdivision strategy is subdivision into 4 children.

Parameters:
strategyPointer to an instance of a subdivision strategy.
Exceptions:
StrategyChangeif the change is not allowed (the change is not allowed if there are children present)
Vertex* concepts::Quad::vertex ( uint  i) const [inline, virtual]

Returns a 0D component: vertex A 2D element consists of 1D and 0D elements, the vertices can be queried here.

Parameters:
iIndex of the vertex

Implements concepts::Connector2.

Definition at line 313 of file topology.hh.

Here is the call graph for this function:


Friends And Related Function Documentation

friend class QuadSubdiv2H [friend]

Definition at line 269 of file topology.hh.

friend class QuadSubdiv2V [friend]

Definition at line 270 of file topology.hh.

friend class QuadSubdiv4 [friend]

Definition at line 268 of file topology.hh.


Member Data Documentation

Attribute concepts::Connector::attrib_ [protected, inherited]

Attribute.

Definition at line 123 of file connector.hh.

List of Pointers to the children.

Definition at line 367 of file topology.hh.

uint concepts::Connector2::cnt_ [static, protected, inherited]

Counter for the connectors.

This counter is used to create the unique key of the connector.

Definition at line 249 of file connector.hh.

Edge* concepts::Quad::edg_[4] [protected]

Array of the edges.

Definition at line 373 of file topology.hh.

Key concepts::Connector::key_ [protected, inherited]

Unique key of the connector.

Definition at line 120 of file connector.hh.

bool concepts::Quad::regular_ [protected]

Regular Cell, deleting of children possible.

Definition at line 370 of file topology.hh.

Z2 concepts::Quad::rho_[4] [protected]

Array of the orientation flags for the edges.

Definition at line 376 of file topology.hh.

std::map<Key, Z2> concepts::Quad::rhoTriv_ [static, protected]

orientation of trivial edges (with idential vertices)

Definition at line 379 of file topology.hh.

Subdivision strategy for the quadrilateral.

Definition at line 382 of file topology.hh.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)