20#define VertexConstr_D 0
55 inline Vertex*
clone()
const;
57 virtual std::ostream&
info(std::ostream&
os)
const;
113 virtual std::ostream&
info(std::ostream&
os)
const;
170 virtual std::ostream&
info(std::ostream&
os)
const;
230 Z2 rho(
int i)
const {
return rho_[i]; }
237 virtual std::ostream&
info(std::ostream&
os)
const;
319 int numVertices()
const {
323 int numEdges()
const {
336 bool regular()
const {
return regular_; }
363 virtual std::ostream&
info(std::ostream&
os)
const;
459 int numVertices()
const {
463 int numEdges()
const {
500 virtual std::ostream&
info(std::ostream&
os)
const;
const Key & key() const
Returns the key of the connector.
const Attribute & attrib() const
Returns the attribute of the connector.
Edge(Edge &edg0, Edge &edg1)
Construct a "parent" edge of the edges edg0 and edg1.
Edge(Vertex &vtx0, Vertex &vtx1, const Attribute attrib, const Key &key)
Constructor used by clone()
Edge * clone(Vertex &vtx0, Vertex &vtx1) const
Edge(Vertex &vtx0, Vertex &vtx1, const Attribute attrib=Attribute())
Edge * lnk_
Pointer to a sibling.
virtual Edge * child(uint i, bool mode=0)
Vertex * vtx_[2]
Array of the vertices.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Vertex * vertex(uint i) const
Vertex * vertex(uint i=0) const
InfiniteEdge(Vertex &vtx, const Attribute attrib=Attribute())
Edge * lnk_
Pointer to a sibling.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Vertex * vtx_
Array of the vertices.
virtual Connector1 * child(uint i, bool mode=0)
InfiniteQuad(InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2, const Attribute attrib, const Key &key, const Z2 rho)
Constructor used by clone()
Vertex * vertex(uint i) const
virtual ~InfiniteQuad()
Destructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
InfiniteQuad(InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2, const Attribute attrib=Attribute())
const InfQuadSubdivision * subdivStrategy_
Subdivision strategy for the quadrilateral.
Connector1 * edge(uint i) const
virtual Connector2 * child(uint i, bool mode=0)
void edgeAssertion_() const
Assert, that the vertices of the four edges match properly.
void setStrategy(const InfQuadSubdivision *strategy=0)
InfiniteEdge * infEdg_[2]
Finite edge.
Z2 rho_
Orientation flags for the finite edge.
Scan< Connector2 > * children_() const
Scanner over the children.
const InfQuadSubdivision * getStrategy() const
InfiniteQuad * clone(InfiniteEdge &edg0, Edge &edg1, InfiniteEdge &edg2) const
concepts::Joiner< Connector2 *, 1 > * chld_
List of Pointers to the children.
Quad(Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3, 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.
const QuadSubdivision * getStrategy() const
Quad * clone(Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3) const
Edge * edge(uint i) const
virtual ~Quad()
Destructor.
const QuadSubdivision * subdivStrategy_
Subdivision strategy for the quadrilateral.
Vertex * vertex(uint i) const
static std::map< Key, Z2 > rhoTriv_
orientation of trivial edges (with idential vertices)
Scan< Quad > * children_() const
Scanner over the children.
Quad(Edge &edg0, Edge &edg1, Edge &edg2, Edge &edg3, const Attribute attrib=Attribute())
bool regular_
Regular Cell, deleting of children possible.
void edgeAssertion_() const
Assert, that the vertices of the four edges match properly.
virtual Quad * child(uint i, bool mode=0)
void setStrategy(const QuadSubdivision *strategy=0)
Edge * edg_[4]
Array of the edges.
Z2 rho_[4]
Array of the orientation flags for the edges.
Quad(const Quad &quad, uint i)
concepts::Joiner< Quad *, 1 > * chld_
List of Pointers to the children.
virtual Triangle * child(uint i, bool mode=0)
Triangle * clone(Edge &edg0, Edge &edg1, Edge &edg2) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Edge * edge(uint i) const
Vertex * vertex(uint i) const
Triangle(Edge &edg0, Edge &edg1, Edge &edg2, const Attribute attrib=Attribute())
Vertex(const Attribute attrib=Attribute())
Default constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Vertex * child(uint i, bool mode=0)
#define DEBUGL(doit, msg)
Set< F > makeSet(uint n, const F &first,...)
int match(const Connector1 &edg0, const Connector1 &edg1, int idx[])