4 #include "../interface/ibodyblock.h" 36 inline static const TType type_ = 0x53a89c9f;
38 virtual const GeomBase *getGeomBase()
const=0;
41 virtual IThing * getIThing()=0;
43 virtual const IThing * getIThing()
const=0;
47 virtual const IBodySet *getNext()
const=0;
50 virtual QString
getName()
const=0;
53 virtual uint getGeometryCode()
const=0;
55 virtual uint getGroupCode()
const=0;
57 virtual uint getExtraCode()
const=0;
59 virtual uint getEdgeRatioChangedCode()
const=0;
61 virtual uint getEdgeZoneSizeChangedCode()
const =0;
63 virtual uint getZoneMultiplierCode()
const =0;
70 virtual const IGeomPoint *getFirstPoint()
const=0;
72 virtual IGeomPoint * findPointWithID(quint64
id)=0;
74 virtual const IGeomPoint *findPointWithID(quint64
id)
const=0;
84 virtual const IContainer *getPointContainer()
const=0;
94 virtual const IGeomEdge * getFirstEdge()
const=0;
96 virtual IGeomEdge * findEdgeWithID(quint64
id)=0;
98 virtual const IGeomEdge * findEdgeWithID(quint64
id)
const=0;
112 virtual const IContainer *getEdgeContainer()
const=0;
121 virtual const IGeomPoly * getFirstPoly()
const=0;
123 virtual IGeomPoly * findPolyWithID(quint64
id)=0;
125 virtual const IGeomPoly * findPolyWithID(quint64
id)
const=0;
143 virtual const IContainer *getPolyContainer()
const=0;
151 virtual QList<const IGeomPoly *> getEdgeConnectedMesh(
const IGeomPoly *face)
const=0;
153 virtual QList<const IGeomEdge *> getVertexConnectedMesh(
const IGeomEdge *edge)
const=0;
155 virtual QList<const IGeomEdge *> getVertexConnectedEdges(
const IGeomPoint *point)
const = 0;
159 virtual QPair<IBodyBlock *,IBodyBlock *> getFaceConnectedBlocks(
const IGeomPoly *face)
const=0;
174 virtual bool getValidateFlag()
const =0;
176 virtual void setValidateFlag(
bool flag) =0;
179 virtual void deleteBlock(
IBodyBlock *block) =0;
183 virtual const IBodyBlock * getFirstBlock()
const=0;
185 virtual IBodyBlock * findBlockWithID(quint64
id)=0;
187 virtual const IBodyBlock * findBlockWithID(quint64
id)
const=0;
190 virtual const IContainer *getBlockContainer()
const =0;
193 virtual void setTolerance(
double tolerance)=0;
195 virtual bool getAutoTolerance()
const=0;
197 virtual double getRecommendedTolerance()
const=0;
199 virtual double getTolerance()
const=0;
201 virtual void Translate(
const DVect &vec,
const IRange *filter=0)=0;
203 virtual void MoveX(
double val,
const IRange *filter=0)=0;
205 virtual void MoveY(
double val,
const IRange *filter=0)=0;
207 virtual void MoveZ(
double val,
const IRange *filter=0)=0;
219 virtual QList<FArray<DVect>> getProxyBlocks( quint64 faceID, QList<bool> *validB,
IBodyBlock::blockType blocktype=IBodyBlock::blockType::Default, QList<
FArray<quint64>> *adjacentFaces=0,QList<IBodyBlock::blockValidState> *proxyState=0)
const =0;
225 virtual bool proxyBlocksForExtrusionFromFaces(QMap<
const IGeomPoly *,
FArray<DVect>> &proxyBlocks,
const QList<quint64> &facesIDs, QString &message,
double *distance=0)
const =0;
227 virtual double getDihedralCut(
bool rad=
true)
const=0;
229 virtual void setDihedralCut(
double cut,
bool rad=
true)=0;
237 virtual bool getArrestTriangle()
const =0;
239 virtual QList<const IGeomSet *> getExternalGeomSets()
const=0;
242 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints)
const =0;
248 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double *depth=0,
255 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double *depth=0,
258 virtual void selectedEdgeControlPoints( QList<QPair<const IBodyEdge *, quint32>> &selectedCP)
const=0;
260 virtual void selectEdgeControlPoint(
const IBodyEdge *,quint32 indexCP)
const=0 ;
262 virtual void deselectEdgeControlPoint(
const IBodyEdge *,quint32 indexCP)
const=0 ;
264 virtual void clearAllSelectedControlPoints()
const=0;
268 virtual void selectedFaceControlPoints(QSet<quint64> &selectedEncodedCpIds)
const = 0;
270 virtual quint64 countSelectedFaceControlPoints()
const=0;
272 virtual bool isSelectedFaceControlPoint(quint64 encodedFaceControlPointId)
const=0;
274 virtual quint64 selectedControlPointFaceID()
const=0;
276 virtual void selectFaceControlPoint(
const IBodyFace *, quint32 indexN, quint32 indexM)
const = 0;
278 virtual void deselectFaceControlPoint(
const IBodyFace *, quint32 indexN, quint32 indexM)
const = 0;
280 static quint64
encodeFaceCpID(quint64 faceID, quint16 n, quint16 m) {
return (faceID << 32) + (n << 16) + m; }
282 static void decodeFaceCpID(quint64 cpID, quint64 *faceID, quint16 *n, quint16 *m) {
283 *faceID = cpID >> 32; *n = (cpID & 0x00000000FFFF0000) >> 16; *m = (cpID & 0x000000000000FFFF); }
292 virtual QList<const IThing *> marqueeDeepSelect(
bool perspective,
const FArray<DVect>& nearSelRect,
295 virtual bool getDihedralBasedValidation()
const=0;
297 virtual int importFromFlac3D(
IParse *par,
const QString &fileName,
bool fileRecord=
true)=0;
299 virtual void validateAllBlocks(quint32 *numberOfNotValid=0)=0;
301 virtual bool makeAllHexBySplitBlocks(QString *message=0)=0;
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:31
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
blockType
Type of block enumeration ({Hexahedron=1, Tetrahedron, Wedge, Default}). Default usually means Hexahe...
Definition: ibodyblock.h:28
static void decodeFaceCpID(quint64 cpID, quint64 *faceID, quint16 *n, quint16 *m)
decode a quint64 control point id into its component parts
Definition: ibodyset.h:282
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
Definition: ibodyface.h:15
Interface for a user-defined geometric edge, defined as the line between two IGeomPoint objects.
Definition: igeomedge.h:24
A container for a single "set" of body-block elements. A body-block set is a named collection of body...
Definition: ibodyset.h:33
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
static quint64 encodeFaceCpID(quint64 faceID, quint16 n, quint16 m)
encode face id, n and m into a quint64 control point id
Definition: ibodyset.h:280
EXPORT_TAG const char * getName()
Definition: fishexample.cpp:43
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
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.
Definition: ibodyedge.h:12
Interface to the main command processing class.
Definition: iparse.h:50
Interface to provide acces to BodyBlock.
Definition: ibodyblock.h:24