Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
icontact.h
Go to the documentation of this file.
1 #pragma once
2 // icontact.h
3 
9 #include "dim.h"
11 
12 namespace itasca {
13  class IFishParam;
14  class IThing;
15  class IContainer;
16 }
17 
18 namespace itascaxd {
19  class IPiece;
20  class IContactModel;
21  using namespace itasca;
22 
24 
34  class IContact {
35  public:
37  inline static const TType type_ = 0x4c815b85;
38 
40  virtual TType getContainerType() const=0;
41 
43  virtual IThing * getIThing()=0;
44  virtual const IThing * getIThing() const=0;
45  // Get the IContainer of the contact.
46  virtual IContainer * getContainer()=0;
47  virtual const IContainer * getContainer() const=0;
48 
50  virtual QString getClassName() const=0;
52  virtual QString getTypeName() const=0;
54  virtual bool getActive() const=0;
56  virtual IPiece * getEnd1()=0;
57  virtual const IPiece * getEnd1() const=0;
59  virtual IPiece * getEnd2()=0;
60  virtual const IPiece * getEnd2() const=0;
62  virtual bool withWall() const=0;
64  virtual CAxes getLocalSystem() const=0;
66  virtual DVect getPosition() const=0;
68  virtual DVect3 getNormal() const=0;
70  virtual double getGap() const=0;
72  virtual double getArea() const=0;
74  virtual DVect2 getCharacteristicLength() const=0;
76  virtual bool getInhibit() const=0;
78  virtual bool getAlwaysActive() const=0;
80  virtual bool getNeverDelete() const=0;
84  virtual bool canDelete() const=0;
86  virtual IContactModel * getModel() =0;
87  virtual const IContactModel * getModel() const=0;
89  virtual QString getModelName() const=0;
91  virtual IContactModel *setModelName(const QString &name)=0;
92  virtual IContactModel *setModel(const IContactModel *toClone,bool validate=true)=0;
93 
95  virtual bool isMechanical() const=0;
97  virtual bool isThermal() const=0;
100  virtual IContact * getParent() =0;
101  virtual const IContact * getParent() const =0;
103  virtual void setInhibit(bool b)=0;
105  virtual void setAlwaysActive(bool b)=0;
107  virtual void setNeverDelete(bool b)=0;
109  virtual void setFix(bool b)=0;
111  virtual uint getFID() const=0;
113  virtual void setActive(bool b)=0;
115  virtual void setFID(uint i)=0;
117  virtual void setOffSet(const DVect &v)=0;
119  virtual DVect getOffSet() const =0;
121  virtual bool getIsWithGhost() const=0;
122  // Extra Variable Section
124  virtual bool amInterestedIn(const QString &cmodel) const=0;
126  virtual void clean(bool addStiffness)=0;
128  virtual QVariant getProperty(const QString &name) const=0;
130  virtual bool setProperty(const QVariant &v,const QString &name)=0;
132  virtual uint getPropertyIndex(const QString &name) const=0;
134  virtual QString getPropertyName(uint index) const=0;
136  virtual void tagPropertyNotice()=0;
138  virtual IContact * getIContact()=0;
139 
140  };
141 } // namespace itasca
142 
143 // EoF
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: caxes.h:103
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
DIM - Provides code portability between 2D and 3D codes.
Interface for the small-granularity callback utility.
Definition: ipiece.h:15
unsigned int TType
class type indicator
Definition: basedef.h:41
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Contact class.
Definition: icontact.h:34