OOFEM 3.0
Loading...
Searching...
No Matches
oofem::PolygonLine Class Reference

#include <geometry.h>

Inheritance diagram for oofem::PolygonLine:
Collaboration diagram for oofem::PolygonLine:

Public Member Functions

 PolygonLine ()
virtual ~PolygonLine ()
BasicGeometryClone () override
void computeNormalSignDist (double &oDist, const FloatArray &iPoint) const override
void computeTangentialSignDist (double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const override
void computeLocalCoordinates (FloatArray &oLocCoord, const FloatArray &iPoint) const override
 Computes arc length coordinate in the range [0,1].
double computeLength () const
void giveSubPolygon (std ::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const override
void giveGlobalCoordinates (FloatArray &oGlobalCoord, const double &iArcPos) const override
void giveNormal (FloatArray &oNormal, const double &iArcPosition) const
void giveTangent (FloatArray &oTangent, const double &iArcPosition) const override
 Computes tangential direction at given local coordinate (arcPos).
void initializeFrom (InputRecord &ir) override
 Initializes the Geometry from the InputRecord.
void giveInputRecord (DynamicInputRecord &input) override
const char * giveClassName () const override
 Gives class name.
bool intersects (Element *element) override
 Checks whether an element is interacted, Element reference will be later replaced by Geometry.
void computeIntersectionPoints (Element *element, std ::vector< FloatArray > &oIntersectionPoints) override
 Gives intersection points between this Geometry and Element.
void computeIntersectionPoints (Line *l, std ::vector< FloatArray > &oIntersectionPoints)
void computeIntersectionPoints (const PolygonLine &iPolygonLine, std ::vector< FloatArray > &oIntersectionPoints) const
void computeIntersectionPoints (const FloatArray &iXStart, const FloatArray &iXEnd, std ::vector< FloatArray > &oIntersectionPoints) const
int computeNumberOfIntersectionPoints (Element *element) override
 Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry.
bool isOutside (BasicGeometry *bg) override
bool isInside (Element *element) override
bool isInside (const FloatArray &point) override
void printYourself () override
void printVTK (int iTStepIndex, int iLineIndex) override
bool giveTips (TipInfo &oStartTipInfo, TipInfo &oEndTipInfo) const override
void giveBoundingSphere (FloatArray &oCenter, double &oRadius) override
void cropPolygon (const double &iArcPosStart, const double &iArcPosEnd)
Public Member Functions inherited from oofem::BasicGeometry
 BasicGeometry ()
 Constructor.
 BasicGeometry (const BasicGeometry &iBasicGeometry)
 Copy constructor: should be implemented when a class deals with pointers.
virtual ~BasicGeometry ()
 Destructor.
virtual double computeDistanceTo (const FloatArray &point)
 Computes normal signed distance between this object and a point.
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)
std::string errorInfo (const char *func) const
int giveNrVertices () const
 Returns number of Geometry vertices.
virtual void saveContext (DataStream &stream, ContextMode mode)
virtual void restoreContext (DataStream &stream, ContextMode mode)
virtual void draw (oofegGraphicContext &gc)

Private Attributes

bool mDebugVtk

Additional Inherited Members

Static Public Member Functions inherited from oofem::BasicGeometry
static double computeLineDistance (const FloatArray &iP1, const FloatArray &iP2, const FloatArray &iQ1, const FloatArray &iQ2)
Protected Attributes inherited from oofem::BasicGeometry
std ::vector< FloatArraymVertices
 List of geometry vertices.

Detailed Description

Definition at line 291 of file geometry.h.

Constructor & Destructor Documentation

◆ PolygonLine()

oofem::PolygonLine::PolygonLine ( )

Definition at line 841 of file geometry.C.

References oofem::BasicGeometry::BasicGeometry(), and mDebugVtk.

Referenced by Clone(), and computeIntersectionPoints().

◆ ~PolygonLine()

virtual oofem::PolygonLine::~PolygonLine ( )
inlinevirtual

Definition at line 296 of file geometry.h.

Member Function Documentation

◆ Clone()

BasicGeometry * oofem::PolygonLine::Clone ( )
inlineoverridevirtual

Implements oofem::BasicGeometry.

Definition at line 298 of file geometry.h.

References oofem::BasicGeometry::BasicGeometry(), and PolygonLine().

◆ computeIntersectionPoints() [1/4]

void oofem::PolygonLine::computeIntersectionPoints ( const FloatArray & iXStart,
const FloatArray & iXEnd,
std ::vector< FloatArray > & oIntersectionPoints ) const

◆ computeIntersectionPoints() [2/4]

void oofem::PolygonLine::computeIntersectionPoints ( const PolygonLine & iPolygonLine,
std ::vector< FloatArray > & oIntersectionPoints ) const

◆ computeIntersectionPoints() [3/4]

void oofem::PolygonLine::computeIntersectionPoints ( Element * element,
std ::vector< FloatArray > & oIntersectionPoints )
overridevirtual

Gives intersection points between this Geometry and Element.

Todo
Move semantics or something would be useful here to avoid multiple copies.

Reimplemented from oofem::BasicGeometry.

Definition at line 1409 of file geometry.C.

References computeIntersectionPoints(), oofem::distance(), oofem::DofManager::giveCoordinates(), oofem::Element::giveDofManager(), and oofem::Element::giveNumberOfBoundarySides().

Referenced by oofem::Crack::computeCrackIntersectionPoints(), computeIntersectionPoints(), computeIntersectionPoints(), and computeNumberOfIntersectionPoints().

◆ computeIntersectionPoints() [4/4]

void oofem::PolygonLine::computeIntersectionPoints ( Line * l,
std ::vector< FloatArray > & oIntersectionPoints )

◆ computeLength()

double oofem::PolygonLine::computeLength ( ) const

◆ computeLocalCoordinates()

void oofem::PolygonLine::computeLocalCoordinates ( FloatArray & oLocCoord,
const FloatArray & iPoint ) const
overridevirtual

Computes arc length coordinate in the range [0,1].

Reimplemented from oofem::BasicGeometry.

Definition at line 1080 of file geometry.C.

◆ computeNormalSignDist()

void oofem::PolygonLine::computeNormalSignDist ( double & oDist,
const FloatArray & iPoint ) const
overridevirtual

◆ computeNumberOfIntersectionPoints()

int oofem::PolygonLine::computeNumberOfIntersectionPoints ( Element * element)
overridevirtual

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

Reimplemented from oofem::BasicGeometry.

Definition at line 1610 of file geometry.C.

References computeIntersectionPoints().

◆ computeTangentialSignDist()

void oofem::PolygonLine::computeTangentialSignDist ( double & oDist,
const FloatArray & iPoint,
double & oMinDistArcPos ) const
overridevirtual

◆ cropPolygon()

void oofem::PolygonLine::cropPolygon ( const double & iArcPosStart,
const double & iArcPosEnd )

Keep only a part of the underlying geometry, characterized by iArcPosStart and iArcPosEnd.

Definition at line 1772 of file geometry.C.

References giveSubPolygon(), oofem::BasicGeometry::removeDuplicatePoints(), and oofem::BasicGeometry::setVertices().

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

◆ giveBoundingSphere()

void oofem::PolygonLine::giveBoundingSphere ( FloatArray & oCenter,
double & oRadius )
overridevirtual

◆ giveClassName()

const char * oofem::PolygonLine::giveClassName ( ) const
inlineoverridevirtual

Gives class name.

Reimplemented from oofem::BasicGeometry.

Definition at line 314 of file geometry.h.

◆ giveGlobalCoordinates()

void oofem::PolygonLine::giveGlobalCoordinates ( FloatArray & oGlobalCoord,
const double & iArcPos ) const
overridevirtual

◆ giveInputRecord()

◆ giveNormal()

void oofem::PolygonLine::giveNormal ( FloatArray & oNormal,
const double & iArcPosition ) const

◆ giveSubPolygon()

void oofem::PolygonLine::giveSubPolygon ( std ::vector< FloatArray > & oPoints,
const double & iXiStart,
const double & iXiEnd ) const
overridevirtual

◆ giveTangent()

void oofem::PolygonLine::giveTangent ( FloatArray & oTangent,
const double & iArcPosition ) const
overridevirtual

Computes tangential direction at given local coordinate (arcPos).

Reimplemented from oofem::BasicGeometry.

Definition at line 1216 of file geometry.C.

References computeLength(), oofem::distance(), oofem::BasicGeometry::mVertices, oofem::FloatArray::normalize(), OOFEM_ERROR, and oofem::Vec2().

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

◆ giveTips()

bool oofem::PolygonLine::giveTips ( TipInfo & oStartTipInfo,
TipInfo & oEndTipInfo ) const
overridevirtual

◆ initializeFrom()

void oofem::PolygonLine::initializeFrom ( InputRecord & ir)
overridevirtual

◆ intersects()

bool oofem::PolygonLine::intersects ( Element * element)
overridevirtual

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

Reimplemented from oofem::BasicGeometry.

Definition at line 1317 of file geometry.C.

References oofem::DofManager::giveCoordinate(), oofem::Element::giveGeometryType(), oofem::Element::giveNode(), oofem::BasicGeometry::giveNrVertices(), and oofem::BasicGeometry::giveVertex().

◆ isInside() [1/2]

bool oofem::PolygonLine::isInside ( const FloatArray & point)
overridevirtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1381 of file geometry.C.

◆ isInside() [2/2]

bool oofem::PolygonLine::isInside ( Element * element)
overridevirtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1375 of file geometry.C.

◆ isOutside()

bool oofem::PolygonLine::isOutside ( BasicGeometry * bg)
overridevirtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1617 of file geometry.C.

References oofem::BasicGeometry::BasicGeometry().

◆ printVTK()

void oofem::PolygonLine::printVTK ( int iTStepIndex,
int iLineIndex )
overridevirtual

◆ printYourself()

void oofem::PolygonLine::printYourself ( )
overridevirtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1622 of file geometry.C.

References oofem::BasicGeometry::mVertices.

Member Data Documentation

◆ mDebugVtk

bool oofem::PolygonLine::mDebugVtk
private

Definition at line 293 of file geometry.h.

Referenced by PolygonLine().


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