Visual Servoing Platform
version 3.3.0
vpMoment.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
* Base for 2D moment descriptor
33
*
34
* Authors:
35
* Filip Novotny
36
*
37
*****************************************************************************/
38
44
#ifndef _vpMoment_h_
45
#define _vpMoment_h_
46
47
#include <iostream>
48
#include <vector>
49
50
#include <visp3/core/vpConfig.h>
51
#include <visp3/core/vpException.h>
52
53
class
vpMomentDatabase
;
54
class
vpMomentObject
;
55
110
class
VISP_EXPORT
vpMoment
111
{
112
private
:
113
vpMomentObject
*object;
114
vpMomentDatabase
*moments;
115
char
_name[255];
116
117
protected
:
118
std::vector<double>
values
;
123
inline
vpMomentDatabase
&
getMoments
()
const
{
return
*moments; }
124
125
// private:
126
//#ifndef DOXYGEN_SHOULD_SKIP_THIS
127
// vpMoment(const vpMoment &)
128
// : object(NULL), moments(NULL), values()
129
// {
130
// throw vpException(vpException::functionNotImplementedError,"Not
131
// implemented!");
132
// }
133
// vpMoment &operator=(const vpMoment &){
134
// throw vpException(vpException::functionNotImplementedError,"Not
135
// implemented!"); return *this;
136
// }
137
//#endif
138
139
public
:
140
vpMoment
();
141
145
virtual
~vpMoment
() {}
146
149
virtual
void
compute
() = 0;
150
inline
const
vpMomentObject
&
getObject
()
const
{
return
*object; }
155
const
std::vector<double> &
get
()
const
{
return
values; }
156
void
linkTo(
vpMomentDatabase
&moments);
157
virtual
const
char
*
name
()
const
= 0;
158
virtual
void
printDependencies(std::ostream &os)
const
;
159
void
update(
vpMomentObject
&
object
);
161
friend
VISP_EXPORT std::ostream &operator<<(std::ostream &os,
const
vpMoment
&m);
162
};
163
#endif
vpMoment::getMoments
vpMomentDatabase & getMoments() const
Definition:
vpMoment.h:123
vpMoment
This class defines shared methods/attributes for 2D moments.
Definition:
vpMoment.h:111
vpMoment::compute
virtual void compute()=0
vpMomentDatabase
This class allows to register all vpMoments so they can access each other according to their dependen...
Definition:
vpMomentDatabase.h:132
vpMoment::~vpMoment
virtual ~vpMoment()
Definition:
vpMoment.h:145
vpMoment::name
virtual const char * name() const =0
vpMoment::getObject
const vpMomentObject & getObject() const
Definition:
vpMoment.h:150
vpMomentObject
Class for generic objects.
Definition:
vpMomentObject.h:220
vpMoment::get
const std::vector< double > & get() const
Definition:
vpMoment.h:155
vpMoment::values
std::vector< double > values
Definition:
vpMoment.h:118
modules
core
include
visp3
core
vpMoment.h
Generated by
1.8.18