ug4
ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType > Class Template Reference

Concrete types share this base-type. It is not intended for direct use. More...

#include <grid_objects_2d.h>

+ Inheritance diagram for ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >:

Public Member Functions

virtual bool collapse_edge (std::vector< Face * > &vNewFacesOut, int edgeIndex, Vertex *newVertex, Vertex **pSubstituteVertices=NULL)
 
virtual bool collapse_edges (std::vector< Face * > &vNewFacesOut, std::vector< Vertex * > &vNewEdgeVertices, Vertex **pSubstituteVertices=NULL)
 
virtual GridObjectcreate_empty_instance () const
 
virtual void create_faces_by_edge_split (int splitEdgeIndex, Vertex *newVertex, std::vector< Face * > &vNewFacesOut, Vertex **pSubstituteVertices=NULL)
 
 CustomQuadrilateral ()
 
 CustomQuadrilateral (const QuadrilateralDescriptor &qd)
 
 CustomQuadrilateral (Vertex *v1, Vertex *v2, Vertex *v3, Vertex *v4)
 
virtual EdgeDescriptor edge_desc (int index) const
 
virtual void edge_desc (int index, EdgeDescriptor &edOut) const
 
virtual std::pair< GridBaseObjectId, int > get_opposing_object (Vertex *vrt) const
 
virtual bool get_opposing_side (EdgeVertices *e, EdgeDescriptor &edOut) const
 fills the edge-descriptor with the edge that lies opposed to the specified one More...
 
virtual bool is_regular_ref_rule (int edgeMarks) const
 
virtual size_t num_vertices () const
 
virtual ReferenceObjectID reference_object_id () const
 
virtual bool refine (std::vector< Face * > &vNewFacesOut, Vertex **newFaceVertexOut, Vertex **newEdgeVertices, Vertex *newFaceVertex=NULL, Vertex **pSubstituteVertices=NULL, int snapPointIndex=-1)
 Refines a Quadrilateral by inserting new vertices. More...
 
virtual Vertexvertex (size_t index) const
 
virtual Face::ConstVertexArray vertices () const
 

Static Public Attributes

static const size_t NUM_VERTICES = 4
 

Protected Member Functions

virtual void set_vertex (uint index, Vertex *pVrt)
 

Protected Attributes

Vertexm_vertices [4]
 

Detailed Description

template<class ConcreteQuadrilateralType, class BaseClass, class RefTriType, class RefQuadType>
class ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >

Concrete types share this base-type. It is not intended for direct use.

BaseClass has to be derived from Face (or simply should be Face). The ConcreteQuadrilateralType is used in methods like refine, etc. as the type of newly created objects.

RefTriType and RefQuadType are used to create new elements during refinement operations.

Constructor & Destructor Documentation

◆ CustomQuadrilateral() [1/3]

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::CustomQuadrilateral ( )
inline

◆ CustomQuadrilateral() [2/3]

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::CustomQuadrilateral ( const QuadrilateralDescriptor qd)

◆ CustomQuadrilateral() [3/3]

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::CustomQuadrilateral ( Vertex v1,
Vertex v2,
Vertex v3,
Vertex v4 
)

Member Function Documentation

◆ collapse_edge()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
bool ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::collapse_edge ( std::vector< Face * > &  vNewFacesOut,
int  edgeIndex,
Vertex newVertex,
Vertex **  pSubstituteVertices = NULL 
)
virtual

◆ collapse_edges()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
bool ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::collapse_edges ( std::vector< Face * > &  vNewFacesOut,
std::vector< Vertex * > &  vNewEdgeVertices,
Vertex **  pSubstituteVertices = NULL 
)
virtual

References LOG.

◆ create_empty_instance()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual GridObject* ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::create_empty_instance ( ) const
inlinevirtual

◆ create_faces_by_edge_split()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
void ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::create_faces_by_edge_split ( int  splitEdgeIndex,
Vertex newVertex,
std::vector< Face * > &  vNewFacesOut,
Vertex **  pSubstituteVertices = NULL 
)
virtual

◆ edge_desc() [1/2]

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual EdgeDescriptor ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::edge_desc ( int  index) const
inlinevirtual

◆ edge_desc() [2/2]

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual void ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::edge_desc ( int  index,
EdgeDescriptor edOut 
) const
inlinevirtual

◆ get_opposing_object()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
std::pair< GridBaseObjectId, int > ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::get_opposing_object ( Vertex vrt) const
virtual

References UG_THROW, and ug::VERTEX.

◆ get_opposing_side()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
bool ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::get_opposing_side ( EdgeVertices e,
EdgeDescriptor edOut 
) const
virtual

fills the edge-descriptor with the edge that lies opposed to the specified one

If the specified edge is not part of the face, false is returned.

◆ is_regular_ref_rule()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
bool ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::is_regular_ref_rule ( int  edgeMarks) const
virtual

◆ num_vertices()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual size_t ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::num_vertices ( ) const
inlinevirtual

◆ reference_object_id()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual ReferenceObjectID ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::reference_object_id ( ) const
inlinevirtual

◆ refine()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
bool ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::refine ( std::vector< Face * > &  vNewFacesOut,
Vertex **  newFaceVertexOut,
Vertex **  newEdgeVertices,
Vertex newFaceVertex = NULL,
Vertex **  pSubstituteVertices = NULL,
int  snapPointIndex = -1 
)
virtual

◆ set_vertex()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual void ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::set_vertex ( uint  index,
Vertex pVrt 
)
inlineprotectedvirtual

◆ vertex()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual Vertex* ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::vertex ( size_t  index) const
inlinevirtual

◆ vertices()

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
virtual Face::ConstVertexArray ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::vertices ( ) const
inlinevirtual

Member Data Documentation

◆ m_vertices

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
Vertex* ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::m_vertices[4]
protected

◆ NUM_VERTICES

template<class ConcreteQuadrilateralType , class BaseClass , class RefTriType , class RefQuadType >
const size_t ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::NUM_VERTICES = 4
static

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