Itasca C++ Interface
Loading...
Searching...
No Matches
ibodyset.h
Go to the documentation of this file.
1#pragma once
2//ibodyset.h
10namespace itasca {
11 class IThing;
12 class IParse;
13}
14namespace itascaxd{
15 class IGeomPoint;
16 class IGeomEdge;
17 class IGeomPoly;
18 class IRange;
19 class IGeomSet;
20 class GeomBase;
21}
22
23
24namespace body {
25 using namespace itasca;
26 using namespace itascaxd;
27
28 class IBodyEdge;
29 class IBodyFace;
33 class IBodySet {
34 public:
36 inline static const TType type_ = 0x53a89c9f;
37
38 virtual const GeomBase *getGeomBase() const=0;
39
41 virtual IThing * getIThing()=0;
43 virtual const IThing * getIThing() const=0;
45 virtual IBodySet * getNext()=0;
47 virtual const IBodySet *getNext() const=0;
48
50 virtual IString getName() const=0;
53 virtual uint32 getGeometryCode() const=0;
55 virtual uint32 getGroupCode() const=0;
57 virtual uint32 getExtraCode() const=0;
59 virtual uint32 getEdgeRatioChangedCode() const=0;
61 virtual uint32 getEdgeZoneSizeChangedCode() const =0;
63 virtual uint32 getZoneMultiplierCode()const =0;
66 virtual IGeomPoint * createPoint(const DVect &pos)=0;
70 virtual const IGeomPoint *getFirstPoint() const=0;
72 virtual IGeomPoint * findPointWithID(uint64 id)=0;
74 virtual const IGeomPoint *findPointWithID(uint64 id) const=0;
77 virtual IGeomPoint * findClosestPointV(const DVect &pos,const double &radius=limits<double>::max(),bool validate=true)=0;
80 virtual const IGeomPoint *findClosestPointV(const DVect &pos,const double &radius=limits<double>::max(),bool validate=true) const=0;
84 virtual const IContainer *getPointContainer() const=0;
85
90 virtual IGeomEdge * createEdge(IGeomPoint *end1,IGeomPoint *end2)=0;
92 virtual IGeomEdge * getFirstEdge()=0;
94 virtual const IGeomEdge * getFirstEdge() const=0;
96 virtual IGeomEdge * findEdgeWithID(uint64 id)=0;
98 virtual const IGeomEdge * findEdgeWithID(uint64 id) const=0;
101 virtual IGeomEdge * findClosestEdge(const DVect &pos,const double &radius=limits<double>::max())=0;
104 virtual const IGeomEdge * findClosestEdge(const DVect &pos,const double &radius=limits<double>::max()) const=0;
106 virtual IGeomEdge * findMatchingEdge(const IGeomPoint *end1,const IGeomPoint *end2)=0;
108 virtual const IGeomEdge * findMatchingEdge(const IGeomPoint *end1,const IGeomPoint *end2) const=0;
112 virtual const IContainer *getEdgeContainer() const=0;
113
117 virtual IGeomPoly * createPoly()=0;
119 virtual IGeomPoly * getFirstPoly()=0;
121 virtual const IGeomPoly * getFirstPoly() const=0;
123 virtual IGeomPoly * findPolyWithID(uint64 id)=0;
125 virtual const IGeomPoly * findPolyWithID(uint64 id) const=0;
128 virtual IGeomPoly * findClosestPoly(const DVect &pos,const double &radius=limits<double>::max())=0;
131 virtual const IGeomPoly * findClosestPoly(const DVect &pos,const double &radius=limits<double>::max()) const=0;
136 virtual IGeomEdge * addNodeToPoly(IGeomPoly *poly,IGeomPoint *point)=0;
139 virtual IGeomEdge * closePoly(IGeomPoly *poly)=0;
143 virtual const IContainer *getPolyContainer() const=0;
156 // returns true if atleast a point is shared (no check for valid pointers)
157 virtual bool sharePoint(const IGeomEdge *edge1, const IGeomEdge *edge2, const IGeomPoint **shared=0) const = 0;
159 virtual QPair<IBodyBlock *,IBodyBlock *> getFaceConnectedBlocks(const IGeomPoly *face) const=0;
163 virtual const IGeomPoly * findMatchingFace(const FArray<const IGeomPoint*> &points) const=0;
164
171 virtual IBodyBlock * createBlock(FArray<DVect> *points=0, IBodyBlock::blockType blocktype=IBodyBlock::blockType::Hexahedron, IGroupID *addgroup=0)=0;
172
174 virtual bool getValidateFlag()const =0;
176 virtual void setValidateFlag(bool flag) =0;
177
179 virtual void deleteBlock(IBodyBlock *block) =0;
183 virtual const IBodyBlock * getFirstBlock() const=0;
185 virtual IBodyBlock * findBlockWithID(uint64 id)=0;
187 virtual const IBodyBlock * findBlockWithID(uint64 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;
212 virtual bool getProxyBlock(uint64 faceID,FArray<DVect> &proxyBlock, bool useAdjacent=false,IBodyBlock::blockType blocktype=IBodyBlock::blockType::Default) const =0;
219 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;
233 virtual bool proxyBlocksForExtrusionFromFaces(QMap<const IGeomPoly *,FArray<DVect>> &proxyBlocks,
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()) { // curved hex(square)? remove middle points
240 a.remove(14); a.remove(13); a.remove(11); a.remove(10);
241 a.remove(8); a.remove(7); a.remove(5); a.remove(4);
242 } else if (12 == a.size()) { // curved triangle? remove middle points
243 a.remove(10); a.remove(9); a.remove(7);
244 a.remove(6); a.remove(4); a.remove(3);
245 }
246 }
249 virtual const std::vector<const IBodyFace *>& getAxialSymmetryLastFaces() const=0;
250
252 virtual double getDihedralCut(bool rad=true)const=0;
254 virtual void setDihedralCut(double cut,bool rad=true)=0;
260 virtual void computeMidpoints(const IBodyBlock *block, const IGeomPoly *face, const DVect &midfacePointIn, DVect &midfacePointOut, FArray<DVect> &edgesMidp)const=0;
261 //returns current triangle flag
262 virtual bool getArrestTriangle()const =0;
266 virtual void listObjectAlongLine(const DVect &beg, const DVect &e, const double &radius, FArray<const IGeomPoint *> *retPoints,
267 FArray<QPair<const IGeomEdge *, DVect>> *retEdges, FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints)const =0;
272 virtual void listObjectAlongCone(const DVect &origin, const DVect &begining, const double &angle, FArray<const IGeomPoint *> *retPoints,
273 FArray<QPair<const IGeomEdge *, DVect>> *retEdges, FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints, const double *depth=0,
274 uint32 whatToReturnFlag=0, FArray<const IBodyBlock*> *retBlocks=0)const =0;
279 virtual void listObjectAlongCylinder(const DVect &origin, const DVect &begining, const double &radius, FArray<const IGeomPoint *> *retPoints,
280 FArray<QPair<const IGeomEdge *, DVect>> *retEdges, FArray<QPair<const IGeomPoly *, DVect>> *intersectPolyPoints, const double *depth=0,
281 uint32 whatToReturnFlag=0, FArray<const IBodyBlock*> *retBlocks=0)const =0;
283 virtual void selectedEdgeControlPoints( QList<QPair<const IBodyEdge *, uint32>> &selectedCP) const=0;
284 //selects control point of the edge
285 virtual void selectEdgeControlPoint(const IBodyEdge *,uint32 indexCP)const=0 ;
286 //deselects control point of the edge
287 virtual void deselectEdgeControlPoint(const IBodyEdge *,uint32 indexCP)const=0 ;
288 //clears all selection of control points
289 virtual void clearAllSelectedControlPoints()const=0;
290
293 virtual void selectedFaceControlPoints(QSet<uint64> &selectedEncodedCpIds) const = 0;
295 virtual uint64 countSelectedFaceControlPoints() const=0;
297 virtual bool isSelectedFaceControlPoint(uint64 encodedFaceControlPointId) const=0;
299 virtual uint64 selectedControlPointFaceID() const=0;
300 //selects control point of the face
301 virtual void selectFaceControlPoint(const IBodyFace *, uint32 indexN, uint32 indexM)const = 0;
302 //deselects control point of the face
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); }
309
317 virtual std::vector<const IThing *> marqueeDeepSelect(bool perspective, const FArray<DVect>& nearSelRect,
318 const FArray<DVect>& farSelRect, const DVect& selectionDirection, TType objType)const=0;
320 virtual bool getDihedralBasedValidation()const=0;
322 virtual int importFromFlac3D(IParse *par, const IString &fileName,bool fileRecord=true)=0;
324 virtual void validateAllBlocks(uint32 *numberOfNotValid=0)=0;
326 virtual bool makeAllHexBySplitBlocks(QString *message=0)=0;
327 };
328}
An array class that attempts to minimize unnecessary heap access.
Definition farray.h:25
size_type size() const
Definition farray.h:53
Definition istring.h:14
Definition idef.h:50
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< 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 std::vector< const IThing * > marqueeDeepSelect(bool perspective, const FArray< DVect > &nearSelRect, const FArray< DVect > &farSelRect, const DVect &selectionDirection, TType objType) const =0
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
Definition igroup.h:82
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:321
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:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4