Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ifracture.h
1 #pragma once
2 // ifracture.h
3 #include "base/src/farray.h"
5 
6 namespace itasca {
7  class IThing;
8 }
9 
10 namespace itascaxd {
11  class IBody;
12  class IPlane;
13  class IGeomSet;
14 }
15 
16 namespace dfn {
17 
18  using namespace itasca;
19  using namespace itascaxd;
20  class IVertexDFN;
21  class IIntersect;
22  class IFracNetwork;
23 
24  class IFracture {
25  public:
26  inline static const TType type_ = 0x4d25062b;
27 
28  virtual IFracture * cloneAll(quint64 id=0,IFracNetwork *fn=0) =0;
29  virtual IThing * getIThing()=0;
30  virtual const IThing * getIThing() const=0;
31  virtual IBody * getIBody() = 0;
32  virtual const IBody * getIBody() const = 0;
33  virtual IPlane * getIPlane() = 0;
34  virtual const IPlane * getIPlane() const = 0;
35  virtual IVertexDFN * getFirstVertex()=0;
36  virtual const IVertexDFN * getFirstVertex() const=0;
37  virtual IFracture * getNext()=0;
38  virtual const IFracture * getNext() const=0;
39 
40  virtual DVect getPosition() const = 0;
41  virtual double getRadius() const = 0;
42  virtual double getDiameter() const = 0;
43  virtual double getGenSize() const = 0;
44  virtual DVect getGenPosition() const = 0;
45  virtual DVect3 getNormal() const = 0;
47  virtual double getDip() const = 0;
49  virtual double getDipD() const = 0;
50  virtual double getAperture() const = 0;
51  virtual void setAperture(const double &ap)=0;
52  virtual double getArea() const = 0;
53  virtual double getLength() const = 0;
54 
55  virtual DExtent getCellExtent() const = 0;
56  virtual DExtent getToleranceExtent() const=0;
57 
58  virtual void setPosition(const DVect &,bool checkIn=true)=0;
59  virtual void setRadius(const double &,bool checkIn=true)=0;
60  virtual void setDiameter(const double &,bool checkIn=true)=0;
61  virtual void setGenSize(const double &)=0;
62  virtual void setGenPosition(const DVect &)=0;
64  virtual void setDip(const double &,bool checkIn=true)=0;
66  virtual void setDipD(const double &,bool checkIn=true)=0;
67  virtual void setArea(const double &,bool checkIn=true)=0;
68  virtual void setLength(const double &,bool checkIn=true)=0;
69  virtual void setNormal(const DVect3 &,bool checkIn=true)=0;
70  virtual void setFracNetwork(IFracNetwork *)=0;
71 
72  virtual bool intersects(IFracture *,DVect *point1=0,DVect *point2=0) const=0;
73  virtual bool intersectsGeom(IGeomSet*) const=0;
74 
75  virtual IFracNetwork* getFracNetwork() const=0;
76  virtual bool getIsDisk() const=0;
77  virtual bool getIsIn(const DVect &d) const=0;
78  // check for intersection with planar convex polygon. No checking for planarity or convexity.
79  virtual bool intersects(const FArray<DVect> &vlocs) const=0;
80 #ifdef THREED
81  virtual void getDiskVertices(int i,FArray<DVect> *ret) const =0;
82 #endif
83  virtual void setDominance(uint dom)=0;
84  virtual bool setProperty(const QString &name,const QVariant &v)=0;
85  virtual QVariant getProperty(const QString &name) const=0;
86  virtual QStringList getAllProperties() const=0;
87  virtual bool isProperty(const QString &name) const=0;
88  virtual int getPropertyID() const=0;
89 
90  virtual void getVertexList(FArray<IVertexDFN *> *ret)=0;
91  virtual void getVertexList(FArray<const IVertexDFN *> *ret) const=0;
92  virtual void getVertexPositions(std::vector<DVect> *ret,const double &tol=0.0) const =0;
93 
95  virtual DVect calcClosestPoint(const DVect &) const=0;
96 #ifdef THREED
97  virtual DVect2 getMesh(const double &s,FArray<DVect> *ret,FArray<FArray<qint64,5> > *pe,FArray<bool> *in) const=0;
98  virtual void interpOnMesh(FArray<DVect> &vals,FArray<double> &heights,const double &meshRes,const double &interpDist,FArray<DVect> *mesh,FArray<double> *rh,FArray<FArray<qint64,5> > *pe) const=0;
99 #endif
100  };
101 } // namespace dfn
102 // EoF
The interface for a container of a single "set" of geometry elements, representing points,...
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
Definition: ivertexdfn.h:16
An array class that attempts to minimize unnecessary heap access.
Definition: ifracture.h:24
unsigned int TType
class type indicator
Definition: basedef.h:41
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:149
A container for a single "set" of geometric elements. A geometric set is a named collection of geomet...
Definition: igeomset.h:27
Definition: ifracnetwork.h:22
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Interface for the definition of a Plane in 3D space.
Definition: iplane.h:30
Definition: ibody.h:20