16 class IPieceMechanical;
19 class IBodyMechanical;
20 class IRigidBodyMechanical;
40 inline static const TType type_ = 0x4e665ed6;
43 virtual IThing * getIThing() = 0;
45 virtual const IThing * getIThing()
const = 0;
47 virtual IClump * getNext() = 0;
49 virtual const IClump * getNext()
const = 0;
51 virtual IPiece * getFirstIPiece() = 0;
53 virtual const IPiece * getFirstIPiece()
const = 0;
55 virtual IPebble * getFirstPebble() = 0;
57 virtual const IPebble * getFirstPebble()
const = 0;
63 virtual IBody * getIBody() = 0;
65 virtual const IBody * getIBody()
const = 0;
76 virtual uint getNumberPebbles()
const=0;
82 virtual double getSurfaceScaleFactor()
const = 0;
85 virtual double getMoiComp(
int)
const = 0;
88 virtual double getInertialMoiComp(
int)
const = 0;
90 virtual SymTensor getInertialMoiTensor()
const = 0;
92 virtual SymTensor getMoiTensor()
const = 0;
94 virtual DAVect getMoi()
const=0;
97 virtual DAVect getInertialMoi()
const=0;
100 virtual void setMoiComp(
const double &,
int) = 0;
102 virtual void setMoi(
const DAVect &)=0;
106 virtual bool rotate(
const DVect &rotp,
const DVect &axis,
const double &w,
bool update=
true,
bool noThrow =
false) = 0;
108 virtual bool scale(
const double &)=0;
115 virtual quint64 getContactCount(
bool active,
const TType &type=0,
bool domainToo =
false)
const=0;
118 virtual IContainer *getClumpAsPebbleContainer() =0;
120 virtual const IContainer *getClumpAsPebbleContainer()
const=0;
123 virtual const ITriPoly * getSurfaceDescription()
const=0;
126 virtual const Quat & getSurfaceOrientation()
const=0;
128 virtual DVect getSurfaceEuler()
const=0;
130 virtual double getSurfaceOrientation()
const=0;
147 virtual void resetClumpTemplate()=0;
149 virtual bool getIsClumpTemplate()
const=0;
153 virtual void calcAndSetInertialAttributes(
const double &per=0.01)=0;
156 virtual void setMoiFix(
bool b)=0;
157 virtual bool isMoiFix()=0;
158 virtual bool isMoiFix()
const=0;
161 virtual void setVolumeNoScale(
const double &d)=0;
164 virtual double getEnclosingDiameter()
const=0;
166 virtual int getFragmentIndex()
const=0;
171 virtual bool getFix(quint32 dof)
const=0;
173 virtual QString getFixLabel()
const=0;
175 virtual QVariant getPieceProperty(
const QString &name,
const IPiece *p=0)
const=0;
177 virtual double getDensity()
const=0;
179 virtual double getInertialMass()
const=0;
181 virtual double getMass()
const=0;
183 virtual DVect getContactForce()
const=0;
185 virtual DAVect getContactMoment()
const=0;
187 virtual DVect getAppliedForce()
const=0;
189 virtual DAVect getAppliedMoment()
const=0;
191 virtual DVect getUnbalancedForce()
const=0;
193 virtual DAVect getUnbalancedMoment()
const=0;
195 virtual double getLocalDamping()
const=0;
197 virtual void setFix(quint32 dof,
bool b)=0;
199 virtual bool setPieceProperty(
const QString &name,
const QVariant &v,
IPiece *p=0) =0;
201 virtual void setDensity(
const double &d)=0;
203 virtual void setContactForce(
const DVect &v)=0;
205 virtual void setContactMoment(
const DAVect &v)=0;
207 virtual void setAppliedForce(
const DVect &v)=0;
209 virtual void setAppliedMoment(
const DAVect &v)=0;
211 virtual void setLocalDamping(
const double &d)=0;
213 virtual void scaleVolumePreserveMass(
const double &d,
bool checkState=
true,
bool lock=
false)=0;
214 virtual void setFragmentIndex(
int ind)=0;
216 virtual bool getIsIn(
const DVect &)
const = 0;
221 virtual double getAngDisplacement()
const=0;
223 virtual DVect getCentroid()
const=0;
224 virtual DVect getVelocity()
const=0;
225 virtual DAVect getAngVelocity()
const=0;
226 virtual DVect getDisplacement()
const=0;
227 virtual double getVolume()
const=0;
228 virtual Quat getOrient()
const=0;
231 virtual void setAngDisplacement(
const double &v)=0;
233 virtual void setCentroid(
const DVect &p)=0;
234 virtual void setVelocity(
const DVect &p)=0;
235 virtual void setAngVelocity(
const DAVect &p)=0;
236 virtual void setDisplacement(
const DVect &v)=0;
237 virtual void setOrient(
const Quat &q)=0;
239 virtual DVect getEulerFromOrient()
const=0;
240 virtual void setOrientFromEuler(
const DVect3 &d)=0;
namespace Itasca
Definition: basememory.cpp:9
Interface for a TriPoly.
Definition: itripoly.h:39
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
PFC namespace.
Definition: iballfluid.h:15
An array class that attempts to minimize unnecessary heap access.
Definition: irigidbodymechanical.h:7
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
A symmetric 2nd order tensor.
Definition: symtensor.h:19
Definition: ibodymechanical.h:13
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
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
3D quaternion utility class.
Definition: quat.h:103