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