![]() |
PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
Defines annulus rectangle. More...
#include <complexGeomObjects.h>
Public Member Functions | |
| AnnulusGeomObject () | |
| Constructor. | |
| AnnulusGeomObject (GeomObject *in, GeomObject *out, std::string description="") | |
| Constructor. | |
| AnnulusGeomObject (const AnnulusGeomObject &other) | |
| Copy constructor. | |
| ~AnnulusGeomObject () | |
| Destructor. | |
| AnnulusGeomObject & | operator= (const AnnulusGeomObject &other) |
| Assignment operator. | |
| void | transform (const util::Point &translation, const double &scale, const double &angle, const util::Point &axis, const util::Point *rotationPoint) override |
Similarity about pivot \(\mathbf p\) (default: old center d_x), then rigid displacement \(\mathbf t\) = translation: \(\mathbf y = \mathbf p + s\,\mathbf R(\mathbf x-\mathbf p) + \mathbf t\). When \(\theta=0\) and \(s=1\), \(\mathbf y = \mathbf x + \mathbf t\) for every point and the center. | |
| double | volume () const override |
| Computes the volume (area in 2d, length in 1d) of object. | |
| util::Point | center () const override |
| Computes the center of object. | |
| std::pair< util::Point, util::Point > | box () const override |
| Computes the bounding box of object. | |
| std::pair< util::Point, util::Point > | box (const double &tol) const override |
| Computes the bounding box of object. | |
| double | inscribedRadius () const override |
| Computes the radius of biggest circle/sphere completely within the object. | |
| double | boundingRadius () const override |
| Computes the radius of smallest circle/sphere such that object can be fit into it. | |
| std::string | printStr (int nt, int lvl) const override |
| Returns the string containing printable information about the object. | |
| void | print (int nt, int lvl) const override |
| Prints the information about the object. | |
| void | print () const override |
| Prints the information about the object. | |
Interaction with point | |
| bool | isInside (const util::Point &x) const override |
| Checks if point is inside this object. | |
| bool | isOutside (const util::Point &x) const override |
| Checks if point is outside of this object. | |
| bool | isNear (const util::Point &x, const double &tol) const override |
| Checks if point is within given distance of this object. | |
| bool | isNearBoundary (const util::Point &x, const double &tol, const bool &within) const override |
| cons | |
| bool | doesIntersect (const util::Point &x) const override |
| Checks if point lies exactly on the boundary. | |
Interaction with box | |
| bool | isInside (const std::pair< util::Point, util::Point > &box) const override |
| Checks if box is completely inside. | |
| bool | isOutside (const std::pair< util::Point, util::Point > &box) const override |
| Checks if box is outside of the object. | |
| bool | isNear (const std::pair< util::Point, util::Point > &box, const double &tol) const override |
| Checks if box is within given distance of this object. | |
| bool | doesIntersect (const std::pair< util::Point, util::Point > &box) const override |
| Checks if box intersects this object. | |
Public Member Functions inherited from geom::GeomObject | |
| GeomObject (std::string name="", std::string description="") | |
| Constructor. | |
| virtual bool | wallContactQuery (const util::Point &x, WallContactHit &hit) const |
Closest-point / signed-gap query for analytical wall contact. Default: unsupported (returns false, clears hit). | |
Data Fields | |
| GeomObject * | d_outObj_p |
| Outer object. | |
| GeomObject * | d_inObj_p |
| Inner object. | |
| size_t | d_dim |
| Dimension objects live in. | |
Data Fields inherited from geom::GeomObject | |
| const std::string | d_name |
| name of object | |
| const std::string | d_description |
| Further description of object. | |
| std::vector< std::string > | d_tags |
| Tags/attributes about the object. | |
Defines annulus rectangle.
Definition at line 27 of file complexGeomObjects.h.
|
inline |
Constructor.
Definition at line 42 of file complexGeomObjects.h.
|
inline |
Constructor.
| in | Inner object |
| out | Outer object |
| description | Description of object (e.g., further classification or any tag) |
Definition at line 56 of file complexGeomObjects.h.
References d_dim, geom::GeomObject::d_name, d_outObj_p, and geom::getGeomTypeToDim().
|
inline |
Copy constructor.
| other | Object to copy from |
Definition at line 69 of file complexGeomObjects.h.
References geom::createGeomDeepCopy(), d_inObj_p, d_outObj_p, and geom::GeomObject::d_tags.
|
inline |
Destructor.
Definition at line 85 of file complexGeomObjects.h.
References d_inObj_p, and d_outObj_p.
|
overridevirtual |
Computes the radius of smallest circle/sphere such that object can be fit into it.
Reimplemented from geom::GeomObject.
Definition at line 77 of file complexGeomObjects.cpp.
References geom::GeomObject::boundingRadius(), and d_outObj_p.
|
overridevirtual |
Computes the bounding box of object.
Reimplemented from geom::GeomObject.
Definition at line 62 of file complexGeomObjects.cpp.
References geom::GeomObject::box(), and d_outObj_p.
Referenced by doesIntersect(), isInside(), isNear(), isOutside(), and printStr().
|
overridevirtual |
Computes the bounding box of object.
| tol | Tolerance/padding used in creating bounding box |
Reimplemented from geom::GeomObject.
Definition at line 67 of file complexGeomObjects.cpp.
References geom::GeomObject::box(), and d_outObj_p.
|
overridevirtual |
Computes the center of object.
Reimplemented from geom::GeomObject.
Definition at line 48 of file complexGeomObjects.cpp.
References geom::GeomObject::center(), d_inObj_p, d_outObj_p, util::isGreater(), geom::GeomObject::volume(), and volume().
Referenced by mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::embedPointInAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::embedPointInAnnulus3D(), printStr(), and transform().
|
overridevirtual |
Checks if box intersects this object.
| box | Box |
Reimplemented from geom::GeomObject.
Definition at line 142 of file complexGeomObjects.cpp.
References box(), d_dim, geom::getCornerPoints(), and isInside().
|
overridevirtual |
Checks if point lies exactly on the boundary.
| x | Point |
Reimplemented from geom::GeomObject.
Definition at line 109 of file complexGeomObjects.cpp.
References isNearBoundary().
|
overridevirtual |
Computes the radius of biggest circle/sphere completely within the object.
Reimplemented from geom::GeomObject.
Definition at line 72 of file complexGeomObjects.cpp.
References d_outObj_p, and geom::GeomObject::inscribedRadius().
|
overridevirtual |
Checks if box is completely inside.
| box | Box |
Reimplemented from geom::GeomObject.
Definition at line 115 of file complexGeomObjects.cpp.
References box(), d_dim, geom::getCornerPoints(), and isInside().
|
overridevirtual |
Checks if point is inside this object.
| x | Point |
Reimplemented from geom::GeomObject.
Definition at line 83 of file complexGeomObjects.cpp.
References d_inObj_p, d_outObj_p, and geom::GeomObject::isInside().
Referenced by doesIntersect(), isInside(), isOutside(), and isOutside().
|
overridevirtual |
Checks if box is within given distance of this object.
| box | Box |
| tol | Tolerance used in checking the nearness |
Reimplemented from geom::GeomObject.
Definition at line 135 of file complexGeomObjects.cpp.
References box(), d_inObj_p, d_outObj_p, and geom::GeomObject::isNear().
|
overridevirtual |
Checks if point is within given distance of this object.
| x | Point |
| tol | Tolerance used in checking the nearness |
Reimplemented from geom::GeomObject.
Definition at line 94 of file complexGeomObjects.cpp.
References d_inObj_p, d_outObj_p, and geom::GeomObject::isNear().
|
overridevirtual |
cons
cons
Reimplemented from geom::GeomObject.
Definition at line 100 of file complexGeomObjects.cpp.
References d_inObj_p, d_outObj_p, and geom::GeomObject::isNearBoundary().
Referenced by doesIntersect().
|
overridevirtual |
Checks if box is outside of the object.
| box | Box |
Reimplemented from geom::GeomObject.
Definition at line 125 of file complexGeomObjects.cpp.
References box(), d_dim, geom::getCornerPoints(), and isInside().
|
overridevirtual |
Checks if point is outside of this object.
| x | Point |
Reimplemented from geom::GeomObject.
Definition at line 90 of file complexGeomObjects.cpp.
References isInside().
|
inline |
Assignment operator.
| other | Object to copy from |
Definition at line 95 of file complexGeomObjects.h.
References geom::createGeomDeepCopy(), d_dim, d_inObj_p, d_outObj_p, and geom::GeomObject::d_tags.
|
inlineoverridevirtual |
Prints the information about the object.
Reimplemented from geom::GeomObject.
Definition at line 257 of file complexGeomObjects.h.
References print().
Referenced by print().
|
inlineoverridevirtual |
Prints the information about the object.
| nt | Number of tabs to append before printing |
| lvl | Information level (higher means more information) |
Reimplemented from geom::GeomObject.
Definition at line 250 of file complexGeomObjects.h.
References printStr().
|
overridevirtual |
Returns the string containing printable information about the object.
| nt | Number of tabs to append before printing |
| lvl | Information level (higher means more information) |
Reimplemented from geom::GeomObject.
Definition at line 154 of file complexGeomObjects.cpp.
References box(), center(), d_inObj_p, geom::GeomObject::d_name, d_outObj_p, util::io::getTabS(), util::io::printBoxStr(), geom::GeomObject::printStr(), and util::Point::printStr().
Referenced by print().
|
inlineoverridevirtual |
Similarity about pivot \(\mathbf p\) (default: old center d_x), then rigid displacement \(\mathbf t\) = translation: \(\mathbf y = \mathbf p + s\,\mathbf R(\mathbf x-\mathbf p) + \mathbf t\). When \(\theta=0\) and \(s=1\), \(\mathbf y = \mathbf x + \mathbf t\) for every point and the center.
| translation | Rigid translation vector \(\mathbf t\) (added after rotate+scale about \(\mathbf p\)) |
| scale | Uniform scale factor |
| angle | Rotation angle (radians) |
| axis | Axis of rotation |
| rotationPoint | If non-null, use as \(\mathbf p\); if null, use old d_x as pivot. If rotationPoint is null and both inner and outer exist, pivot is center() (composite centroid of the annular solid). If only one child is present, that child’s center() is used. |
Reimplemented from geom::GeomObject.
Definition at line 119 of file complexGeomObjects.h.
References geom::GeomObject::center(), center(), d_inObj_p, d_outObj_p, and geom::GeomObject::transform().
|
overridevirtual |
Computes the volume (area in 2d, length in 1d) of object.
Reimplemented from geom::GeomObject.
Definition at line 44 of file complexGeomObjects.cpp.
References d_inObj_p, d_outObj_p, and geom::GeomObject::volume().
Referenced by center().
| size_t geom::AnnulusGeomObject::d_dim |
Dimension objects live in.
Definition at line 36 of file complexGeomObjects.h.
Referenced by AnnulusGeomObject(), mesh_gen::buildAnnulus2DInCurrentModel(), mesh_gen::buildAnnulus3DInCurrentModel(), doesIntersect(), isInside(), isOutside(), anonymous_namespace{testMeshGen.cpp}::meshDimForBuiltin(), and operator=().
| GeomObject* geom::AnnulusGeomObject::d_inObj_p |
Inner object.
Definition at line 33 of file complexGeomObjects.h.
Referenced by AnnulusGeomObject(), mesh_gen::buildAnnulus2DInCurrentModel(), mesh_gen::buildAnnulus3DInCurrentModel(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildCircleAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::buildCuboidAnnulus3D(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildEllipseAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildRectangleAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::buildSphereAnnulus3D(), center(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::embedPointInAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::embedPointInAnnulus3D(), isInside(), isNear(), isNear(), isNearBoundary(), operator=(), printStr(), transform(), volume(), and ~AnnulusGeomObject().
| GeomObject* geom::AnnulusGeomObject::d_outObj_p |
Outer object.
Definition at line 30 of file complexGeomObjects.h.
Referenced by AnnulusGeomObject(), AnnulusGeomObject(), boundingRadius(), box(), box(), mesh_gen::buildAnnulus2DInCurrentModel(), mesh_gen::buildAnnulus3DInCurrentModel(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildCircleAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::buildCuboidAnnulus3D(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildEllipseAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::buildRectangleAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::buildSphereAnnulus3D(), center(), mesh_gen::anonymous_namespace{annulusMesh2D.cpp}::embedPointInAnnulus2D(), mesh_gen::anonymous_namespace{annulusMesh3D.cpp}::embedPointInAnnulus3D(), inscribedRadius(), isInside(), isNear(), isNear(), isNearBoundary(), operator=(), printStr(), transform(), volume(), and ~AnnulusGeomObject().