IRangeImagePlanar.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 _IRANGEIMAGEPLANAR_H_
12 #define _IRANGEIMAGEPLANAR_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 IRangeImagePlanar;
26 struct SettingsPlanar;
27 
28 extern "C"
29 {
30 
32  createRangeImagePlanar( IRangeImagePlanar** image, const SettingsPlanar& settings, const IMesh* mesh );
33 
34 }
35 
37 {
39  float emptyValue;
40 
44  bool rasterize;
45 };
46 
47 class IRangeImagePlanar : public IRef
48 {
49 public:
50 
51  /// @returns settings of range image
52  virtual const SettingsPlanar& getSettings() const = 0;
53 
54  /// @returns true if range image is closed (closed can be polar or cylindric range image)
55  virtual bool isClosed() const = 0;
56 
57  /// @returns emptyValue depending on current map type
58  virtual float getEmptyValue() const = 0;
59 
60  /// @returns the depth image
61  virtual IImage* getImage() const = 0;
62 
63  /// build 3D surface and calculate some additional data
64  /// @param surf - surface to be built from range image
65  /// @param catcTex - flag shows if texture coordinates have to be calculated (currently not realized for POLAR)
66  virtual ErrorCode toSurface(IFrameMesh** surf, bool calcTex = false) const = 0;
67 };
68 
69 } } } // namespace artec::sdk::base
70 
71 #endif //_IRANGEIMAGEPLANAR_H_
virtual bool isClosed() const =0
virtual float getEmptyValue() const =0
virtual ErrorCode toSurface(IFrameMesh **surf, bool calcTex=false) const =0
virtual IImage * getImage() const =0
virtual const SettingsPlanar & getSettings() const =0
ErrorCode ABASESDK_LINK_SPEC createRangeImagePlanar(IRangeImagePlanar **image, const SettingsPlanar &settings, const IMesh *mesh)
#define ABASESDK_LINK_SPEC
Definition: BaseSdkDefines.h:7