Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
vpFeaturePoint3D.h
1/****************************************************************************
2 *
3 * ViSP, open source Visual Servoing Platform software.
4 * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
5 *
6 * This software is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 * See the file LICENSE.txt at the root directory of this source
11 * distribution for additional information about the GNU GPL.
12 *
13 * For using ViSP with software that can not be combined with the GNU
14 * GPL, please contact Inria about acquiring a ViSP Professional
15 * Edition License.
16 *
17 * See https://visp.inria.fr for more information.
18 *
19 * This software was developed at:
20 * Inria Rennes - Bretagne Atlantique
21 * Campus Universitaire de Beaulieu
22 * 35042 Rennes Cedex
23 * France
24 *
25 * If you have questions regarding the use of this file, please contact
26 * Inria at visp@inria.fr
27 *
28 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30 *
31 * Description:
32 * 3D point visual feature.
33 *
34*****************************************************************************/
35
36#ifndef vpFeaturePoint3d_H
37#define vpFeaturePoint3d_H
38
44#include <visp3/core/vpMatrix.h>
45#include <visp3/core/vpPoint.h>
46#include <visp3/visual_features/vpBasicFeature.h>
47
48#include <visp3/core/vpHomogeneousMatrix.h>
49#include <visp3/core/vpRGBa.h>
50
204class VISP_EXPORT vpFeaturePoint3D : public vpBasicFeature
205
206{
207
208public:
209 // basic constructor
212 virtual ~vpFeaturePoint3D() {}
213
214 /*
215 /section Set coordinates
216 */
217
218 // build feature from a point (vpPoint)
219 void buildFrom(const vpPoint &p);
220 // set the point XY and Z-coordinates
221 void buildFrom(double X, double Y, double Z);
222
223 void display(const vpCameraParameters &cam, const vpImage<unsigned char> &I, const vpColor &color = vpColor::green,
224 unsigned int thickness = 1) const;
225 void display(const vpCameraParameters &cam, const vpImage<vpRGBa> &I, const vpColor &color = vpColor::green,
226 unsigned int thickness = 1) const;
227
228 // feature duplication
230
231 // compute the error between two visual features from a subset
232 // a the possible features
233 vpColVector error(const vpBasicFeature &s_star, unsigned int select = FEATURE_ALL);
234
235 // get the point X-coordinates
236 double get_X() const;
237 // get the point Y-coordinates
238 double get_Y() const;
239 // get the point depth (camera frame)
240 double get_Z() const;
241
242 // basic construction
243 void init();
244 // compute the interaction matrix from a subset a the possible features
245 vpMatrix interaction(unsigned int select = FEATURE_ALL);
246
247 // print the name of the feature
248 void print(unsigned int select = FEATURE_ALL) const;
249
250 // set the point X-coordinates
251 void set_X(double X);
252 // set the point Y-coordinates
253 void set_Y(double Y);
254 // set the point depth (camera frame)
255 void set_Z(double Z);
256 // set the point XY and Z-coordinates
257 void set_XYZ(double X, double Y, double Z);
258
259 static unsigned int selectX();
260 static unsigned int selectY();
261 static unsigned int selectZ();
262};
263
264#endif
class that defines what is a visual feature
virtual vpColVector error(const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL)
virtual void init()=0
virtual vpMatrix interaction(unsigned int select=FEATURE_ALL)=0
Compute the interaction matrix from a subset of the possible features.
virtual void print(unsigned int select=FEATURE_ALL) const =0
Print the name of the feature.
virtual void display(const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const =0
virtual vpBasicFeature * duplicate() const =0
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:152
static const vpColor green
Definition vpColor.h:214
Class that defines the 3D point visual feature.
virtual ~vpFeaturePoint3D()
Destructor. Does nothing.
Definition of the vpImage class member functions.
Definition vpImage.h:135
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:152
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Definition vpPoint.h:77