IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Shape2dCollSplitOperators.h
Go to the documentation of this file.
1 // Shape2dCollSplitOperators.h:
3 // ----------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_SHAPE2DCOLLSPLITOPERATORS_H__
17 #define __IPSDKIMAGEPROCESSING_SHAPE2DCOLLSPLITOPERATORS_H__
18 
21 #include <IPSDKImageProcessing/DataSplit/Shape2dColl/SimpleShape2dCollSplit.h>
22 #include <IPSDKImageProcessing/DataSplit/Shape2dColl/StripShape2dCollSplit.h>
23 #include <boost/make_shared.hpp>
24 
25 namespace ipsdk {
26 namespace imaproc {
27 
30 
33 template <typename TProcessor, typename TAttribute>
34 inline boost::shared_ptr<SimpleShape2dCollSplit<TProcessor, ipsdk::shape::segmentation::Shape2dCollConstPtr, TAttribute> >
36 {
38  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
39  pDataSplit->init(pShape2dColl);
40 
41  return pDataSplit;
42 }
43 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
44 inline boost::shared_ptr<SimpleShape2dCollSplit<TProcessor, typename InputAttributeType::StorageType, TAttribute> >
45 simpleShape2dCollSplit(const boost::shared_ptr<InputAttributeType>& pShape2dCollAttribute)
46 {
48  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
49  pDataSplit->init(pShape2dCollAttribute->getStorage());
50 
51  return pDataSplit;
52 }
54 
57 template <typename TProcessor, typename TAttribute>
58 inline boost::shared_ptr<StripShape2dCollSplit<TProcessor, ipsdk::shape::segmentation::Shape2dCollConstPtr, TAttribute> >
60 {
62  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
63  pDataSplit->init(pShape2dCollAttribute);
64 
65  return pDataSplit;
66 }
67 template <typename TProcessor, typename TAttribute, typename InputAttributeType>
68 inline boost::shared_ptr<StripShape2dCollSplit<TProcessor, typename InputAttributeType::StorageType, TAttribute> >
69 stripShape2dCollSplit(const boost::shared_ptr<InputAttributeType>& pShape2dCollAttribute)
70 {
72  boost::shared_ptr<DataSplit> pDataSplit = boost::make_shared<DataSplit>();
73  pDataSplit->init(pShape2dCollAttribute->getStorage());
74 
75  return pDataSplit;
76 }
78 
81 
82 } // end of namespace imaproc
83 } // end of namespace ipsdk
84 
85 #endif // __IPSDKIMAGEPROCESSING_SHAPE2DCOLLSPLITOPERATORS_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void init(const InputStorageType &pShape2dColl)
initialization method for splitted objects
Definition: SimpleShape2dCollSplit.h:98
boost::shared_ptr< SimpleShape2dCollSplit< TProcessor, ipsdk::shape::segmentation::Shape2dCollConstPtr, TAttribute > > simpleShape2dCollSplit(const ipsdk::shape::segmentation::Shape2dCollConstPtr &pShape2dColl)
create a simple splitted shaped 2d collection operation used for data dispatch
Definition: Shape2dCollSplitOperators.h:35
boost::shared_ptr< StripShape2dCollSplit< TProcessor, ipsdk::shape::segmentation::Shape2dCollConstPtr, TAttribute > > stripShape2dCollSplit(const ipsdk::shape::segmentation::Shape2dCollConstPtr &pShape2dCollAttribute)
create a by strip splitted shaped 2d collection operation used for data dispatch
Definition: Shape2dCollSplitOperators.h:59
Predefined types for shape 2d management.
Concrete class for by strip split operation generating sub shape 2d collection.
Definition: StripShape2dCollSplit.h:28
boost::shared_ptr< const Shape2dColl > Shape2dCollConstPtr
shared pointer to const shape 2d collection object
Definition: Shape2dTypes.h:34
Predefined operators for dynamic data split used for data dispatch.
void init(const InputStorageType &pShape2dColl)
initialization method for splitted objects
Definition: StripShape2dCollSplit.h:98
Concrete class for simple split operation generating sub shape 2d collection.
Definition: SimpleShape2dCollSplit.h:28