Itasca C++ Interface
izonearray.h
Go to the documentation of this file.
1 #pragma once
2 // izoneaarray.h
3 
11 #include "iblockdef.h"
12 
13 namespace itasca
14 {
15  class IContainer;
16  class IThing;
17 }
18 namespace itascaxd
19 {
20  class IRange;
21  class IFetchProperty;
22 }
23 
24 namespace block
25 {
26  using namespace itasca;
27 
28  class IZoneThing;
29  class IZoneData;
30 
34  class IZoneArray
35  {
36  public:
38  virtual const IThing * getIThing() const=0;
40  virtual IThing * getIThing()=0;
42  virtual const IContainer * getIContainer() const=0;
44  virtual IContainer * getIContainer() =0;
46  virtual const IZoneThing * findZoneWithID(quint64 id) const=0;
48  virtual IZoneThing * findZoneWithID(quint64 id)=0;
50  virtual quint32 getZoneType() const=0;
52  virtual quint32 getZoneFaceType() const=0;
54  virtual quint64 getNumZones() const=0;
55 
66  virtual int claimBit() const=0;
68  virtual void releaseBit(int bit) const=0;
79  virtual int claimValue() const=0;
81  virtual void releaseValue(int bit) const=0;
84  virtual IZoneData * createIZoneData() const=0;
86  virtual uint getZoneExtraNotice() const=0;
88  virtual uint getGroupNotice() const=0;
90  virtual uint getGeometryNotice() const=0;
92  virtual uint getStressNotice() const=0;
94  virtual uint getPropertyNotice() const=0;
96  virtual uint getModelNotice() const=0;
98  virtual uint getMaterialNotice() const=0;
100  virtual uint getHideNotice() const=0;
103  virtual IZoneThing* findZoneContaining(const DVect &v, bool visible=false, double dEpsFac=1.0e-5,const itascaxd::IRange *range=nullptr) const=0;
105  virtual const IZoneThing * findZone(const DVect &v, bool visible = false) const=0;
106  virtual itascaxd::IFetchProperty* makeFetchProperty(const string& prop) const = 0;
107  };
108 
109 } // end namespace block
110 // EOF
Container to store ZoneThings. ID of BlockThing is stored in offset $KZCPP in Fortran zone linked lis...
Definition: izonearray.h:35
virtual void releaseBit(int bit) const =0
Releases a bit index previously obtained with claimBit(). Thread-safe.
virtual uint getStressNotice() const =0
Returns the tag for the zone stress change notice.
virtual quint64 getNumZones() const =0
Returns the number of zones.
virtual uint getZoneExtraNotice() const =0
Returns the tag for the zone extra variable change notice.
virtual const IZoneThing * findZoneWithID(quint64 id) const =0
Returns a const pointer to the zone, IZone, with the ID id, or 0 if the zone does not exist.
virtual int claimBit() const =0
Claims a bit from the zones utility bit field.
virtual uint getModelNotice() const =0
Returns the tag for the zone model change notice.
virtual quint32 getZoneFaceType() const =0
Returns the zone face type identifier.
virtual const IZoneThing * findZone(const DVect &v, bool visible=false) const =0
Return zone closest to input location.
virtual void releaseValue(int bit) const =0
Releases a value index back to the zones utility value array. Thread-safe.
virtual uint getPropertyNotice() const =0
Returns the tag for the zone property change notice.
virtual uint getGeometryNotice() const =0
Returns the tag for the zone geometry change notice.
virtual IThing * getIThing()=0
Returns a pointer to an IThing interface representing the IZoneArray.
virtual int claimValue() const =0
Claims a bit from the zones utility value array.
virtual IZoneData * createIZoneData() const =0
virtual uint getGroupNotice() const =0
Returns the tag for the zone group change notice.
virtual uint getMaterialNotice() const =0
Returns the tag for the zone material change notice.
virtual IContainer * getIContainer()=0
Returns a pointer to the IContainer.
virtual const IThing * getIThing() const =0
Returns a const pointer to an IThing interface representing the IZoneArray.
virtual IZoneThing * findZoneWithID(quint64 id)=0
Returns a pointer to the zone, IZone, with the ID id, or 0 if the zone does not exist.
virtual uint getHideNotice() const =0
Returns the tag for the zone hide state notice.
virtual const IContainer * getIContainer() const =0
Returns a const pointer to the IContainer.
virtual quint32 getZoneType() const =0
Returns the zone type identifier.
virtual IZoneThing * findZoneContaining(const DVect &v, bool visible=false, double dEpsFac=1.0e-5, const itascaxd::IRange *range=nullptr) const =0
Access to zone scalar data in a generic way. This class maintains a list of scalar data (sxx,...
Definition: izonedata.h:21
This is the interface for ZoneThing, a class that holds extra data not in the fortran arrays....
Definition: izonething.h:35
Interface for containers of IThings.
Definition: icontainer.h:21
Base class for items that will be stored in containers.
Definition: ithing.h:30
Definition: ifetchproperty.h:11
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:32
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Fortran to C++ type declarations.
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4