OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::PolygonLine Class Reference

#include <geometry.h>

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

Public Member Functions

 PolygonLine ()
 
virtual ~PolygonLine ()
 
virtual BasicGeometryClone ()
 
virtual void computeNormalSignDist (double &oDist, const FloatArray &iPoint) const
 Functions for computing signed distance in normal and tangential direction. More...
 
virtual void computeTangentialSignDist (double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const
 
virtual void computeLocalCoordinates (FloatArray &oLocCoord, const FloatArray &iPoint) const
 Computes arc length coordinate in the range [0,1]. More...
 
double computeLength () const
 
virtual void giveSubPolygon (std::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const
 
virtual void giveGlobalCoordinates (FloatArray &oGlobalCoord, const double &iArcPos) const
 
void giveNormal (FloatArray &oNormal, const double &iArcPosition) const
 
virtual void giveTangent (FloatArray &oTangent, const double &iArcPosition) const
 Computes tangential direction at given local coordinate (arcPos) More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes the Geometry from the InputRecord. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 
virtual const char * giveClassName () const
 Gives class name. More...
 
virtual bool intersects (Element *element)
 Checks whether an element is interacted, Element reference will be later replaced by Geometry. More...
 
virtual void computeIntersectionPoints (Element *element, std::vector< FloatArray > &oIntersectionPoints)
 Gives intersection points between this Geometry and Element. More...
 
virtual 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
 
virtual int computeNumberOfIntersectionPoints (Element *element)
 Gives number of intersection points of Geometry entity with an element, Element reference will be later replaced by Geometry. More...
 
virtual bool isOutside (BasicGeometry *bg)
 
virtual bool isInside (Element *element)
 
virtual bool isInside (FloatArray &point)
 
virtual void printYourself ()
 
virtual void printVTK (int iTStepIndex, int iLineIndex)
 
virtual bool giveTips (TipInfo &oStartTipInfo, TipInfo &oEndTipInfo) const
 Returns start and end tip of the geometry, if applicable. More...
 
virtual void giveBoundingSphere (FloatArray &oCenter, double &oRadius)
 
void cropPolygon (const double &iArcPosStart, const double &iArcPosEnd)
 Keep only a part of the underlying geometry, characterized by iArcPosStart and iArcPosEnd. More...
 
- Public Member Functions inherited from oofem::BasicGeometry
 BasicGeometry ()
 Constructor. More...
 
 BasicGeometry (const BasicGeometry &iBasicGeometry)
 Copy constructor: should be implemented when a class deals with pointers. More...
 
virtual ~BasicGeometry ()
 Destructor. More...
 
virtual double computeDistanceTo (const FloatArray *point)
 Computes normal signed distance between this object and a point. More...
 
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. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores the state of receiver to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the state of receiver from output stream. More...
 
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)
 Computes the distance between two lines. More...
 
- Protected Attributes inherited from oofem::BasicGeometry
std::vector< FloatArraymVertices
 List of geometry vertices. More...
 

Detailed Description

Definition at line 293 of file geometry.h.

Constructor & Destructor Documentation

oofem::PolygonLine::PolygonLine ( )

Definition at line 853 of file geometry.C.

References mDebugVtk.

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

Definition at line 298 of file geometry.h.

Member Function Documentation

virtual BasicGeometry* oofem::PolygonLine::Clone ( )
inlinevirtual

Implements oofem::BasicGeometry.

Definition at line 300 of file geometry.h.

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

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 1427 of file geometry.C.

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

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

void oofem::PolygonLine::computeIntersectionPoints ( Line l,
std::vector< FloatArray > &  oIntersectionPoints 
)
virtual
void oofem::PolygonLine::computeIntersectionPoints ( const PolygonLine iPolygonLine,
std::vector< FloatArray > &  oIntersectionPoints 
) const
void oofem::PolygonLine::computeIntersectionPoints ( const FloatArray iXStart,
const FloatArray iXEnd,
std::vector< FloatArray > &  oIntersectionPoints 
) const
double oofem::PolygonLine::computeLength ( ) const
void oofem::PolygonLine::computeLocalCoordinates ( FloatArray oLocCoord,
const FloatArray iPoint 
) const
virtual

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

Reimplemented from oofem::BasicGeometry.

Definition at line 1092 of file geometry.C.

void oofem::PolygonLine::computeNormalSignDist ( double &  oDist,
const FloatArray iPoint 
) const
virtual
int oofem::PolygonLine::computeNumberOfIntersectionPoints ( Element element)
virtual

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 1638 of file geometry.C.

References computeIntersectionPoints().

void oofem::PolygonLine::computeTangentialSignDist ( double &  oDist,
const FloatArray iPoint,
double &  oMinDistArcPos 
) const
virtual
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 1800 of file geometry.C.

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

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

void oofem::PolygonLine::giveBoundingSphere ( FloatArray oCenter,
double &  oRadius 
)
virtual
virtual const char* oofem::PolygonLine::giveClassName ( ) const
inlinevirtual

Gives class name.

Reimplemented from oofem::BasicGeometry.

Definition at line 316 of file geometry.h.

void oofem::PolygonLine::giveGlobalCoordinates ( FloatArray oGlobalCoord,
const double &  iArcPos 
) const
virtual
void oofem::PolygonLine::giveNormal ( FloatArray oNormal,
const double &  iArcPosition 
) const
void oofem::PolygonLine::giveSubPolygon ( std::vector< FloatArray > &  oPoints,
const double &  iXiStart,
const double &  iXiEnd 
) const
virtual
void oofem::PolygonLine::giveTangent ( FloatArray oTangent,
const double &  iArcPosition 
) const
virtual

Computes tangential direction at given local coordinate (arcPos)

Reimplemented from oofem::BasicGeometry.

Definition at line 1228 of file geometry.C.

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

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

bool oofem::PolygonLine::giveTips ( TipInfo oStartTipInfo,
TipInfo oEndTipInfo 
) const
virtual
IRResultType oofem::PolygonLine::initializeFrom ( InputRecord ir)
virtual
bool oofem::PolygonLine::intersects ( Element element)
virtual

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

Reimplemented from oofem::BasicGeometry.

Definition at line 1335 of file geometry.C.

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

bool oofem::PolygonLine::isInside ( Element element)
virtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1393 of file geometry.C.

bool oofem::PolygonLine::isInside ( FloatArray point)
virtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1399 of file geometry.C.

References oofem::max(), and oofem::min().

bool oofem::PolygonLine::isOutside ( BasicGeometry bg)
virtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1645 of file geometry.C.

void oofem::PolygonLine::printVTK ( int  iTStepIndex,
int  iLineIndex 
)
virtual
void oofem::PolygonLine::printYourself ( )
virtual

Reimplemented from oofem::BasicGeometry.

Definition at line 1650 of file geometry.C.

References oofem::BasicGeometry::mVertices.

Member Data Documentation

bool oofem::PolygonLine::mDebugVtk
private

Definition at line 295 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 documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:39 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011