IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MeasureSetSplitOperators.h
Go to the documentation of this file.
1 // MeasureSetSplitOperators.h:
3 // ---------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_MEASURESETSPLITOPERATORS_H__
17 #define __IPSDKIMAGEPROCESSING_MEASURESETSPLITOPERATORS_H__
18 
20 #include <IPSDKImageProcessing/DataSplit/MeasureSet/GenericMeasureSetSplit.h>
21 #include <IPSDKImageProcessing/DataSplit/MeasureSet/Geometry2dMeasureSetSplit.h>
22 #include <IPSDKImageProcessing/DataSplit/MeasureSet/Geometry3dMeasureSetSplit.h>
23 #include <IPSDKImageProcessing/DataSplit/MeasureSet/IntensityMeasureSetSplit.h>
24 #include <IPSDKImageProcessing/DataSplit/MeasureSet/Intensity3dMeasureSetSplit.h>
25 #include <boost/make_shared.hpp>
26 
27 namespace ipsdk {
28 namespace imaproc {
29 
32 
35 template <typename TProcessor, typename TAttribute, typename InputDataType>
36 inline boost::shared_ptr<GenericMeasureSetSplit<TProcessor, InputDataType, TAttribute> >
37 genericSplit(const boost::shared_ptr<InputDataType>& pMeasureSet,
38  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
39 {
41  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
42  pDataSplit->init(pMeasureSet, pMeasureSetColl);
43 
44  return pDataSplit;
45 }
46 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
47 inline boost::shared_ptr<GenericMeasureSetSplit<TProcessor, typename InputAttributeType::ValueType, TAttribute> >
48 genericSplit(const boost::shared_ptr<InputAttributeType>& pMeasureSetAttribute,
49  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
50 {
52  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
53  pDataSplit->init(pMeasureSetAttribute->getStorage(), pMeasureSetColl);
54 
55  return pDataSplit;
56 }
58 
61 template <typename TProcessor, typename TAttribute, typename InputDataType>
62 inline boost::shared_ptr<Geometry2dMeasureSetSplit<TProcessor, InputDataType, TAttribute> >
63 geometry2dSplit(const boost::shared_ptr<InputDataType>& pMeasureSet,
64  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
65 {
67  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
68  pDataSplit->init(pMeasureSet, pMeasureSetColl);
69 
70  return pDataSplit;
71 }
72 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
73 inline boost::shared_ptr<Geometry2dMeasureSetSplit<TProcessor, typename InputAttributeType::ValueType, TAttribute> >
74 geometry2dSplit(const boost::shared_ptr<InputAttributeType>& pMeasureSetAttribute,
75  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
76 {
78  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
79  pDataSplit->init(pMeasureSetAttribute->getStorage(), pMeasureSetColl);
80 
81  return pDataSplit;
82 }
84 
87 template <typename TProcessor, typename TAttribute, typename InputDataType>
88 inline boost::shared_ptr<Geometry3dMeasureSetSplit<TProcessor, InputDataType, TAttribute> >
89 geometry3dSplit(const boost::shared_ptr<InputDataType>& pMeasureSet,
90  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
91 {
93  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
94  pDataSplit->init(pMeasureSet, pMeasureSetColl);
95 
96  return pDataSplit;
97 }
98 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
99 inline boost::shared_ptr<Geometry2dMeasureSetSplit<TProcessor, typename InputAttributeType::ValueType, TAttribute> >
100 geometry3dSplit(const boost::shared_ptr<InputAttributeType>& pMeasureSetAttribute,
101  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr())
102 {
104  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
105  pDataSplit->init(pMeasureSetAttribute->getStorage(), pMeasureSetColl);
106 
107  return pDataSplit;
108 }
110 
113 template <typename TProcessor, typename TAttribute, typename InputDataType>
114 inline boost::shared_ptr<IntensityMeasureSetSplit<TProcessor, InputDataType, TAttribute> >
115 intensitySplit(const boost::shared_ptr<InputDataType>& pMeasureSet,
117  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr(),
118  const UInt64VectorCollPtr& pShapeIndexesColl = UInt64VectorCollPtr())
119 {
121  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
122  pDataSplit->init(pMeasureSet, pShape2dColl, pMeasureSetColl, pShapeIndexesColl);
123 
124  return pDataSplit;
125 }
126 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
127 inline boost::shared_ptr<IntensityMeasureSetSplit<TProcessor, typename InputAttributeType::ValueType, TAttribute> >
128 intensitySplit(const boost::shared_ptr<InputAttributeType>& pMeasureSetAttribute,
130  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr(),
131  const UInt64VectorCollPtr& pShapeIndexesColl = UInt64VectorCollPtr())
132 {
134  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
135  pDataSplit->init(pMeasureSetAttribute->getStorage(), pShape2dColl, pMeasureSetColl, pShapeIndexesColl);
136 
137  return pDataSplit;
138 }
140 
143 template <typename TProcessor, typename TAttribute, typename InputDataType>
144 inline boost::shared_ptr<Intensity3dMeasureSetSplit<TProcessor, InputDataType, TAttribute> >
145 intensitySplit(const boost::shared_ptr<InputDataType>& pMeasureSet,
147  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr(),
148  const UInt64VectorCollPtr& pShapeIndexesColl = UInt64VectorCollPtr())
149 {
151  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
152  pDataSplit->init(pMeasureSet, pShape3dColl, pMeasureSetColl, pShapeIndexesColl);
153 
154  return pDataSplit;
155 }
156 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
157 inline boost::shared_ptr<IntensityMeasureSetSplit<TProcessor, typename InputAttributeType::ValueType, TAttribute> >
158 intensitySplit(const boost::shared_ptr<InputAttributeType>& pMeasureSetAttribute,
160  const MeasureSetCollPtr& pMeasureSetColl = MeasureSetCollPtr(),
161  const UInt64VectorCollPtr& pShapeIndexesColl = UInt64VectorCollPtr())
162 {
164  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
165  pDataSplit->init(pMeasureSetAttribute->getStorage(), pShape3dColl, pMeasureSetColl, pShapeIndexesColl);
166 
167  return pDataSplit;
168 }
170 
173 
174 } // end of namespace imaproc
175 } // end of namespace ipsdk
176 
177 #endif // __IPSDKIMAGEPROCESSING_MEASURESETSPLITOPERATORS_H__
boost::shared_ptr< GenericMeasureSetSplit< TProcessor, InputDataType, TAttribute > > genericSplit(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl=MeasureSetCollPtr())
create a splitted generic measure set operation used for data dispatch
Definition: MeasureSetSplitOperators.h:37
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< IntensityMeasureSetSplit< TProcessor, InputDataType, TAttribute > > intensitySplit(const boost::shared_ptr< InputDataType > &pMeasureSet, const ipsdk::shape::segmentation::Shape2dCollConstPtr &pShape2dColl, const MeasureSetCollPtr &pMeasureSetColl=MeasureSetCollPtr(), const UInt64VectorCollPtr &pShapeIndexesColl=UInt64VectorCollPtr())
create a splitted intensity measure set operation used for data dispatch
Definition: MeasureSetSplitOperators.h:115
boost::shared_ptr< MeasureSetColl > MeasureSetCollPtr
shared pointer to measure set collection
Definition: MeasureSetSplitTypes.h:54
void init(const boost::shared_ptr< InputDataType > &pMeasureSet, const ipsdk::shape::segmentation::Shape2dCollConstPtr &pShape2dColl, const MeasureSetCollPtr &pMeasureSetColl, const UInt64VectorCollPtr &pShapeIndexesColl)
initialization method for splitted objects
Definition: IntensityMeasureSetSplit.h:105
void init(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl)
initialization method for splitted objects
Definition: Geometry3dMeasureSetSplit.h:98
Definition of import/export macro for library.
Concrete class for split operation generating geometry 2d sub measure set for data dispatch...
Definition: Geometry2dMeasureSetSplit.h:28
boost::shared_ptr< UInt64VectorColl > UInt64VectorCollPtr
shared pointer to collection of index associated to split operation coded with 64 bits ...
Definition: MeasureSetSplitTypes.h:66
boost::shared_ptr< const Shape3dColl > Shape3dCollConstPtr
shared pointer to const shape 3d collection object
Definition: Shape3dTypes.h:34
boost::shared_ptr< const Shape2dColl > Shape2dCollConstPtr
shared pointer to const shape 2d collection object
Definition: Shape2dTypes.h:34
Concrete class for split operation generating intensity sub measure set for data dispatch.
Definition: Intensity3dMeasureSetSplit.h:29
Concrete class for split operation generating generic sub measure set for data dispatch.
Definition: GenericMeasureSetSplit.h:28
void init(const boost::shared_ptr< InputDataType > &pMeasureSet, const ipsdk::shape::segmentation::Shape3dCollConstPtr &pShape3dColl, const MeasureSetCollPtr &pMeasureSetColl, const UInt64VectorCollPtr &pShapeIndexesColl)
initialization method for splitted objects
Definition: Intensity3dMeasureSetSplit.h:105
Concrete class for split operation generating geometry 3d sub measure set for data dispatch...
Definition: Geometry3dMeasureSetSplit.h:28
boost::shared_ptr< Geometry2dMeasureSetSplit< TProcessor, InputDataType, TAttribute > > geometry2dSplit(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl=MeasureSetCollPtr())
create a splitted geometry 2d measure set operation used for data dispatch
Definition: MeasureSetSplitOperators.h:63
boost::shared_ptr< Geometry3dMeasureSetSplit< TProcessor, InputDataType, TAttribute > > geometry3dSplit(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl=MeasureSetCollPtr())
create a splitted geometry 3d measure set operation used for data dispatch
Definition: MeasureSetSplitOperators.h:89
void init(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl)
initialization method for splitted objects
Definition: GenericMeasureSetSplit.h:98
void init(const boost::shared_ptr< InputDataType > &pMeasureSet, const MeasureSetCollPtr &pMeasureSetColl)
initialization method for splitted objects
Definition: Geometry2dMeasureSetSplit.h:98
Concrete class for split operation generating intensity sub measure set for data dispatch.
Definition: IntensityMeasureSetSplit.h:29