IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseCudaSubImageSplit.h
1 // BaseCudaSubImageSplit.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASECUDASUBIMAGESPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASECUDASUBIMAGESPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseCudaSubImageSplit<InOutStorageType>::_subImageSplitType' : class 'ipsdk::imaproc::eSubImageSplitType' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseCudaSubImageSplit<InOutStorageType>'
20 
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
25 #include <IPSDKBaseProcessing/DataSplit/Static/BaseStaticSplit.h>
28 #include <IPSDKUtil/Tools/ProcessingResult.h>
29 
30 namespace ipsdk {
31 namespace imaproc {
32 
35 
36 template <typename InOutStorageType>
38 {
39 // predefined public types
40 public:
42  typedef InOutStorageType InputStorageType;
43 
44 public:
48  virtual ~BaseCudaSubImageSplit() = 0;
50 
51 // methods
52 public:
55  {
57  }
58 
60  eImageSplitType getImageSplitType() const;
61 
64  eSubImageSplitType getSubImageSplitType() const;
65 
68  const eVolumeParsingType& getVolumeParsingType() const;
69 
72  const eColorParsingType& getColorParsingType() const;
73 
76  const eTemporalParsingType& getTemporalParsingType() const;
77 
80  const image::BaseImage& getImage() const;
81 
84  ipUInt64 getNbDevices() const;
85 
86 protected:
93  //void initBase(const eSubImageSplitType& subImageSplitType,
94  // const ipUInt64 nbDevices,
95  // const InOutStorageType& pImage);
96 
101  void initBase(const eSubImageSplitType& subImageSplitType,
102  const InOutStorageType& pImage);
103 
107  BoolResult getSubImage(ipUInt64 deviceIdx,
108  InOutStorageType& pSubImage);
109 
110 // attributes
111 protected:
114 
117 
120 
123 
125  InOutStorageType _pImage;
126 };
127 
130 
131 } // end of namespace imaproc
132 } // end of namespace ipsdk
133 
134 #pragma warning (pop)
135 
136 #endif // __IPSDKIMAGEPROCESSING_BASECUDASUBIMAGESPLIT_H__
137 
eSubImageSplitType
Enumerate describing sub image geometry split type.
Definition: SubImageSplitTypes.h:32
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
processor::eSplitStaticType getSplitStaticType() const
retrieve static split operation type
Definition: BaseCudaSubImageSplit.h:54
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eTemporalParsingType _temporalParsingType
image temporal geometry parsing flag
Definition: BaseCudaSubImageSplit.h:122
eVolumeParsingType
Enumerate describing geometry volume(z) parsing type.
Definition: SubImageSplitTypes.h:58
Predefined types for sub image split operations.
Definition of import/export macro for library.
eSplitStaticType
Enumerate describing static split operation type.
Definition: StaticSplitTypes.h:32
Base class for data static split objets used for data dispatch.
Definition: BaseStaticSplit.h:34
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
eImageSplitType
Enumerate describing image split operation type.
Definition: ImageSplitTypes.h:33
eTemporalParsingType
Enumerate describing geometry temporal(t) parsing type.
Definition: SubImageSplitTypes.h:86
InOutStorageType _pImage
pointer to image to be splitted
Definition: BaseCudaSubImageSplit.h:125
eSubImageSplitType _subImageSplitType
sub image split type associated to operation
Definition: BaseCudaSubImageSplit.h:113
Static split operation type for image processing elements.
Definition: StaticSplitTypes.h:40
Base class used to split image into sub images for data dispatch on NVIdia graphic cards...
Definition: BaseCudaSubImageSplit.h:37
eColorParsingType _colorParsingType
image color geometry parsing flag
Definition: BaseCudaSubImageSplit.h:119
Base class for images data type.
Definition: BaseImage.h:43
eVolumeParsingType _volumeParsingType
image volume geometry parsing flag
Definition: BaseCudaSubImageSplit.h:116
Predefined type for image management.
InOutStorageType InputStorageType
input data type for split operation
Definition: BaseCudaSubImageSplit.h:42
eColorParsingType
Enumerate describing geometry color(c) parsing type.
Definition: SubImageSplitTypes.h:72