Itasca C++ Interface
Loading...
Searching...
No Matches
ibodyedge.h
Go to the documentation of this file.
1//ibodyedge.h
2#pragma once
9namespace body{
10using namespace itasca;
11using 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)
static const TType type_
The type identification number for this class, for use in convert_cast() and convert_getcast().
Definition ibodyedge.h:15
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 IThing * getIThing()=0
returns a IThing pointer
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 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 const IThing * getIThing() const =0
returns a const IThing pointer
virtual void addControlPointAtPosition(const DVect &pos)=0
calls addControlPoint() and then puts the point at the specified position
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:154
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4