IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseMeasureResult.h
1 // BaseMeasureResult.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKBASESHAPEANALYSIS_BASEMEASURERESULT_H__
16 #define __IPSDKBASESHAPEANALYSIS_BASEMEASURERESULT_H__
17 
20 #include <IPSDKSerialization/Engine/BaseObjectWithSkeleton.h>
21 
22 namespace ipsdk {
23 namespace shape {
24 namespace analysis {
25 
28 
30 {
31  // declare serial class
33 
34 public:
38  virtual ~BaseMeasureResult() = 0;
40 
41 // methods
42 public:
44  virtual eMsrResultType getMsrResultType() const = 0;
45 
47  bool isInit() const;
48 
50  void init(const ipUInt64 nbColorPlans,
51  const ipUInt64 nbEntities);
52 
56  ipUInt64 getNbColorPlans() const;
57 
61  ipUInt64 getNbEntities() const;
62 
66  bool isValid(const ipUInt64 cPlanIdx) const;
67 
75  void collectResults(const ipUInt64 resultStartIndex,
76  const BaseMeasureResult& baseSubResults);
77 
86  void collectResults(const UInt64Vector& subDataIdxColl,
87  const BaseMeasureResult& baseSubResults);
88 
96  void extractResults(const ipUInt64 resultStartIndex,
97  const BaseMeasureResult& baseMainResults);
98 
107  void extractResults(const UInt64Vector& mainDataIdxColl,
108  const BaseMeasureResult& baseMainResults);
109 
111  void clear();
112 
113 protected:
115  virtual void initDerived(const ipUInt64 nbColorPlans,
116  const ipUInt64 nbEntities) = 0;
117 
120  virtual void collectResultsDerived(const ipUInt64 resultStartIndex,
121  const BaseMeasureResult& subResults) = 0;
122  virtual void collectResultsDerived(const UInt64Vector& subDataIdxColl,
123  const BaseMeasureResult& subResults) = 0;
125 
128  virtual void extractResultsDerived(const ipUInt64 resultStartIndex,
129  const BaseMeasureResult& baseMainResults) = 0;
130  virtual void extractResultsDerived(const UInt64Vector& mainDataIdxColl,
131  const BaseMeasureResult& baseMainResults) = 0;
133 
135  virtual void clearDerived() = 0;
136 
137 // attributes
138 private:
140  ipUInt64 _nbColorPlans;
141 
143  ipUInt64 _nbEntities;
144 };
145 
148 
149 inline bool
151 {
152  return _nbColorPlans != 0;
153 }
154 
157 
158 } // end of namespace analysis
159 } // end of namespace shape
160 } // end of namespace ipsdk
161 
162 #endif // __IPSDKBASESHAPEANALYSIS_BASEMEASURERESULT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
bool isInit() const
retrieve object initialization flag
Definition: BaseMeasureResult.h:150
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
std::vector< ipUInt64 > UInt64Vector
stl vector collections
Definition: BaseCollections.h:35
Definition of import/export macro for library.
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:91
Predefined types for measure results management.
#define IPSDKBASESHAPEANALYSIS_API
Import/Export macro for library IPSDKBaseShapeAnalysis.
Definition: IPSDKBaseShapeAnalysisExports.h:25
eMsrResultType
Enumerate describing measure measure result type.
Definition: MeasureResultTypes.h:40
Base class for measure results.
Definition: BaseMeasureResult.h:29
Base class for serialization object with three serialization modes :
Definition: BaseObjectWithSkeleton.h:33