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

Public Member Functions

 PolygonShape (MeshEntity *ent)
 
virtual int rtti () const
 
virtual int dim () const
 
virtual std::string name () const
 
virtual RVector3 norm () const
 
virtual RVector3 rst (Index i) const
 
virtual bool isInside (const RVector3 &xyz, bool verbose) 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, RVector &sf, bool verbose=false) const
 
virtual bool touch (const RVector3 &pos, double tol=1e-6, bool verbose=false) const
 
virtual bool intersectRay (const RVector3 &start, const RVector3 &dir, RVector3 &pos)
 
double domainSize () const
 
RVector3 center () const
 
double h () const
 
virtual Plane plane () const
 
void changed ()
 
double jacobianDeterminant () const
 
void resizeNodeSize_ (Index n)
 

Additional Inherited Members

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

Member Function Documentation

◆ isInside()

bool GIMLI::PolygonShape::isInside ( const RVector3 xyz,
bool  verbose 
) const
virtual

Return true if the Cartesian coordinates xyz are inside the shape. On boundary means inside too. Works only for shapes dedicated as cells because they need to be aligned to the dimension. See also touch.

Reimplemented from GIMLI::Shape.

◆ name()

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

Return an identification name for the shape.

Reimplemented from GIMLI::Shape.

◆ norm()

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

Returns the norm vector if possible otherwise returns non valid Vector3

Reimplemented from GIMLI::Shape.

References GIMLI::Plane::norm(), and GIMLI::Shape::plane().

◆ rst()

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

Return local coordinates for node i.

Reimplemented from GIMLI::Shape.

◆ rtti()

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

Pure virtual methode for runtime identification.

Implements GIMLI::Shape.