Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpFeatureTranslation.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 * 3D translation visual feature.
32 */
33
38
39#ifndef vpFeatureTranslation_H
40#define vpFeatureTranslation_H
41
42#include <visp3/core/vpConfig.h>
43#include <visp3/core/vpHomogeneousMatrix.h>
44#include <visp3/core/vpMatrix.h>
45#include <visp3/core/vpRGBa.h>
46#include <visp3/core/vpTranslationVector.h>
47#include <visp3/visual_features/vpBasicFeature.h>
48
281class VISP_EXPORT vpFeatureTranslation : public vpBasicFeature
282{
283public:
288 typedef enum
289 {
302 } vpFeatureTranslationRepresentationType;
303
304 // basic constructor
306 // basic constructor specifying the type of translation feature
307 VP_EXPLICIT vpFeatureTranslation(vpFeatureTranslationRepresentationType r);
308 // constructor : build from an homogeneous matrix
309 // cdMc is the displacement that the camera has to realize
310 vpFeatureTranslation(vpHomogeneousMatrix &f2Mf1, vpFeatureTranslationRepresentationType r);
311
312 // build from an homogeneous matrix
313 // cdMc is the displacement that the camera has to realize
314 vpFeatureTranslation &buildFrom(const vpHomogeneousMatrix &f2Mf1);
315
316 void display(const vpCameraParameters &cam, const vpImage<unsigned char> &I, const vpColor &color = vpColor::green,
317 unsigned int thickness = 1) const VP_OVERRIDE;
318 void display(const vpCameraParameters &cam, const vpImage<vpRGBa> &I, const vpColor &color = vpColor::green,
319 unsigned int thickness = 1) const VP_OVERRIDE;
320
322 vpFeatureTranslation *duplicate() const VP_OVERRIDE;
323
324 // compute the error between two visual features from a subset
325 // a the possible features
326 vpColVector error(const vpBasicFeature &s_star, unsigned int select = FEATURE_ALL) VP_OVERRIDE;
327
328 vpFeatureTranslationRepresentationType getFeatureTranslationType() const;
329
330 double get_Tx() const;
331 double get_Ty() const;
332 double get_Tz() const;
333
334 // basic construction
335 void init() VP_OVERRIDE;
336 // compute the interaction matrix from a subset a the possible features
337 vpMatrix interaction(unsigned int select = FEATURE_ALL) VP_OVERRIDE;
338
339 // print the name of the feature
340 void print(unsigned int select = FEATURE_ALL) const VP_OVERRIDE;
341
342 void set_Tx(double t_x);
343 void set_Ty(double t_y);
344 void set_Tz(double t_z);
345
346 void setFeatureTranslationType(const vpFeatureTranslationRepresentationType r);
347
348 // feature selection
349 static unsigned int selectTx();
350 static unsigned int selectTy();
351 static unsigned int selectTz();
352
353private:
356 vpFeatureTranslationRepresentationType translation;
357};
358END_VISP_NAMESPACE
359#endif
class that defines what is a visual feature
virtual void display(const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) 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:157
static const vpColor green
Definition vpColor.h:201
Class that defines the translation visual feature .
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Definition vpImage.h:131
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:175