57 bool _aggregate,
int _nrofpoints):
58 comp(_comp), radius(_radius), eqradius(_eqradius), orient(_orient), nrofpoints(_nrofpoints), aggregate(_aggregate) {
81 double abdist = ab.
Norm();
82 double bcdist = bc.
Norm();
91 if ((
PI - alpha) < eps) {
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) {
void Add(Path *geom, bool aggregate=true)
void Add(const Frame &F_base_point)
virtual ~Path_RoundedComposite()
virtual Frame Pos(double s) const
virtual Twist Acc(double s, double sd, double sdd) const
virtual double PathLength()
double Normalize(double eps=epsilon)
const double PI
the value of pi
virtual Twist Acc(double s, double sd, double sdd) const
virtual RotationalInterpolation * Clone() const =0
virtual double LengthToS(double length)
virtual double PathLength()
virtual Twist Vel(double s, double sd) const
doubleAcc dot(const VectorAcc &lhs, const VectorAcc &rhs)
virtual Path * GetSegment(int i)
Rotation M
Orientation of the Frame.
double Norm(double eps=epsilon) const
represents both translational and rotational velocities.
virtual int GetNrOfSegments()
A concrete implementation of a 3 dimensional vector class.
virtual Path * GetSegment(int i)
virtual void Write(std::ostream &os)
virtual void GetCurrentSegmentLocation(double s, int &segment_number, double &inner_s)
Path_RoundedComposite(Path_Composite *comp, double radius, double eqradius, RotationalInterpolation *orient, bool aggregate, int nrofpoints)
Vector p
origine of the Frame
double min(double a, double b)
virtual Twist Vel(double s, double sd) const
virtual void GetCurrentSegmentLocation(double s, int &segment_number, double &inner_s)
virtual int GetNrOfSegments()
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
virtual void Write(std::ostream &os)
represents a frame transformation in 3D space (rotation + translation)
virtual double GetLengthToEndOfSegment(int i)
INLINE Rall1d< T, V, S > tan(const Rall1d< T, V, S > &arg)
virtual Frame Pos(double s) const
virtual double LengthToS(double length)
double max(double a, double b)
RotationalInterpolation * orient
virtual double GetLengthToEndOfSegment(int i)