IRangeImageCylindric.h
Go to the documentation of this file.
1 /********************************************************************
2 *
3 * Project Artec 3D Scanning SDK
4 *
5 * Purpose: Declaration of basic range image data structure
6 *
7 * Copyright: Artec Group
8 *
9 ********************************************************************/
10 
11 #ifndef _IRANGEIMAGECYLINDRIC_H_
12 #define _IRANGEIMAGECYLINDRIC_H_
13 
15 #include <artec/sdk/base/Types.h>
16 #include <artec/sdk/base/Errors.h>
17 #include <artec/sdk/base/IRef.h>
18 
19 namespace artec { namespace sdk { namespace base
20 {
21 
22 class IImage;
23 class IMesh;
24 class IFrameMesh;
25 class IRangeImageCylindric;
26 struct SettingsCylindric;
27 
28 extern "C"
29 {
30 
32  createRangeImageCylindric( IRangeImageCylindric** image, const SettingsCylindric& settings, const IMesh* mesh );
33 
34 }
35 
37 {
39  float emptyValue;
40 
42  float height;
44 };
45 
46 class IRangeImageCylindric : public IRef
47 {
48 public:
49 
50  /// @returns settings of range image
51  virtual const SettingsCylindric& getSettings() const = 0;
52 
53  /// @returns true if range image is closed (closed can be polar or cylindric range image)
54  virtual bool isClosed() const = 0;
55 
56  /// @returns emptyValue depending on current map type
57  virtual float getEmptyValue() const = 0;
58 
59  /// @returns the depth image
60  virtual IImage* getImage() const = 0;
61 
62  /// build 3D surface and calculate some additional data
63  /// @param surf - surface to be built from range image
64  /// @param catcTex - flag shows if texture coordinates have to be calculated (currently not realized for POLAR)
65  virtual ErrorCode toSurface(IFrameMesh** surf, bool calcTex = false) const = 0;
66 
67  /// Shrink the image vertically
68  ///
69  /// @retval ErrorCode_ArgumentInvalid if start_row<0 or (start_row+new_height)>height.
70  virtual ErrorCode shrinkHeight( int start_row, int new_height ) = 0;
71 };
72 
73 } } } // namespace artec::sdk::base
74 
75 #endif //_IRANGEIMAGECYLINDRIC_H_
virtual ErrorCode shrinkHeight(int start_row, int new_height)=0
virtual ErrorCode toSurface(IFrameMesh **surf, bool calcTex=false) const =0
virtual const SettingsCylindric & getSettings() const =0
ErrorCode ABASESDK_LINK_SPEC createRangeImageCylindric(IRangeImageCylindric **image, const SettingsCylindric &settings, const IMesh *mesh)
virtual IImage * getImage() const =0
virtual bool isClosed() const =0
virtual float getEmptyValue() const =0
#define ABASESDK_LINK_SPEC
Definition: BaseSdkDefines.h:7