Itasca C++ Interface
igeometry.h
Go to the documentation of this file.
1 #pragma once
2 // igeometry.h
3 
6 
7 #include "module/interface/dim.h"
9 #include "utility/interface/igroup.h"
10 
11 namespace itasca {
12  class IGeomImportExport;
13 }
14 
15 namespace itascaxd {
16  class IGeomSet;
17  class IGeomPoint;
18  class IGeomEdge;
19  class IRange;
20 
23  class IGeometry {
24  public:
26  inline static const TType type_ = 0x4c815be1;
27 
31  virtual const itasca::IContainer *getIContainer() const=0;
32 
34  virtual uint32 getIGeomPointType() const=0;
36  virtual uint32 getIGeomEdgeType() const=0;
38  virtual uint32 getIGeomPolyType() const=0;
40  virtual uint32 getIGeomSetType() const=0;
41 
43  virtual IGeomSet * getFirstGeomSet()=0;
45  virtual const IGeomSet *getFirstGeomSet() const=0;
47  virtual const IGeomSet *getCurrent() const=0;
49  virtual IGeomSet * lookupWithID(uint64 id)=0;
51  virtual const IGeomSet *lookupWithID(uint64 id) const=0;
53  virtual IGeomSet * lookupWithName(const IString &name)=0;
55  virtual const IGeomSet *lookupWithName(const IString &name) const=0;
57  virtual QStringList findAllGeomSets(bool allowDuringRestore) const=0;
59  virtual QStringList orderedGeomSets(bool allowDuringRestore) const=0;
60 
63  virtual IGeomSet *create(const QString &name)=0;
65  virtual IGeomSet *removeSet(IGeomSet *set)=0;
66 
70  virtual QString importFromFile(IGeomSet *set,const QString &filename,const QString &formatKeyword=QString(),const itasca::IGroupID &id=itasca::IGroupID(),bool merge=true)=0;
77  virtual QString exportToFile(const IGeomSet *set,const QString &filename,const IRange *filter,const QString &formatKeyword=QString(),bool binary=false,bool nodes=false,bool edges=false,const QString &comment=QString(), uint32 *numberOfNodesExported=0, uint32 *numberOfPolysExported=0) const=0;
79  virtual QStringList getFileFormatMasks() const=0;
80 
82  virtual QStringList getImportExportPluginNames()const=0;
83 
87  virtual itasca::IGeomImportExport *matchImportExport(const QString &name)const=0;
88 
92  virtual itasca::IGeomImportExport *findImportExportByFileExt(const QString &filename)const=0;
93 
94 
96  virtual void registerImportExport(itasca::IGeomImportExport *obj,uint version)=0;
97 
111  virtual uint64 assignGroupsByProjection(itasca::IContainer *con,const DVect &proj,
112  const QList<const IGeomSet *> &sets,const QString &slot,
113  const IRange *filter)=0;
114 
120  virtual uint getCurrentChangedCode() const=0;
122  virtual IGeometry * newLocalInstance()const=0;
124  virtual void destroy()=0;
125  };
126 } // namespace itascaxd
127 // EoF
Definition: istring.h:14
Definition: idef.h:50
Interface for containers of IThings.
Definition: icontainer.h:21
shared::Signal< const IThing *, const IContainer * > signal_type
Defines the Signal2<> type used for removed, added, and destroy signals sent from the container.
Definition: icontainer.h:27
Definition: igeomimportexport.h:14
Definition: igroup.h:82
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 global list of all geomtric data sets IGeomSet.
Definition: igeometry.h:23
virtual QString importFromFile(IGeomSet *set, const QString &filename, const QString &formatKeyword=QString(), const itasca::IGroupID &id=itasca::IGroupID(), bool merge=true)=0
static const TType type_
The type identification number for this class, for use in convert_cast() and convert_getcast().
Definition: igeometry.h:26
virtual itasca::IContainer::signal_type * getAnyRemovedSignal2() const =0
Returns a signal that gets called every time anything is removed.
virtual uint32 getIGeomPolyType() const =0
Returns the type identifier for IGeomPoly objects.
virtual itasca::IContainer::signal_type * getAnyAddedSignal2() const =0
Returns a signal that gets called every time anything is added.
virtual QStringList findAllGeomSets(bool allowDuringRestore) const =0
Returns all geometry sets.
virtual QString exportToFile(const IGeomSet *set, const QString &filename, const IRange *filter, const QString &formatKeyword=QString(), bool binary=false, bool nodes=false, bool edges=false, const QString &comment=QString(), uint32 *numberOfNodesExported=0, uint32 *numberOfPolysExported=0) const =0
virtual QStringList getFileFormatMasks() const =0
Returns the list of file masks that will be autodetected as a supported geometry import format.
virtual uint getCurrentChangedCode() const =0
Returns a notification code (see INoticeManager) indicating a current geometry set changed.
virtual const itasca::IContainer * getIContainer() const =0
Returns an IContainer interface for the list of all IGeomSet objects.
virtual itasca::IGeomImportExport * findImportExportByFileExt(const QString &filename) const =0
virtual const IGeomSet * lookupWithID(uint64 id) const =0
Returns a pointer to the IGeomSet with matching id, or 0 if it doesn't exist. Guaranteed to take less...
virtual const IGeomSet * lookupWithName(const IString &name) const =0
Returns a pointer to the IGeomSet with matching name, or 0 if it doesn't exist. Guaranteed to take le...
virtual IGeometry * newLocalInstance() const =0
Creates new empty local instance of Geometry object, it is not the global engine singleton,...
virtual uint32 getIGeomPointType() const =0
Returns the type identifier for IGeomPoint objects.
virtual uint32 getIGeomEdgeType() const =0
Returns the type identifier for IGeomEdge objects.
virtual const IGeomSet * getFirstGeomSet() const =0
Returns a pointer to the first IGeomSet in the list, or 0 if none are present. See the IGeomSet::getN...
virtual QStringList orderedGeomSets(bool allowDuringRestore) const =0
Returns all geometry sets in order.
virtual itasca::IGeomImportExport * matchImportExport(const QString &name) const =0
virtual void registerImportExport(itasca::IGeomImportExport *obj, uint version)=0
Register import-export object.
virtual IGeomSet * lookupWithName(const IString &name)=0
Returns a pointer to the IGeomSet with matching name, or 0 if it doesn't exist. Guaranteed to take le...
virtual void destroy()=0
Destroys-delete local instance of geometry object.
virtual uint64 assignGroupsByProjection(itasca::IContainer *con, const DVect &proj, const QList< const IGeomSet * > &sets, const QString &slot, const IRange *filter)=0
virtual QStringList getImportExportPluginNames() const =0
get names list of all registered import-export plugins
virtual const IGeomSet * getCurrent() const =0
Returns a pointer to the current IGeomSet.
virtual IGeomSet * removeSet(IGeomSet *set)=0
Removes set from the list, and destroys it. Returns a pointer to the next item in the list after set,...
virtual itasca::IContainer * getIContainer()=0
Returns an IContainer interface for the list of all IGeomSet objects.
virtual uint32 getIGeomSetType() const =0
Returns the type identifier for IGeomSet objects.
virtual IGeomSet * getFirstGeomSet()=0
Returns a pointer to the first IGeomSet in the list, or 0 if none are present. See the IGeomSet::getN...
virtual IGeomSet * create(const QString &name)=0
virtual IGeomSet * lookupWithID(uint64 id)=0
Returns a pointer to the IGeomSet with matching id, or 0 if it doesn't exist. Guaranteed to take less...
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:32
DIM - Provides code portability between 2D and 3D codes.
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface for container of IThings.
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4