4 #include "contactmodel/interface/icontactmodel.h" 5 #include "contactmodel_global.h" 8 #include "shared/src/archivestream.h" 17 #define cmodelsxd cmodels2d 19 #define cmodelsxd cmodels3d 23 #pragma warning(disable:4251) 33 class ContactModelState;
35 static const quint32 ACTIVE_IS = 0x000001;
36 static const quint32 ACTIVATED = 0x000002;
37 static const quint32 ACTIVE_COULDBE = 0x000004;
50 virtual const IProgram * getProgram()
const=0;
52 bool setActive(
bool b=
true) {
if (b) activeState_ |= ACTIVE_IS;
else activeState_ &=~ ACTIVE_IS;
return isActive(); }
54 bool setCouldBeActive(
bool b=
true) {
if (b) activeState_ |= ACTIVE_COULDBE;
else activeState_ &=~ ACTIVE_COULDBE;
return couldBeActive(); }
56 bool setActivated(
bool b=
true) {
if (b) activeState_ |= ACTIVATED;
else activeState_ &=~ ACTIVATED;
return activated(); }
59 bool isActive()
const {
return activeState_ & ACTIVE_IS; }
63 bool activated()
const {
return activeState_ & ACTIVATED; }
102 virtual QString
getName()
const=0;
108 virtual QString getProperties()
const=0;
114 virtual QVariant getProperty(uint i,
const IContact *con=0)
const=0;
123 virtual int isProperty(
const QString &c,Qt::CaseSensitivity cs=Qt::CaseInsensitive)
const;
130 virtual bool setProperty(uint i,
const QVariant &v,
IContact *con=0)=0;
132 virtual bool getPropertyReadOnly(uint)
const {
return false; }
133 virtual bool supportsInheritance(uint)
const {
return false; }
134 virtual bool getInheritance(uint)
const {
return false;}
135 virtual void setInheritance(uint,
bool) {}
137 virtual QString getMethods()
const {
return QString();}
140 virtual int isMethod(
const QString &c,Qt::CaseSensitivity cs=Qt::CaseInsensitive)
const;
152 virtual int isEnergy(
const QString &c,Qt::CaseSensitivity cs=Qt::CaseInsensitive)
const;
170 virtual void destroy() {
delete this; }
173 virtual void getSphereList(
const IContact *con,std::vector<DVect> *pos,std::vector<double> *rad,std::vector<double> *val)=0;
175 virtual void getDiskList(
const IContact *con,std::vector<DVect> *pos,std::vector<DVect> *normal,std::vector<double> *radius,std::vector<double> *val)=0;
178 virtual void getCylinderList(
const IContact *con,std::vector<DVect> *bot,std::vector<DVect> *top,std::vector<double> *radlow,std::vector<double> *radhi,std::vector<double> *val)=0;
185 void setEventVal(
int i,
int j);
196 uint getPropertyIndex(
const QString &name,Qt::CaseSensitivity cs=Qt::CaseInsensitive)
const;
199 QString getPropertyName(uint index)
const;
207 void *
operator new(
size_t size);
208 void *
operator new(
size_t size,
const char *name,
const char *file,
unsigned line);
209 void operator delete(
void *v);
210 void operator delete(
void *v,
const char *name,
const char *file,
unsigned line);
211 typedef void *(*NewFunction)(size_t,
const char *,
const char *,unsigned);
212 typedef void (*DeleteFunction)(
void *,
const char *,
const char *,unsigned);
213 typedef std::pair<NewFunction,DeleteFunction> AllocFunctions;
214 static AllocFunctions setAllocFunctions(AllocFunctions afunc);
215 static AllocFunctions getDefaultAllocFunctions();
216 static AllocFunctions getAllocFunctions() {
return AllocFunctions(newFunc_,deleteFunc_); }
219 static NewFunction newFunc_;
220 static DeleteFunction deleteFunc_;
namespace Itasca
Definition: basememory.cpp:9
An array class that attempts to minimize unnecessary heap access.
EXPORT_TAG unsigned getMajorVersion()
Definition: fishexample.cpp:56
unsigned int UInt
unsigned 32 bit
Definition: basedef.h:31
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
EXPORT_TAG const char * getName()
Definition: fishexample.cpp:43
The main program access point.
Definition: iprogram.h:37
EXPORT_TAG unsigned getMinorVersion()
Definition: fishexample.cpp:62