Itasca C++ Interface
ibodyset.h
Go to the documentation of this file.
1 #pragma once
2 //ibodyset.h
4 #include "../interface/ibodyblock.h"
10 namespace itasca {
11  class IThing;
12  class IParse;
13 }
14 namespace itascaxd{
15  class IGeomPoint;
16  class IGeomEdge;
17  class IGeomPoly;
18  class IRange;
19  class IGeomSet;
20  class GeomBase;
21 }
22 
23 
24 namespace 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;
68  virtual IGeomPoint * getFirstPoint()=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;
181  virtual IBodyBlock * getFirstBlock()=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 QList<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 IGeomPoly * createPoly()=0
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 IBodyBlock * findBlockWithID(uint64 id)=0
Find the IBodyBlock with ID number matching id. This search will take less than linear time....
virtual QPair< IBodyBlock *, IBodyBlock * > getFaceConnectedBlocks(const IGeomPoly *face) const =0
Return pair of blocks connected to the face.
virtual const IBodySet * getNext() const =0
Return the next IBodySet object in the global list, or 0 if it is the last set.
virtual IString getName() const =0
Returns the name associated with the geometry set.
virtual bool getDihedralBasedValidation() const =0
return flag if dihedral measure is used in validation of the block.
virtual uint32 getGeometryCode() const =0
virtual void computeMidpoints(const IBodyBlock *block, const IGeomPoly *face, const DVect &midfacePointIn, DVect &midfacePointOut, FArray< DVect > &edgesMidp) const =0
virtual IContainer::signal_type * getPolyMovedSignal() const =0
Returns a signal that gets called every time a polygon is moved.
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 const IBodyBlock * getFirstBlock() const =0
Returns the first IBodyBlock object of all those contained in the set. Call IGeomPoly::getNextBlock t...
virtual uint32 getZoneMultiplierCode() const =0
Returns notification code for block zone multiplier changed.
virtual IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max())=0
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 IGeomEdge * addNodeToPoly(IGeomPoly *poly, IGeomPoint *point)=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 QList< const IThing * > marqueeDeepSelect(bool perspective, const FArray< DVect > &nearSelRect, const FArray< DVect > &farSelRect, const DVect &selectionDirection, TType objType) const =0
virtual IGeomPoint * findClosestPointV(const DVect &pos, const double &radius=limits< double >::max(), bool validate=true)=0
virtual IContainer * getPointContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual void setDihedralCut(double cut, bool rad=true)=0
set dihedralCut that is in use by getProxyBlocks (default 3Pi/4). If flag rad=false,...
virtual IGeomEdge * getFirstEdge()=0
Returns the first IGeomEdge object of all those contained in the set. Call IGeomEdge::getNextEdge to ...
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 IGeomPoint * findClosestPointV(const DVect &pos, const double &radius=limits< double >::max(), bool validate=true) const =0
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 deleteBlock(IBodyBlock *block)=0
erase block and all its faces, edges, points if they are free (not belong to other blocks).
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 bool makeAllHexBySplitBlocks(QString *message=0)=0
Make all hex by splitting blocks (all quad face are split)
virtual const std::vector< const IBodyFace * > & getAxialSymmetryLastFaces() const =0
virtual IContainer::signal_type * getPointMovedSignal() const =0
Returns a signal that gets called every time a point is moved.
virtual QList< const IGeomSet * > getExternalGeomSets() const =0
returns list of external geometric set object, that the body set works with
virtual double getRecommendedTolerance() const =0
Return the recommended/default tolerance. For the current tolerance setting, call getTolerance().
virtual IBodyBlock * getFirstBlock()=0
Returns the first IBodyBlock object of all those contained in the set. Call IGeomPoly::getNextBlock t...
virtual IContainer::signal_type * getEdgeMovedSignal() const =0
Returns a signal that gets called every time an edge is moved.
virtual IGeomPoint * getFirstPoint()=0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
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 double getTolerance() const =0
Get tolerance used in the body set methods.
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 const IGeomPoint * getFirstPoint() const =0
Returns the first IGeomPoint of all those contained in the set. Call IGeomPoint::getNextPoint() to tr...
virtual const IGeomPoly * getFirstPoly() const =0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
static void removeProxyBlockMiddlePoints(FArray< DVect > &a)
Definition: ibodyset.h:238
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 IContainer * getBlockContainer()=0
Returns an IContainer interface pointer for the container of all IBodyBlock objects.
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 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
virtual const IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max()) const =0
virtual bool isSelectedFaceControlPoint(uint64 encodedFaceControlPointId) const =0
return whether the specified control point is selected
virtual IContainer * getEdgeContainer()=0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
virtual IGeomEdge * closePoly(IGeomPoly *poly)=0
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 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 void MoveX(double val, const IRange *filter=0)=0
Makes X component of all points in the filter val.
virtual uint32 getEdgeRatioChangedCode() const =0
Returns notification code for edgeRatio changed.
virtual void setTolerance(double tolerance)=0
virtual void setValidateFlag(bool flag)=0
sets validate flag (used by createBlock)
virtual IGeomPoint * createPoint(const DVect &pos)=0
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 IGeomPoly * getFirstPoly()=0
Returns the first IGeomPoly object of all those contained in the set. Call IGeomPoly::getNextPoly to ...
virtual const IContainer * getEdgeContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomEdge objects.
virtual void selectedFaceControlPoints(QSet< uint64 > &selectedEncodedCpIds) const =0
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 IBodyBlock * createBlock(FArray< DVect > *points=0, IBodyBlock::blockType blocktype=IBodyBlock::blockType::Hexahedron, IGroupID *addgroup=0)=0
virtual IGeomEdge * findEdgeWithID(uint64 id)=0
Find the IGeomEdge with ID number matching id. This search will take less than linear time....
virtual IGeomEdge * createEdge(IGeomPoint *end1, IGeomPoint *end2)=0
virtual IGeomPoly * findPolyWithID(uint64 id)=0
Find the IGeomPoly with ID number matching id. This search will take less than linear time....
virtual bool getValidateFlag() const =0
return value of validateFlag (used by createBlock)
virtual const IContainer * getPointContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoint objects.
virtual void MoveZ(double val, const IRange *filter=0)=0
Makes Z component of all points in the filter val.
virtual const IGeomPoly * findClosestPoly(const DVect &pos, const double &radius=limits< double >::max()) const =0
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 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 IGeomEdge * findClosestEdge(const DVect &pos, const double &radius=limits< double >::max())=0
virtual uint64 selectedControlPointFaceID() const =0
return the ID of the face that holds selected control points
virtual const IContainer * getPolyContainer() const =0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
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 * getPolyContainer()=0
Returns an IContainer interface pointer for the container of all IGeomPoly objects.
virtual IBodySet * getNext()=0
Return the next IBodySet object in the global list, or 0 if it is the last set.
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 bool getAutoTolerance() const =0
get flag auto-tolerance on/off – if it is on, tolerance will be set based on recommended tolerance al...
virtual IGeomPoint * findPointWithID(uint64 id)=0
Find the IGeomPoint with ID number matching id. This search will take less than linear time....
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 double getDihedralCut(bool rad=true) const =0
get dihedralCut that is in use by getProxyBlocks (default 3Pi/4). If flag rad=false,...
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
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:333
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface for container of IThings.
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4