IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseTileCollAttribute.h
1 // BaseTileCollAttribute.h:
3 // ------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASETILECOLLATTRIBUTE_H__
17 #define __IPSDKIMAGEPROCESSING_BASETILECOLLATTRIBUTE_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseTileCollAttribute::_imageTileColl' : class 'std::vector<ipsdk::image::ImageTilePtr,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseTileCollAttribute'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
25 #include <IPSDKImageProcessing/Attribute/BaseImageProcessingAttribute.h>
28 #include <vector>
29 
30 namespace ipsdk {
31 namespace imaproc {
32 
35 
37 {
38  // declare serial class
40 
41 // predefined public types
42 public:
44  static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType = eImageProcessingAttributeType::eIPAT_TileColl;
45 
47  typedef std::vector<image::ImageTileConstPtr> ImageTileConstColl;
48 
50  typedef std::vector<image::ImageTilePtr> ImageTileColl;
51 
52 // constructor and destructor
53 protected:
56 public:
58  virtual ~BaseTileCollAttribute() = 0;
59 
60 // methods
61 public:
63  eImageProcessingAttributeType getImageProcessingAttributeType() const;
64 
66  virtual eTileCollAttributeType getTileCollAttributeType() const = 0;
67 
69  ipUInt32 getNbTiles() const;
70 
74  const ImageTileConstColl& getImageTileColl() const;
75 
79  const image::BaseImageTile& getImageTile(const ipUInt32 tileIdx) const;
80 
85  bool haveSameBufferType() const;
86 
93  image::eImageBufferType getImageBufferType() const;
94 
95 protected:
103  void initBase(const ImageTileColl& imageTileColl);
104 
109  const ImageTileConstColl& accessImageTileColl() const;
110  const ImageTileColl& accessImageTileColl();
112 
117  const image::BaseImageTile& accessImageTile(const ipUInt32 tileIdx) const;
118  image::BaseImageTile& accessImageTile(const ipUInt32 tileIdx);
120 
122  void clearDerived();
123 
124 // attributes
125 private:
127  ImageTileColl _imageTileColl;
128 };
129 
132 
135 {
137 }
138 
141 
142 } // end of namespace imaproc
143 } // end of namespace ipsdk
144 
145 #pragma warning (pop)
146 
147 #endif // __IPSDKIMAGEPROCESSING_BASETILECOLLATTRIBUTE_H__
Predefined types for management of attributes associated to collection of image tile.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base class for image processing attributes.
Definition: BaseImageProcessingAttribute.h:28
eTileCollAttributeType
Enumerate describing tile collection attributes type.
Definition: TileCollAttributeTypes.h:38
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
eImageProcessingAttributeType
Enumerate describing image attributes type.
Definition: ImageProcessingAttributeTypes.h:33
std::vector< image::ImageTileConstPtr > ImageTileConstColl
collection of shared pointer to const base tile object
Definition: BaseTileCollAttribute.h:47
std::vector< image::ImageTilePtr > ImageTileColl
collection of shared pointer to base tile object
Definition: BaseTileCollAttribute.h:50
static const eImageProcessingAttributeType::domain g_imageProcessingAttributeType
image processing attribute type
Definition: BaseTileCollAttribute.h:44
Attribute associated to a collection of image tiles.
Definition: ImageProcessingAttributeTypes.h:49
eImageProcessingAttributeType getImageProcessingAttributeType() const
retrieve image attribute type
Definition: BaseTileCollAttribute.h:134
Predefined types for image tile management.
Base class for image tile.
Definition: BaseImageTile.h:27
Predefined type for image management.
Base class for attributes associated to collection of image tile.
Definition: BaseTileCollAttribute.h:36
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53