IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseIntensity3dMeasureSetSplit.h
1 // BaseIntensity3dMeasureSetSplit.h:
3 // -------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEINTENSITY3DMEASURESETSPLIT_H__
17 #define __IPSDKIMAGEPROCESSING_BASEINTENSITY3DMEASURESETSPLIT_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseIntensity3dMeasureSetSplit<InputDataType>::_pShape3dColl' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseIntensity3dMeasureSetSplit<InputDataType>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/DataSplit/MeasureSet/BaseMeasureSetSplit.h>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 
32 
33 template <typename InputDataType>
35 {
36 public:
40  virtual ~BaseIntensity3dMeasureSetSplit() = 0;
42 
43 // methods
44 public:
46  inline eMeasureSetSplitType getMeasureSetSplitType() const;
47 
48 protected:
58  void initBase(const boost::shared_ptr<InputDataType>& pMeasureSet,
60  const MeasureSetCollPtr& pMeasureSetColl,
61  const UInt64VectorCollPtr& pShapeIndexesColl);
62 
66  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
67  const boost::shared_ptr<InputDataType>& pSubMeasureSet) = 0;
68 
69 private:
73  BoolResult processAttribute(processor::BaseProcessor& processor,
74  const ipUInt64 elementsStartIndex,
75  const ipUInt64 nbElements,
76  const core::BaseRequestOrigin& requestOrigin);
77 
78 // attributes
79 protected:
83 
86 };
87 
90 
91 template <typename InputDataType>
94 {
96 }
97 
100 
101 } // end of namespace imaproc
102 } // end of namespace ipsdk
103 
104 #pragma warning (pop)
105 
106 #endif // __IPSDKIMAGEPROCESSING_BASEINTENSITY3DMEASURESETSPLIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< MeasureSetColl > MeasureSetCollPtr
shared pointer to measure set collection
Definition: MeasureSetSplitTypes.h:54
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for processor class.
Definition: BaseProcessor.h:43
boost::shared_ptr< UInt64VectorColl > UInt64VectorCollPtr
shared pointer to collection of index associated to split operation coded with 64 bits ...
Definition: MeasureSetSplitTypes.h:66
Predefined types for shape 3d management.
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
eMeasureSetSplitType getMeasureSetSplitType() const
retrieve measure set split type
Definition: BaseIntensity3dMeasureSetSplit.h:93
boost::shared_ptr< const Shape3dColl > Shape3dCollConstPtr
shared pointer to const shape 3d collection object
Definition: Shape3dTypes.h:34
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
UInt64VectorCollPtr _pShapeIndexesColl
shape indexes collection associated to split
Definition: BaseIntensity3dMeasureSetSplit.h:85
Split operation generating intensity sub measure set.
Definition: MeasureSetSplitTypes.h:43
Base class for intensity shape measure set split operations for data dispatch.
Definition: BaseIntensity3dMeasureSetSplit.h:34
ipsdk::shape::segmentation::Shape3dCollConstPtr _pShape3dColl
Definition: BaseIntensity3dMeasureSetSplit.h:82
Base class for shape measure set split operations for data dispatch.
Definition: BaseMeasureSetSplit.h:35
eMeasureSetSplitType
Enumerate describing measure set split type.
Definition: MeasureSetSplitTypes.h:35