Itasca C++ Interface
ibodyface.h
Go to the documentation of this file.
1 //ibodyface.h
2 #pragma once
9 namespace body{
10 
11  using namespace itasca;
12  using namespace itascaxd;
13  class IBodyBlock;
14 
15  class IBodyFace {
16  public:
17  inline static const TType type_ = 0x54a5a3df;
19  virtual const IThing * getIThing() const=0;
21  virtual IThing * getIThing()=0;
23  virtual DVect getDiscretizedLocation(const IBodyBlock *block,uint32 ig, uint32 jg) const=0;
25  virtual UVect2 getZoneIndBound(const IBodyBlock *block)const=0;
27  virtual bool getGUIselect() const=0;
29  virtual void setGUIselect(bool flag) const=0;
31  virtual void getDiscretizedLocationCompleteGrid(const IBodyBlock *block, std::vector<std::vector<DVect>> &zpCoords, uint32 &szx, uint32 &szy)const=0;
34  virtual FArray<DVect> getSurfaceLine(const DVect2 &from, const DVect2 &to, uint32 number) const=0;
36  virtual DExtent getExtent() const=0;
37 
39  virtual int32 getCurvedFaceType()const = 0;
41  virtual void setCurveType(uint32 type) = 0;
43  virtual uint32 getControlPointsSize()const = 0;
45  virtual uint32 getControlPointsSizeN()const = 0;
47  virtual uint32 getControlPointsSizeM()const = 0;
49  virtual void removeAllControlPonts() = 0;
51  virtual DVect getControlPointPosition(uint32 i, uint32 j)const = 0;
53  virtual void setControlPointPosition(uint32 i, uint32 j, const DVect &pos)= 0;
55  virtual QPair<int32,int32> getControlPointIndex(double u, double v)const = 0;
57  virtual QPair<int32, int32> getControlPointIndex(DVect &pos)const = 0;
58  };
59 }
Interface to provide acces to BodyBlock.
Definition: ibodyblock.h:24
Definition: ibodyface.h:15
virtual void setCurveType(uint32 type)=0
sets interpolating curved face 0 - NotCurved, 1- BicubicSpline
virtual FArray< DVect > getSurfaceLine(const DVect2 &from, const DVect2 &to, uint32 number) const =0
virtual DVect getControlPointPosition(uint32 i, uint32 j) const =0
get position of a control point
virtual void removeAllControlPonts()=0
removes all control points from face making it NotCurved
virtual uint32 getControlPointsSize() const =0
returns number of control points wich is allwas grid nXm on face (corner BodyPoint's are also counted...
virtual QPair< int32, int32 > getControlPointIndex(double u, double v) const =0
get indexes to control point from the internal surface coordinates (u,v) (clossest CP will be found)
virtual int32 getCurvedFaceType() const =0
get type of interpolating curved face 0 - NotCurved, 1- BicubicSpline
virtual void getDiscretizedLocationCompleteGrid(const IBodyBlock *block, std::vector< std::vector< DVect >> &zpCoords, uint32 &szx, uint32 &szy) const =0
compute complete discretized location grid (including control points), szx and szy are [0,...
virtual const IThing * getIThing() const =0
returns a const IThing pointer
virtual IThing * getIThing()=0
returns a IThing pointer
virtual UVect2 getZoneIndBound(const IBodyBlock *block) const =0
Return bount for index from zero to maxIndex=edgeZoneSize X blockMultiplier.
virtual bool getGUIselect() const =0
return GUI specific select flag
virtual DExtent getExtent() const =0
Return the extent.
virtual uint32 getControlPointsSizeN() const =0
return size n of nXm grid of control face points
virtual void setControlPointPosition(uint32 i, uint32 j, const DVect &pos)=0
set position of a control point
virtual void setGUIselect(bool flag) const =0
set GUI specific select flag
virtual QPair< int32, int32 > getControlPointIndex(DVect &pos) const =0
get indexes to control point from the position (clossest CP will be found)
virtual uint32 getControlPointsSizeM() const =0
return size m of nXm grid of control face points
virtual DVect getDiscretizedLocation(const IBodyBlock *block, uint32 ig, uint32 jg) const =0
Return x,y position of indexed gridpoint. Indexes must bound from 0 to blockMultiplier X edgeZoneSize...
Base class for items that will be stored in containers.
Definition: ithing.h:30
uint32 TType
class type indicator
Definition: basedef.h:46
constexpr D to(const T &t)
This template function serves as an alternative to static_cast<T>().
Definition: to.h:28
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:156
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4