Itasca C++ Interface
Loading...
Searching...
No Matches
iclumptemplate.h
Go to the documentation of this file.
1#pragma once
8namespace itasca {
9 class IThing;
10}
11namespace itascaxd {
12}
13
14namespace pfc {
15 using namespace itasca;
16 using namespace itascaxd;
17 class IClump;
18 class IPebble;
19
26 public:
28 inline static const TType type_ = 0x4ebdb825;
29
31 virtual IThing * getIThing() = 0;
33 virtual const IThing * getIThing() const = 0;
35 virtual IClump * getClump() = 0;
37 virtual const IClump * getClump() const = 0;
40 virtual double getMoiComp(int) const = 0;
42 virtual DAVect getMoi() const=0;
43 virtual double getVolume() const=0;
44 virtual void setVolume(const double &d)=0;
45
46
47
48#ifdef THREED
50 virtual const Quat & getOrigOrientation() const=0;
51#else
53 virtual const double & getOrigOrientation() const=0;
54#endif
56 virtual QString getClumpTemplateName() const=0;
58 virtual bool getIsReferredTo() const=0;
60 virtual IClumpTemplate * cloneAll(const QString &name=QString(),bool add=true) const=0;
62 virtual void doDecNumReferenced()=0;
64 virtual void doIncNumReferenced()=0;
67 virtual void setMoiComp(const double &,int) = 0;
69 virtual void setMoi(const DAVect &)=0;
70
71#ifdef THREED
73 virtual SymTensor getMoiTensor() const = 0;
74#endif
76 virtual DVect getOrigPosition() const =0;
78 virtual void setOrigPosition(const DVect &p) =0;
80 virtual DVect getPebblePosition(const IPebble *) const=0;
81
82 };
83} // namespace pfc
84// EoF
3D quaternion utility class.
Definition quat.h:108
A symmetric 2nd order tensor.
Definition symtensor.h:22
Base class for items that will be stored in containers.
Definition ithing.h:30
Interface for a clump. This is the interface for a clump. A clump is a collection of pebbles that def...
Definition iclump.h:37
Interface for a clump template. This is the interface for a clump template. A clump template is compo...
Definition iclumptemplate.h:25
static const TType type_
TType for type casting.
Definition iclumptemplate.h:28
virtual void doIncNumReferenced()=0
Increment the number of times this is referenced.
virtual IClumpTemplate * cloneAll(const QString &name=QString(), bool add=true) const =0
Clone this template completely, not adding it to any container.
virtual void setMoi(const DAVect &)=0
Set the inertia tensor in principal axis form.
virtual DVect getPebblePosition(const IPebble *) const =0
Return the position of the pebble.
virtual DAVect getMoi() const =0
Return the inertia tensor in principal axis form.
virtual const double & getOrigOrientation() const =0
Get the double corresponding to the orientation relative to the clump template orientation.
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual DVect getOrigPosition() const =0
Get the original position of the clump template centroid.
virtual bool getIsReferredTo() const =0
Indicate whether or not a clump in the model domain refers to this clump template.
virtual double getMoiComp(int) const =0
virtual void setOrigPosition(const DVect &p)=0
Set the original position of the clump template centroid.
virtual QString getClumpTemplateName() const =0
Return the clump template name.
virtual const IClump * getClump() const =0
Return the const clump.
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual IClump * getClump()=0
Return the clump.
virtual void setMoiComp(const double &, int)=0
virtual void doDecNumReferenced()=0
Decrement the number of times this is referenced.
Definition ipebble.h:25
uint32 TType
class type indicator
Definition basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition dim.h:162
namespace Itasca
Definition basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4
PFC namespace.
Definition iballfluid.h:15