38 virtual const GeomBase *getGeomBase()
const=0;
234 const QList<uint64> &facesIDs,
bool keepShape, QString &message,
double *distance=0,
235 const DVect *origin=0,
const double radius=0.0,
const QString axis=
"")
const =0;
239 if (16 == a.
size()) {
242 }
else if (12 == a.
size()) {
262 virtual bool getArrestTriangle()
const =0;
267 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints)
const =0;
273 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double *depth=0,
280 FArray<QPair<const IGeomEdge *, DVect>> *retEdges,
FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints,
const double *depth=0,
285 virtual void selectEdgeControlPoint(
const IBodyEdge *,uint32 indexCP)
const=0 ;
287 virtual void deselectEdgeControlPoint(
const IBodyEdge *,uint32 indexCP)
const=0 ;
289 virtual void clearAllSelectedControlPoints()
const=0;
301 virtual void selectFaceControlPoint(
const IBodyFace *, uint32 indexN, uint32 indexM)
const = 0;
303 virtual void deselectFaceControlPoint(
const IBodyFace *, uint32 indexN, uint32 indexM)
const = 0;
305 static uint64
encodeFaceCpID(uint64 faceID, quint16 n, quint16 m) {
return (faceID << 32) + (n << 16) + m; }
307 static void decodeFaceCpID(uint64 cpID, uint64 *faceID, quint16 *n, quint16 *m) {
308 *faceID = cpID >> 32; *n = (cpID & 0x00000000FFFF0000) >> 16; *m = (cpID & 0x000000000000FFFF); }
An array class that attempts to minimize unnecessary heap access.
Definition farray.h:25
size_type size() const
Definition farray.h:53
Interface to provide acces to BodyBlock.
Definition ibodyblock.h:24
blockType
Type of block enumeration ({Hexahedron=1, Tetrahedron, Wedge, Default}). Default usually means Hexahe...
Definition ibodyblock.h:28
Definition ibodyedge.h:12
Definition ibodyface.h:15
A container for a single "set" of body-block elements. A body-block set is a named collection of body...
Definition ibodyset.h:33
virtual void listObjectAlongLine(const DVect &beg, const DVect &e, const double &radius, FArray< const IGeomPoint * > *retPoints, FArray< QPair< const IGeomEdge *, DVect > > *retEdges, FArray< QPair< const IGeomPoly *, DVect > > *intersectPolyPoints) const =0
returns a list of external objects along the line. All objects returned will be sorted by the distanc...
virtual IContainer * getPolyContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
virtual IString getName() const =0
Returns the name associated with the geometry set.
virtual IBodyBlock * findBlockWithID(uint64 id)=0
Find the IBodyBlock with ID number matching id. This search will take less than linear time....
virtual QList< const IGeomPoly * > getEdgeConnectedMesh(const IGeomPoly *face) const =0
Return a list of all of those polygons in the current set that are edge connected with /a poly.
virtual bool getDihedralBasedValidation() const =0
return flag if dihedral measure is used in validation of the block.
virtual IGeomEdge * getFirstEdge()=0
Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to ...
virtual uint32 getGeometryCode() const =0
virtual const IGeomEdge * findMatchingEdge(const IGeomPoint *end1, const IGeomPoint *end2) const =0
Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
virtual void computeMidpoints(const IBodyBlock *block, const IGeomPoly *face, const DVect &midfacePointIn, DVect &midfacePointOut, FArray< DVect > &edgesMidp) const =0
virtual IGeomPoint * findClosestPointV(const DVect &pos, const double &radius=limits< double >::max(), bool validate=true)=0
virtual QList< const IGeomSet * > getExternalGeomSets() const =0
returns list of external geometric set object, that the body set works with
virtual uint32 getZoneMultiplierCode() const =0
Returns notification code for block zone multiplier changed.
virtual IGeomEdge * closePoly(IGeomPoly *poly)=0
static const TType type_
The type identification number for this class, for use in convert_cast() and convert_getcast().
Definition ibodyset.h:36
virtual QList< const IGeomEdge * > getVertexConnectedEdges(const IGeomPoint *point) const =0
Return a list of all of those edges in the current set that are vertex connected with /a point.
virtual const IContainer * getPolyContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
virtual bool proxyBlocksForExtrusionFromFaces(QMap< const IGeomPoly *, FArray< DVect > > &proxyBlocks, const QList< uint64 > &facesIDs, bool keepShape, QString &message, double *distance=0, const DVect *origin=0, const double radius=0.0, const QString axis="") const =0
virtual const IContainer * getPointContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual const IBodyBlock * findBlockWithID(uint64 id) const =0
Find the IBodyBlock with ID number matching id. This search will take less than linear time....
virtual void setDihedralCut(double cut, bool rad=true)=0
set dihedralCut that is in use by getProxyBlocks (default 3Pi/4). If flag rad=false,...
static void decodeFaceCpID(uint64 cpID, uint64 *faceID, quint16 *n, quint16 *m)
decode a uint64 control point id into its component parts
Definition ibodyset.h:307
virtual bool getProxyBlock(uint64 faceID, FArray< DVect > &proxyBlock, bool useAdjacent=false, IBodyBlock::blockType blocktype=IBodyBlock::blockType::Default) const =0
virtual uint32 getExtraCode() const =0
Returns a notification code (see INoticeManager) indicating a possible extra variable change on some ...
virtual const IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max()) const =0
virtual IContainer * getEdgeContainer()=0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
virtual void deleteBlock(IBodyBlock *block)=0
erase block and all its faces, edges, points if they are free (not belong to other blocks).
virtual const IGeomPoint * findPointWithID(uint64 id) const =0
Find the IGeomPoint with ID number matching id. This search will take less than linear time....
virtual IGeomPoint * createPoint(const DVect &pos)=0
virtual const std::vector< const IBodyFace * > & getAxialSymmetryLastFaces() const =0
virtual IGeomPoint * getFirstPoint()=0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
virtual const IGeomPoint * findClosestPointV(const DVect &pos, const double &radius=limits< double >::max(), bool validate=true) const =0
static uint64 encodeFaceCpID(uint64 faceID, quint16 n, quint16 m)
encode face id, n and m into a uint64 control point id
Definition ibodyset.h:305
virtual void selectedEdgeControlPoints(QList< QPair< const IBodyEdge *, uint32 > > &selectedCP) const =0
returns list of selected control points in the form <edge,indexCP>, where edge is a pointer to an edg...
virtual void listObjectAlongCone(const DVect &origin, const DVect &begining, const double &angle, FArray< const IGeomPoint * > *retPoints, FArray< QPair< const IGeomEdge *, DVect > > *retEdges, FArray< QPair< const IGeomPoly *, DVect > > *intersectPolyPoints, const double *depth=0, uint32 whatToReturnFlag=0, FArray< const IBodyBlock * > *retBlocks=0) const =0
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual QPair< IBodyBlock *, IBodyBlock * > getFaceConnectedBlocks(const IGeomPoly *face) const =0
Return pair of blocks connected to the face.
virtual bool makeAllHexBySplitBlocks(QString *message=0)=0
Make all hex by splitting blocks (all quad face are split)
virtual IBodyBlock * createBlock(FArray< DVect > *points=0, IBodyBlock::blockType blocktype=IBodyBlock::blockType::Hexahedron, IGroupID *addgroup=0)=0
virtual double getRecommendedTolerance() const =0
Return the recommended/default tolerance. For the current tolerance setting, call getTolerance().
virtual IGeomPoint * findPointWithID(uint64 id)=0
Find the IGeomPoint with ID number matching id. This search will take less than linear time....
virtual IGeomPoly * createPoly()=0
virtual const IBodyBlock * getFirstBlock() const =0
Returns the first IBodyBlock object of all those contained in the set. Call IGeomPoly::getNextBlock t...
virtual const IContainer * getEdgeContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
virtual double getTolerance() const =0
Get tolerance used in the body set methods.
virtual IGeomPoly * getFirstPoly()=0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual QList< const IThing * > marqueeDeepSelect(bool perspective, const FArray< DVect > &nearSelRect, const FArray< DVect > &farSelRect, const DVect &selectionDirection, TType objType) const =0
virtual QList< FArray< DVect > > getProxyBlocks(uint64 faceID, QList< bool > *validB, IBodyBlock::blockType blocktype=IBodyBlock::blockType::Default, QList< FArray< uint64 > > *adjacentFaces=0, QList< IBodyBlock::blockValidState > *proxyState=0) const =0
static void removeProxyBlockMiddlePoints(FArray< DVect > &a)
Definition ibodyset.h:238
virtual IGeomPoly * findMatchingFace(const FArray< const IGeomPoint * > &points)=0
Finds the face that matches the provided points. If no match can be found returns zero (null-pointer)...
virtual bool isSelectedFaceControlPoint(uint64 encodedFaceControlPointId) const =0
return whether the specified control point is selected
virtual void MoveX(double val, const IRange *filter=0)=0
Makes X component of all points in the filter val.
virtual IGeomPoly * findPolyWithID(uint64 id)=0
Find the IGeomPoly with ID number matching id. This search will take less than linear time....
virtual uint32 getEdgeRatioChangedCode() const =0
Returns notification code for edgeRatio changed.
virtual void setTolerance(double tolerance)=0
virtual IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max())=0
virtual void setValidateFlag(bool flag)=0
sets validate flag (used by createBlock)
virtual const IBodySet * getNext() const =0
Return the next IBodySet object in the global list, or 0 if it is the last set.
virtual const IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max()) const =0
virtual const IGeomEdge * findEdgeWithID(uint64 id) const =0
Find the IGeomEdge with ID number matching id. This search will take less than linear time....
virtual void selectedFaceControlPoints(QSet< uint64 > &selectedEncodedCpIds) const =0
virtual const IGeomEdge * getFirstEdge() const =0
Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to ...
virtual const IGeomPoly * findPolyWithID(uint64 id) const =0
Find the IGeomPoly with ID number matching id. This search will take less than linear time....
virtual void listObjectAlongCylinder(const DVect &origin, const DVect &begining, const double &radius, FArray< const IGeomPoint * > *retPoints, FArray< QPair< const IGeomEdge *, DVect > > *retEdges, FArray< QPair< const IGeomPoly *, DVect > > *intersectPolyPoints, const double *depth=0, uint32 whatToReturnFlag=0, FArray< const IBodyBlock * > *retBlocks=0) const =0
virtual IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max())=0
virtual bool getValidateFlag() const =0
return value of validateFlag (used by createBlock)
virtual const IGeomPoly * findMatchingFace(const FArray< const IGeomPoint * > &points) const =0
Finds the face that matches the provided points. If no match can be found returns zero (null-pointer)...
virtual IGeomEdge * findMatchingEdge(const IGeomPoint *end1, const IGeomPoint *end2)=0
Searches for an existing edge data structure with nodes matching end1 and end2 (either way).
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual IBodySet * getNext()=0
Return the next IBodySet object in the global list, or 0 if it is the last set.
virtual IContainer * getBlockContainer()=0
Returns an IContainer interface pointer for the container of all IBodyBlock objects.
virtual void MoveZ(double val, const IRange *filter=0)=0
Makes Z component of all points in the filter val.
virtual void validateAllBlocks(uint32 *numberOfNotValid=0)=0
validates cellspace for edges faces and blocks and computes validState for all blocks....
virtual uint32 getGroupCode() const =0
Returns a notification code (see INoticeManager) indicating that a group assignemnt on some element o...
virtual void Translate(const DVect &vec, const IRange *filter=0)=0
Adds vector to all points in the filter.
virtual IContainer * getPointContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual uint64 selectedControlPointFaceID() const =0
return the ID of the face that holds selected control points
virtual IContainer::signal_type * getPolyMovedSignal() const =0
Returns a signal that gets called every time a polygon is moved.
virtual IGeomEdge * findEdgeWithID(uint64 id)=0
Find the IGeomEdge with ID number matching id. This search will take less than linear time....
virtual void MoveY(double val, const IRange *filter=0)=0
Makes Y component of all points in the filter val.
virtual int importFromFlac3D(IParse *par, const IString &fileName, bool fileRecord=true)=0
imports flac3d grid file, returns zero on success, throws exceptions if somthing wrong....
virtual IContainer::signal_type * getEdgeMovedSignal() const =0
Returns a signal that gets called every time an edge is moved.
virtual uint64 countSelectedFaceControlPoints() const =0
returns the number of selected face control points
virtual uint32 getEdgeZoneSizeChangedCode() const =0
Returns notification code for edge zone size changed.
virtual IContainer::signal_type * getPointMovedSignal() const =0
Returns a signal that gets called every time a point is moved.
virtual bool getAutoTolerance() const =0
get flag auto-tolerance on/off – if it is on, tolerance will be set based on recommended tolerance al...
virtual IGeomEdge * createEdge(IGeomPoint *end1, IGeomPoint *end2)=0
virtual QList< 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 const IGeomPoint * getFirstPoint() const =0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
virtual IBodyBlock * getFirstBlock()=0
Returns the first IBodyBlock object of all those contained in the set. Call IGeomPoly::getNextBlock t...
virtual const IGeomPoly * getFirstPoly() const =0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual IGeomEdge * addNodeToPoly(IGeomPoly *poly, IGeomPoint *point)=0
virtual double getDihedralCut(bool rad=true) const =0
get dihedralCut that is in use by getProxyBlocks (default 3Pi/4). If flag rad=false,...
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
Interface to the main command processing class.
Definition iparse.h:50
Base class for items that will be stored in containers.
Definition ithing.h:30
Interface for a user-defined geometric edge, defined as the line between two IGeomPoint objects.
Definition igeomedge.h:24
Interface for a user-defined geometric point.
Definition igeompoint.h:18
A class representing a single closed polygon made up of a list of edges.
Definition igeompoly.h:23
Interface to a filter, used as the main method for filtering objects.
Definition irange.h:32
debug checked shorthand for std::numeric_limits<T>::
Definition limit.h:25
bool remove(size_type i)
Definition farray.h:320
uint32 TType
class type indicator
Definition basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
Interface to provide access to a IBodyBlock.
Interface for container of IThings.
namespace Itasca
Definition basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4