Geophysical Inversion and Modelling Library  v1.5.2-5-g042d7f36
GIMLI::Node Class Reference

3D Node More...

+ Inheritance diagram for GIMLI::Node:
+ Collaboration diagram for GIMLI::Node:

Public Member Functions

 Node ()
 
 Node (double x, double y, double z=0.0)
 
 Node (const RVector3 &pos)
 
 Node (const RVector3 &pos, int marker, int id=-1)
 
 Node (const Node &node)
 
Nodeoperator= (const Node &node)
 
 ~Node ()
 
double & operator[] (const Index i)
 
const double & operator[] (const Index i) const
 
uint rtti () const
 
void setPos (const RVector3 &pos)
 
const RVector3pos () const
 
RVector3pos ()
 
void insertBoundary (Boundary *bound)
 
void eraseBoundary (Boundary *bound)
 
void insertCell (Cell *cell)
 
void eraseCell (Cell *cell)
 
const std::set< Boundary * > & boundSet () const
 
std::set< Boundary * > & boundSet ()
 
const std::set< Cell * > & cellSet () const
 
std::set< Cell * > & cellSet ()
 
void transform (const RMatrix &mat)
 
void scale (const RVector3 &s)
 
void translate (const RVector3 &t)
 
void translate (double x, double y=0.0, double z=0.0)
 
void rotate (const RVector3 &r)
 
void swap (Index i, Index j)
 
const double & x () const
 
const double & y () const
 
const double & z () const
 
double & at (Index i)
 
const double & at (Index i) const
 
double dist (const Node &n) const
 
void smooth (uint function)
 
void setState (NodeState s)
 
const NodeState state () const
 
void setSecondaryParent (MeshEntity *e)
 
MeshEntitysecondaryParent ()
 
- Public Member Functions inherited from GIMLI::BaseEntity
 BaseEntity (const BaseEntity &ent)
 
BaseEntityoperator= (const BaseEntity &ent)
 
virtual bool valid () const
 
virtual void setValid (bool valid)
 
int id () const
 
void setId (int id)
 
void setMarker (int marker)
 
int marker () const
 
void setTagged (bool tagged)
 
void untag ()
 
void tag ()
 
bool tagged () const
 

Protected Member Functions

void copy_ (const Node &node)
 
void changed_ ()
 
void init_ ()
 

Protected Attributes

RVector3 pos_
 
std::set< Boundary * > boundSet_
 
std::set< Cell * > cellSet_
 
NodeState _state
 
MeshEntity_secondaryParent
 
- Protected Attributes inherited from GIMLI::BaseEntity
int id_
 
bool valid_
 
int marker_
 
bool tagged_
 

Detailed Description

3D Node

Node is a basic entity of a mesh at a 3D position x/y/z (a vertex), which owns a marker, an id, and information about connected boundarys and cells. For a 2D node ignore $z$ or let $z$-coord = 0.0.

Constructor & Destructor Documentation

◆ Node() [1/5]

GIMLI::Node::Node ( )

Construct node with non valid position and marker = 0

◆ Node() [2/5]

GIMLI::Node::Node ( double  x,
double  y,
double  z = 0.0 
)

Construct node from coordinates $x,y,[z]$ with marker = 0

◆ Node() [3/5]

GIMLI::Node::Node ( const RVector3 pos)

Construct node from RVector3

◆ Node() [4/5]

GIMLI::Node::Node ( const RVector3 pos,
int  marker,
int  id = -1 
)

Construct node from RVector3 with marker and optional id

References GIMLI::BaseEntity::setId().

◆ Node() [5/5]

GIMLI::Node::Node ( const Node node)

Copy constructor

◆ ~Node()

GIMLI::Node::~Node ( )

Destruct the node and all containing informations

Member Function Documentation

◆ operator=()

Node & GIMLI::Node::operator= ( const Node node)

Assignement operator

◆ operator[]() [1/2]

double& GIMLI::Node::operator[] ( const Index  i)
inline

Unchecked index operator to pos

◆ operator[]() [2/2]

const double& GIMLI::Node::operator[] ( const Index  i) const
inline

Unchecked index operator to pos

◆ pos()

RVector3& GIMLI::Node::pos ( )
inline

Don't use this if you plan to modify the nodes posisiton. The mesh won't get any notifications of the change and this not remove geometry caches.

◆ rtti()

uint GIMLI::Node::rtti ( ) const
inlinevirtual

Return entity rtti value.

Reimplemented from GIMLI::BaseEntity.

◆ secondaryParent()

MeshEntity* GIMLI::Node::secondaryParent ( )
inline

Return the state of this node.

◆ setState()

void GIMLI::Node::setState ( NodeState  s)
inline

Little helper to identify the state of this node after some merging.

Referenced by GIMLI::Mesh::createNodeGC_(), and GIMLI::PolygonFace::insertNode().

◆ state()

const NodeState GIMLI::Node::state ( ) const
inline

Return the state of this node.

Referenced by GIMLI::Mesh::createNodeGC_().