21 enum EdgeType { edgeTypeSimple=0, edgeTypePoly, edgeTypeEllipse };
23 enum EdgePolyType { edgePolyTypeLinear=0, edgePolyTypeArc, edgePolyTypeSpline };
30 inline static const TType type_ = 0x4cb610e6;
33 virtual const IThing * getIThing()
const=0;
35 virtual IThing * getIThing()=0;
37 virtual const IGeomEdge * getIGeomEdge()
const=0;
41 virtual bool isBlocked()
const=0;
43 virtual bool isSimple()
const=0;
45 virtual bool isPolyline()
const=0;
47 virtual bool isCurved()
const=0;
50 virtual void setPointExtrude(
IExtrudePoint *point,quint32 end)=0;
54 virtual const IExtrudePoint * getIExtrudePoint(quint32 end)
const=0;
66 virtual quint32 getSize()
const=0;
68 virtual double getRatio()
const=0;
70 virtual bool getRatioIsolate()
const=0;
72 virtual DVect getDiscretizedLocation(quint32 index,quint32 multiplier)
const=0;
74 virtual DVect getParametricLocation(
const double &frac0)
const=0;
76 virtual QList<quint64> getConnectedEdges()
const=0;
79 virtual quint32 setSize(quint32 s)=0;
81 virtual quint32 setRatio(
const double &r)=0;
83 virtual void setRatioIsolate(
bool b)=0;
86 virtual int getEdgeBlockCount()
const=0;
88 virtual DVect computeBlockSplitPoint(
double mu,
int index)
const=0;
91 virtual quint32 getEdgeType()
const=0;
93 virtual quint32 getHybridType()
const=0;
100 virtual double getEdgePolylineLength()
const=0;
102 virtual double computeEdgePolylineCurveLength()
const=0;
105 virtual quint32 getEdgePolylineType()
const=0;
107 virtual quint32 getEdgePolylineSize()
const=0;
109 virtual DVect getEdgePolylineControlPoint(
int id)
const=0;
112 virtual double getEdgePolylineControlU(
int id)
const=0;
114 virtual double getEdgePolylineControlV(
int id)
const=0;
116 virtual void setEdgePolylineControlPoint(
int index,
DVect p)=0;
118 virtual void setEdgePolylineControlLocal(
int index,
double u,
double v)=0;
120 virtual void setEdgePolylineControlLocalU(
int index,
double u)=0;
122 virtual void setEdgePolylineControlLocalV(
int index,
double v)=0;
125 virtual void addEdgePolylineControlPoint(
DVect p)=0;
127 virtual void addEdgePolylineControlLocal(
double u,
double v)=0;
129 virtual void removeEdgePolylineControlPoint(
int id)=0;
132 virtual double findParameterForPosition(
DVect pos)
const=0;
135 virtual void setEdgeTypeSimple()=0;
137 virtual void setEdgeType(
int edgeType)=0;
139 virtual void setEdgePolylineType(
int curvetype=edgePolyTypeLinear)=0;
145 virtual bool belongsToIrregBlock()
const=0;
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
Interface for LinkType<> objects, POD that contain both the pointer to the next object and an index f...
Definition: ilinktype.h:14
Interface for LinkType<> objects, POD that contain both the pointer to the next object and an index f...
Interface for IExtrudeEdge objects.
Definition: iextrudeedge.h:27
unsigned int TType
class type indicator
Definition: basedef.h:41
Interface for a user-defined geometric edge, defined as the line between two IGeomPoint objects.
Definition: igeomedge.h:24
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
Interface for IExtrudePoint objects.
Definition: iextrudepoint.h:20
same as LynkType, but with a constant pointer object
Definition: ilinktype.h:46
Interface for IExtrudeEdge objects.
Definition: iextruderegion.h:21
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145