Itasca C++ Interface
imoduleclumpccfd.h
1 #pragma once
2 // imoduleclumpccfd.h
3 #include "shared/interface/signal.h"
4 #include "base/src/farray.h"
5 
6 namespace itasca {
7  class IContainer;
8  class IEnergyMap;
9 }
10 
11 namespace itascaxd {
12  class ICellSpace;
13  class IContainerContact;
14 }
15 
16 namespace ccfd {
17  using namespace itasca;
18  using namespace itascaxd;
19 
20  class IClumpCCFD;
21  class IPebbleCCFD;
22 
24  public:
25  using prop_signal = shared::Signal<const QString &, const QVariant &>;
26 
27  virtual TType getClumpCCFDType() const=0;
28  virtual TType getPebbleCCFDType() const=0;
29  virtual uint32 getClumpCCFDCycleNotice() const=0;
30  virtual uint32 getClumpCCFDExtraNotice() const=0;
31  virtual uint32 getClumpCCFDGroupNotice() const=0;
32  virtual uint32 getClumpCCFDCleanNotice() const=0;
33  virtual const IContainer * getIContainerClumpCCFD() const=0;
34  virtual IContainer * getIContainerClumpCCFD()=0;
35  virtual const IClumpCCFD * findClumpCCFDWithID(uint64 id) const=0;
36  virtual IClumpCCFD * findClumpCCFDWithID(uint64 id) =0;
37  virtual const IContainer * getIContainerPebbleCCFD() const=0;
38  virtual IContainer * getIContainerPebbleCCFD()=0;
39  virtual const IPebbleCCFD * findPebbleCCFDWithID(uint64 id) const=0;
40  virtual IPebbleCCFD * findPebbleCCFDWithID(uint64 id) =0;
41  virtual const IClumpCCFD * findClumpCCFDClosestTo(const DVect3 &v,const double &radius=limits<double>::max()) const=0;
42  virtual IClumpCCFD * findClumpCCFDClosestTo(const DVect3 &v,const double &radius=limits<double>::max())=0;
43  virtual void validate()=0;
44  //virtual const IEnergyMap * getIClumpCCFDEnergies() const=0;
45 
46  // Populates sets of property names based on their type including the relevant notices
47  virtual void populateAttributeSets(QStringList *scalarAtts,FArray<uint32> *scalarNotices,QStringList *stringAtts,FArray<uint32> *stringNotices,QStringList *vectorAtts,FArray<uint32> *vectorNotices)const=0;
48  // Populates sets of property names based on their type
49  virtual void populatePropertySets(QStringList *scalarProps,QStringList *stringProps,QStringList *vectorProps)const=0;
50 
51  };
52 } // namespace ccfd
53 // EoF
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:25
Definition: iclumpccfd.h:28
Definition: imoduleclumpccfd.h:23
Definition: ipebbleccfd.h:25
Interface for containers of IThings.
Definition: icontainer.h:21
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
An array class that attempts to minimize unnecessary heap access.
uint32 TType
class type indicator
Definition: basedef.h:46
ccfd namespace
Definition: iballfluid.h:19
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4