5 #include "module/interface/ibody.h" 6 #include "utility/src/thing.h" 7 #include "utility/src/locallink.h" 14 class IPieceMechanical;
15 class IPieceMechanicalData;
24 public LocalLink<IPebble>
27 inline static const TType type_ = 0x4e6627a1;
28 IPebble(quint64
id) : ThingID(
id) { }
30 virtual IThing * getIThing() {
return this; }
31 virtual const IThing * getIThing()
const {
return this; }
32 virtual IPiece * getIPiece()=0;
33 virtual const IPiece * getIPiece()
const=0;
38 virtual IClump * getIClump()=0;
39 virtual const IClump * getIClump()
const=0;
40 virtual void setIClump(
IClump *)=0;
42 virtual const IPebble * getNext()
const=0;
44 virtual void setNext(
IPebble *)=0;
45 virtual void setPrev(
IPebble *)=0;
46 virtual const IPebble * getPrev()
const=0;
47 virtual bool baseIsIn(
const DVect &d,
const double &tol=1e-7)
const { d; tol;
throw Exception(
"Not in IPiece baseIsIn"); }
48 virtual bool baseBoxIsIn(
const DExtent &d,
const double &tol=1e-7)
const { d; tol;
throw Exception(
"Not in IPiece baseBoxIsIn"); }
49 virtual bool baseIntersects(
const DExtent &d,
const double &tol=1e-7)
const { d; tol;
throw Exception(
"Not in IPiece baseIntersects"); }
51 virtual void baseScale(
const double &d)=0;
52 virtual double baseRadius()
const=0;
53 virtual void baseSetOnRestore(
bool b)=0;
54 virtual void baseSetMapTolConst(
const double &d)=0;
55 virtual double baseTolerance()
const=0;
56 virtual bool checkExtent(
bool localLock=
false)=0;
57 virtual bool regularPebble()
const=0;
59 virtual void copy(
const IPebble *)=0;
61 virtual DVect getPosition()
const=0;
62 virtual double getRadius()
const=0;
63 virtual DVect getVelocity()
const=0;
64 virtual DAVect getAngVelocity()
const=0;
65 virtual DExtent getDExtent()
const=0;
66 virtual DExtent getCellExtent()
const=0;
67 virtual DExtent getToleranceExtent()
const=0;
68 virtual bool getIsClumpTemplate()
const=0;
69 virtual bool getIsClumpTemplateAndReferredTo()
const=0;
70 virtual void spinTranslate(
const DMatrix<dim,dim> &rm,
const DVect &trans,
bool lock=
false,
bool checkExtent=
true)=0;
76 virtual void setPosition(
const DVect &p)=0;
77 virtual void setRadius(
const double &d,
bool lock=
false)=0;
78 virtual void setRadiusNoLock(
const double &d)=0;
80 virtual int getFragmentIndex()
const = 0;
83 virtual void getFacetGeometry(
FArray<DVect> *vert,
double &)
const=0;
Base exception class for all Itasca code.
Definition: baseqexception.h:9
namespace Itasca
Definition: basememory.cpp:9
DMatrix is a Matrix that defaults to type double...
Definition: matrix.h:719
Base class for items that will be stored in containers.
Definition: ithing.h:31
Definition: ipiecemechanicaldata.h:13
PFC namespace.
Definition: iballfluid.h:15
Interface for a clump template. This is the interface for a clump template. A clump template is compo...
Definition: iclumptemplate.h:25
Definition: ipiecemechanical.h:11
unsigned int TType
class type indicator
Definition: basedef.h:41
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:149
InOutMode
Enumerator for defining the geometric attributes of a body relative to a geometric shape.
Definition: ibody.h:26
A template-based matrix class, size fixed at compile time.
Interface for a clump. This is the interface for a clump. A clump is a collection of pebbles that def...
Definition: iclump.h:37
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:151
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145