ug4
ug::CustomTriangle< ConcreteTriangleType, 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::CustomTriangle< ConcreteTriangleType, 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)
 
 CustomTriangle ()
 
 CustomTriangle (const TriangleDescriptor &td)
 
 CustomTriangle (Vertex *v1, Vertex *v2, Vertex *v3)
 
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 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 Triangle 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 = 3
 

Protected Member Functions

virtual void set_vertex (uint index, Vertex *pVrt)
 

Protected Attributes

Vertexm_vertices [3]
 

Detailed Description

template<class ConcreteTriangleType, class BaseClass, class RefTriType, class RefQuadType>
class ug::CustomTriangle< ConcreteTriangleType, 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 ConcreteTriangleType 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

◆ CustomTriangle() [1/3]

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::CustomTriangle ( )
inline

◆ CustomTriangle() [2/3]

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::CustomTriangle ( const TriangleDescriptor td)

◆ CustomTriangle() [3/3]

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::CustomTriangle ( Vertex v1,
Vertex v2,
Vertex v3 
)

Member Function Documentation

◆ collapse_edge()

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

◆ collapse_edges()

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

References LOG.

◆ create_empty_instance()

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

◆ create_faces_by_edge_split()

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
void ug::CustomTriangle< ConcreteTriangleType, 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 ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
virtual EdgeDescriptor ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::edge_desc ( int  index) const
inlinevirtual

◆ edge_desc() [2/2]

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

◆ get_opposing_object()

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

References ug::EDGE.

◆ is_regular_ref_rule()

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

◆ num_vertices()

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

Referenced by ug::WriteLGM().

◆ reference_object_id()

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

References ug::ROID_TRIANGLE.

◆ refine()

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

Refines a Triangle by inserting new vertices.

See also
Face::refine.

◆ set_vertex()

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

◆ vertex()

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

◆ vertices()

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

Member Data Documentation

◆ m_vertices

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
Vertex* ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::m_vertices[3]
protected

◆ NUM_VERTICES

template<class ConcreteTriangleType , class BaseClass , class RefTriType , class RefQuadType >
const size_t ug::CustomTriangle< ConcreteTriangleType, BaseClass, RefTriType, RefQuadType >::NUM_VERTICES = 3
static

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