Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpPoint.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2025 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Point feature.
32 */
33
38
39#ifndef VP_POINT_H
40#define VP_POINT_H
41
42#include <visp3/core/vpConfig.h>
43#include <visp3/core/vpColor.h>
44#include <visp3/core/vpForwardProjection.h>
45#include <visp3/core/vpMatrix.h>
46
49
78class VISP_EXPORT vpPoint : public vpForwardProjection
79{
80
81public:
83 vpPoint();
84 vpPoint(double oX, double oY, double oZ);
85 VP_EXPLICIT vpPoint(const vpColVector &oP);
86 VP_EXPLICIT vpPoint(const std::vector<double> &oP);
87
88public:
89 // Compute the 3D coordinates _cP (camera frame)
90 void changeFrame(const vpHomogeneousMatrix &cMo, vpColVector &cP) const VP_OVERRIDE;
91 void changeFrame(const vpHomogeneousMatrix &cMo) VP_OVERRIDE;
92
93 void display(const vpImage<unsigned char> &I, const vpCameraParameters &cam, const vpColor &color = vpColor::green,
94 unsigned int thickness = 1) VP_OVERRIDE;
95 void display(const vpImage<unsigned char> &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam,
96 const vpColor &color = vpColor::green, unsigned int thickness = 1) VP_OVERRIDE;
97
98 void display(const vpImage<vpRGBa> &I, const vpCameraParameters &cam, const vpColor &color = vpColor::green,
99 unsigned int thickness = 1);
100 void display(const vpImage<vpRGBa> &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam,
101 const vpColor &color = vpColor::green, unsigned int thickness = 1);
102
103 vpPoint *duplicate() const VP_OVERRIDE;
104
105 // Get coordinates
106 double get_X() const;
107 double get_Y() const;
108 double get_Z() const;
109 double get_W() const;
110 double get_oX() const;
111 double get_oY() const;
112 double get_oZ() const;
113 double get_oW() const;
114 double get_x() const;
115 double get_y() const;
116 double get_w() const;
117
118 void getWorldCoordinates(double &oX, double &oY, double &oZ);
121 void getWorldCoordinates(std::vector<double> &oP);
122
123 friend VISP_EXPORT std::ostream &operator<<(std::ostream &os, const vpPoint &vpp);
124
127
128 void projection(const vpColVector &_cP, vpColVector &_p) const VP_OVERRIDE;
129 void projection() VP_OVERRIDE;
130
131 // Set coordinates
132 void set_X(double cX);
133 void set_Y(double cY);
134 void set_Z(double cZ);
135 void set_W(double cW);
136 void set_oX(double oX);
137 void set_oY(double oY);
138 void set_oZ(double oZ);
139 void set_oW(double oW);
140 void set_x(double x);
141 void set_y(double y);
142 void set_w(double w);
143
144 void setWorldCoordinates(double oX, double oY, double oZ);
145
146 void setWorldCoordinates(const vpColVector &oP) VP_OVERRIDE;
147 void setWorldCoordinates(const std::vector<double> &oP);
148
149protected:
151 void init() VP_OVERRIDE;
152};
153END_VISP_NAMESPACE
154#endif
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class to define RGB colors available for display functionalities.
Definition vpColor.h:157
static const vpColor green
Definition vpColor.h:201
virtual void projection()=0
virtual vpForwardProjection * duplicate() const =0
virtual void setWorldCoordinates(const vpColVector &oP)=0
virtual void changeFrame(const vpHomogeneousMatrix &cMo, vpColVector &cP) const =0
virtual void init()=0
virtual void display(const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1)=0
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Definition vpImage.h:131
double get_oW() const
Get the point oW coordinate in the object frame.
Definition vpPoint.cpp:424
double get_oX() const
Get the point oX coordinate in the object frame.
Definition vpPoint.cpp:418
double get_w() const
Get the point w coordinate in the image plane.
Definition vpPoint.cpp:431
void set_x(double x)
Set the point x coordinate in the image plane.
Definition vpPoint.cpp:471
void set_W(double cW)
Set the point cW coordinate in the camera frame.
Definition vpPoint.cpp:459
void set_oW(double oW)
Set the point oW coordinate in the object frame.
Definition vpPoint.cpp:468
double get_y() const
Get the point y coordinate in the image plane.
Definition vpPoint.cpp:429
double get_Y() const
Get the point cY coordinate in the camera frame.
Definition vpPoint.cpp:411
double get_oZ() const
Get the point oZ coordinate in the object frame.
Definition vpPoint.cpp:422
void getWorldCoordinates(double &oX, double &oY, double &oZ)
Get the point object frame coordinates.
Definition vpPoint.cpp:203
void set_oY(double oY)
Set the point oY coordinate in the object frame.
Definition vpPoint.cpp:464
void set_X(double cX)
Set the point cX coordinate in the camera frame.
Definition vpPoint.cpp:453
double get_x() const
Get the point x coordinate in the image plane.
Definition vpPoint.cpp:427
double get_W() const
Get the point cW coordinate in the camera frame.
Definition vpPoint.cpp:415
void set_Y(double cY)
Set the point cY coordinate in the camera frame.
Definition vpPoint.cpp:455
double get_Z() const
Get the point cZ coordinate in the camera frame.
Definition vpPoint.cpp:413
void set_oZ(double oZ)
Set the point oZ coordinate in the object frame.
Definition vpPoint.cpp:466
void set_Z(double cZ)
Set the point cZ coordinate in the camera frame.
Definition vpPoint.cpp:457
void set_oX(double oX)
Set the point oX coordinate in the object frame.
Definition vpPoint.cpp:462
double get_oY() const
Get the point oY coordinate in the object frame.
Definition vpPoint.cpp:420
double get_X() const
Get the point cX coordinate in the camera frame.
Definition vpPoint.cpp:409
vpPoint()
Basic constructor.
Definition vpPoint.cpp:63
friend VISP_EXPORT std::ostream & operator<<(std::ostream &os, const vpPoint &vpp)
Definition vpPoint.cpp:502
void set_y(double y)
Set the point y coordinate in the image plane.
Definition vpPoint.cpp:473
void set_w(double w)
Set the point w coordinate in the image plane.
Definition vpPoint.cpp:475
vpColVector cP
Definition vpTracker.h:73