ug4
ug::ConstrainingEdge Class Reference

contains elements of type More...

#include <grid_objects_1d.h>

+ Inheritance diagram for ug::ConstrainingEdge:

Public Member Functions

void add_constrained_object (Edge *pObj)
 
void add_constrained_object (Vertex *pObj)
 
void clear_constrained_edges ()
 
void clear_constrained_objects ()
 
void clear_constrained_vertices ()
 
template<>
Vertexconstrained (size_t ind) const
 
template<>
Edgeconstrained (size_t ind) const
 
template<class TElem >
TElem * constrained (size_t ind) const
 
Edgeconstrained_edge (size_t ind) const
 
Vertexconstrained_vertex (size_t ind) const
 
 ConstrainingEdge ()
 
 ConstrainingEdge (const EdgeDescriptor &descriptor)
 
 ConstrainingEdge (Vertex *v1, Vertex *v2)
 
virtual int container_section () const
 
virtual GridObjectcreate_empty_instance () const
 create an instance of the derived type More...
 
bool is_constrained_object (Edge *edge)
 
bool is_constrained_object (Vertex *vrt)
 
virtual bool is_constraining () const
 returns the id of the reference-object. More...
 
template<>
size_t num_constrained () const
 
template<>
size_t num_constrained () const
 
template<class TElem >
size_t num_constrained () const
 
size_t num_constrained_edges () const
 
size_t num_constrained_vertices () const
 
virtual ReferenceObjectID reference_object_id () const
 
bool refine (std::vector< ConstrainingEdge * > &vNewEdgesOut, Vertex *newVertex, Vertex **pSubstituteVrts=NULL)
 non virtual refine. Returns pointers to ConstrainingEdge. More...
 
virtual bool refine (std::vector< Edge * > &vNewEdgesOut, Vertex *newVertex, Vertex **pSubstituteVrts=NULL)
 virtual refine. Returns pointers to Edge. More...
 
virtual void remove_constraint_link (const Edge *e)
 removes a constraint link to the grid object. More...
 
virtual void remove_constraint_link (const Vertex *vrt)
 removes a constraint link to the grid object. More...
 
void unconstrain_object (const Edge *edge)
 
void unconstrain_object (const Vertex *vrt)
 
virtual ~ConstrainingEdge ()
 
- Public Member Functions inherited from ug::Edge
virtual int base_object_id () const
 
bool get_opposing_side (Vertex *v, Vertex **vrtOut)
 retrieves the vertex on the opposing side to the specified one. More...
 
bool get_opposing_side (Vertex *v, VertexDescriptor &vrtOut)
 
uint num_sides () const
 
virtual ~Edge ()
 
- Public Member Functions inherited from ug::GridObject
uint grid_data_index () const
 Returns the grid attachment data index of a geometric object. More...
 
virtual bool is_constrained () const
 returns true if the object is constrained by other objects. More...
 
virtual ~GridObject ()
 
virtual void remove_constraint_link (const Face *f)
 removes a constraint link to the grid object. More...
 
- Public Member Functions inherited from ug::EdgeVertices
virtual size_t num_vertices () const
 
Vertexoperator[] (size_t index) const
 returns the i-th vertex. More...
 
size_t size () const
 returns the number of vertices. More...
 
virtual Vertexvertex (size_t index) const
 
virtual ConstVertexArray vertices () const
 
virtual ~EdgeVertices ()
 
- Public Member Functions inherited from ug::IVertexGroup
Vertexoperator[] (size_t index) const
 returns the i-th vertex. More...
 
size_t size () const
 returns the number of vertices. More...
 
virtual ~IVertexGroup ()
 

Static Public Member Functions

static bool type_match (GridObject *pObj)
 
- Static Public Member Functions inherited from ug::Edge
static bool type_match (GridObject *pObj)
 

Protected Attributes

std::vector< Edge * > m_constrainedEdges
 
std::vector< Vertex * > m_constrainedVertices
 
- Protected Attributes inherited from ug::GridObject
uint m_gridDataIndex
 
- Protected Attributes inherited from ug::EdgeVertices
Vertexm_vertices [2]
 

Friends

class Grid
 

Additional Inherited Members

- Public Types inherited from ug::Edge
typedef Edge grid_base_object
 
typedef Face higher_dim_base_object
 
typedef Vertex lower_dim_base_object
 
typedef Vertex side
 
typedef Face sideof
 
- Public Types inherited from ug::IVertexGroup
typedef Vertex *const * ConstVertexArray
 
- Static Public Attributes inherited from ug::Edge
static const int BASE_OBJECT_ID = EDGE
 
static const bool CAN_BE_SIDE = true
 
static const int dim = 1
 reference dimension More...
 
static const bool HAS_SIDES = true
 
static const size_t NUM_VERTICES = 2
 
- Protected Member Functions inherited from ug::Edge
void set_vertex (uint index, Vertex *pVrt)
 
- Protected Member Functions inherited from ug::GridObject
void set_grid_data_index (uint index)
 ATTENTION: Use this method with extreme care! More...
 
- Protected Member Functions inherited from ug::EdgeVertices
void assign_edge_vertices (const EdgeVertices &ev)
 

Detailed Description

contains elements of type

See also
HangingVertex and
ConstrainedEdge Edges of this type appear during hanging-vertex-refinement. Treat with care.

Constructor & Destructor Documentation

◆ ConstrainingEdge() [1/3]

ug::ConstrainingEdge::ConstrainingEdge ( )
inline

Referenced by refine().

◆ ConstrainingEdge() [2/3]

ug::ConstrainingEdge::ConstrainingEdge ( Vertex v1,
Vertex v2 
)
inline

◆ ConstrainingEdge() [3/3]

ug::ConstrainingEdge::ConstrainingEdge ( const EdgeDescriptor descriptor)
inline

◆ ~ConstrainingEdge()

virtual ug::ConstrainingEdge::~ConstrainingEdge ( )
inlinevirtual

Member Function Documentation

◆ add_constrained_object() [1/2]

void ug::ConstrainingEdge::add_constrained_object ( Edge pObj)
inline

References UG_ASSERT.

◆ add_constrained_object() [2/2]

◆ clear_constrained_edges()

void ug::ConstrainingEdge::clear_constrained_edges ( )
inline

◆ clear_constrained_objects()

void ug::ConstrainingEdge::clear_constrained_objects ( )
inline

◆ clear_constrained_vertices()

void ug::ConstrainingEdge::clear_constrained_vertices ( )
inline

◆ constrained() [1/3]

template<>
Vertex* ug::ConstrainingEdge::constrained ( size_t  ind) const

References constrained_vertex().

◆ constrained() [2/3]

template<>
Edge* ug::ConstrainingEdge::constrained ( size_t  ind) const

References constrained_edge().

◆ constrained() [3/3]

template<class TElem >
TElem* ug::ConstrainingEdge::constrained ( size_t  ind) const

◆ constrained_edge()

◆ constrained_vertex()

◆ container_section()

virtual int ug::ConstrainingEdge::container_section ( ) const
inlinevirtual

Reimplemented from ug::Edge.

References ug::CSEDGE_CONSTRAINING_EDGE.

◆ create_empty_instance()

virtual GridObject* ug::ConstrainingEdge::create_empty_instance ( ) const
inlinevirtual

create an instance of the derived type

Make sure to overload this method in derivates of this class!

Reimplemented from ug::GridObject.

◆ is_constrained_object() [1/2]

bool ug::ConstrainingEdge::is_constrained_object ( Edge edge)
inline

References ug::find().

◆ is_constrained_object() [2/2]

bool ug::ConstrainingEdge::is_constrained_object ( Vertex vrt)
inline

References ug::find().

◆ is_constraining()

virtual bool ug::ConstrainingEdge::is_constraining ( ) const
inlinevirtual

returns the id of the reference-object.

returns true if the object constrains other objects. This is normally only the case for special constraining objects. The default implementation returns false.

Reimplemented from ug::GridObject.

◆ num_constrained() [1/3]

template<>
size_t ug::ConstrainingEdge::num_constrained ( ) const

◆ num_constrained() [2/3]

template<>
size_t ug::ConstrainingEdge::num_constrained ( ) const

◆ num_constrained() [3/3]

template<class TElem >
size_t ug::ConstrainingEdge::num_constrained ( ) const

◆ num_constrained_edges()

◆ num_constrained_vertices()

◆ reference_object_id()

virtual ReferenceObjectID ug::ConstrainingEdge::reference_object_id ( ) const
inlinevirtual

A reference object represents a class of geometric objects. Tetrahedrons, Triangles etc are such classes. Reference ids should be defined in the file in which concrete geometric objects are defined.

Reimplemented from ug::Edge.

References ug::ROID_EDGE.

◆ refine() [1/2]

bool ug::ConstrainingEdge::refine ( std::vector< ConstrainingEdge * > &  vNewEdgesOut,
Vertex newVertex,
Vertex **  pSubstituteVrts = NULL 
)

non virtual refine. Returns pointers to ConstrainingEdge.

create 2 new constraining edges, connecting the original edges end-points with vrtNew. The refine has no effect on constrained objects. The user has to manually copy them.

See also
Edge::refine.

References refine().

◆ refine() [2/2]

bool ug::ConstrainingEdge::refine ( std::vector< Edge * > &  vNewEdgesOut,
Vertex newVertex,
Vertex **  pSubstituteVrts = NULL 
)
virtual

virtual refine. Returns pointers to Edge.

create 2 new constraining edges, connecting the original edges end-points with vrtNew. The refine has no effect on constrained objects. The user has to manually copy them.

See also
Edge::refine.

Reimplemented from ug::Edge.

References ConstrainingEdge(), and ug::EdgeVertices::vertex().

Referenced by refine().

◆ remove_constraint_link() [1/2]

virtual void ug::ConstrainingEdge::remove_constraint_link ( const Edge e)
inlinevirtual

removes a constraint link to the grid object.

This method is e.g. called on the constraining edges of a constrained vertex as soon as the constrained vertex is deleted.

Reimplemented from ug::GridObject.

◆ remove_constraint_link() [2/2]

virtual void ug::ConstrainingEdge::remove_constraint_link ( const Vertex vrt)
inlinevirtual

removes a constraint link to the grid object.

This method is e.g. called on the constraining edges of a constrained vertex as soon as the constrained vertex is deleted.

Reimplemented from ug::GridObject.

◆ type_match()

static bool ug::ConstrainingEdge::type_match ( GridObject pObj)
inlinestatic

◆ unconstrain_object() [1/2]

void ug::ConstrainingEdge::unconstrain_object ( const Edge edge)
inline

References ug::find().

◆ unconstrain_object() [2/2]

void ug::ConstrainingEdge::unconstrain_object ( const Vertex vrt)
inline

References ug::find().

Friends And Related Function Documentation

◆ Grid

friend class Grid
friend

Member Data Documentation

◆ m_constrainedEdges

std::vector<Edge*> ug::ConstrainingEdge::m_constrainedEdges
protected

◆ m_constrainedVertices

std::vector<Vertex*> ug::ConstrainingEdge::m_constrainedVertices
protected

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