IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseShape3dCollAttribute.h
1 // BaseShape3dCollAttribute.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASESHAPE3DCOLLATTRIBUTE_H__
16 #define __IPSDKIMAGEPROCESSING_BASESHAPE3DCOLLATTRIBUTE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseShape3dCollAttribute::_pColl' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseShape3dCollAttribute'
20 #pragma warning (push)
21 #pragma warning (disable: 4251)
22 
23 #include <IPSDKImageProcessing/Attribute/GeometryEntityColl/3d/BaseGeometryEntity3dCollAttribute.h>
25 
26 namespace ipsdk {
27 namespace imaproc {
28 
31 
33 {
34  // declare serial class
36 
37 // predefined public types
38 public:
40  static const eGeometryEntity3dCollAttributeType::domain g_geometryEntity3dCollAttributeType = eGeometryEntity3dCollAttributeType::eGE3DAT_Shape;
41 
44 
46  typedef boost::shared_ptr<ipsdk::shape::segmentation::Shape3dColl> MutableStorageType;
47 
49  typedef boost::shared_ptr<const ipsdk::shape::segmentation::Shape3dColl> ConstStorageType;
50 
51 protected:
54 
55 public:
57  virtual ~BaseShape3dCollAttribute() = 0;
58 
59 // methods
60 public:
62  eGeometryEntity3dCollAttributeType getGeometryEntity3dCollAttributeType() const;
63 
67  ConstStorageType getConstStorage() const;
68 
72  const ValueType& getShape3dColl() const;
73 
77  const geom::Shape3dConstVector& getShape3dVector() const;
78 
79 protected:
83  void initBase(const MutableStorageType& pColl);
84 
89  ConstStorageType accessStorage() const;
90  const MutableStorageType& accessStorage();
92 
93 // attributes
94 protected:
97 };
98 
101 
104 {
106 }
107 
110 
111 } // end of namespace imaproc
112 } // end of namespace ipsdk
113 
114 #pragma warning (pop)
115 
116 #endif // __IPSDKIMAGEPROCESSING_BASESHAPE3DCOLLATTRIBUTE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
ipsdk::shape::segmentation::Shape3dColl ValueType
value type associated to object
Definition: BaseShape3dCollAttribute.h:43
MutableStorageType _pColl
collection of entities associated to attribute
Definition: BaseShape3dCollAttribute.h:96
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
eGeometryEntity3dCollAttributeType getGeometryEntity3dCollAttributeType() const
retrieve geometry entity 3d collection attribute type
Definition: BaseShape3dCollAttribute.h:103
boost::shared_ptr< ipsdk::shape::segmentation::Shape3dColl > MutableStorageType
storage type associated to object
Definition: BaseShape3dCollAttribute.h:46
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
static const eGeometryEntity3dCollAttributeType::domain g_geometryEntity3dCollAttributeType
geometry entity 3d collection attribute type
Definition: BaseShape3dCollAttribute.h:40
Collection of shape 3d.
Definition: Shape3dColl.h:29
std::vector< Shape3dConstPtr > Shape3dConstVector
collection of const standard shape
Definition: Shape3dTypes.h:43
Base class for geometry entity 3d collection attributes.
Definition: BaseGeometryEntity3dCollAttribute.h:27
Attribute associated to a collection of shape 3d geometry entities.
Definition: GeometryEntity3dCollTypes.h:37
eGeometryEntity3dCollAttributeType
Enumerate describing geometry entity 3d collection attribute type.
Definition: GeometryEntity3dCollTypes.h:33
Predefined public types for shape 3d collection attributes management.
boost::shared_ptr< const ipsdk::shape::segmentation::Shape3dColl > ConstStorageType
const storage type associated to object
Definition: BaseShape3dCollAttribute.h:49
Base class for shape geometry entity 3d collection attribute.
Definition: BaseShape3dCollAttribute.h:32