Artec 3D Scanning SDK  2.0
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 
36 /**
37 * Structure of settings (for planar AOP format)
38 */
39 
41 {
43  float emptyValue;
44 
48  bool rasterize;
49 };
50 
51 /**
52 * Interface for range image settings (for planar AOP format)
53 */
54 
55 class IRangeImagePlanar : public IRef
56 {
57 public:
58 
59  /// @returns settings of the range image
60  virtual const SettingsPlanar& getSettings() const = 0;
61 
62  /// @returns true if range the image is closed (closed can be polar or cylindric range image)
63  virtual bool isClosed() const = 0;
64 
65  /// @returns emptyValue depending on the current map type
66  virtual float getEmptyValue() const = 0;
67 
68  /// @returns the depth image
69  virtual IImage* getImage() const = 0;
70 
71  /// Builds 3D surface and calculates some additional data
72  /// @param surf - surface to be built from the range image
73  /// @param catcTex - flag shows whether the texture coordinates should be calculated (currently not realized for POLAR)
74  virtual ErrorCode toSurface(IFrameMesh** surf, bool calcTex = false) const = 0;
75 };
76 
77 } } } // namespace artec::sdk::base
78 
79 #endif //_IRANGEIMAGEPLANAR_H_
virtual IImage * getImage() const =0
Interface for common raster image objects.
Definition: IImage.h:126
virtual ErrorCode toSurface(IFrameMesh **surf, bool calcTex=false) const =0
Builds 3D surface and calculates some additional data.
virtual float getEmptyValue() const =0
Indexed triangle mesh with optional texture.
Definition: IFrameMesh.h:42
virtual bool isClosed() const =0
Structure of settings (for planar AOP format)
virtual const SettingsPlanar & getSettings() const =0
Image size defined by width and height.
Definition: Types.h:24
ErrorCode ABASESDK_LINK_SPEC createRangeImagePlanar(IRangeImagePlanar **image, const SettingsPlanar &settings, const IMesh *mesh)
#define ABASESDK_LINK_SPEC
Interface that implements reference counting and life-time management.
Definition: IRef.h:22
Interface for range image settings (for planar AOP format)