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

#include <geometry.h>

Inheritance diagram for oofem::Circle:
Collaboration diagram for oofem::Circle:

Public Member Functions

 Circle ()
virtual ~Circle ()
 Circle (FloatArray &center, double radius)
BasicGeometryClone () override
void computeNormalSignDist (double &oDist, const FloatArray &iPoint) const override
void computeTangentialSignDist (double &oDist, const FloatArray &iPoint, double &oMinDistArcPos) const override
void giveGlobalCoordinates (FloatArray &oGlobalCoord, const double &iArcPos) const override
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.
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)
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
double giveRadius () const
void giveBoundingSphere (FloatArray &oCenter, double &oRadius) override
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.
virtual void printVTK (int iTStepIndex, int iIndex)
virtual void computeLocalCoordinates (FloatArray &oLocCoord, const FloatArray &iPoint) const
virtual void giveSubPolygon (std ::vector< FloatArray > &oPoints, const double &iXiStart, const double &iXiEnd) const
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 giveInputRecord (DynamicInputRecord &input)
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)
virtual bool giveTips (TipInfo &oStartTipInfo, TipInfo &oEndTipInfo) const

Protected Attributes

double radius
const double mTangSignDist
Protected Attributes inherited from oofem::BasicGeometry
std ::vector< FloatArraymVertices
 List of geometry vertices.

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)

Detailed Description

Definition at line 252 of file geometry.h.

Constructor & Destructor Documentation

◆ Circle() [1/2]

oofem::Circle::Circle ( )
inline

Definition at line 258 of file geometry.h.

References oofem::BasicGeometry::BasicGeometry(), mTangSignDist, and radius.

Referenced by Clone().

◆ ~Circle()

virtual oofem::Circle::~Circle ( )
inlinevirtual

Definition at line 259 of file geometry.h.

◆ Circle() [2/2]

oofem::Circle::Circle ( FloatArray & center,
double radius )

Definition at line 652 of file geometry.C.

References mTangSignDist, oofem::BasicGeometry::mVertices, and radius.

Member Function Documentation

◆ Clone()

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

Implements oofem::BasicGeometry.

Definition at line 262 of file geometry.h.

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

◆ computeIntersectionPoints() [1/2]

void oofem::Circle::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 726 of file geometry.C.

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

Referenced by computeIntersectionPoints(), and computeNumberOfIntersectionPoints().

◆ computeIntersectionPoints() [2/2]

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

◆ computeNormalSignDist()

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

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

Implements oofem::BasicGeometry.

Definition at line 660 of file geometry.C.

References oofem::distance(), oofem::BasicGeometry::mVertices, and radius.

◆ computeNumberOfIntersectionPoints()

int oofem::Circle::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 803 of file geometry.C.

References computeIntersectionPoints().

◆ computeTangentialSignDist()

void oofem::Circle::computeTangentialSignDist ( double & oDist,
const FloatArray & iPoint,
double & oMinDistArcPos ) const
inlineoverridevirtual

Implements oofem::BasicGeometry.

Definition at line 268 of file geometry.h.

References mTangSignDist.

◆ giveBoundingSphere()

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

Reimplemented from oofem::BasicGeometry.

Definition at line 834 of file geometry.C.

References oofem::BasicGeometry::mVertices, and radius.

◆ giveClassName()

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

Gives class name.

Reimplemented from oofem::BasicGeometry.

Definition at line 276 of file geometry.h.

◆ giveGlobalCoordinates()

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

Reimplemented from oofem::BasicGeometry.

Definition at line 665 of file geometry.C.

References M_PI, oofem::BasicGeometry::mVertices, radius, oofem::FloatArray::resize(), and oofem::Vec2().

◆ giveRadius()

double oofem::Circle::giveRadius ( ) const
inline

Definition at line 286 of file geometry.h.

References radius.

◆ giveTangent()

void oofem::Circle::giveTangent ( FloatArray & oTangent,
const double & iArcPosition ) const
inlineoverridevirtual

Computes tangential direction at given local coordinate (arcPos).

Reimplemented from oofem::BasicGeometry.

Definition at line 273 of file geometry.h.

◆ initializeFrom()

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

Initializes the Geometry from the InputRecord.

Reimplemented from oofem::BasicGeometry.

Definition at line 673 of file geometry.C.

References _IFT_Circle_center, _IFT_Circle_radius, IR_GIVE_FIELD, oofem::BasicGeometry::mVertices, and radius.

◆ intersects()

bool oofem::Circle::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 680 of file geometry.C.

References oofem::distance(), oofem::DofManager::giveCoordinates(), oofem::Element::giveDofManager(), oofem::Element::giveNumberOfDofManagers(), oofem::BasicGeometry::mVertices, and radius.

Referenced by computeIntersectionPoints().

◆ isInside() [1/2]

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

Reimplemented from oofem::BasicGeometry.

Definition at line 702 of file geometry.C.

References oofem::distance(), oofem::BasicGeometry::giveVertex(), and radius.

◆ isInside() [2/2]

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

◆ isOutside()

◆ printYourself()

void oofem::Circle::printYourself ( )
overridevirtual

Reimplemented from oofem::BasicGeometry.

Definition at line 827 of file geometry.C.

References oofem::BasicGeometry::mVertices, and radius.

Member Data Documentation

◆ mTangSignDist

const double oofem::Circle::mTangSignDist
protected

Definition at line 256 of file geometry.h.

Referenced by Circle(), Circle(), and computeTangentialSignDist().

◆ radius


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