Itasca C++ Interface
ibodyedge.h
Go to the documentation of this file.
1 //ibodyedge.h
2 #pragma once
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 uint32 setZoneSize(uint32 s, bool maintainFactor=false)=0;
23  virtual uint32 getZoneSize() const=0;
25  virtual void zoneSize(uint32 s)=0;
27  virtual uint32 setRatio(const double &r)=0;
29  virtual double getRatio()const=0;
31  virtual double getFactor()const=0;
34  virtual uint32 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(uint32 type)=0;
48  virtual uint32 getControlPointsSize()const =0;
50  virtual double getCurveLength()const =0;
53  virtual int addControlPoint(const DVect &pos) =0;
55  virtual void addControlPointAtPosition(const DVect &pos) =0;
57  virtual void removeControlPoint(uint32 ind)=0;
59  virtual DVect getControlPointPosition(uint32 index /* 1-based */ ) const=0;
61  virtual void setControlPointPosition(uint32 ind,const DVect &pos)=0;
63  virtual uint32 getControlPointIndex(const DVect &pos)const=0;
65  virtual uint32 getControlPointIndex(double u)const=0;
67  virtual double closestWithSegment(const DVect &a1, const DVect &a2, DVect &segmentPos, DVect &edgeCurvePos)const=0;
69  virtual double closestWithRay(const DVect &a1, const DVect &direction, DVect &rayPos, DVect &edgeCurvePos)const=0;
71  virtual double getControlPointU(uint32 index /* 1-based */)const=0;
72  };
73 }
Definition: ibodyedge.h:12
virtual double getFactor() const =0
Return zone factor of the edge (ratio of zone-lengths last over first)
virtual bool getRatioIsolate() const =0
Return ratio isolate flag.
virtual uint32 setZoneSize(uint32 s, bool maintainFactor=false)=0
set (zone size) and returns counts of successfull zonesizes set (propagation assumed)
virtual uint32 getControlPointIndex(const DVect &pos) const =0
get index to control point from the position in space (clossest
virtual bool getGUIselect() const =0
return GUI specific select flag
virtual double closestWithRay(const DVect &a1, const DVect &direction, DVect &rayPos, DVect &edgeCurvePos) const =0
return closest distance and points of curved edge with the ray (a1,direction). Vector direction must ...
virtual void removeControlPoint(uint32 ind)=0
remove control point from the edge at index=ind;
virtual DVect getControlPointPosition(uint32 index) const =0
get control point position
virtual uint32 getControlPointsSize() const =0
returns number of control points
virtual double getControlPointU(uint32 index) const =0
return local corrdinate (parameter U) of a control point of the edge. Index must be in [1,...
virtual uint32 getZoneSize() const =0
return zone size for the edge
virtual double getCurveLength() const =0
returns total length of curved edge
virtual IThing * getIThing()=0
returns a IThing pointer
virtual double getRatio() const =0
Return zone ratio of the edge.
virtual double closestWithSegment(const DVect &a1, const DVect &a2, DVect &segmentPos, DVect &edgeCurvePos) const =0
return closest distance and points of curved edge with the segment (a1,a2)
virtual uint32 getControlPointIndex(double u) const =0
get index to control point from the position in space
virtual uint32 setRatio(const double &r)=0
Set zone ratio on edge. Returns counts (propagation depends on setRatioIsolate flag)
virtual void addControlPointAtPosition(const DVect &pos)=0
calls addControlPoint() and then puts the point at the specified position
virtual const IThing * getIThing() const =0
returns a const IThing pointer
virtual void setRatioIsolate(bool b)=0
Set zone ratio isolate flag (Stops propagating ratios by connected blocks)
virtual void setCurveType(uint32 type)=0
sets interpolating curve type : 0 - polyline, 1- CircleArc, 2-Spline
virtual uint32 setFactor(const double &r)=0
virtual void zoneSize(uint32 s)=0
Set zone ratio for the edge (propagation)
virtual void setGUIselect(bool flag) const =0
set GUI specific select flag
virtual int getCurveType() const =0
get type of interpolating curve 0 - polyline, 1- CircleArc, 2-Spline
virtual void setControlPointPosition(uint32 ind, const DVect &pos)=0
set control point new position
virtual int addControlPoint(const DVect &pos)=0
Base class for items that will be stored in containers.
Definition: ithing.h:30
uint32 TType
class type indicator
Definition: basedef.h:46
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