DAVID4 SDK  1.8.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
SimpleTurntable.cpp
1 /// @example SimpleTurntable.cpp
2 ///
3 /// Shows usage of david::Turntable, david::StructuredLightScanner, and david::ShapeFusion class.
4 
5 #include "davidSDK/david.h"
6 
7 namespace examples {
8 
9 /// Shows usage of david::Turntable, david::StructuredLightScanner, and david::ShapeFusion class.
11 {
12  try
13  {
14  david::Client david;
15  david.Connect();
16  david.turntable().Setup(true); // connect turntable
17 
18  const double step = 45.0;
19  for (double angle=0.0; angle < 360.0; angle += step)
20  {
21  david.sls().Scan();
22  int meshID = david.sls().AddScanToShapeFusion();
23  david.fusion().Rotate(meshID, david::TransformGlobalY, -angle);
24  david.turntable().Rotate(step);
25  }
26 
27  int fusionMeshID = david.fusion().Fuse(1500);
28  david.fusion().ExportMesh(fusionMeshID, "FusionResult.obj");
29 
30  david.turntable().Setup(false); // disconnect
31  }
32  catch (david::Exception& e)
33  {
34  e.PrintError();
35  }
36 }
37 
38 }