30 inline static const TType type_ = 0x4c815bd0;
32 virtual const GeomBase *getGeomBase()
const=0;
35 virtual IThing * getIThing()=0;
37 virtual const IThing * getIThing()
const=0;
41 virtual const IGeomSet *getNext()
const=0;
44 virtual QString
getName()
const=0;
47 virtual uint getGeometryCode()
const=0;
49 virtual uint getGroupCode()
const=0;
51 virtual uint getExtraCode()
const=0;
55 virtual IGeomPoint * createPoint(
const DVect3 &pos,quint64
id=0)=0;
59 virtual const IGeomPoint *getFirstPoint()
const=0;
61 virtual IGeomPoint * findPointWithID(quint64
id)=0;
63 virtual const IGeomPoint *findPointWithID(quint64
id)
const=0;
70 virtual const IContainer *getPointContainer()
const=0;
80 virtual const IGeomEdge * getFirstEdge()
const=0;
82 virtual IGeomEdge * findEdgeWithID(quint64
id)=0;
84 virtual const IGeomEdge * findEdgeWithID(quint64
id)
const=0;
98 virtual const IContainer *getEdgeContainer()
const=0;
107 virtual const IGeomPoly * getFirstPoly()
const=0;
109 virtual IGeomPoly * findPolyWithID(quint64
id)=0;
111 virtual const IGeomPoly * findPolyWithID(quint64
id)
const=0;
129 virtual const IContainer *getPolyContainer()
const=0;
137 virtual QPair<DVect,bool> findClosestPointOnSet(
const DVect &pos,
bool polysOnly,
double radius=
limits<double>::max())
const=0;
138 virtual double findDistanceOnSetFromRay(
const DVect &pos,
const DVect &ray)
const = 0;
141 virtual QList<const IGeomPoly *> getEdgeConnectedMesh(
const IGeomPoly *poly)
const=0;
143 virtual QList<const IGeomEdge *> getVertexConnectedMesh(
const IGeomEdge *edge)
const=0;
147 virtual bool checkClosedVolume()=0;
151 virtual QList<const IThing *> marqueeDeepSelect(
bool perspective,
const FArray<DVect>& nearSelRect,
163 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
164 FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double tolerance)
const =0;
168 virtual void listObjectAlongCone(
const DVect &origin,
const DVect &beginning,
170 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
171 FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
bool *nonPlanarPolyDetected,
172 double tolerance,
const double *depth=0)
const = 0;
177 virtual void listObjectAlongCylinder(
const DVect &origin,
const DVect &beginning,
const double &radius,
179 FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
180 double tolerance,
const double *depth=0)
const = 0;
namespace Itasca
Definition: basememory.cpp:9
Definition of a Signal2 object, holding a list of ISlot2 objects.
Definition: isignalbase.h:76
Base class for items that will be stored in containers.
Definition: ithing.h:31
Definition: igeomimportexport.h:101
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
A class representing a single closed polygon made up of a list of edges.
Definition: igeompoly.h:23
unsigned int TType
class type indicator
Definition: basedef.h:41
Interface for a user-defined geometric point.
Definition: igeompoint.h:18
A container for a single "set" of geometric elements. A geometric set is a named collection of geomet...
Definition: igeomset.h:27
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
EXPORT_TAG const char * getName()
Definition: fishexample.cpp:43
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Interface for geometric objects export-imports.
Definition of a Signal2 object, holding a list of ISlot2 objects.