Go to the documentation of this file.
49 RotationalInterpolation* _orient,
53 V_base_start(startpos.p),
58 V_start_end = V_base_end - V_base_start;
59 double dist = V_start_end.Normalize();
60 orient->SetStartEnd(startpos.M,endpos.M);
61 double alpha = orient->Angle();
68 if ( alpha != 0 && alpha*eqradius > dist) {
70 pathlength = alpha*eqradius;
71 scalerot = 1/eqradius;
72 scalelin = dist/pathlength;
73 }
else if ( dist != 0 ) {
76 scalerot = alpha/pathlength;
87 const Twist& starttwist,
92 V_base_start(startpos.p),
93 V_base_end(startpos.p + starttwist.vel),
111 if ( alpha != 0 && alpha*
eqradius > dist) {
116 }
else if ( dist != 0 ) {
Vector rot
The rotational velocity of that point.
virtual void SetStartEnd(Rotation start, Rotation end)=0
virtual Vector Vel(double theta, double thetad) const =0
double Norm(double eps=epsilon) const
virtual Twist Acc(double s, double sd, double sdd) const
double Normalize(double eps=epsilon)
virtual double PathLength()
represents both translational and rotational velocities.
virtual void Write(std::ostream &os) const =0
represents a frame transformation in 3D space (rotation + translation)
Path_Line(const Frame &F_base_start, const Frame &F_base_end, RotationalInterpolation *orient, double eqradius, bool _aggregate=true)
virtual void Write(std::ostream &os)
RotationalInterpolation * orient
virtual Vector Acc(double theta, double thetad, double thetadd) const =0
Vector vel
The velocity of that point.
double LengthToS(double length)
static Rotation Rot(const Vector &rotvec, double angle)
virtual Twist Vel(double s, double sd) const
Rotation M
Orientation of the Frame.
virtual RotationalInterpolation * Clone() const =0
virtual Frame Pos(double s) const
virtual Rotation Pos(double theta) const =0