Geophysical Inversion and Modelling Library  v1.5.1
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
- 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)

Unchecked index operator to pos

◆ operator[]() [2/2]

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

Unchecked index operator to pos

◆ pos()

RVector3& GIMLI::Node::pos ( )

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

Return entity rtti value.

Reimplemented from GIMLI::BaseEntity.

◆ secondaryParent()

MeshEntity* GIMLI::Node::secondaryParent ( )

Return the state of this node.

◆ setState()

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

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

Return the state of this node.

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