Itasca C++ Interface
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
itascaxd::IGeomSet Class Referenceabstract

A container for a single "set" of geometric elements. A geometric set is a named collection of geometry elements (points, edges, polygons) as an organization layer. More...

#include <igeomset.h>

Public Member Functions

virtual const GeomBase * getGeomBase () const =0
 
virtual IThinggetIThing ()=0
 Return an IThing interface for this object.
 
virtual const IThinggetIThing () const =0
 Return a const IThing interface for this object.
 
virtual IGeomSetgetNext ()=0
 Return the next IGeomSet object in the global list, or 0 if it is the last set.
 
virtual const IGeomSetgetNext () const =0
 Return the next IGeomSet object in the global list, or 0 if it is the last set.
 
virtual IString getName () const =0
 Returns the name associated with the geometry set.
 
virtual uint getGeometryCode () const =0
 
virtual uint getGroupCode () const =0
 Returns a notification code (see INoticeManager) indicating that a group assignemnt on some element of the set.
 
virtual uint getExtraCode () const =0
 Returns a notification code (see INoticeManager) indicating a possible extra variable change on some element of the set.
 
virtual IGeomPointcreatePoint (const DVect3 &pos, uint64 id=0)=0
 
virtual IGeomPointgetFirstPoint ()=0
 Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to traverse the list. May return 0.
 
virtual const IGeomPointgetFirstPoint () const =0
 Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to traverse the list. May return 0.
 
virtual IGeomPointfindPointWithID (uint64 id)=0
 Find the IGeomPoint with ID number matching id. This search will take less than linear time. May return 0.
 
virtual const IGeomPointfindPointWithID (uint64 id) const =0
 Find the IGeomPoint with ID number matching id. This search will take less than linear time. May return 0.
 
virtual IGeomPointfindClosestPoint (const DVect &pos, const double &radius=limits< double >::max())=0
 
virtual IContainergetPointContainer ()=0
 Returns an IContainer interface pointer for the container of all IGeomPoint objects.
 
virtual const IContainergetPointContainer () const =0
 Returns an IContainer interface pointer for the container of all IGeomPoint objects.
 
virtual IGeomEdgecreateEdge (IGeomPoint *end1, IGeomPoint *end2)=0
 
virtual IGeomEdgegetFirstEdge ()=0
 Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to traverse the list. May return 0.
 
virtual const IGeomEdgegetFirstEdge () const =0
 Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to traverse the list. May return 0.
 
virtual IGeomEdgefindEdgeWithID (uint64 id)=0
 Find the IGeomEdge with ID number matching id. This search will take less than linear time. May return 0.
 
virtual const IGeomEdgefindEdgeWithID (uint64 id) const =0
 Find the IGeomEdge with ID number matching id. This search will take less than linear time. May return 0.
 
virtual IGeomEdgefindClosestEdge (const DVect &pos, const double &radius=limits< double >::max())=0
 
virtual const IGeomEdgefindClosestEdge (const DVect &pos, const double &radius=limits< double >::max()) const =0
 
virtual IGeomEdgefindMatchingEdge (const IGeomPoint *end1, const IGeomPoint *end2)=0
 Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
 
virtual const IGeomEdgefindMatchingEdge (const IGeomPoint *end1, const IGeomPoint *end2) const =0
 Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
 
virtual IContainergetEdgeContainer ()=0
 Returns an IContainer interface pointer for the container of all IGeomEdge objects.
 
virtual const IContainergetEdgeContainer () const =0
 Returns an IContainer interface pointer for the container of all IGeomEdge objects.
 
virtual IGeomPolycreatePoly ()=0
 
virtual IGeomPolygetFirstPoly ()=0
 Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to traverse the list. May return 0.
 
virtual const IGeomPolygetFirstPoly () const =0
 Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to traverse the list. May return 0.
 
virtual IGeomPolyfindPolyWithID (uint64 id)=0
 Find the IGeomPoly with ID number matching id. This search will take less than linear time. May return 0.
 
virtual const IGeomPolyfindPolyWithID (uint64 id) const =0
 Find the IGeomPoly with ID number matching id. This search will take less than linear time. May return 0.
 
virtual IGeomPolyfindClosestPoly (const DVect &pos, const double &radius=limits< double >::max())=0
 
virtual const IGeomPolyfindClosestPoly (const DVect &pos, const double &radius=limits< double >::max()) const =0
 
virtual IGeomEdgeaddNodeToPoly (IGeomPoly *poly, IGeomPoint *point)=0
 
virtual IGeomEdgeclosePoly (IGeomPoly *poly)=0
 
virtual IContainergetPolyContainer ()=0
 Returns an IContainer interface pointer for the container of all IGeomPoly objects.
 
virtual const IContainergetPolyContainer () const =0
 Returns an IContainer interface pointer for the container of all IGeomPoly objects.
 
virtual shared::Signal< const IThing *, const IContainer * > * getPointMovedSignal () const =0
 Returns a signal that gets called every time a point is moved.
 
virtual shared::Signal< const IThing *, const IContainer * > * getEdgeMovedSignal () const =0
 Returns a signal that gets called every time an edge is moved.
 
virtual shared::Signal< const IThing *, const IContainer * > * getPolyMovedSignal () const =0
 Returns a signal that gets called every time a polygon is moved.
 
virtual std::pair< DVect, bool > findClosestPointOnSet (const DVect &pos, bool polysOnly, double radius=limits< double >::max()) const =0
 
virtual double findDistanceOnSetFromRay (const DVect &pos, const DVect &ray) const =0
 
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 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 void exportData (IGeometryImportData *)=0
 export itself ( polygos, edges end points : coordinates, groupsID) to IGeometryImportData
 
virtual std::vector< const IThing * > marqueeDeepSelect (bool perspective, const FArray< DVect > &nearSelRect, const FArray< DVect > &farSelRect, const DVect &selectionDirection, TType objType) const =0
 
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 the "beg" point.
 
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 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 bool sharePoint (const IGeomEdge *edge1, const IGeomEdge *edge2, const IGeomPoint **shared=0) const =0
 
virtual bool isPlanar (double tolerance=1e-6) const =0
 

Static Public Attributes

static const TType type_ = 0x4c815bd0
 The type identification number for this class, for use in convert_cast() and convert_getcast().
 

Detailed Description

A container for a single "set" of geometric elements. A geometric set is a named collection of geometry elements (points, edges, polygons) as an organization layer.

Member Function Documentation

◆ addNodeToPoly()

virtual IGeomEdge * itascaxd::IGeomSet::addNodeToPoly ( IGeomPoly * poly,
IGeomPoint * point )
pure virtual

Adds a node to the polygon, by creating and adding an edge object from the free end of the last edge to this point. Returns the edge created. The first point added will create an edge of length zero (from the point to the point). The second point added will expand the first edge, and so will return 0 since no new edge is created. Additional points will create additional edges, returning the edges created.

◆ closePoly()

virtual IGeomEdge * itascaxd::IGeomSet::closePoly ( IGeomPoly * poly)
pure virtual

Closes the IGeomPoly by created an edge connecting the free end of the first edge to the free end of the second. Will cause an exception if this is not possible for any reason. Returns the edge created.

◆ createEdge()

virtual IGeomEdge * itascaxd::IGeomSet::createEdge ( IGeomPoint * end1,
IGeomPoint * end2 )
pure virtual

Creates a new IGeomEdge object associated with this container, from point end1 to point end2. Either end1 or end2 may be null, in which case the created edge is not valid. If an id number is not specified it is given one automatically. If an IGeomEdge object with that id number already exists, an exception occurs.

◆ createPoint()

virtual IGeomPoint * itascaxd::IGeomSet::createPoint ( const DVect3 & pos,
uint64 id = 0 )
pure virtual

Creates a new IGeomPoint object associated with the set, at position pos. If id is specified it is created with that id number, else one is assigned. Will cause an error if id is specified and a point with that id number already exists.

◆ createPoly()

virtual IGeomPoly * itascaxd::IGeomSet::createPoly ( )
pure virtual

Creates an IGeomPoly object associated with this set, in an invalid state. If an id number is not specified it is given one automatically. If an IGeomPoly object with that id number already exists, an exception occurs.

◆ findClosestEdge() [1/2]

virtual const IGeomEdge * itascaxd::IGeomSet::findClosestEdge ( const DVect & pos,
const double & radius = limits< double >::max() ) const
pure virtual

Find the IGeomEdge who's location is closest to pos, within a limiting distance of radius. May return 0. Currently takes linear time, but hopefully will take nearly constant time in the future.

◆ findClosestEdge() [2/2]

virtual IGeomEdge * itascaxd::IGeomSet::findClosestEdge ( const DVect & pos,
const double & radius = limits< double >::max() )
pure virtual

Find the IGeomEdge who's location is closest to pos, within a limiting distance of radius. May return 0. Currently takes linear time, but hopefully will take nearly constant time in the future.

◆ findClosestPoint()

virtual IGeomPoint * itascaxd::IGeomSet::findClosestPoint ( const DVect & pos,
const double & radius = limits< double >::max() )
pure virtual

Find the IGeomPoint who's location is closest to pos, within a limiting distance of radius. May return 0. Currently takes linear time, but hopefully will take nearly constant time in the future.

◆ findClosestPoly() [1/2]

virtual const IGeomPoly * itascaxd::IGeomSet::findClosestPoly ( const DVect & pos,
const double & radius = limits< double >::max() ) const
pure virtual

Find the IGeomPoly who's location is closest to pos, within a limiting distance of radius. May return 0. Currently takes linear time, but hopefully will take nearly constant time in the future.

◆ findClosestPoly() [2/2]

virtual IGeomPoly * itascaxd::IGeomSet::findClosestPoly ( const DVect & pos,
const double & radius = limits< double >::max() )
pure virtual

Find the IGeomPoly who's location is closest to pos, within a limiting distance of radius. May return 0. Currently takes linear time, but hopefully will take nearly constant time in the future.

◆ getGeometryCode()

virtual uint itascaxd::IGeomSet::getGeometryCode ( ) const
pure virtual

Returns a notification code (see INoticeManager) indicating a geomtric change on some element of the set. This includes object creation/destruction, point movement, etc.

◆ listObjectAlongCone()

virtual void itascaxd::IGeomSet::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
pure virtual

returns list of objects along the cone. All objects returned will be sorted by the distance from the "beginning" point. All objects before "beginning" will be discarded. origin = point of origin of the cone. If "depth" is provided, only objects within distance "depth" from the beginning along the cone line ("origin","beginning") will be returned.

◆ listObjectAlongCylinder()

virtual void itascaxd::IGeomSet::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
pure virtual

returns list of objects along the cylinder. All objects returned will be sorted by the distance from the "beginning" point. All objects before "beginning" will be discarded. origin = point of origin of the cylinder (defines cylinder direction along with beginning, from origin to beginning). If "depth" is provided – only objects within distance "depth" from the beginning along the cylinder line ("origin","beginning") will be returned.

◆ marqueeDeepSelect()

virtual std::vector< const IThing * > itascaxd::IGeomSet::marqueeDeepSelect ( bool perspective,
const FArray< DVect > & nearSelRect,
const FArray< DVect > & farSelRect,
const DVect & selectionDirection,
TType objType ) const
pure virtual

return a list of objects within a selection rectangle by using deep selection; a boolean tells whether perspective or parallel projection is being used; 4 points, in counter-clockwise order, define a rectangle at the near side of the viewing frustrum; 4 points, in counter-clockwise order, define a rectangle at the far side of the frustrum, for use with perspective projection; a vector indicates the direction of the selection rectangle (near to far); the type of object to return is indicated; this function should not do the actual selection, just return a list of objects.


The documentation for this class was generated from the following file: