Itasca C++ Interface
Loading...
Searching...
No Matches
ifracture.h
1#pragma once
2// ifracture.h
3#include "base/src/farray.h"
5
6namespace itasca {
7 class IThing;
8}
9
10namespace itascaxd {
11 class IBody;
12 class IPlane;
13 class IGeomSet;
14}
15
16namespace 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(uint64 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(uint32 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<int64,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<int64,5> > *pe) const=0;
99#endif
100 };
101} // namespace dfn
102// EoF
An array class that attempts to minimize unnecessary heap access.
Definition farray.h:25
Definition ifracnetwork.h:22
Definition ifracture.h:24
virtual DVect calcClosestPoint(const DVect &) const =0
Return a DVect that is the closest point to this fracture.
virtual double getDip() const =0
Return the dip in degrees.
virtual void setDip(const double &, bool checkIn=true)=0
Set the dip in radians.
virtual double getDipD() const =0
Return the dip direction in degrees.
virtual void setDipD(const double &, bool checkIn=true)=0
Set the dip direction in radians.
Definition ivertexdfn.h:16
Base class for items that will be stored in containers.
Definition ithing.h:30
Definition ibody.h:20
A container for a single "set" of geometric elements. A geometric set is a named collection of geomet...
Definition igeomset.h:27
Interface for the definition of a Plane in 3D space.
Definition iplane.h:30
An array class that attempts to minimize unnecessary heap access.
uint32 TType
class type indicator
Definition basedef.h:46
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition dim.h:160
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
The interface for a container of a single "set" of geometry elements, representing points,...
namespace Itasca
Definition basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4