IVT
FeatureSet.h
Go to the documentation of this file.
1 // ****************************************************************************
2 // This file is part of the Integrating Vision Toolkit (IVT).
3 //
4 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6 //
7 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8 // All rights reserved.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are met:
12 //
13 // 1. Redistributions of source code must retain the above copyright
14 // notice, this list of conditions and the following disclaimer.
15 //
16 // 2. Redistributions in binary form must reproduce the above copyright
17 // notice, this list of conditions and the following disclaimer in the
18 // documentation and/or other materials provided with the distribution.
19 //
20 // 3. Neither the name of the KIT nor the names of its contributors may be
21 // used to endorse or promote products derived from this software
22 // without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 // ****************************************************************************
35 // ****************************************************************************
36 // Filename: FeatureSet.h
37 // Copyright: Keyetech UG (haftungsbeschraenkt)
38 // Author: Pedram Azad
39 // Date: 10.02.2010
40 // ****************************************************************************
41 
42 
43 #ifndef __FEATURE_SET_H__
44 #define __FEATURE_SET_H__
45 
46 
47 // ****************************************************************************
48 // Necessary includes
49 // ****************************************************************************
50 
52 #include "Math/Math2d.h"
53 #include "Math/Math3d.h"
54 #include <string>
55 
56 
57 // ****************************************************************************
58 // Forward declarations
59 // ****************************************************************************
60 
61 class CFeatureEntry;
62 
63 
64 
65 // ****************************************************************************
66 // CFeatureSet
67 // ****************************************************************************
68 
70 {
71 public:
72  // constructor
73  CFeatureSet();
74 
75  // CFeatureSet
76  ~CFeatureSet();
77 
78  // structs
79  struct ContourPoint
80  {
84  };
85 
86  // public methods
87  bool SaveToFile(const char *pFileName) const;
88  bool LoadFromFile(const char *pFileName);
89 
90  void SetName(const char *pName);
91  const char* GetName() const { return m_sName.c_str(); }
92 
93  void AddFeature(const CFeatureEntry *pFeature);
95  void ClearFeatureList();
96  const CDynamicArrayTemplatePointer<CFeatureEntry>& GetFeatureList() const { return m_featureArray; }
97 
98  void AddContourPoint(const Vec2d &point);
99  void AddContourPoint(const Vec2d &point, const Vec3d &point3d);
100  void ClearContourPointList();
101  const CDynamicArrayTemplate<ContourPoint>& GetContourPointList() const { return m_contourPointArray; }
102 
103 
104 private:
105  // private attribute
107  CDynamicArrayTemplate<ContourPoint> m_contourPointArray;
108 
109  std::string m_sName;
110 };
111 
112 
113 
114 #endif /* __FEATURE_SET_H__ */
Data structure for the representation of a 2D vector.
Definition: Math2d.h:82
const CDynamicArrayTemplate< ContourPoint > & GetContourPointList() const
Definition: FeatureSet.h:101
Base class for the representation of local features.
Definition: FeatureEntry.h:72
void ClearFeatureList()
Definition: FeatureSet.cpp:94
void AddFeature(const CFeatureEntry *pFeature)
Definition: FeatureSet.cpp:84
bool LoadFromFile(const char *pFileName)
Definition: FeatureSet.cpp:237
const CDynamicArrayTemplatePointer< CFeatureEntry > & GetFeatureList() const
Definition: FeatureSet.h:96
Data structure for the representation of a 3D vector.
Definition: Math3d.h:73
const char * GetName() const
Definition: FeatureSet.h:91
void AddFeatureWithoutCloning(CFeatureEntry *pFeature)
Definition: FeatureSet.cpp:89
bool SaveToFile(const char *pFileName) const
Definition: FeatureSet.cpp:125
void SetName(const char *pName)
Definition: FeatureSet.cpp:78
void AddContourPoint(const Vec2d &point)
Definition: FeatureSet.cpp:99
void ClearContourPointList()
Definition: FeatureSet.cpp:119