IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
StructuringElementXYInfo.h
1 // StructuringElementXYInfo.h:
3 // ---------------------------
4 //
16 
17 #ifndef __IPSDKBASEDATA_STRUCTURINGELEMENTXYINFO_H__
18 #define __IPSDKBASEDATA_STRUCTURINGELEMENTXYINFO_H__
19 
20 // suppression warnings
21 // warning C4251: 'ipsdk::StructuringElementXYInfo::_seXYSubType' : class 'ipsdk::eSEXYSubType' needs to have dll-interface to be used by clients of class 'ipsdk::StructuringElementXYInfo'
22 #pragma warning (push)
23 #pragma warning (disable : 4251)
24 
25 #include <IPSDKBaseData/Pattern/StructuringElement/BaseStructuringElementInfo.h>
26 #include <set>
27 
28 namespace ipsdk {
29 
30 class OffsetXY;
31 
34 
36 {
37  // declare serial class
39 
40 public:
46 
47 // methods
48 public:
50  eStructuringElementType getStructuringElementType() const;
51 
54  void init(const StructuringElementXY& seXY);
55 
57  void initEmpty();
58 
63  void initCircular(const ipReal64 radius);
64 
67  void initSquare(const ipUInt32 halfSize);
68 
71  void initRectangular(const ipUInt32 halfSizeX,
72  const ipUInt32 halfSizeY);
73 
83  void initHalfLinear(const ipReal64 theta,
84  const ipReal64 radius);
85 
95  void initLinear(const ipReal64 theta,
96  const ipReal64 radius);
97 
101  const eSEXYSubType& getSEXYSubType() const;
102 
106  StructuringElementXYConstPtr getStructuringElement() const;
107 
113  ipReal64 getRadius() const;
114 
118  ipUInt32 getHalfSize() const;
119 
124  ipUInt32 getHalfSizeX() const;
125  ipUInt32 getHalfSizeY() const;
127 
132  ipReal64 getTheta() const;
133 
137  const XYOffsetColl& getDataColl() const;
138 
145  bool insert(const ipInt32 offsetX, const ipInt32 offsetY);
146  bool insert(const OffsetXY& offset);
148 
156  bool remove(const ipInt32 offsetX, const ipInt32 offsetY);
157  bool remove(const OffsetXY& offset);
159 
160 protected:
162  void clearDerived();
163 
164 // attributes
165 protected:
168 
176 
182 
191 
198 
201 };
202 
205 
208 {
210 }
211 
214 
215 } // end of namespace ipsdk
216 
217 #pragma warning (pop)
218 
219 #endif // __IPSDKBASEDATA_STRUCTURINGELEMENTXYINFO_H__
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
ipUInt32 _halfSize
square half size of structuring element 2d
Definition: StructuringElementXYInfo.h:181
eStructuringElementType getStructuringElementType() const
retrieve structuring element type associated to object
Definition: StructuringElementXYInfo.h:207
boost::shared_ptr< const StructuringElementXY > StructuringElementXYConstPtr
shared pointer to StructuringElementXY
Definition: StructuringElementTypes.h:63
Class encapsulating a 2d offset along x and y axis.
Definition: OffsetXY.h:26
ipUInt32 _halfSizeY
rectangular half size of structuring element 2d
Definition: StructuringElementXYInfo.h:189
2d binary structuring element type spanning x and y direction
Definition: StructuringElementTypes.h:39
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Concrete class for objects encapsulating informations about 2d binary structuring element objects...
Definition: StructuringElementXYInfo.h:35
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
boost::shared_ptr< StructuringElementXY > StructuringElementXYPtr
shared pointer to StructuringElementXY
Definition: StructuringElementTypes.h:62
ipUInt32 _halfSizeX
rectangular half size of structuring element 2d
Definition: StructuringElementXYInfo.h:188
Class encapsulating a 2d structuring element spanning along x and y axis.
Definition: StructuringElementXY.h:32
ipReal64 _radius
circle radius associated to structuring element 2d
Definition: StructuringElementXYInfo.h:175
eSEXYSubType
Enumerate describing binary structuring element 2d sub type.
Definition: StructuringElementInfoTypes.h:33
ipReal64 _theta
orientation associated to structuring element 2d
Definition: StructuringElementXYInfo.h:197
Base class for objects encapsulating informations about binary structuring element objects...
Definition: BaseStructuringElementInfo.h:29
StructuringElementXYPtr _pSEXY
underlying structuring element associated to object
Definition: StructuringElementXYInfo.h:200
eStructuringElementType
Enumerate describing binary structuring element type.
Definition: StructuringElementTypes.h:37
std::set< OffsetXY > XYOffsetColl
collection of xy 2d offsets
Definition: StructuringElementTypes.h:50
#define IPSDKBASEDATA_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKBaseDataExports.h:27
eSEXYSubType _seXYSubType
binary structuring element 2d sub type associated to object
Definition: StructuringElementXYInfo.h:167
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53