OOFEM 3.0
Loading...
Searching...
No Matches
oofem::BasicGeometry Class Referenceabstract

#include <geometry.h>

Inheritance diagram for oofem::BasicGeometry:

Public Member Functions

 BasicGeometry ()
 Constructor.
 BasicGeometry (const BasicGeometry &iBasicGeometry)
 Copy constructor: should be implemented when a class deals with pointers.
virtual ~BasicGeometry ()
 Destructor.
virtual BasicGeometryClone ()=0
virtual double computeDistanceTo (const FloatArray &point)
 Computes normal signed distance between this object and a point.
virtual void printVTK (int iTStepIndex, int iIndex)
virtual void computeNormalSignDist (double &oDist, const FloatArray &iPoint) const =0
virtual void computeTangentialSignDist (double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const =0
virtual void computeLocalCoordinates (FloatArray &oLocCoord, const FloatArray &iPoint) const
virtual void giveSubPolygon (std ::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const
virtual void giveGlobalCoordinates (FloatArray &oGlobalCoord, const double &iArcPos) const
virtual void giveTangent (FloatArray &oTangent, const double &iArcPosition) const
 Computes tangential direction at given local coordinate (arcPos).
virtual bool intersects (Element *element)
 Checks whether an element is interacted, Element reference will be later replaced by Geometry.
virtual int computeNumberOfIntersectionPoints (Element *element)
 Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry.
virtual void computeIntersectionPoints (Element *element, std ::vector< FloatArray > &oIntersectionPoints)
 Gives intersection points between this Geometry and Element.
const FloatArraygiveVertex (int n) const
void setVertices (const std::vector< FloatArray > &iVertices)
void removeDuplicatePoints (const double &iTolSquare)
void insertVertexFront (const FloatArray &iP)
void insertVertexBack (const FloatArray &iP)
void clear ()
void translate (const FloatArray &iTrans)
virtual void initializeFrom (InputRecord &ir)
 Initializes the Geometry from the InputRecord.
virtual void giveInputRecord (DynamicInputRecord &input)
virtual const char * giveClassName () const
 Gives class name.
std::string errorInfo (const char *func) const
int giveNrVertices () const
 Returns number of Geometry vertices.
virtual bool isOutside (BasicGeometry *bg)
virtual bool isInside (Element *el)
virtual bool isInside (const FloatArray &point)
virtual void printYourself ()
virtual void saveContext (DataStream &stream, ContextMode mode)
virtual void restoreContext (DataStream &stream, ContextMode mode)
virtual void draw (oofegGraphicContext &gc)
virtual bool giveTips (TipInfo &oStartTipInfo, TipInfo &oEndTipInfo) const
virtual void giveBoundingSphere (FloatArray &oCenter, double &oRadius)

Static Public Member Functions

static double computeLineDistance (const FloatArray &iP1, const FloatArray &iP2, const FloatArray &iQ1, const FloatArray &iQ2)

Protected Attributes

std ::vector< FloatArraymVertices
 List of geometry vertices.

Detailed Description

Abstract representation of Geometry

Author
chamrova
Erik Svenning

Definition at line 81 of file geometry.h.

Constructor & Destructor Documentation

◆ BasicGeometry() [1/2]

◆ BasicGeometry() [2/2]

oofem::BasicGeometry::BasicGeometry ( const BasicGeometry & iBasicGeometry)

Copy constructor: should be implemented when a class deals with pointers.

Definition at line 59 of file geometry.C.

References BasicGeometry(), and mVertices.

◆ ~BasicGeometry()

oofem::BasicGeometry::~BasicGeometry ( )
virtual

Destructor.

Definition at line 63 of file geometry.C.

Member Function Documentation

◆ clear()

void oofem::BasicGeometry::clear ( )
inline

◆ Clone()

virtual BasicGeometry * oofem::BasicGeometry::Clone ( )
pure virtual

◆ computeDistanceTo()

virtual double oofem::BasicGeometry::computeDistanceTo ( const FloatArray & point)
inlinevirtual

Computes normal signed distance between this object and a point.

Reimplemented in oofem::Line.

Definition at line 99 of file geometry.h.

◆ computeIntersectionPoints()

virtual void oofem::BasicGeometry::computeIntersectionPoints ( Element * element,
std ::vector< FloatArray > & oIntersectionPoints )
inlinevirtual

Gives intersection points between this Geometry and Element.

Reimplemented in oofem::Circle, oofem::Line, and oofem::PolygonLine.

Definition at line 122 of file geometry.h.

◆ computeLineDistance()

double oofem::BasicGeometry::computeLineDistance ( const FloatArray & iP1,
const FloatArray & iP2,
const FloatArray & iQ1,
const FloatArray & iQ2 )
static

Computes the distance between two lines. Line 1 has start point iP1 and end point iP2. Line 2 has start point iQ1 and end point iQ2.

Definition at line 86 of file geometry.C.

References oofem::FloatArray::add(), oofem::FloatArray::beDifferenceOf(), oofem::FloatMatrix::beInverseOf(), oofem::FloatArray::beProductOf(), oofem::FloatArray::computeNorm(), oofem::FloatArray::dotProduct(), and oofem::Vec2().

◆ computeLocalCoordinates()

virtual void oofem::BasicGeometry::computeLocalCoordinates ( FloatArray & oLocCoord,
const FloatArray & iPoint ) const
inlinevirtual

Reimplemented in oofem::PolygonLine.

Definition at line 109 of file geometry.h.

References OOFEM_ERROR.

◆ computeNormalSignDist()

virtual void oofem::BasicGeometry::computeNormalSignDist ( double & oDist,
const FloatArray & iPoint ) const
pure virtual

Functions for computing signed distance in normal and tangential direction. Used by XFEM level set functions.

Implemented in oofem::Circle, oofem::Line, oofem::PointSwarm, oofem::PolygonLine, and oofem::Triangle.

◆ computeNumberOfIntersectionPoints()

virtual int oofem::BasicGeometry::computeNumberOfIntersectionPoints ( Element * element)
inlinevirtual

Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry.

Reimplemented in oofem::Circle, oofem::Line, oofem::PolygonLine, and oofem::Triangle.

Definition at line 120 of file geometry.h.

◆ computeTangentialSignDist()

virtual void oofem::BasicGeometry::computeTangentialSignDist ( double & oDist,
const FloatArray & iPoint,
double & oMinDistArcPos ) const
pure virtual

◆ draw()

virtual void oofem::BasicGeometry::draw ( oofegGraphicContext & gc)
inlinevirtual

Definition at line 165 of file geometry.h.

References gc.

◆ errorInfo()

std::string oofem::BasicGeometry::errorInfo ( const char * func) const
inline

Definition at line 142 of file geometry.h.

References giveClassName().

◆ giveBoundingSphere()

virtual void oofem::BasicGeometry::giveBoundingSphere ( FloatArray & oCenter,
double & oRadius )
inlinevirtual

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 181 of file geometry.h.

References OOFEM_ERROR.

◆ giveClassName()

virtual const char * oofem::BasicGeometry::giveClassName ( ) const
inlinevirtual

Gives class name.

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 141 of file geometry.h.

Referenced by errorInfo().

◆ giveGlobalCoordinates()

virtual void oofem::BasicGeometry::giveGlobalCoordinates ( FloatArray & oGlobalCoord,
const double & iArcPos ) const
inlinevirtual

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 111 of file geometry.h.

References OOFEM_ERROR.

◆ giveInputRecord()

virtual void oofem::BasicGeometry::giveInputRecord ( DynamicInputRecord & input)
inlinevirtual

Reimplemented in oofem::PolygonLine.

Definition at line 139 of file geometry.h.

References OOFEM_ERROR.

◆ giveNrVertices()

◆ giveSubPolygon()

virtual void oofem::BasicGeometry::giveSubPolygon ( std ::vector< FloatArray > & oPoints,
const double & iXiStart,
const double & iXiEnd ) const
inlinevirtual

Reimplemented in oofem::PolygonLine.

Definition at line 110 of file geometry.h.

References OOFEM_ERROR.

◆ giveTangent()

virtual void oofem::BasicGeometry::giveTangent ( FloatArray & oTangent,
const double & iArcPosition ) const
inlinevirtual

Computes tangential direction at given local coordinate (arcPos).

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 114 of file geometry.h.

◆ giveTips()

virtual bool oofem::BasicGeometry::giveTips ( TipInfo & oStartTipInfo,
TipInfo & oEndTipInfo ) const
inlinevirtual

Returns start and end tip of the geometry, if applicable.

Reimplemented in oofem::PolygonLine.

Definition at line 179 of file geometry.h.

Referenced by oofem::XfemStructureManager::mergeCloseCracks().

◆ giveVertex()

◆ initializeFrom()

virtual void oofem::BasicGeometry::initializeFrom ( InputRecord & ir)
inlinevirtual

Initializes the Geometry from the InputRecord.

Reimplemented in oofem::Circle, oofem::Line, oofem::PointSwarm, and oofem::PolygonLine.

Definition at line 138 of file geometry.h.

◆ insertVertexBack()

void oofem::BasicGeometry::insertVertexBack ( const FloatArray & iP)
inline

◆ insertVertexFront()

void oofem::BasicGeometry::insertVertexFront ( const FloatArray & iP)
inline

Definition at line 130 of file geometry.h.

References mVertices.

Referenced by oofem::XfemStructureManager::mergeCloseCracks().

◆ intersects()

virtual bool oofem::BasicGeometry::intersects ( Element * element)
inlinevirtual

Checks whether an element is interacted, Element reference will be later replaced by Geometry.

Reimplemented in oofem::Circle, oofem::Line, and oofem::PolygonLine.

Definition at line 118 of file geometry.h.

◆ isInside() [1/2]

virtual bool oofem::BasicGeometry::isInside ( const FloatArray & point)
inlinevirtual

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 147 of file geometry.h.

◆ isInside() [2/2]

virtual bool oofem::BasicGeometry::isInside ( Element * el)
inlinevirtual

Reimplemented in oofem::Circle, and oofem::PolygonLine.

Definition at line 146 of file geometry.h.

◆ isOutside()

virtual bool oofem::BasicGeometry::isOutside ( BasicGeometry * bg)
inlinevirtual

Reimplemented in oofem::Circle, oofem::Line, and oofem::PolygonLine.

Definition at line 145 of file geometry.h.

References BasicGeometry().

◆ printVTK()

virtual void oofem::BasicGeometry::printVTK ( int iTStepIndex,
int iIndex )
inlinevirtual

Reimplemented in oofem::PolygonLine.

Definition at line 103 of file geometry.h.

◆ printYourself()

virtual void oofem::BasicGeometry::printYourself ( )
inlinevirtual

Reimplemented in oofem::Circle, oofem::PolygonLine, and oofem::Triangle.

Definition at line 148 of file geometry.h.

◆ removeDuplicatePoints()

void oofem::BasicGeometry::removeDuplicatePoints ( const double & iTolSquare)

◆ restoreContext()

virtual void oofem::BasicGeometry::restoreContext ( DataStream & stream,
ContextMode mode )
inlinevirtual

Restores the state of receiver from output stream.

Parameters
streamContext file.
modeDetermines amount of info in stream.
Exceptions
ContextIOERRexception if error encountered.

Definition at line 162 of file geometry.h.

◆ saveContext()

virtual void oofem::BasicGeometry::saveContext ( DataStream & stream,
ContextMode mode )
inlinevirtual

Stores the state of receiver to output stream.

Parameters
streamContext stream.
modeDetermines amount of info in stream.
Exceptions
ContextIOERRIf error encountered.

Definition at line 155 of file geometry.h.

◆ setVertices()

void oofem::BasicGeometry::setVertices ( const std::vector< FloatArray > & iVertices)
inline

Definition at line 126 of file geometry.h.

References mVertices.

Referenced by oofem::PolygonLine::cropPolygon().

◆ translate()

void oofem::BasicGeometry::translate ( const FloatArray & iTrans)

Definition at line 78 of file geometry.C.

References mVertices.

Member Data Documentation

◆ mVertices

std :: vector< FloatArray > oofem::BasicGeometry::mVertices
protected

List of geometry vertices.

Definition at line 85 of file geometry.h.

Referenced by BasicGeometry(), oofem::Triangle::changeToAnticlockwise(), oofem::Circle::Circle(), clear(), oofem::Triangle::computeBarycentrCoor(), oofem::Triangle::computeCenterOfCircumCircle(), oofem::Line::computeDistanceTo(), oofem::Line::computeInclinationAngle(), oofem::Circle::computeIntersectionPoints(), oofem::PolygonLine::computeLength(), oofem::Circle::computeNormalSignDist(), oofem::Line::computeNumberOfIntersectionPoints(), oofem::Line::computeProjection(), oofem::Line::computeTangentialDistanceToEnd(), oofem::Line::computeTangentialSignDist(), oofem::Triangle::getArea(), oofem::Triangle::getRadiusOfCircumCircle(), oofem::Circle::giveBoundingSphere(), oofem::Circle::giveGlobalCoordinates(), oofem::PolygonLine::giveGlobalCoordinates(), oofem::PolygonLine::giveInputRecord(), oofem::Line::giveLength(), oofem::PolygonLine::giveNormal(), giveNrVertices(), oofem::PolygonLine::giveSubPolygon(), oofem::PolygonLine::giveTangent(), giveVertex(), oofem::Circle::initializeFrom(), oofem::Line::initializeFrom(), oofem::PolygonLine::initializeFrom(), insertVertexBack(), insertVertexFront(), oofem::Circle::intersects(), oofem::Circle::isOutside(), oofem::Line::isPointInside(), oofem::Line::Line(), oofem::Triangle::pointIsInTriangle(), oofem::Circle::printYourself(), oofem::PolygonLine::printYourself(), oofem::Triangle::printYourself(), removeDuplicatePoints(), setVertices(), oofem::Line::transformIntoPolar(), translate(), and oofem::Triangle::Triangle().


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011