IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
UserImage.h
1 // UserImage.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKIMAGE_USERIMAGE_H__
16 #define __IPSDKIMAGE_USERIMAGE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::image::UserImage::_pUserImage' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::image::UserImage'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImage/Image/BaseCompleteImage.h>
25 
26 namespace ipsdk {
27 namespace image {
28 
31 
33 {
34  // declare serial class
36 
37  // friend class for protected members access
38  friend boost::shared_ptr<UserImage> boost::make_shared<UserImage>();
39 
40 // predefined public types
41 public:
43  static const eImageType::domain g_imageType = eImageType::eIT_User;
44 
45 protected:
47  UserImage();
48 
49 public:
51  ~UserImage();
52 
53 // methods
54 public:
56  eImageType getImageType() const;
57 
59  ipBool isGpuImage() const;
60 
62  ipBool isDiskImage() const;
63 
66  virtual BoolResult init(const UserImageAccessorPtr& pUserImageAccessor);
67 
70  virtual BoolResult init(const BaseImageGeometry& geometry);
71 
74  eImageAccessMode getAccessMode() const;
75 
78  const BaseUserImageAccessor& getUserImageAccessor() const;
79 
84  BoolResult resize(const BaseImageGeometry& geometry);
85 
86 protected:
88  void createImagePlans(const BaseImageGeometry& geometry,
89  PlanStorageColl3d& imagePlans);
90 
92  void clearDerived();
93 
94 // attributes
95 protected:
98 };
99 
102 
103 inline eImageType
105 {
106  return g_imageType;
107 }
108 
109 inline ipBool
111 {
112  return false;
113 }
114 
115 inline ipBool
117 {
118  return false;
119 }
120 
123 
124 } // end of namespace image
125 } // end of namespace ipsdk
126 
127 #pragma warning (pop)
128 
129 #endif // __IPSDKIMAGE_USERIMAGE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< BaseUserImageAccessor > UserImageAccessorPtr
shared pointer to user images accessor
Definition: UserImageTypes.h:23
Base class for image geometry.
Definition: BaseImageGeometry.h:38
Base class for user image accessors.
Definition: BaseUserImageAccessor.h:31
Image class with user data storage support.
Definition: UserImage.h:32
IPSDKIMAGE_API ImageGeometryPtr geometry(const eImageBufferType &imageBufferType, const ipUInt64 sizeX, const ipUInt64 sizeY, const VolumeGeometry &volumeGeometry, const ColorGeometry &colorGeometry, const TemporalGeometry &temporalGeometry)
create an image geometry
Predefined types for user images manipulation.
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
UserImageAccessorPtr _pUserImageAccessor
pointer to user image accessor
Definition: UserImage.h:97
eImageType
Enumerate describing image type.
Definition: ImageTypes.h:58
ipBool isGpuImage() const
returns true if the image is loaded on GPU
Definition: UserImage.h:110
eImageType getImageType() const
retrieve image type
Definition: UserImage.h:104
std::vector< PlanStorageColl2d > PlanStorageColl3d
Definition: ImageTypes.h:196
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
bool ipBool
Base types definition.
Definition: BaseTypes.h:47
static const eImageType::domain g_imageType
type associated to attribute
Definition: UserImage.h:43
Base class for complete images.
Definition: BaseCompleteImage.h:34
eImageAccessMode
Image access mode.
Definition: ImageTypes.h:110
ipBool isDiskImage() const
returns true if the image is a disk one
Definition: UserImage.h:116
user image
Definition: ImageTypes.h:64