A infinite quadrilateral in the topology, which possess one Edge and two InfiniteEdges since one edge lies in the infinite. More...
#include <topology.hh>


Public Member Functions | |
| const Attribute & | attrib () const |
| Returns the attribute of the connector. | |
| virtual const Connector2 * | child (uint i) const |
| virtual Connector2 * | child (uint i, bool mode=0) |
| Returns a child. | |
| InfiniteQuad * | clone (InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2) const |
| Returns the pointer of a new Quad with the same attribute, the same key and the same rho but NO children and sibling. | |
| Connector1 * | edge (uint i) const |
| Returns a 1D component: edge. | |
| const InfQuadSubdivision * | getStrategy () const |
| Returns the subdivision strategy of this quad. | |
| InfiniteQuad (InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2, const Attribute attrib=Attribute()) | |
| Constructor. | |
| const Key & | key () const |
| Returns the key of the connector. | |
| int | numEdges () const |
| int | numVertices () const |
| int | operator== (const Connector &cntr) const |
| Comparison operator. | |
| int | related (const Connector &conn) const |
Checks if this connector is related to conn. | |
| Z2 | rho () const |
| Returns the orientation of the finite edge. | |
| void | setStrategy (const InfQuadSubdivision *strategy=0) throw (StrategyChange) |
| Sets the subdivision strategy of this quad. | |
| Vertex * | vertex (uint i) const |
| Returns a 0D component: vertex A 2D element consists of 1D and 0D elements, the vertices can be queried here. | |
| virtual | ~InfiniteQuad () |
| Destructor. | |
Protected Member Functions | |
| Scan< Connector2 > * | children_ () const |
| Scanner over the children. | |
| void | edgeAssertion_ () const |
| Assert, that the vertices of the four edges match properly. | |
| InfiniteQuad (InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2, const Attribute attrib, const Key &key, const Z2 rho) | |
| Constructor used by clone() | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Protected Attributes | |
| Attribute | attrib_ |
| Attribute. | |
| concepts::Joiner< Connector2 *, 1 > * | chld_ |
| List of Pointers to the children. | |
| Edge * | edg_ |
| Finite edge. | |
| InfiniteEdge * | infEdg_ [2] |
| Finite edge. | |
| Key | key_ |
| Unique key of the connector. | |
| Z2 | rho_ |
| Orientation flags for the finite edge. | |
| const InfQuadSubdivision * | subdivStrategy_ |
| Subdivision strategy for the quadrilateral. | |
Static Protected Attributes | |
| static uint | cnt_ |
| Counter for the connectors. | |
Friends | |
| class | InfQuadSubdiv2V |
A infinite quadrilateral in the topology, which possess one Edge and two InfiniteEdges since one edge lies in the infinite.
Implements the abstract methods from the parent classes to query the children, the vertices and the edges of the quadrilateral.
The finite edge can have two different orientations in the quadrilateral, this orientation is stored in rho.
The edges are : 0 - first infinite edge 1 - finite edge 2 - second infinite edge The vertices are : 0 - vertex of first infinite edge 1 - vertex of second infinite edge if rho == 0 0 - first vertex of finite edge 1 - second vertex of finite edge if rho == 1 vice versa
Definition at line 419 of file topology.hh.
| concepts::InfiniteQuad::InfiniteQuad | ( | InfiniteEdge & | edg0, |
| Edge & | edg1, | ||
| InfiniteEdge & | edg2, | ||
| const Attribute | attrib = Attribute() |
||
| ) |
Constructor.
Creates a quadrilateral out of three edges. The edges must form an infinite quadrilateral: the 1st and the 2nd edge, the 2nd and the 3rd edge must have a common vertex. The Edge can have an arbitrary orientation, which is detected and stored in rho_.
| edg0 | 1st edge. |
| edg1 | 2nd edge. |
| edg2 | 3rd edge. |
| attrib | Attribute of the edge |
| virtual concepts::InfiniteQuad::~InfiniteQuad | ( | ) | [virtual] |
Destructor.
| concepts::InfiniteQuad::InfiniteQuad | ( | InfiniteEdge & | edg0, |
| Edge & | edg1, | ||
| InfiniteEdge & | edg2, | ||
| const Attribute | attrib, | ||
| const Key & | key, | ||
| const Z2 | rho | ||
| ) | [protected] |
Constructor used by clone()
| const Attribute& concepts::Connector::attrib | ( | ) | const [inline, inherited] |
Returns the attribute of the connector.
Definition at line 104 of file connector.hh.
| virtual Connector2* concepts::InfiniteQuad::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.
| i | Index of the child to be returned. |
| mode | mode = 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 Connector2* concepts::InfiniteQuad::child | ( | uint | i | ) | const [virtual] |
Implements concepts::Connector2.
| Scan<Connector2>* concepts::InfiniteQuad::children_ | ( | ) | const [inline, protected] |
Scanner over the children.
Definition at line 520 of file topology.hh.
| InfiniteQuad * concepts::InfiniteQuad::clone | ( | InfiniteEdge & | edg0, |
| Edge & | edg1, | ||
| InfiniteEdge & | edg2 | ||
| ) | 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 528 of file topology.hh.

| Connector1* concepts::InfiniteQuad::edge | ( | uint | i | ) | const [virtual] |
Returns a 1D component: edge.
A 2D element consists of 1D and 0D elements, the edges can be queried here.
| i | Index of the edge |
Implements concepts::Connector2.
| void concepts::InfiniteQuad::edgeAssertion_ | ( | ) | const [protected] |
Assert, that the vertices of the four edges match properly.
| const InfQuadSubdivision* concepts::InfiniteQuad::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 496 of file topology.hh.
| virtual std::ostream& concepts::InfiniteQuad::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::InfiniteQuad::numEdges | ( | ) | const [inline] |
Definition at line 460 of file topology.hh.
| int concepts::InfiniteQuad::numVertices | ( | ) | const [inline] |
Definition at line 456 of file topology.hh.
| int concepts::Connector::operator== | ( | const Connector & | cntr | ) | const [inline, inherited] |
Comparison operator.
Definition at line 98 of file connector.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.
| conn | Other connector |
conn is an ancestor of this connectorconn is a descendant of this connector| Z2 concepts::InfiniteQuad::rho | ( | ) | const [inline] |
Returns the orientation of the finite edge.
rho = 0 : Edge is oriented counter-clockwise in the quadrilateral. rho = 1 : Edge is oriented clockwise in the quadrilateral.
Definition at line 469 of file topology.hh.
| void concepts::InfiniteQuad::setStrategy | ( | const InfQuadSubdivision * | 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.
| strategy | Pointer to an instance of a subdivision strategy. |
| StrategyChange | if the change is not allowed (the change is not allowed if there are children present) |
| Vertex* concepts::InfiniteQuad::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.
| i | Index of the vertex |
Implements concepts::Connector2.
Definition at line 454 of file topology.hh.

friend class InfQuadSubdiv2V [friend] |
Definition at line 420 of file topology.hh.
Attribute concepts::Connector::attrib_ [protected, inherited] |
Definition at line 123 of file connector.hh.
concepts::Joiner<Connector2*, 1>* concepts::InfiniteQuad::chld_ [protected] |
List of Pointers to the children.
Definition at line 505 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::InfiniteQuad::edg_ [protected] |
Finite edge.
Definition at line 508 of file topology.hh.
InfiniteEdge* concepts::InfiniteQuad::infEdg_[2] [protected] |
Finite edge.
Definition at line 511 of file topology.hh.
Key concepts::Connector::key_ [protected, inherited] |
Unique key of the connector.
Definition at line 120 of file connector.hh.
Z2 concepts::InfiniteQuad::rho_ [protected] |
Orientation flags for the finite edge.
Definition at line 514 of file topology.hh.
const InfQuadSubdivision* concepts::InfiniteQuad::subdivStrategy_ [protected] |
Subdivision strategy for the quadrilateral.
Definition at line 517 of file topology.hh.