Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ibodyedge.h
Go to the documentation of this file.
1 //ibodyedge.h
2 #pragma once
3 
9 namespace body{
10 using namespace itasca;
11 using namespace itascaxd;
12  class IBodyEdge {
13  public:
15  inline static const TType type_=0x54d4ede7;
17  virtual const IThing * getIThing() const=0;
19  virtual IThing * getIThing()=0;
21  virtual quint32 setZoneSize(quint32 s, bool maintainFactor=false)=0;
23  virtual quint32 getZoneSize() const=0;
25  virtual void zoneSize(quint32 s)=0;
27  virtual quint32 setRatio(const double &r)=0;
29  virtual double getRatio()const=0;
31  virtual double getFactor()const=0;
34  virtual quint32 setFactor(const double &r)=0;
36  virtual void setRatioIsolate(bool b)=0;
38  virtual bool getRatioIsolate()const=0;
40  virtual bool getGUIselect() const=0;
42  virtual void setGUIselect(bool flag) const=0;
44  virtual int getCurveType()const=0;
46  virtual void setCurveType(quint32 type)=0;
48  virtual quint32 getControlPointsSize()const =0;
50  virtual double getCurveLength()const =0;
52  virtual void addControlPoint(const DVect &pos) =0;
54  virtual void removeControlPoint(quint32 ind)=0;
56  virtual DVect getControlPointPosition(quint32 index /* 1-based */ ) const=0;
58  virtual void setControlPointPosition(quint32 ind,const DVect &pos)=0;
60  virtual quint32 getControlPointIndex(const DVect &pos)const=0;
62  virtual quint32 getControlPointIndex(double u)const=0;
64  virtual double closestWithSegment(const DVect &a1, const DVect &a2, DVect &segmentPos, DVect &edgeCurvePos)const=0;
66  virtual double closestWithRay(const DVect &a1, const DVect &direction, DVect &rayPos, DVect &edgeCurvePos)const=0;
68  virtual double getControlPointU(quint32 index /* 1-based */)const=0;
69  };
70 }
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
unsigned int TType
class type indicator
Definition: basedef.h:41
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: ibodyedge.h:12