IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
PromoteBinaryImageInitializer.h
1 // PromoteBinaryImageInitializer.h:
3 // --------------------------------
4 //
18 
19 #ifndef __IPSDKIMAGEPROCESSING_PROMOTEBINARYIMAGEINITIALIZER_H__
20 #define __IPSDKIMAGEPROCESSING_PROMOTEBINARYIMAGEINITIALIZER_H__
21 
22 // suppression warnings
23 // warning C4251: 'ipsdk::imaproc::PromoteBinaryImageInitializer<InputAttributeType1,InputAttributeType2,OutputAttributeType>::_promoteBinaryType' : class 'ipsdk::imaproc::ePromoteBinaryType' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::PromoteBinaryImageInitializer<InputAttributeType1,InputAttributeType2,OutputAttributeType>'
24 #pragma warning (push)
25 #pragma warning (disable : 4251)
26 
28 #include <IPSDKImageProcessing/OutputInitializer/Image/BaseImageBinaryInitializer.h>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 
36 
37 template <typename InputAttributeType1, typename InputAttributeType2, typename OutputAttributeType>
38 class IPSDKIMAGEPROCESSING_API PromoteBinaryImageInitializer : public BaseImageBinaryInitializer<InputAttributeType1, InputAttributeType2, OutputAttributeType>
39 {
40 // predefined public type
41 public:
43  static const eImageInitializerType::domain g_imageInitializerType = eImageInitializerType::eIIT_PromoteBinary;
44 
45 public:
51 
52 // methods
53 public:
56  {
57  return g_imageInitializerType;
58  }
59 
69  void init(const boost::weak_ptr<OutputAttributeType>& pOutputAttribute,
70  const boost::weak_ptr<const InputAttributeType1>& pInputAttribute1,
71  const boost::weak_ptr<const InputAttributeType2>& pInputAttribute2,
72  const ePromoteBinaryType& promoteBinaryType,
73  const bool bAllowReInterpretation = false);
74 
77  const ePromoteBinaryType& getPromoteBinaryType() const;
78 
81  BoolResult initAttribute();
82 
84  std::string createInitializerFormalString() const;
85 
87  std::string createInitializerEvaluatedString() const;
88 
89 // attributes
90 protected:
93 
97 };
98 
101 
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #pragma warning (pop)
106 
107 #endif // __IPSDKIMAGEPROCESSING_PROMOTEBINARYIMAGEINITIALIZER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eImageInitializerType
Enumerate describing output image initializer type.
Definition: ImageInitializerTypes.h:34
Definition of import/export macro for library.
Class allowing to initialize an output image from two other images deducing output image buffer type ...
Definition: PromoteBinaryImageInitializer.h:38
Output initializer used to promote a input images buffer type with respecting to their size...
Definition: ImageInitializerTypes.h:42
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Predefined types for image attributes management.
eImageInitializerType getImageInitializerType() const
retrieve image initializer type
Definition: PromoteBinaryImageInitializer.h:55
ePromoteBinaryType _promoteBinaryType
promote type used for output attribute initialization
Definition: PromoteBinaryImageInitializer.h:92
Base class for output image initializer using two images as input.
Definition: BaseImageBinaryInitializer.h:33
bool _bAllowReInterpretation
Definition: PromoteBinaryImageInitializer.h:96
ePromoteBinaryType
Enumerate describing promote binary output image initializer type.
Definition: ImageInitializerTypes.h:76