Class documentation of Concepts

Loading...
Searching...
No Matches

#include <topology.hh>

Inheritance diagram for concepts::Quad:
concepts::Connector2 concepts::Connector concepts::OutputOperator

Public Member Functions

 Quad (Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3, const Attribute attrib=Attribute())
 
 Quad (const Quad &quad, uint i)
 
virtual ~Quad ()
 Destructor.
 
virtual Quadchild (uint i, bool mode=0)
 
virtual const Quadchild (uint i) const
 
Edgeedge (uint i) const
 
Vertexvertex (uint i) const
 
int numVertices () const
 
int numEdges () const
 
Z2 rho (int i) const
 
bool regular () const
 
Quadclone (Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3) const
 
void setStrategy (const QuadSubdivision *strategy=0)
 
const QuadSubdivisiongetStrategy () const
 
int operator== (const Connector &cntr) const
 Comparison operator.
 
const Keykey () const
 Returns the key of the connector.
 
const Attributeattrib () const
 Returns the attribute of the connector.
 
void setAttrib (uint attrb)
 
int related (const Connector &conn) const
 

Protected Member Functions

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()
 
Scan< Quad > * children_ () const
 Scanner over the children.
 
void edgeAssertion_ () const
 Assert, that the vertices of the four edges match properly.
 

Protected Attributes

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

Static Protected Attributes

static std::map< Key, Z2rhoTriv_
 orientation of trivial edges (with idential vertices)
 
static uint cnt_
 

Friends

class QuadSubdiv4
 
class QuadSubdiv2H
 
class QuadSubdiv2V
 

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 272 of file topology.hh.

Constructor & Destructor Documentation

◆ Quad() [1/2]

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

◆ Quad() [2/2]

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

Member Function Documentation

◆ attrib()

const Attribute & concepts::Connector::attrib ( ) const
inlineinherited

Returns the attribute of the connector.

Definition at line 108 of file connector.hh.

◆ child() [1/2]

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

Implements concepts::Connector2.

◆ child() [2/2]

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.

◆ children_()

Scan< Quad > * concepts::Quad::children_ ( ) const
inlineprotected

Scanner over the children.

Definition at line 388 of file topology.hh.

◆ clone()

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 396 of file topology.hh.

◆ edge()

Edge * concepts::Quad::edge ( uint  i) const
inlinevirtual

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 316 of file topology.hh.

◆ getStrategy()

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 361 of file topology.hh.

◆ info()

virtual std::ostream & concepts::Quad::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::Connector.

◆ key()

const Key & concepts::Connector::key ( ) const
inlineinherited

Returns the key of the connector.

Definition at line 105 of file connector.hh.

◆ numEdges()

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

Definition at line 323 of file topology.hh.

◆ numVertices()

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

Definition at line 319 of file topology.hh.

◆ operator==()

int concepts::Connector::operator== ( const Connector cntr) const
inlineinherited

Comparison operator.

Definition at line 102 of file connector.hh.

◆ regular()

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

Definition at line 336 of file topology.hh.

◆ related()

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

◆ rho()

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 334 of file topology.hh.

◆ setAttrib()

void concepts::Connector::setAttrib ( uint  attrb)
inlineinherited

Definition at line 111 of file connector.hh.

◆ setStrategy()

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

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()

Vertex * concepts::Quad::vertex ( uint  i) const
inlinevirtual

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 317 of file topology.hh.

Friends And Related Symbol Documentation

◆ QuadSubdiv2H

Definition at line 274 of file topology.hh.

◆ QuadSubdiv2V

Definition at line 275 of file topology.hh.

◆ QuadSubdiv4

Definition at line 273 of file topology.hh.

Member Data Documentation

◆ attrib_

Attribute concepts::Connector::attrib_
protectedinherited

Attribute.

Definition at line 132 of file connector.hh.

◆ chld_

concepts::Joiner<Quad*, 1>* concepts::Quad::chld_
protected

List of Pointers to the children.

Definition at line 370 of file topology.hh.

◆ cnt_

uint concepts::Connector2::cnt_
staticprotectedinherited

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

Definition at line 263 of file connector.hh.

◆ edg_

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

Array of the edges.

Definition at line 376 of file topology.hh.

◆ key_

Key concepts::Connector::key_
protectedinherited

Unique key of the connector.

Definition at line 129 of file connector.hh.

◆ regular_

bool concepts::Quad::regular_
protected

Regular Cell, deleting of children possible.

Definition at line 373 of file topology.hh.

◆ rho_

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

Array of the orientation flags for the edges.

Definition at line 379 of file topology.hh.

◆ rhoTriv_

std::map<Key, Z2> concepts::Quad::rhoTriv_
staticprotected

orientation of trivial edges (with idential vertices)

Definition at line 382 of file topology.hh.

◆ subdivStrategy_

const QuadSubdivision* concepts::Quad::subdivStrategy_
protected

Subdivision strategy for the quadrilateral.

Definition at line 385 of file topology.hh.


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