4#include "shared/interface/signal.h"
32 virtual const GeomBase *getGeomBase()
const=0;
137 virtual std::pair<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;
149 virtual bool checkClosedVolume()=0;
163 FArray<std::pair<const IGeomEdge *, DVect>> *retEdges,
164 FArray<std::pair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double tolerance)
const =0;
170 FArray<std::pair<const IGeomEdge *, DVect>> *retEdges,
171 FArray<std::pair<const IGeomPoly *, DVect>> *intersectPolyPoints,
bool *nonPlanarPolyDetected,
172 double tolerance,
const double *depth=0)
const = 0;
179 FArray<std::pair<const IGeomPoly *, DVect>> *intersectPolyPoints,
180 double tolerance,
const double *depth=0)
const = 0;
184 virtual bool isPlanar(
double tolerance = 1e-6)
const = 0;
An array class that attempts to minimize unnecessary heap access.
Definition farray.h:25
Interface for containers of IThings.
Definition icontainer.h:21
Definition igeomimportexport.h:103
Base class for items that will be stored in containers.
Definition ithing.h:30
Interface for a user-defined geometric edge, defined as the line between two IGeomPoint objects.
Definition igeomedge.h:24
Interface for a user-defined geometric point.
Definition igeompoint.h:18
A class representing a single closed polygon made up of a list of edges.
Definition igeompoly.h:23
A container for a single "set" of geometric elements. A geometric set is a named collection of geomet...
Definition igeomset.h:27
virtual IGeomPoint * getFirstPoint()=0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
virtual shared::Signal< const IThing *, const IContainer * > * getEdgeMovedSignal() const =0
Returns a signal that gets called every time an edge is moved.
virtual IGeomPoint * findClosestPoint(const DVect &pos, const double &radius=limits< double >::max())=0
virtual IGeomEdge * findMatchingEdge(const IGeomPoint *end1, const IGeomPoint *end2)=0
Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual IGeomPoly * findPolyWithID(uint64 id)=0
Find the IGeomPoly with ID number matching id. This search will take less than linear time....
virtual IGeomEdge * findEdgeWithID(uint64 id)=0
Find the IGeomEdge with ID number matching id. This search will take less than linear time....
virtual const IGeomSet * getNext() const =0
Return the next IGeomSet object in the global list, or 0 if it is the last set.
virtual std::vector< const IGeomPoly * > getEdgeConnectedMesh(const IGeomPoly *poly) const =0
Return a list of all of those polygons in the current set that are edge connected with /a poly.
virtual uint getGeometryCode() const =0
virtual IContainer * getPointContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual uint getExtraCode() const =0
Returns a notification code (see INoticeManager) indicating a possible extra variable change on some ...
virtual IGeomEdge * closePoly(IGeomPoly *poly)=0
virtual const IGeomPoint * findPointWithID(uint64 id) const =0
Find the IGeomPoint with ID number matching id. This search will take less than linear time....
virtual IContainer * getEdgeContainer()=0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
virtual IString getName() const =0
Returns the name associated with the geometry set.
virtual IGeomPoly * getFirstPoly()=0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual const IGeomPoly * getFirstPoly() const =0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual void listObjectAlongLine(const DVect &beg, const DVect &e, double radius, FArray< const IGeomPoint * > *retPoints, FArray< std::pair< const IGeomEdge *, DVect > > *retEdges, FArray< std::pair< const IGeomPoly *, DVect > > *intersectPolyPoints, const double tolerance) const =0
returns a list of objects along the line. All objects returned will be sorted by the distance from th...
virtual IGeomEdge * createEdge(IGeomPoint *end1, IGeomPoint *end2)=0
virtual const IGeomEdge * findMatchingEdge(const IGeomPoint *end1, const IGeomPoint *end2) const =0
Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
virtual const IGeomEdge * getFirstEdge() const =0
Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to ...
virtual shared::Signal< const IThing *, const IContainer * > * getPolyMovedSignal() const =0
Returns a signal that gets called every time a polygon is moved.
virtual void listObjectAlongCone(const DVect &origin, const DVect &beginning, const double &angle, FArray< const IGeomPoint * > *retPoints, FArray< std::pair< const IGeomEdge *, DVect > > *retEdges, FArray< std::pair< const IGeomPoly *, DVect > > *intersectPolyPoints, bool *nonPlanarPolyDetected, double tolerance, const double *depth=0) const =0
virtual uint getGroupCode() const =0
Returns a notification code (see INoticeManager) indicating that a group assignemnt on some element o...
virtual const IGeomEdge * findEdgeWithID(uint64 id) const =0
Find the IGeomEdge with ID number matching id. This search will take less than linear time....
virtual IGeomPoint * createPoint(const DVect3 &pos, uint64 id=0)=0
virtual const IContainer * getEdgeContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
static const TType type_
The type identification number for this class, for use in convert_cast() and convert_getcast().
Definition igeomset.h:30
virtual IGeomEdge * getFirstEdge()=0
Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to ...
virtual const IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max()) const =0
virtual IGeomPoint * findPointWithID(uint64 id)=0
Find the IGeomPoint with ID number matching id. This search will take less than linear time....
virtual const IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max()) const =0
virtual void listObjectAlongCylinder(const DVect &origin, const DVect &beginning, const double &radius, FArray< const IGeomPoint * > *retPoints, FArray< std::pair< const IGeomEdge *, DVect > > *retEdges, FArray< std::pair< const IGeomPoly *, DVect > > *intersectPolyPoints, double tolerance, const double *depth=0) const =0
virtual void exportData(IGeometryImportData *)=0
export itself ( polygos, edges end points : coordinates, groupsID) to IGeometryImportData
virtual shared::Signal< const IThing *, const IContainer * > * getPointMovedSignal() const =0
Returns a signal that gets called every time a point is moved.
virtual const IGeomPoly * findPolyWithID(uint64 id) const =0
Find the IGeomPoly with ID number matching id. This search will take less than linear time....
virtual IGeomSet * getNext()=0
Return the next IGeomSet object in the global list, or 0 if it is the last set.
virtual const IContainer * getPolyContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
virtual IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max())=0
virtual std::vector< const IThing * > marqueeDeepSelect(bool perspective, const FArray< DVect > &nearSelRect, const FArray< DVect > &farSelRect, const DVect &selectionDirection, TType objType) const =0
virtual const IGeomPoint * getFirstPoint() const =0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
virtual IContainer * getPolyContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
virtual IGeomPoly * createPoly()=0
virtual std::vector< const IGeomEdge * > getVertexConnectedMesh(const IGeomEdge *edge) const =0
Return a list of all of those edges in the current set that are vertex connected with /a edge.
virtual IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max())=0
virtual const IContainer * getPointContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual IGeomEdge * addNodeToPoly(IGeomPoly *poly, IGeomPoint *point)=0
debug checked shorthand for std::numeric_limits<T>::
Definition limit.h:25
uint32 TType
class type indicator
Definition basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
Interface for geometric objects export-imports.
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4