Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
vpFeatureMomentDatabase.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 * Pseudo-database used to handle dependencies between moment features.
33 *
34 * Authors:
35 * Filip Novotny
36 *
37*****************************************************************************/
38
44#ifndef _vpFeatureMomentDatabase_h_
45#define _vpFeatureMomentDatabase_h_
46
47#include <cstring>
48#include <iostream>
49#include <map>
50#include <visp3/core/vpConfig.h>
51
52class vpFeatureMoment;
53class vpMomentObject;
108
157class VISP_EXPORT vpFeatureMomentDatabase
158{
159private:
160 struct vpCmpStr_t {
161 bool operator()(const char *a, const char *b) const { return std::strcmp(a, b) < 0; }
162 char *operator=(const char *) { return NULL; } // Only to avoid a warning under Visual with /Wall flag
163 };
164 std::map<const char *, vpFeatureMoment *, vpCmpStr_t> featureMomentsDataBase;
165 void add(vpFeatureMoment &featureMoment, char *name);
166
167public:
171 vpFeatureMomentDatabase() : featureMomentsDataBase() {}
176 virtual void updateAll(double A = 0.0, double B = 0.0, double C = 1.0);
177
178 vpFeatureMoment &get(const char *type, bool &found);
179
180 // friend VISP_EXPORT std::ostream & operator<<(std::ostream& os, const
181 // vpFeatureMomentDatabase& m);
182 friend class vpFeatureMoment;
183};
184
185#endif
This class allows to register all feature moments (implemented in vpFeatureMoment....
This class defines shared system methods/attributes for 2D moment features but no functional code....
Class for generic objects.