CEDRIC  Revision_backup-2009-02
Signature.h
Go to the documentation of this file.
1 /******************************************************************************
2  *
3  * Copyright (C) 2008 Max Hermann
4  *
5  * This file is part of the "CEDRIC Event Display" application.
6  *
7  *****************************************************************************/
8 
9 #ifndef REDUKT_SIGNATURE_H
10 #define REDUKT_SIGNATURE_H
11 
12 #include <vector>
13 #include <assert.h>
14 
17 template<class F>
18 class Signature
19 {
20 public:
21  int numFeatures() const { return m_features.size(); }
22 
23  const F& feature( int i ) const
24  {
25  assert( (i>=0) && (i<(int)m_features.size()) );
26  return m_features[i];
27  }
28 
29  float weight( int i ) const
30  {
31  assert( (i>=0) && (i<(int)m_weights.size()) );
32  return m_weights[i];
33  }
34 
35  void add( const F& f, float w )
36  {
37  m_features.push_back( f );
38  m_weights .push_back( w );
39  }
40 
41  void del( int i )
42  {
43  assert( (i>=0) && (i<(int)m_features.size()) );
44 
45  m_features.erase( m_features.begin() + i );
46  m_weights .erase( m_weights .begin() + i );
47  }
48 
49 protected:
50  void clear()
51  {
52  m_features.clear();
53  m_weights.clear();
54  }
55 
56  std::vector<F> m_features;
57  std::vector<float> m_weights;
58 };
59 
60 #endif // REDUKT_SIGNATURE_H
const F & feature(int i) const
Definition: Signature.h:23
std::vector< float > m_weights
Definition: Signature.h:57
void add(const F &f, float w)
Definition: Signature.h:35
float weight(int i) const
Definition: Signature.h:29
std::vector< F > m_features
Definition: Signature.h:56
void del(int i)
Definition: Signature.h:41
void clear()
Definition: Signature.h:50
Definition: Signature.h:18
int numFeatures() const
Definition: Signature.h:21