IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ImageTypes.h
Go to the documentation of this file.
1 // ImageTypes.h:
3 // -------------
4 //
14 
15 #ifndef __IPSDKIMAGE_IMAGETYPES_H__
16 #define __IPSDKIMAGE_IMAGETYPES_H__
17 
18 #include <IPSDKUtil/BaseTypes.h>
23 #include <IPSDKBaseData/PlanIndex/PlanIndex.h>
24 #include <boost/shared_ptr.hpp>
25 #include <boost/smart_ptr/make_shared_object.hpp>
26 #include <map>
27 
28 namespace ipsdk {
29 namespace image {
30 
31 class ImageFactory;
32 class BaseImage;
33 class DiskImage;
34 class DistributedImage;
35 class MemoryImage;
36 class UserImage;
37 class CudaImage;
38 
41 
45 
47  (eIBT_Sub)
48 )
49 
53 
54  (eIT_Memory)
55  (eIT_Disk)
56  (eIT_User)
57  (eIT_Gpu)
59  (eIT_Custom)
60 )
61 
65 
67  (eIBT_None)
68 
69  // standard buffer types
71  (eIBT_UInt8)
72  (eIBT_Int16)
73  (eIBT_UInt16)
74  (eIBT_Int32)
75  (eIBT_UInt32)
76  (eIBT_Real32)
77 
78  // special buffer types
79  (eIBT_Binary)
81  (eIBT_Label32)
83 )
84 
88 
91 
93  (eIAM_Write)
94 
97 )
98 
104  (eFT_Full)
105 
107  (eFT_Name)
108 
111 )
115 
118 typedef boost::shared_ptr<BaseImage> ImagePtr;
119 typedef boost::shared_ptr<const BaseImage> ImageConstPtr;
121 
124 typedef boost::weak_ptr<BaseImage> ImageWeakPtr;
125 typedef boost::weak_ptr<const BaseImage> ImageConstWeakPtr;
127 
130 typedef boost::shared_ptr<DiskImage> DiskImagePtr;
131 typedef boost::shared_ptr<const DiskImage> DiskImageConstPtr;
133 
136 typedef boost::shared_ptr<DistributedImage> DistributedImagePtr;
137 typedef boost::shared_ptr<const DistributedImage> DistributedImageConstPtr;
142 typedef boost::shared_ptr<MemoryImage> MemoryImagePtr;
143 typedef boost::shared_ptr<const MemoryImage> MemoryImageConstPtr;
148 typedef boost::shared_ptr<UserImage> UserImagePtr;
149 typedef boost::shared_ptr<const UserImage> UserImageConstPtr;
154 typedef boost::shared_ptr<CudaImage> CudaImagePtr;
155 typedef boost::shared_ptr<const CudaImage> CudaImageConstPtr;
157 
160 
166 
172 
178 
181 
186 template <eImageBufferType::value_type imgType>
187 struct ImageType2Buffer;
188 
191 #define IMAGETYPE_TO_BUFFER_STRUCT(imgType, bufferType) \
192  template<> struct ImageType2Buffer<eImageBufferType::imgType> { \
193  typedef bufferType type; \
194  };
195 
210 
213 
214 } // end of namespace image
215 } // end of namespace ipsdk
216 
217 #endif // __IPSDKIMAGE_IMAGETYPES_H__
Predefined types for geometric calibration management.
int buffers
Definition: ImageTypes.h:90
char buffers
Definition: ImageTypes.h:82
int8_t ipInt8
Base types definition.
Definition: BaseTypes.h:48
eImageBaseType
Enumerate describing image base type.
Definition: ImageTypes.h:46
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::vector< PlanStorageConstPtr > PlanStorageConstColl1d
Definition: ImageTypes.h:185
boost::shared_ptr< UserImage > UserImagePtr
Definition: ImageTypes.h:169
unsigned char buffers
Definition: ImageTypes.h:84
Name only formated name (default : Name)
Definition: ImageTypes.h:128
Image class with data stored into memory.
Definition: MemoryImage.h:31
boost::shared_ptr< const DiskImage > DiskImageConstPtr
Definition: ImageTypes.h:152
sub image of a complete image
Definition: ImageTypes.h:50
short buffers
Definition: ImageTypes.h:86
IMAGETYPE_TO_BUFFER_STRUCT(eIBT_Int8, ipInt8)
boost::weak_ptr< BaseImage > ImageWeakPtr
Definition: ImageTypes.h:145
specific images for dedicated tasks
Definition: ImageTypes.h:70
boost::shared_ptr< const DistributedImage > DistributedImageConstPtr
Definition: DistributedImageTypes.h:39
binary buffers
Definition: ImageTypes.h:96
boost::shared_ptr< BaseImage > ImagePtr
Definition: ImageTypes.h:139
read/write/resize access mode for image
Definition: ImageTypes.h:116
float buffers
Definition: ImageTypes.h:94
GPU image.
Definition: ImageTypes.h:66
boost::weak_ptr< const BaseImage > ImageConstWeakPtr
Definition: ImageTypes.h:146
boost::shared_ptr< const UserImage > UserImageConstPtr
Definition: ImageTypes.h:170
eFormatedType
Type for generation of formated image name.
Definition: ImageTypes.h:124
std::vector< PlanStorageColl1d > PlanStorageColl2d
Definition: ImageTypes.h:190
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
Predefined types for plan storage management.
label, 8 bits buffers
Definition: ImageTypes.h:102
Definition: DataItemNodeHdrMacrosDetails.h:48
label, 16 bits buffers
Definition: ImageTypes.h:98
std::vector< PlanStorageConstColl2d > PlanStorageConstColl3d
Definition: ImageTypes.h:197
int16_t ipInt16
Base types definition.
Definition: BaseTypes.h:50
uint8_t ipUInt8
Base types definition.
Definition: BaseTypes.h:49
Image class with user data storage support.
Definition: UserImage.h:32
Guid only formated name (default : {Guid})
Definition: ImageTypes.h:130
boost::shared_ptr< MemoryImage > MemoryImagePtr
Definition: ImageTypes.h:163
Base types for multiplatform compatibility.
disk image
Definition: ImageTypes.h:62
Predefined types for data identifier management.
memory image
Definition: ImageTypes.h:60
Image class with disk data storage support.
Definition: DiskImage.h:33
boost::shared_ptr< const BasePlanStorage > PlanStorageConstPtr
shared pointer to const image plan storage
Definition: PlanStorageTypes.h:58
eImageType
Enumerate describing image type.
Definition: ImageTypes.h:58
distributed image (potentially hold by remote computers)
Definition: ImageTypes.h:68
std::vector< PlanStorageColl2d > PlanStorageColl3d
Definition: ImageTypes.h:196
boost::shared_ptr< const BaseImage > ImageConstPtr
Definition: ImageTypes.h:140
Full image formated name (default : Name {Guid})
Definition: ImageTypes.h:126
label, 32 bits buffers
Definition: ImageTypes.h:100
unsigned short buffers
Definition: ImageTypes.h:88
unsigned int buffers
Definition: ImageTypes.h:92
boost::shared_ptr< DistributedImage > DistributedImagePtr
Definition: DistributedImageTypes.h:38
boost::shared_ptr< DiskImage > DiskImagePtr
Definition: ImageTypes.h:151
boost::shared_ptr< BasePlanStorage > PlanStoragePtr
shared pointer to image plan storage
Definition: PlanStorageTypes.h:55
boost::shared_ptr< CudaImage > CudaImagePtr
Definition: ImageTypes.h:175
std::vector< PlanStoragePtr > PlanStorageColl1d
Definition: ImageTypes.h:184
Definition: CudaImage.h:28
Base class for images data type.
Definition: BaseImage.h:43
boost::shared_ptr< const CudaImage > CudaImageConstPtr
Definition: ImageTypes.h:176
read only access mode for image
Definition: ImageTypes.h:112
STL namespace.
boost::shared_ptr< const MemoryImage > MemoryImageConstPtr
Definition: ImageTypes.h:164
complete image
Definition: ImageTypes.h:48
std::vector< PlanStorageConstColl1d > PlanStorageConstColl2d
Definition: ImageTypes.h:191
read/write access mode for image
Definition: ImageTypes.h:114
empty buffer type
Definition: ImageTypes.h:80
Predefined macros for enumerates management.
Definition: ImageTypes.h:208
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
Image class with distributed data storage policy.
Definition: DistributedImage.h:27
uint16_t ipUInt16
Base types definition.
Definition: BaseTypes.h:51
eImageAccessMode
Image access mode.
Definition: ImageTypes.h:110
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78
user image
Definition: ImageTypes.h:64
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53