Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpScanPoint Class Reference

#include <vpScanPoint.h>

Public Member Functions

 vpScanPoint ()
 vpScanPoint (const vpScanPoint &scanpoint)
 vpScanPoint (double r_dist, double h_angle, double v_angle)
virtual ~vpScanPoint ()
void setPolar (double r_dist, double h_angle, double v_angle)
double getRadialDist () const
double getVAngle () const
double getHAngle () const
double getX () const
double getY () const
double getZ () const
vpScanPointoperator= (const vpScanPoint &)=default

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 71 of file vpScanPoint.h.

Constructor & Destructor Documentation

◆ vpScanPoint() [1/3]

vpScanPoint::vpScanPoint ( )
inline

Default constructor.

Definition at line 77 of file vpScanPoint.h.

Referenced by operator!=, operator<<, operator=(), operator==, and vpScanPoint().

◆ vpScanPoint() [2/3]

vpScanPoint::vpScanPoint ( const vpScanPoint & scanpoint)
inline

Copy constructor.

Definition at line 79 of file vpScanPoint.h.

References vpScanPoint().

◆ vpScanPoint() [3/3]

vpScanPoint::vpScanPoint ( double r_dist,
double h_angle,
double v_angle )
inline

Set the polar point coordinates.

Parameters
r_dist: Radial distance in meter.
h_angle: Horizontal angle in radian.
v_angle: Vertical angle in radian.

Definition at line 91 of file vpScanPoint.h.

◆ ~vpScanPoint()

virtual vpScanPoint::~vpScanPoint ( )
inlinevirtual

Destructor that does nothing.

Definition at line 98 of file vpScanPoint.h.

Member Function Documentation

◆ getHAngle()

double vpScanPoint::getHAngle ( ) const
inline

Returns the polar elevation (vertical) angle in radian.

Definition at line 122 of file vpScanPoint.h.

Referenced by operator!=, and operator==.

◆ getRadialDist()

double vpScanPoint::getRadialDist ( ) const
inline

Return the radial distance in meter.

Definition at line 114 of file vpScanPoint.h.

Referenced by operator!=, and operator==.

◆ getVAngle()

double vpScanPoint::getVAngle ( ) const
inline

Returns the polar elevation (vertical) angle in radian.

Definition at line 118 of file vpScanPoint.h.

Referenced by operator!=, and operator==.

◆ getX()

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 130 of file vpScanPoint.h.

◆ getY()

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 138 of file vpScanPoint.h.

◆ getZ()

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 145 of file vpScanPoint.h.

◆ operator=()

vpScanPoint & vpScanPoint::operator= ( const vpScanPoint & )
default

References vpScanPoint().

◆ setPolar()

void vpScanPoint::setPolar ( double r_dist,
double h_angle,
double v_angle )
inline

Set the polar point coordinates.

Parameters
r_dist: Radial distance in meter.
h_angle: Horizontal angle in radian.
v_angle: Vertical angle in radian.

Definition at line 105 of file vpScanPoint.h.

Referenced by vpSickLDMRS::measure().

◆ operator!=

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

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

Definition at line 177 of file vpScanPoint.h.

References getHAngle(), getRadialDist(), getVAngle(), vpMath::maximum(), and vpScanPoint().

◆ operator<<

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 <visp3/sensor/vpScanPoint.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
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 240 of file vpScanPoint.h.

References operator<<, and vpScanPoint().

Referenced by operator<<.

◆ operator==

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

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

Definition at line 158 of file vpScanPoint.h.

References getHAngle(), getRadialDist(), getVAngle(), vpMath::maximum(), and vpScanPoint().