8 return (coordinates_[0]*b[3]) + (coordinates_[1]*b[4]) + (coordinates_[2]*b[5]) + (coordinates_[3]*b[0]) + (coordinates_[4]*b[1]) +(coordinates_[5]*b[2]);
13 coordinates_[0] = b[0] - a[0];
14 coordinates_[1] = b[1] - a[1];
15 coordinates_[2] = b[2] - a[2];
16 coordinates_[3] = coordinates_[1]*a[2] - coordinates_[2]*a[1];
17 coordinates_[4] = coordinates_[2]*a[0] - coordinates_[0]*a[2];
18 coordinates_[5] = coordinates_[0]*a[1] - coordinates_[1]*a[0];
22 scale_ = std::max( scale_, std::fabs(coordinates_[0]));
23 scale_ = std::max( scale_, std::fabs(coordinates_[1]));
24 scale_ = std::max( scale_, std::fabs(coordinates_[2]));
33 os <<
"NULL (Plucker coords have not been computed)";
arma::vec6 coordinates_
Plucker coordinates.
Plucker coordinates class.
double operator*(const Plucker &b)
Compute product of two Plucker coordinates.
ostream & operator<<(ostream &os, const Plucker &p)
Operator for printing Plucker coordinates.
bool computed_
True, if Plucker coordinates are computed; false otherwise.
void compute(const arma::vec3 &a, const arma::vec3 &b)
Compute Plucker coordinates and set computed to true.
Plucker coordinates representing line given by points A,B.