Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ifracnetwork.h
1 #pragma once
2 // ifracnetwork.h
3 #include "base/src/farray.h"
4 
5 
6 namespace itasca {
7  class IThing;
8  class IContainer;
9 }
10 
11 namespace itascaxd {
12  class IContact;
13 }
14 
15 namespace dfn {
16 
17  using namespace itasca;
18  using namespace itascaxd;
19  class IFracture;
20  class IVertexDFN;
21 
22  class IFracNetwork {
23  public:
24  inline static const TType type_ = 0x4d250d32;
25 
26  virtual IThing * getIThing()=0;
27  virtual const IThing * getIThing() const=0;
28  virtual QString getName() const=0;
29  virtual DVect getPosition() const=0;
30 
31  virtual IFracNetwork * getNextIFracNetwork()=0;
32  virtual const IFracNetwork * getNextIFracNetwork() const=0;
33 
34  virtual IFracture * getFirstIFracture()=0;
35  virtual const IFracture * getFirstIFracture() const=0;
36 
37  virtual void getFractureList(FArray<IFracture *> *ret)=0;
38  virtual void getFractureList(FArray<const IFracture *> *ret) const=0;
39 
40  virtual void getVertexList(FArray<IVertexDFN *> *ret)=0;
41  virtual void getVertexList(FArray<const IVertexDFN *> *ret) const=0;
42 
43  virtual void getContactList(FArray<IContact *> *ret,const TType &type=0,IFracture *frac=0)=0;
44  virtual void getContactList(FArray<const IContact *> *ret,const TType &type=0,const IFracture *frac=0) const=0;
45 
46  virtual const IFracture *findClosestFracture(const DVect &pos,const double &radius = limits<double>::max()) const=0;
47  virtual IFracture *findClosestFracture(const DVect &pos,const double &radius = limits<double>::max())=0;
48 
49  virtual IFracture *findIFracWithID(quint64 id)=0;
50  virtual const IFracture *findIFracWithID(quint64 id) const=0;
51 
52  virtual uint getDominance() const = 0;
53  virtual void setDominance(uint v) = 0;
54  virtual uint getFinalDom() const = 0;
55  virtual bool hasFracWithDominance(uint domOrder) const = 0;
56 
57  virtual void deleteFracture(IFracture *f) = 0;
58  virtual IFracture *createDiskFracture(const DVect &pos,const double &radius=0,const double &dip=0,const double &dipdir=0,quint64 fracID=0) = 0;
59  virtual IFracture *createFractureFromVertices(const QVector<DVect> &vloc,quint64 fracID=0) = 0;
60 
61  virtual uint getNumFractures() const=0;
62  virtual IContainer *getFracNetworkAsFracContainer() =0;
63  virtual const IContainer *getFracNetworkAsFracContainer() const=0;
64 
65  //virtual DVect getPosition() const = 0;
66 
67  //virtual void setPosition(const DVect &p)=0;
68 
69  };
70 } // namespace dfn
71 // EoF
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
An array class that attempts to minimize unnecessary heap access.
Definition: ifracture.h:24
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
unsigned int TType
class type indicator
Definition: basedef.h:41
Definition: ifracnetwork.h:22
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
EXPORT_TAG const char * getName()
Definition: fishexample.cpp:43
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145