44 #include <visp/vpMath.h>
85 this->rDist = scanpoint.rDist;
86 this->hAngle = scanpoint.hAngle;
87 this->vAngle = scanpoint.vAngle;
95 inline vpScanPoint(
double rDist,
double hAngle,
double vAngle) {
97 this->hAngle = hAngle;
98 this->vAngle = vAngle;
108 inline void setPolar(
double rDist,
double hAngle,
double vAngle) {
110 this->hAngle = hAngle;
111 this->vAngle = vAngle;
117 return ( this->rDist );
123 return ( this->vAngle );
129 return ( this->hAngle );
139 return ( rDist * cos(this->hAngle) * cos(this->vAngle) );
149 return ( rDist * sin(this->hAngle) );
158 return ( rDist * cos(this->hAngle) * sin(this->vAngle) );
180 return ( ( std::fabs(rd1 - rd2) <= std::fabs(
vpMath::maximum(rd1,rd2)) * std::numeric_limits<double>::epsilon() )
182 ( std::fabs(ha1 - ha2) <= std::fabs(
vpMath::maximum(ha1,ha2)) * std::numeric_limits<double>::epsilon() )
184 ( std::fabs(va1 - va2) <= std::fabs(
vpMath::maximum(va1,va2)) * std::numeric_limits<double>::epsilon() ) );
203 return ( ( std::fabs(rd1 - rd2) > std::fabs(
vpMath::maximum(rd1,rd2)) * std::numeric_limits<double>::epsilon() )
205 ( std::fabs(ha1 - ha2) <= std::fabs(
vpMath::maximum(ha1,ha2)) * std::numeric_limits<double>::epsilon() )
207 ( std::fabs(va1 - va2) <= std::fabs(
vpMath::maximum(va1,va2)) * std::numeric_limits<double>::epsilon() ) );
vpScanPoint(const vpScanPoint &scanpoint)
static Type maximum(const Type &a, const Type &b)
Class that defines a single laser scanner point.
double getRadialDist() const
friend bool operator==(const vpScanPoint &sp1, const vpScanPoint &sp2)
VISP_EXPORT std::ostream & operator<<(std::ostream &os, const vpImagePoint &ip)
vpScanPoint(double rDist, double hAngle, double vAngle)
void setPolar(double rDist, double hAngle, double vAngle)
friend std::ostream & operator<<(std::ostream &s, const vpScanPoint &p)
friend bool operator!=(const vpScanPoint &sp1, const vpScanPoint &sp2)