4 #include "base/src/mat.h" 21 class IContactModelMechanical;
23 class IPieceMechanical;
40 inline static const TType type_ = 0x04c815ba9;
46 virtual const IThing * getIThing()
const=0;
47 virtual IThing * getIThing()=0;
49 virtual const IContact * getContact()
const=0;
52 virtual const IPiece * getEnd1()
const=0;
53 virtual IPiece * getEnd1()=0;
58 virtual const IPiece * getEnd2()
const=0;
59 virtual IPiece * getEnd2()=0;
64 virtual DVect2 getEnd1Curvature()
const=0;
66 virtual DVect2 getEnd2Curvature()
const=0;
68 virtual DVect2 getEnd1Extent()
const=0;
70 virtual DVect2 getEnd2Extent()
const=0;
72 virtual const IContactModel * getModel()
const=0;
73 virtual IContactModel * getModel()=0;
75 virtual const IContactModelMechanical *getModelMechanical()
const=0;
76 virtual IContactModelMechanical * getModelMechanical()=0;
78 virtual IContactModel * setModel(
const IContactModel *toClone,
bool validate=
true)=0;
80 virtual void replaceContactModel(IContactModel*)=0;
82 virtual QString getModelName()
const=0;
84 virtual IContactModel * setModelName(
const QString &name)=0;
86 virtual QVariant getProperty(
const QString &name)
const=0;
88 virtual bool setProperty(
const QVariant &v,
const QString &name)=0;
90 virtual uint getPropertyIndex(
const QString &name)
const=0;
92 virtual QString getPropertyName(uint index)
const=0;
94 virtual DVect getLocalForce()
const=0;
96 virtual DAVect getLocalMomentOn1()
const=0;
98 virtual DAVect getLocalMomentOn2()
const=0;
100 virtual DVect getGlobalForce()
const=0;
102 virtual double getNormalForce()
const=0;
104 virtual double getShearForce()
const=0;
106 virtual DAVect getGlobalMomentOn1()
const=0;
108 virtual DAVect getGlobalMomentOn2()
const=0;
110 virtual uint getFID()
const=0;
112 virtual void setFID(uint i)=0;
116 virtual void executeFIDSignal(IContactModel *)=0;
118 virtual void executeFIDSignal(IContactModel *)
const=0;
120 virtual double getGap()
const=0;
122 virtual double calculateOverlapVolume()
const = 0;
126 virtual DVect getLength()
const = 0;
128 virtual void updateResultingTorqueOn1Local(
const DVect &forceOn2,
DAVect *ret)
const=0;
130 virtual void updateResultingTorqueOn2Local(
const DVect &forceOn2,
DAVect *ret)
const=0;
132 virtual DVect inGlobal(
const DVect &vin)
const=0;
134 virtual DVect inLocal(
const DVect &vin)
const=0;
136 virtual DVect2 getEffectiveTranslationalStiffness()
const =0;
137 virtual DAVect getEffectiveRotationalStiffness()
const =0;
140 virtual bool getIsBonded()
const = 0;
142 virtual void unbondMe()=0;
144 virtual void setFullUpdate(
bool)=0;
145 virtual bool getFullUpdate()
const=0;
146 virtual DVect localForceFromStress(
const Mat &)
const=0;
147 virtual void setForce(
const DVect &vin) = 0;
149 virtual bool getJointGeometry(std::vector<DVect> *points,
int whichProc=0)
const=0;
151 virtual DVect getRelativeLocalVelocity(
const DVect &pos)
const = 0;
namespace Itasca
Definition: basememory.cpp:9
Definition of a Signal2 object, holding a list of ISlot2 objects.
Definition: isignalbase.h:76
Base class for items that will be stored in containers.
Definition: ithing.h:31
Interface for the small-granularity callback utility.
Definition: ipiecemechanical.h:11
unsigned int TType
class type indicator
Definition: basedef.h:41
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