Go to the documentation of this file.
56 double _radius,
double _eqradius, RotationalInterpolation* _orient,
57 bool _aggregate,
int _nrofpoints):
58 comp(_comp), radius(_radius), eqradius(_eqradius), orient(_orient), nrofpoints(_nrofpoints), aggregate(_aggregate) {
62 comp( new Path_Composite()), radius(_radius),eqradius(_eqradius), orient(_orient), aggregate(_aggregate)
66 throw Error_MotionPlanning_Not_Feasible(1);
81 double abdist = ab.
Norm();
82 double bcdist = bc.Norm();
84 throw Error_MotionPlanning_Not_Feasible(2);
87 throw Error_MotionPlanning_Not_Feasible(3);
91 if ((
PI - alpha) < eps) {
92 throw Error_MotionPlanning_Not_Feasible(4);
117 Frame F_base_circlestart = line1->Pos(line1->LengthToS(abdist - d));
118 Frame F_base_circleend = line2->Pos(line2->LengthToS(d));
120 Vector V_base_t = ab * (ab * bc);
127 F_base_circlestart.
p - V_base_t *
radius,
128 F_base_circleend.
p, F_base_circleend.
M, alpha,
185 int& segment_number,
double& inner_s) {
virtual Frame Pos(double s) const
virtual Path * GetSegment(int i)
virtual double PathLength()
RotationalInterpolation * orient
Vector p
origine of the Frame
virtual double PathLength()
virtual double GetLengthToEndOfSegment(int i)
double Norm(double eps=epsilon) const
virtual ~Path_RoundedComposite()
double Normalize(double eps=epsilon)
Path_RoundedComposite(Path_Composite *comp, double radius, double eqradius, RotationalInterpolation *orient, bool aggregate, int nrofpoints)
void Add(const Frame &F_base_point)
A concrete implementation of a 3 dimensional vector class.
virtual double LengthToS(double length)
doubleAcc dot(const VectorAcc &lhs, const VectorAcc &rhs)
virtual void Write(std::ostream &os)
represents a frame transformation in 3D space (rotation + translation)
INLINE Rall1d< T, V, S > tan(const Rall1d< T, V, S > &arg)
const double PI
the value of pi
virtual double GetLengthToEndOfSegment(int i)
virtual void GetCurrentSegmentLocation(double s, int &segment_number, double &inner_s)
virtual Twist Acc(double s, double sd, double sdd) const
virtual Path * GetSegment(int i)
virtual Twist Acc(double s, double sd, double sdd) const
virtual Twist Vel(double s, double sd) const
virtual void GetCurrentSegmentLocation(double s, int &segment_number, double &inner_s)
virtual int GetNrOfSegments()
Rotation M
Orientation of the Frame.
virtual Twist Vel(double s, double sd) const
virtual RotationalInterpolation * Clone() const =0
virtual double LengthToS(double length)
virtual void Write(std::ostream &os)
virtual Frame Pos(double s) const
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
void Add(Path *geom, bool aggregate=true)
virtual int GetNrOfSegments()