9 #include "utility/interface/igroup.h" 33 inline static const TType type_ = 0x4cb61c35;
36 virtual IThing * getIThing()=0;
38 virtual const IThing * getIThing()
const=0;
40 virtual const QObject * getQObject()
const=0;
42 virtual QObject * getQObject()=0;
45 virtual QString
getName()
const=0;
57 virtual const IContainer * getPointContainer()
const=0;
59 virtual const IExtrudePoint *findPointWithID(quint64
id)
const=0;
67 virtual const QList<QList<const IExtrudePoint*>> findPotentialPolygonAt(
DVect pos)
const=0;
74 virtual const IContainer * getEdgeContainer()
const=0;
76 virtual const IExtrudeEdge * findEdgeWithID(quint64
id)
const=0;
88 virtual quint32 getEdgesByBreakAngle(quint32 edgeID,
double breakAngle, QList<quint32>* connectedEdges)
const = 0;
90 virtual quint32 combineEdgesToSingleEdge(QList<quint32>* connectedEdges, QString *edgeWarning=
nullptr) = 0;
92 virtual void deletePoint(
IExtrudePoint *pointIn, uint *edgeCount=0, uint *blockCount=0)=0;
94 virtual void deleteEdge(
IExtrudeEdge *edgeIn, uint *blockCount=0)=0;
100 virtual IExtrudeRegion * createBlockByPoints(QSet<quint64> inputPts, QSet<QString> *errorsList =
nullptr, QList<QString> *warningsList =
nullptr) = 0;
102 virtual IExtrudeRegion * createBlockAt(
DVect pos, QSet<QString> *errorsList =
nullptr, QList<QString> *outMessages =
nullptr) = 0;
104 virtual bool createBlocksAuto(
IGroupID *group =
nullptr, QSet<QString> *errorsList =
nullptr, QList<QString> *outMessages =
nullptr,
const IRange *range =
nullptr) = 0;
107 virtual int getPointSize()
const =0;
109 virtual int getEdgeSize()=0;
111 virtual int getBlockSize()=0;
116 virtual void clearMetaData()=0;
118 virtual void setMetaKeyValue(
const QString &key,
const QString &value)=0;
120 virtual int getMetaCount()
const=0;
122 virtual QString getMetaKey(
int index)
const=0;
124 virtual QString getMetaValue(
int index)
const=0;
126 virtual int findMetaKeyIndex(
const QString &key)
const=0;
128 virtual QString findMetaKeyValue(
const QString &key)
const=0;
133 virtual const IContainer * getRegionsContainer()
const=0;
135 virtual const IExtrudeRegion * findBlockWithID(quint64
id)
const=0;
143 virtual void getRegionLocations(
FArray<DVect> *ret,quint64 wr=0,
int we=-1)=0;
146 virtual bool valid(QList<QString> *problems =
nullptr,
bool areaCheck =
false)
const=0;
160 virtual bool isAutoZone()
const=0;
162 virtual double getAutoZoneEdge()
const=0;
164 virtual int getAutoZoneDir()
const=0;
166 virtual int getAutoZoneMode()
const=0;
168 virtual int getAutoZoneSize()
const=0;
170 virtual int getAutoZoneTotal()
const=0;
172 virtual bool isAutoZoneTotalAllowed()
const = 0;
174 virtual double computeZones2D()
const=0;
176 virtual double computeTotalZones()
const=0;
182 virtual void setAutoZoneMode(
int mode)=0;
184 virtual void setAutoZoneDir(
int dir)=0;
186 virtual void setAutoZoneEdge(
double x)=0;
188 virtual void setAutoZoneSize(
int n)=0;
190 virtual void setAutoZoneTotal(
int nz)=0;
193 virtual const DVect &getOrigin()
const=0;
195 virtual const Axes &getAxesInput()
const=0;
197 virtual Axes getAxes()
const=0;
199 virtual const DVect &getUAxis()
const=0;
201 virtual const DVect &getVAxis()
const=0;
204 virtual int getSegmentCount()
const=0;
207 virtual const DVect3 &getNAxis()
const=0;
209 virtual double getSegmentZOrigin()
const=0;
211 virtual double getSegmentLength(
int seg)
const=0;
213 virtual double getSegmentRatio(
int seg)
const=0;
215 virtual int getSegmentSize(
int seg)
const=0;
217 virtual double getSegmentPosition(
int seg )
const=0;
219 virtual double getSegmentDepth(
int seg)
const=0;
221 virtual const IGroup *getSegmentGroup(
int seg,
const ISlotID &slot)
const=0;
223 virtual QString getSegmentGroupName(
int seg,
const ISlotID &slot)
const=0;
225 virtual bool removeSegmentGroup(
int seg,
const QString &name)=0;
227 virtual uint getSegmentIsInGroup(
int seg,
const FArray<IGroupID> &ids,
TType type=0,
bool only=
false)
const=0;
231 virtual const IGroup *getSegmentNodeGroup(
int seg,
const ISlotID &slot)
const=0;
233 virtual QString getSegmentNodeGroupName(
int seg,
const ISlotID &slot)
const=0;
235 virtual bool removeSegmentNodeGroup(
int seg,
const QString &name)=0;
237 virtual uint getSegmentNodeIsInGroup(
int seg,
const FArray<IGroupID> &ids,
TType type=0,
bool only=
false)
const=0;
239 virtual uint getSegmentNodeGroupList(
int seg,
FArray<IGroupID> *list)
const=0;
241 virtual double getDiscretizedSegment(
int seg,
int gp)
const=0;
245 virtual void setOrigin(
DVect c)=0;
248 virtual void setUAxis(
DVect u)=0;
250 virtual void setVAxis(
DVect v)=0;
254 virtual bool testAxesBasisNormal()=0;
256 virtual bool testAxesBasisOrthogonal()=0;
258 virtual void setNAxis(
DVect n)=0;
267 virtual void setSegmentLength(
int index,
double len)=0;
269 virtual void setSegmentSize(
int index,
int size)=0;
271 virtual void setSegmentRatio(
int index,
double rat)=0;
273 virtual bool addSegmentNodeByPosition(
double pos)=0;
277 virtual bool isAutoValidation()
const=0;
279 virtual void setAutoValidation(
bool x)=0;
281 virtual double getValidationTol()
const=0;
283 virtual void setValidationTol(
double x)=0;
285 virtual double computeValidationAbsTol()
const=0;
287 virtual void setEdgeCombineTolerance(
const double tol) = 0;
289 virtual double getEdgeCombineTolerance()
const = 0;
294 virtual bool countZoneQuality(
int statecount[],
bool areaCheck =
false)
const=0;
296 virtual bool anyZonesBad(
bool areaCheck =
false)
const=0;
298 virtual QString getBadZonesReport()
const=0;
300 virtual QString getZoneQualityReport(
bool badonly=
false)
const=0;
302 virtual QString getZoneQualityReport(
int statecount[])
const=0;
307 virtual void pointAdded(quint64
id)=0;
309 virtual void pointRemoved(quint64
id)=0;
311 virtual void edgeAdded(quint64
id)=0;
313 virtual void edgeRemoved(quint64
id)=0;
315 virtual void blockAdded(quint64
id)=0;
317 virtual void blockAddedLater(quint64
id)=0;
319 virtual void blockRemoved(quint64
id)=0;
321 virtual void pointMoved(quint64
id)=0;
323 virtual void edgeMoved(quint64
id)=0;
325 virtual void blockMoved(quint64 izd)=0;
327 virtual void edgePointChanged(quint64
id)=0;
329 virtual void blockEdgeChanged(quint64
id)=0;
331 virtual void edgeTypeChanged(quint64
id)=0;
333 virtual void sendEdgeControlPointAddedNotice(quint64
id,
int index)=0;
335 virtual void edgeSizeChanged(quint64
id,quint32 size)=0;
337 virtual void edgeRatioChanged(quint64
id,
const double &rat)=0;
341 virtual void blockMultiplierChanged(quint64
id,quint32 m)=0;
343 virtual void blockOrientationChanged(quint64
id)=0;
346 virtual void axesChanged()=0;
348 virtual void segmentsChanged(
int count)=0;
350 virtual void segmentSizeChanged(
int index, quint32 size)=0;
352 virtual void segmentRatioChanged(
int index,
const double &rat)=0;
354 virtual void segmentLengthChanged(
int index,
const double &length)=0;
356 virtual void segmentOriginChanged(
const double &z0)=0;
360 virtual void autoZoneChange(
bool on,
int mode,
double dx,
int n,
int t)=0;
363 virtual void metaAdded(
int index)=0;
365 virtual void metaRemoved(
int index)=0;
367 virtual void metaChanged(
int index)=0;
369 virtual uint getPointGroupNotice()
const=0;
371 virtual uint getEdgeGroupNotice()
const=0;
373 virtual uint getBlockGroupNotice()
const=0;
375 virtual uint getTwoDGeomChangedNotice()
const=0;
377 virtual uint getSegmentGroupNotice()
const=0;
380 virtual uint getSegmentNodeGroupNotice()
const=0;
Interface to a group object.
Definition: igroup.h:9
Provides interface to IExtrudeSet. Contains containers for points, edges and blocks objects.
Definition: iextrudeset.h:30
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:31
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: axes.h:120
An array class that attempts to minimize unnecessary heap access.
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
Interface for IExtrudeEdge objects.
Definition: iextrudeedge.h:27
unsigned int TType
class type indicator
Definition: basedef.h:41
Interface for a user-defined geometric point.
Definition: igeompoint.h:18
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
Interface for IExtrudePoint objects.
Definition: iextrudepoint.h:20
EXPORT_TAG const char * getName()
Definition: fishexample.cpp:43
Interface for IExtrudeEdge objects.
Definition: iextruderegion.h:21
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Interface for container of IThings.