Itasca C++ Interface
iextruderegion.h
1 #pragma once
2 // iextruderegion.h
3 
5 
6 namespace itasca {
7  class IThing;
8 }
9 namespace itascaxd {
10  class IGeomPoly;
11 }
12 
13 namespace extruder {
14  using namespace itasca;
15  using namespace itascaxd;
16 
17  class IExtrudeEdge;
18 
22  public:
24  inline static const TType type_ = 0x4cb610e7;
25 
27  virtual const IThing * getIThing() const=0;
29  virtual IThing * getIThing()=0;
31  virtual const IGeomPoly *getIGeomPoly() const=0;
33  virtual IGeomPoly * getIGeomPoly()=0;
34 
36  virtual bool getIsIrregBlock() const = 0;
38  virtual quint32 getMultiplier() const=0;
40  virtual void setMultiplier(quint32 m)=0;
42  virtual UVect2 getZones() const=0;
44  virtual quint64 numZones() const=0;
46  virtual DVect getDiscretizedLocation(const IVect2 &index) const=0;
48  virtual DVect getParametricLocation(const double &mu1, const double &mu2) const=0;
50  virtual DVect getCentroid() const=0;
52  virtual DVect2 computeGridParameter(DVect p) const=0;
54  virtual DVect computeSplitEdgePosition(DVect2 f, int side) const=0;
56  virtual bool isPointInside(DVect pos)=0;
58  virtual IExtrudeRegion* getNeighborRegion(int index)=0;
61 
62  // Iterate list of bad zones
64  virtual void resetSearchBadZones(int *i, int *j) const = 0;
66  // engine bool specifies if the call is originating from the engine, and polling should happen - otherwise polling is suppressed.
67  virtual bool nextSearchBadZone(int *i, int *j, int *ty, DVect *p1 ,DVect *p2, DVect *p3, DVect *p4,bool engine) const = 0; // false=search completed, return bad zone ccw points p1..p4
68  };
69 } // namespace f3
70 // EoF
Definition: idef.h:50
Interface for IExtrudeEdge objects.
Definition: iextruderegion.h:21
virtual DVect computeSplitEdgePosition(DVect2 f, int side) const =0
compute split parameter for edge on indexed side of block
virtual UVect2 getZones() const =0
Return block zoning sizes.
virtual quint32 getMultiplier() const =0
Return block multiplier, 1=default, 2,3,4...
virtual DVect getParametricLocation(const double &mu1, const double &mu2) const =0
Return x,y position of parametrized location, mu1=0-1, mu2=0-1.
virtual bool isPointInside(DVect pos)=0
Return true if point interior to block.
virtual const IGeomPoly * getIGeomPoly() const =0
Return a const IGeomPoly interface for this object.
virtual quint64 numZones() const =0
Return total number of zones.
virtual IExtrudeRegion * getNeighborRegion(int index)=0
Return neighboring region on indexed edge, if any.
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual void setMultiplier(quint32 m)=0
Set block multiplier, 1=default, 2,3,4...
virtual QList< QPair< DVect2, DVect2 > > getMeshLineSegments() const =0
retun a list of unique line segments (QPair<DVect2,DVect2>(end1,end2)) for the unstructured mesh
virtual void resetSearchBadZones(int *i, int *j) const =0
Initialize search for warning or bad zones, pass in loop variables i,j.
virtual bool getIsIrregBlock() const =0
return true if this is an irregular block
virtual DVect getCentroid() const =0
Return center as defined by parametrization (0.5,0.5)
virtual DVect getDiscretizedLocation(const IVect2 &index) const =0
Return x,y position of indexed gridpoint.
virtual bool nextSearchBadZone(int *i, int *j, int *ty, DVect *p1, DVect *p2, DVect *p3, DVect *p4, bool engine) const =0
Get next bad zone, and increment i,j loop variables, return false if done.
virtual IGeomPoly * getIGeomPoly()=0
Return a IGeomPoly interface for this object.
virtual IThing * getIThing()=0
Return an IThing interface for this object.
Base class for items that will be stored in containers.
Definition: ithing.h:30
A class representing a single closed polygon made up of a list of edges.
Definition: igeompoly.h:23
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface for LinkType<> objects, POD that contain both the pointer to the next object and an index f...
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4