Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
iclumptemplate.h
Go to the documentation of this file.
1 #pragma once
2 
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
49  virtual const Quat & getOrigOrientation() const=0;
51 #else
52  virtual const double & getOrigOrientation() const=0;
54 #endif
55  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
72  virtual SymTensor getMoiTensor() const = 0;
74 #endif
75  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
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
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
unsigned int TType
class type indicator
Definition: basedef.h:41
Definition: ipebble.h:23
A symmetric 2nd order tensor.
Definition: symtensor.h:19
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
3D quaternion utility class.
Definition: quat.h:103