Itasca C++ Interface
Loading...
Searching...
No Matches
ifracture.h
1#pragma once
2// ifracture.h
3#include "base/src/farray.h"
4#include "base/src/property.h"
6
7namespace itasca {
8 class IThing;
9}
10
11namespace itascaxd {
12 class IBody;
13 class IPlane;
14 class IGeomSet;
15}
16
17namespace dfn {
18
19 using namespace itasca;
20 using namespace itascaxd;
21 class IVertexDFN;
22 class IIntersect;
23 class IFracNetwork;
24
25 class IFracture {
26 public:
27 inline static const TType type_ = 0x4d25062b;
28
29 virtual IFracture * cloneAll(uint64 id=0,IFracNetwork *fn=0) =0;
30 virtual IThing * getIThing()=0;
31 virtual const IThing * getIThing() const=0;
32 virtual IBody * getIBody() = 0;
33 virtual const IBody * getIBody() const = 0;
34 virtual IPlane * getIPlane() = 0;
35 virtual const IPlane * getIPlane() const = 0;
36 virtual IVertexDFN * getFirstVertex()=0;
37 virtual const IVertexDFN * getFirstVertex() const=0;
38 virtual IFracture * getNext()=0;
39 virtual const IFracture * getNext() const=0;
40
41 virtual DVect getPosition() const = 0;
42 virtual double getRadius() const = 0;
43 virtual double getDiameter() const = 0;
44 virtual double getGenSize() const = 0;
45 virtual DVect getGenPosition() const = 0;
46 virtual DVect3 getNormal() const = 0;
48 virtual double getDip() const = 0;
50 virtual double getDipD() const = 0;
51 virtual double getAperture() const = 0;
52 virtual void setAperture(const double &ap)=0;
53 virtual double getArea() const = 0;
54 virtual double getLength() const = 0;
55
56 virtual DExtent getCellExtent() const = 0;
57 virtual DExtent getToleranceExtent() const=0;
58
59 virtual void setPosition(const DVect &,bool checkIn=true)=0;
60 virtual void setRadius(const double &,bool checkIn=true)=0;
61 virtual void setDiameter(const double &,bool checkIn=true)=0;
62 virtual void setGenSize(const double &)=0;
63 virtual void setGenPosition(const DVect &)=0;
65 virtual void setDip(const double &,bool checkIn=true)=0;
67 virtual void setDipD(const double &,bool checkIn=true)=0;
68 virtual void setArea(const double &,bool checkIn=true)=0;
69 virtual void setLength(const double &,bool checkIn=true)=0;
70 virtual void setNormal(const DVect3 &,bool checkIn=true)=0;
71 virtual void setFracNetwork(IFracNetwork *)=0;
72
73 virtual bool intersects(IFracture *,DVect *point1=0,DVect *point2=0) const=0;
74 virtual bool intersectsGeom(IGeomSet*) const=0;
75
76 virtual IFracNetwork* getFracNetwork() const=0;
77 virtual bool getIsDisk() const=0;
78 virtual bool getIsIn(const DVect &d) const=0;
79 // check for intersection with planar convex polygon. No checking for planarity or convexity.
80 virtual bool intersects(const FArray<DVect> &vlocs) const=0;
81#ifdef THREED
82 virtual void getDiskVertices(int i,FArray<DVect> *ret) const =0;
83#endif
84 virtual void setDominance(uint32 dom)=0;
85 virtual bool setProperty(const string &name,const base::Property &v)=0;
86 virtual base::Property getProperty(const string &name) const=0;
87 virtual StringList getAllProperties() const=0;
88 virtual bool isProperty(const string &name) const=0;
89 virtual int getPropertyID() const=0;
90
91 virtual void getVertexList(FArray<IVertexDFN *> *ret)=0;
92 virtual void getVertexList(FArray<const IVertexDFN *> *ret) const=0;
93 virtual void getVertexPositions(std::vector<DVect> *ret,const double &tol=0.0) const =0;
94
96 virtual DVect calcClosestPoint(const DVect &) const=0;
97#ifdef THREED
98 virtual DVect2 getMesh(const double &s,FArray<DVect> *ret,FArray<FArray<int64,5> > *pe,FArray<bool> *in) const=0;
99 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;
100#endif
101 };
102} // namespace dfn
103// EoF
An array class that attempts to minimize unnecessary heap access.
Definition farray.h:25
Definition basestring.h:71
Definition property.h:36
Definition ifracnetwork.h:21
Definition ifracture.h:25
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:31
Definition ibody.h:22
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:47
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition dim.h:162
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:156
The interface for a container of a single "set" of geometry elements, representing points,...
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:6