Visual Servoing Platform
version 3.3.0
vpMomentDatabase.h
1
/****************************************************************************
2
*
3
* ViSP, open source Visual Servoing Platform software.
4
* Copyright (C) 2005 - 2019 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 http://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 moments
33
*
34
* Authors:
35
* Filip Novotny
36
*
37
*****************************************************************************/
42
#ifndef _vpMomentDatabase_h_
43
#define _vpMomentDatabase_h_
44
45
#include <visp3/core/vpImage.h>
46
47
#include <cstring>
48
#include <iostream>
49
#include <map>
50
51
class
vpMoment
;
52
class
vpMomentObject
;
53
131
class
VISP_EXPORT
vpMomentDatabase
132
{
133
private
:
134
#ifndef DOXYGEN_SHOULD_SKIP_THIS
135
struct
cmp_str {
136
bool
operator()(
char
const
*a,
char
const
*b)
const
{
return
std::strcmp(a, b) < 0; }
137
};
138
#endif
139
std::map<const char *, vpMoment *, cmp_str> moments;
140
void
add(
vpMoment
&moment,
const
char
*name);
141
142
public
:
143
vpMomentDatabase
() : moments() {}
144
virtual
~vpMomentDatabase
() {}
145
148
const
vpMoment
&get(
const
char
*type,
bool
&found)
const
;
154
vpMoment
&
get_first
() {
return
*(moments.begin()->second); }
155
156
virtual
void
updateAll(
vpMomentObject
&
object
);
158
159
friend
class
vpMoment
;
160
friend
VISP_EXPORT std::ostream &
operator<<
(std::ostream &os,
const
vpMomentDatabase
&v);
161
};
162
163
#endif
vpMoment
This class defines shared methods/attributes for 2D moments.
Definition:
vpMoment.h:111
vpMomentDatabase::get_first
vpMoment & get_first()
Definition:
vpMomentDatabase.h:154
vpMomentDatabase::~vpMomentDatabase
virtual ~vpMomentDatabase()
Definition:
vpMomentDatabase.h:144
vpMomentDatabase
This class allows to register all vpMoments so they can access each other according to their dependen...
Definition:
vpMomentDatabase.h:132
vpMomentDatabase::vpMomentDatabase
vpMomentDatabase()
Definition:
vpMomentDatabase.h:143
vpMomentObject
Class for generic objects.
Definition:
vpMomentObject.h:220
vpMoment::operator<<
friend VISP_EXPORT std::ostream & operator<<(std::ostream &os, const vpMoment &m)
Definition:
vpMoment.cpp:122
modules
core
include
visp3
core
vpMomentDatabase.h
Generated by
1.8.20