Itasca C++ Interface
irblockthermalmodule.h
Go to the documentation of this file.
1 #pragma once
8 // irblockthermalmodule.h
9 #include "base/src/farray.h"
10 #include "shared/interface/signal.h"
11 
12 namespace itasca {
13  class IContainer;
14  class IEnergyMap;
15 }
16 
17 namespace itascaxd {
18  class ICellSpace;
19  class IContainerContact;
20 }
21 
23 namespace rblockthermal {
24  using namespace itasca;
25  using namespace itascaxd;
26 
27  class IRBlockThermal;
28 
31 
34  public:
35 
36  virtual TType getRBlockThermalType() const=0;
37  virtual uint getRBlockThermalPropertyNotice() const=0;
38  virtual uint getRBlockThermalCycleNotice() const=0;
39  virtual uint getRBlockThermalFixNotice() const=0;
40  virtual uint getRBlockThermalExtraNotice() const=0;
41  virtual uint getRBlockThermalGroupNotice() const=0;
42  virtual uint getRBlockThermalCleanNotice() const=0;
43  virtual const IContainer * getIContainerRBlockThermal() const=0;
44  virtual IContainer * getIContainerRBlockThermal()=0;
45  virtual const IContainerContact *getIContainerRBlockRBlockContactThermal() const=0;
46  virtual IContainerContact * getIContainerRBlockRBlockContactThermal()=0;
47  virtual const IRBlockThermal * findRBlockThermalWithID(quint64 id) const=0;
48  virtual IRBlockThermal * findRBlockThermalWithID(quint64 id) =0;
49  virtual const IRBlockThermal * findRBlockThermalClosestTo(const DVect &v,const double &radius=limits<double>::max()) const=0;
50  virtual IRBlockThermal * findRBlockThermalClosestTo(const DVect &v,const double &radius=limits<double>::max())=0;
51  virtual void validate()=0;
52  virtual const IEnergyMap * getIRBlockThermalEnergies() const=0;
53  virtual const IEnergyMap * getIContactThermalRBlockRBlockEnergies() const=0;
54 
55  // Populates sets of property names based on their type including the relevant notices
56  virtual void populateAttributeSets(QStringList *scalarAtts,FArray<uint> *scalarNotices,QStringList *stringAtts,FArray<uint> *stringNotices,QStringList *vectorAtts,FArray<uint> *vectorNotices)const=0;
57  // Populates sets of property names based on their type
58  virtual void populatePropertySets(QStringList *scalarProps,QStringList *stringProps,QStringList *vectorProps)const=0;
59 
60  using prop_signal = shared::Signal<const QString &,const QVariant &>;
61 
63  virtual prop_signal * getPropertySignal() const = 0;
64 
65  };
67 
68 } // namespace rblockthermal
69 // EoF
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:25
Interface for containers of IThings.
Definition: icontainer.h:21
Interface to EnergyMap class.
Definition: ienergymap.h:15
Contact container class.
Definition: icontainercontact.h:29
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
Definition: irblockthermal.h:24
Interface for the RBlock thermal module.
Definition: irblockthermalmodule.h:33
virtual prop_signal * getPropertySignal() const =0
Return the signal associated with the addition of a new property.
An array class that attempts to minimize unnecessary heap access.
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
RBLOCKTHERMAL namespace.
Definition: icontactthermalballrblock.h:13