IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LineZStrip3dParser.h
1 // LineZStrip3dParser.h:
3 // ---------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_LINEZSTRIP3DPARSER_H__
16 #define __IPSDKIMAGEPROCESSING_LINEZSTRIP3DPARSER_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::LineZStrip3dParser<T,BaseStripAttributeClassType>::_pLineYStrip2dParser' : class 'boost::shared_ptr<ipsdk::imaproc::LineYStrip2dParser<T,boost::mpl::if_<boost::mpl::equal_to<boost::mpl::int_<g_attributeIO>,boost::mpl::int_<N>>::type,ipsdk::imaproc::BaseInputYStrip2dAttribute,boost::mpl::if_<boost::mpl::equal_to<boost::mpl::int_<g_attributeIO>,boost::mpl::int_<1>>::type,ipsdk::imaproc::BaseOutputYStrip2dAttribute,ipsdk::imaproc::BaseInOutYStrip2dAttribute>::type>::type>>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::LineZStrip3dParser<T,BaseStripAttributeClassType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3d/BaseLineZStrip3dParser.h>
24 
25 namespace ipsdk {
26 namespace imaproc {
27 
28 template <typename T, typename BaseStripAttributeClassType>
29 class LineYStrip2dParser;
30 
33 
34 template <typename T, typename BaseStripAttributeClassType>
35 class IPSDKIMAGEPROCESSING_API LineZStrip3dParser : public BaseLineZStrip3dParser<BaseStripAttributeClassType>
36 {
37  // friend class for protected members access
38  template <typename U, typename BaseStripAttributeClass>
39  friend class LineZStripUserColor3dParser;
40  template <typename U, typename BaseStripAttributeClass>
41  friend class LineZStripRgbColor3dParser;
42  template <typename U, typename BaseStripAttributeClass>
43  friend class LineZStrip3dParser;
44 
45 // predefined public types
46 public:
49 
52 
54  typedef typename boost::shared_ptr<LineYStrip2dParserType> LineYStrip2dParserPtr;
55 
56 public:
62 
63 // methods
64 public:
69  ipUInt64 getBufferSize() const;
70 
71 private:
76  const void* accessBuffer() const;
77  void* accessBuffer();
79 
81  void initDataDerived(const ipUInt64 nbInitData,
82  const ipUInt64 nbMainData,
83  const ipUInt64 nbFinalData,
84  const ipUInt64 nbRealFinalData,
85  const ipReal64 unAlignedValue);
86 
89  void prepareDataDerived(const ipUInt64 elementIdx);
90 
92  void updateToInitDataDerived();
93 
95  void updateToMainDataDerived();
96 
98  void updateToFinalDataDerived();
99 
101  void syncOutFinalDataDerived();
102 
104  void clearDerived();
105 
106 // attributes
107 protected:
110 
113 };
114 
117 
118 } // end of namespace imaproc
119 } // end of namespace ipsdk
120 
121 #pragma warning (pop)
122 
123 #endif // __IPSDKIMAGEPROCESSING_LINEZSTRIP3DPARSER_H__
LineYStrip2dParserPtr _pLineYStrip2dParser
shared pointer to y strip 2d parser
Definition: LineZStrip3dParser.h:112
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
LineYStrip2dParser< T, YStrip2dAttributeType > LineYStrip2dParserType
line y strip 2d data parser type
Definition: LineZStrip3dParser.h:51
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
ipUInt64 _curStripPlanIdx
index of current strip plan index
Definition: LineZStrip3dParser.h:109
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
BaseLineZStrip3dParser< BaseStripAttributeClassType >::YStrip2dAttributeType YStrip2dAttributeType
associated y strip 2d attribute
Definition: LineZStrip3dParser.h:48
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
boost::shared_ptr< LineYStrip2dParserType > LineYStrip2dParserPtr
shared pointer to line y strip 2d data parser
Definition: LineZStrip3dParser.h:54
Concrete class for z strip 3d parsed line by line.
Definition: BaseLineYStrip2dParser.h:38
Concrete class for y strip 2d parsed line by line.
Definition: LineYStrip2dParser.h:34
boost::mpl::if_< typename boost::mpl::equal_to< boost::mpl::int_< g_attributeIO >, boost::mpl::int_< eIOStatus::eIOS_Input > >::type, BaseInputYStrip2dAttribute, typename boost::mpl::if_< typename boost::mpl::equal_to< boost::mpl::int_< g_attributeIO >, boost::mpl::int_< eIOStatus::eIOS_Output > >::type, BaseOutputYStrip2dAttribute, BaseInOutYStrip2dAttribute >::type >::type YStrip2dAttributeType
associated y strip 2d attribute
Definition: BaseLineZStrip3dParser.h:64