Geophysical Inversion and Modelling Library  v1.5.2-5-g042d7f36
GIMLI::EdgeShape Class Reference
+ Inheritance diagram for GIMLI::EdgeShape:
+ Collaboration diagram for GIMLI::EdgeShape:

Public Member Functions

 EdgeShape (MeshEntity *ent)
 
virtual int rtti () const
 
virtual int dim () const
 
virtual std::string name () const
 
virtual RVector3 rst (Index i) const
 
virtual bool intersectRay (const RVector3 &start, const RVector3 &dir, RVector3 &pos)
 
virtual bool touch (const RVector3 &pos, double tol=1e-6, bool verbose=false) const
 
double length () const
 
virtual RVector3 norm () const
 
- Public Member Functions inherited from GIMLI::Shape
 Shape (MeshEntity *ent)
 
virtual ~Shape ()
 
Index nodeCount () const
 
Nodenode (Index i) const
 
void setNodesPtr (const std::vector< Node * > &n)
 
const std::vector< Node * > & nodes () const
 
virtual std::vector< PolynomialFunction< double > > createShapeFunctions () const
 
void createJacobian (RMatrix3 &J) const
 
RMatrix3 createJacobian () const
 
const RMatrix3invJacobian () const
 
virtual RVector N (const RVector3 &L) const
 
virtual void N (const RVector3 &L, RVector &ret) const
 
virtual void dNdrst (const RVector3 &rst, RMatrix &MdNdrst) const
 
virtual RMatrix dNdrst (const RVector3 &L) const
 
virtual void rst2xyz (const RVector3 &rst, RVector3 &xyz) const
 
virtual RVector3 xyz (const RVector3 &rst) const
 
virtual void xyz2rst (const RVector3 &xyz, RVector3 &rst) const
 
virtual RVector3 rst (const RVector3 &xyz) const
 
double drstdxyz (uint rstI, uint xyzJ) const
 
virtual bool isInside (const RVector3 &xyz, bool verbose=false) const
 
virtual bool isInside (const RVector3 &xyz, RVector &sf, bool verbose=false) const
 
double domainSize () const
 
RVector3 center () const
 
double h () const
 
virtual Plane plane () const
 
void changed ()
 
double jacobianDeterminant () const
 
void resizeNodeSize_ (Index n)
 

Protected Member Functions

virtual double domainSize_ () const
 

Additional Inherited Members

- Protected Attributes inherited from GIMLI::Shape
Index nodeCount_
 
double domSize_
 
bool hasDomSize_
 
double _h
 
RMatrix3 invJacobian_
 
const std::vector< Node * > * nodeVector_
 

Member Function Documentation

◆ domainSize_()

virtual double GIMLI::EdgeShape::domainSize_ ( ) const
inlineprotectedvirtual

Virtual method to calculate the domain size i.e length, area, volume of the shapes

Reimplemented from GIMLI::Shape.

◆ intersectRay()

bool GIMLI::EdgeShape::intersectRay ( const RVector3 start,
const RVector3 dir,
RVector3 pos 
)
virtual
  • Return true if the ray intersects the shape. On boundary means inside too. The intersection position is stored in pos.

Reimplemented from GIMLI::Shape.

References GIMLI::Line::intersectRay(), and GIMLI::Shape::node().

◆ name()

virtual std::string GIMLI::EdgeShape::name ( ) const
inlinevirtual

Return an identification name for the shape.

Reimplemented from GIMLI::Shape.

◆ norm()

RVector3 GIMLI::EdgeShape::norm ( ) const
virtual

Returns the norm vector if possible otherwise returns non valid Vector3

Reimplemented from GIMLI::Shape.

References GIMLI::Shape::node().

◆ rst()

RVector3 GIMLI::EdgeShape::rst ( Index  i) const
virtual

See Shape::rst

Reimplemented from GIMLI::Shape.

References GIMLI::Shape::nodeCount().

◆ rtti()

virtual int GIMLI::EdgeShape::rtti ( ) const
inlinevirtual

Pure virtual methode for runtime identification.

Implements GIMLI::Shape.

◆ touch()

bool GIMLI::EdgeShape::touch ( const RVector3 pos,
double  tol = 1e-6,
bool  verbose = false 
) const
virtual

Check if the position touches the entity. Works only for shapes dedicated as boundaries. On edge of the boundary means inside too. See also isInside.

Reimplemented from GIMLI::Shape.

References GIMLI::Shape::node(), and GIMLI::Line::touch().