IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseIntensityMeasure.h
1 // BaseIntensityMeasure.h:
3 // -----------------------
4 //
15 
16 #ifndef __IPSDKBASESHAPEANALYSIS_BASEINTENSITYMEASURE_H__
17 #define __IPSDKBASESHAPEANALYSIS_BASEINTENSITYMEASURE_H__
18 
19 #include <IPSDKBaseShapeAnalysis/Measure/BaseMeasure.h>
20 
21 namespace ipsdk {
22 namespace shape {
23 namespace analysis {
24 
27 
29 {
30  // declare serial class
32 
33  // friend class for protected members access
34  friend class MeasureSet;
35 
36 protected:
39 
40 public:
42  virtual ~BaseIntensityMeasure() = 0;
43 
44 // methods
45 public:
49  bool isColorMsr() const;
50 
51 protected:
55  virtual BoolResult startShapeMeasuresDerived(const ipUInt64 shapeIdx) {return true;}
56 
67  virtual BoolResult measureShapeDerived(const ipUInt64 cPlanIdx,
68  const ipUInt64 shapeIdx,
69  const geom::RowSegments& rowSegments,
70  const image::eImageBufferType& imageBufferType,
71  const ipUInt64 rowIdx,
72  const ipUInt64 zPlanIdx,
73  const void* pBuf) = 0;
74 
78  virtual BoolResult endShapeMeasuresDerived(const ipUInt64 shapeIdx) {return true;}
79 
85  virtual BoolResult collectResultsDerived(const UInt64Vector& resultIndexColl,
86  const BaseMeasure& subMeasure) = 0;
87 
88 
89 private:
95  BoolResult startShapeMeasures(const ipUInt64 shapeIdx);
96 
109  BoolResult measureShape(const ipUInt64 cPlanIdx,
110  const ipUInt64 shapeIdx,
111  const geom::RowSegments& rowSegments,
112  const image::eImageBufferType& imageBufferType,
113  const ipUInt64 rowIdx,
114  const ipUInt64 zPlanIdx,
115  const void* pBuf);
116 
122  BoolResult endShapeMeasures(const ipUInt64 shapeIdx);
123 
133  BoolResult collectResults(const UInt64Vector& resultIndexColl,
134  const BaseMeasure& subMeasure);
135 
136 // attributes
137 protected:
138 
139 };
140 
143 
144 } // end of namespace analysis
145 } // end of namespace shape
146 } // end of namespace ipsdk
147 
148 #endif // __IPSDKBASESHAPEANALYSIS_BASEINTENSITYMEASURE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
std::vector< ipUInt64 > UInt64Vector
stl vector collections
Definition: BaseCollections.h:35
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:91
#define IPSDKBASESHAPEANALYSIS_API
Import/Export macro for library IPSDKBaseShapeAnalysis.
Definition: IPSDKBaseShapeAnalysisExports.h:25
Object allowing to agregate a collection of measure.
Definition: MeasureSet.h:38
Base class for shape analysis intensity measurement (geometry measure using image data for processing...
Definition: BaseIntensityMeasure.h:28
std::vector< RowSegment > RowSegments
collection of row segments
Definition: GeometryEntityTypes.h:63
Base class for shape analysis measurement.
Definition: BaseMeasure.h:37
virtual BoolResult endShapeMeasuresDerived(const ipUInt64 shapeIdx)
end an intensity measure processing for a given shape
Definition: BaseIntensityMeasure.h:78
virtual BoolResult startShapeMeasuresDerived(const ipUInt64 shapeIdx)
start an intensity measure processing for a given shape
Definition: BaseIntensityMeasure.h:55
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78