Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
iface.h
Go to the documentation of this file.
1 #pragma once
2 // iface.h
3 
9 #include "izone.h"
10 
11 namespace itasca {
12  class IGroupID;
13  class ISlotID;
14 }
15 
16 namespace zone {
17  using namespace itasca;
18 
19  class IGp;
20 
23  class IFace {
24  public:
26  inline static const TType type_ = 0x4c815a0f;
27 
29  virtual IThing * getIThing()=0;
31  virtual const IThing *getIThing() const=0;
33  virtual quint32 getSize() const=0;
36  virtual const IGp * getGp(quint32 gpIdx) const=0;
38  virtual DVect getCentroid() const=0;
40  virtual const IZone * getIZone() const=0;
42  virtual void setIZone(IZone *zone)=0;
44  virtual IZone * getIZone() =0;
46  virtual quint32 getSide() const=0;
48  virtual void setSide(quint32 side)=0;
49  virtual const IZone * getJoin() const=0;
50  virtual IZone * getJoin() =0;
54  virtual bool isSurface(bool mech=true,bool therm=false,bool fluid=false,int bit=-1) const=0;
57  virtual bool isVisibleSurface() const=0;
59  virtual bool isOnVisibleZone() const=0;
66  virtual bool isOnGroupSurface(const ISlotID &slot,IGroupID *group1=nullptr,IGroupID *group2=nullptr) const=0;
68  virtual FaceID getFaceID() const=0;
70  virtual void destroy()=0;
71  };
72 } // namespace zone
73 // EoF
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
Definition: izone.h:88
Interface to provide access to a zone.
Definition: izone.h:116
Definition: igroup.h:91
unsigned int TType
class type indicator
Definition: basedef.h:41
Interface to zone faces.
Definition: iface.h:23
Interface to provide access to a zone.
Interface to provide access to a gridpoint.
Definition: igp.h:64
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: igroup.h:51