Itasca C++ Interface
izonefielddata.h
Go to the documentation of this file.
1 // izonefielddata.h
2 #pragma once
3 
9 namespace itascaxd {
10  class IData;
11 }
12 
13 namespace zone {
14  using itascaxd::IData;
15  class IGp;
16  class IGpData;
17  class IZone;
18  class IZoneData;
19  class IZoneInterpolate;
20  class ZoneWt;
21 
29  public:
30  enum Source { ZoneSource, GpSource, BothSource };
31  // signals
33  shared::Signal<const string &> propertyChanged;
34  shared::Signal<bool> propertyActiveChanged;
35  shared::Signal<const StringList &> propertiesAvailableChanged;
36  shared::Signal<int> sourceChanged;
37  shared::Signal<bool> sourceActiveChanged;
39  shared::Signal<int> currentSourceChanged;
40  shared::Signal<bool> zoneSourceChanged;
41 
42 
43  virtual const IData * getIData() const=0;
44  virtual IData * getIData()=0;
46  virtual const IZoneInterpolate *getIZoneInterpolate() const=0;
49  virtual const IZoneData *getIZoneData() const=0;
50  virtual IZoneData *getIZoneData()=0;
51  virtual const IGpData *getIGpData() const=0;
52  virtual IGpData *getIGpData()=0;
53 
54  virtual int getCurrentSource() const=0;
55  virtual int getSource() const=0;
56  virtual bool getSourceActive() const=0;
57  virtual QStringList getSourceNames() const=0;
58  virtual QStringList getSourceKeywords() const=0;
59  virtual string getProperty() const=0;
60  virtual bool getPropertyActive() const=0;
61  virtual StringList getPropertiesAvailable() const=0;
62  virtual std::vector<uint32> getInterestedIn() const=0;
63 
68  virtual QPair<double,uint64> getData(const DVect &pos)=0;
71  virtual double getData(const IGp *gp,const IZone *z,uint32 thread=0,uint32 block=0)=0;
72  virtual double getData(const IZone *z,const DVect &pos,double tol=0.0)=0;
73  virtual double getData(const IZone *z,const ZoneWt &wt)=0;
79  virtual void initialize()=0;
80  virtual void initializeMultithreading(bool needSpatialSearch,uint32 threads)=0;
83  virtual void reset()=0;
85  virtual void destroy()=0;
86 
87  // public slots
88  virtual void setProperty(const string &s)=0;
89  virtual void setSource(int source)=0;
90  virtual void setComponent(int i)=0;
91  virtual void setQuantity(int i)=0;
92  };
93 } // namespace zone
94 // EoF
Definition: basestring.h:77
Definition: idata.h:16
Interface that allows access to gridpoint scalar data in a generic way.
Definition: igpdata.h:27
Interface to provide access to a gridpoint.
Definition: igp.h:55
Access to zone scalar data.
Definition: izonedata.h:24
Interface for accessing the zone field data class.
Definition: izonefielddata.h:28
virtual void destroy()=0
Destroys this object, returning the memory to the heap.
shared::Signal< const string & > propertyChanged
This SIGNAL is emitted if the name of the property used for zone property data changes.
Definition: izonefielddata.h:33
virtual double getData(const IGp *gp, const IZone *z, uint32 thread=0, uint32 block=0)=0
shared::Signal< int > currentSourceChanged
This SIGNAL is emitted if the active index changes from zone based to gp, or vice versa.
Definition: izonefielddata.h:39
virtual IZoneInterpolate * getIZoneInterpolate()=0
Returns a pointer to the zone interpolate, IZoneInterpolate.
virtual void initialize()=0
virtual QPair< double, uint64 > getData(const DVect &pos)=0
virtual void reset()=0
virtual const IZoneInterpolate * getIZoneInterpolate() const =0
Returns a const pointer to the zone interpolate, IZoneInterpolate.
Interface to provide access to a zone.
Definition: izone.h:80
Interface for accessing the zone interpolation class.
Definition: izoneinterpolate.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4