Itasca C++ Interface
iclumptemplate.h
Go to the documentation of this file.
1 #pragma once
8 namespace itasca {
9  class IThing;
10 }
11 namespace itascaxd {
12 }
13 
14 namespace 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:109
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
virtual void doIncNumReferenced()=0
Increment the number of times this is referenced.
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 const double & getOrigOrientation() const =0
Get the double corresponding to the orientation relative to the clump template orientation.
virtual DAVect getMoi() const =0
Return the inertia tensor in principal axis form.
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 IThing * getIThing()=0
Return an IThing interface for this object.
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 IClumpTemplate * cloneAll(const QString &name=QString(), bool add=true) const =0
Clone this template completely, not adding it to any container.
virtual const IThing * getIThing() const =0
Return a const 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.
virtual const IClump * getClump() const =0
Return the const clump.
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:150
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:158
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