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