ViSP  2.7.0
vpScanPoint Class Reference

#include <vpScanPoint.h>

Public Member Functions

 vpScanPoint ()
 
 vpScanPoint (const vpScanPoint &scanpoint)
 
 vpScanPoint (double rDist, double hAngle, double vAngle)
 
virtual ~vpScanPoint ()
 
void setPolar (double rDist, double hAngle, double vAngle)
 
double getRadialDist () const
 
double getVAngle () const
 
double getHAngle () const
 
double getX () const
 
double getY () const
 
double getZ () const
 

Friends

std::ostream & operator<< (std::ostream &s, const vpScanPoint &p)
 
bool operator== (const vpScanPoint &sp1, const vpScanPoint &sp2)
 
bool operator!= (const vpScanPoint &sp1, const vpScanPoint &sp2)
 

Detailed Description

Class that defines a single laser scanner point.

This class stores data of a single scan point as:

  • cartesian coordinates in the 3D space that are available throw getX(), getY() and getZ() methods.
  • polar coordinates that are the native data provided by a laser scanner. By polar coordinates we mean here the radial distance and the horizontal angle of a point in the scanner layer and an additional vertical angle that gives the orientation of the layer.
Examples:
SickLDMRS-Process.cpp.

Definition at line 74 of file vpScanPoint.h.

Constructor & Destructor Documentation

vpScanPoint::vpScanPoint ( )
inline

Default constructor.

Definition at line 78 of file vpScanPoint.h.

vpScanPoint::vpScanPoint ( const vpScanPoint scanpoint)
inline

Copy constructor.

Definition at line 84 of file vpScanPoint.h.

vpScanPoint::vpScanPoint ( double  rDist,
double  hAngle,
double  vAngle 
)
inline

Set the polar point coordinates.

Parameters
rDist: Radial distance in meter.
hAngle: Horizontal angle in radian.
vAngle: Vertical angle in radian.

Definition at line 95 of file vpScanPoint.h.

virtual vpScanPoint::~vpScanPoint ( )
inlinevirtual

Destructor that does nothing.

Definition at line 101 of file vpScanPoint.h.

Member Function Documentation

double vpScanPoint::getHAngle ( ) const
inline

Returns the polar elevation (vertical) angle in radian.

Examples:
SickLDMRS-Process.cpp.

Definition at line 128 of file vpScanPoint.h.

double vpScanPoint::getRadialDist ( ) const
inline

Return the radial distance in meter.

Examples:
SickLDMRS-Process.cpp.

Definition at line 116 of file vpScanPoint.h.

double vpScanPoint::getVAngle ( ) const
inline

Returns the polar elevation (vertical) angle in radian.

Definition at line 122 of file vpScanPoint.h.

double vpScanPoint::getX ( ) const
inline

Returns the cartesian x coordinate.

The x and y axis define an horizontal plane, where x is oriented positive in front of the laser while y on the left side.

Definition at line 138 of file vpScanPoint.h.

double vpScanPoint::getY ( ) const
inline

Returns the cartesian y coordinate.

The x and y axis define an horizontal plane, where x is oriented positive in front of the laser while y on the left side.

Definition at line 148 of file vpScanPoint.h.

double vpScanPoint::getZ ( ) const
inline

Returns the cartesian z coordinate.

The z axis is vertical and oriented in direction of the sky.

Definition at line 157 of file vpScanPoint.h.

void vpScanPoint::setPolar ( double  rDist,
double  hAngle,
double  vAngle 
)
inline

Set the polar point coordinates.

Parameters
rDist: Radial distance in meter.
hAngle: Horizontal angle in radian.
vAngle: Vertical angle in radian.

Definition at line 108 of file vpScanPoint.h.

Friends And Related Function Documentation

bool operator!= ( const vpScanPoint sp1,
const vpScanPoint sp2 
)
friend

Returns true if sp1 and sp2 are different; otherwire returns false.

Definition at line 192 of file vpScanPoint.h.

std::ostream& operator<< ( std::ostream &  s,
const vpScanPoint p 
)
friend

Print the values of the scan point on the output stream. Data are separated by a white space. Data that are print are first the polar coordinates, than the cartesian coordinates:

  • the radial distance in meter
  • the horizontal angle in radian
  • the vertical angle in radian
  • the cartesian X coordinate
  • the cartesian Y coordinate
  • the cartesian Z coordinate

The following code

#include <iostream>
#include <visp/vpScanPoint.h>
int main()
{
double radialDistance = 3; // 3 meters
double horizontalAngle = 1.12; // 1.12 radian
double verticalAngle = 0; // 0 radian for a horizontal layer
p.setPolar(radialDistance, horizontalAngle, verticalAngle);
std::cout << p << std::endl;
}

will produce the prints

"3 1.12 0 1.307047339 2.700301327 0"

Definition at line 252 of file vpScanPoint.h.

bool operator== ( const vpScanPoint sp1,
const vpScanPoint sp2 
)
friend

Returns true if sp1 and sp2 are equal; otherwire returns false.

Definition at line 168 of file vpScanPoint.h.