DAVID4 SDK  1.8.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
SimpleStructuredLightScanner.cpp
1 /// Shows usage of StructuredLightScanner class.
2 
3 #include "davidSDK/david.h"
4 #include <iostream>
5 
6 namespace examples {
7 
9 {
10  try
11  {
12  // Connect to DAVID server.
13  // david::Client::Disconnect is automatically called in destructor of david::Client.
14  david::Client david;
15  david.Connect();
16 
17  // Select screen.
18  david.sls().SetScreenID(2);
19 
20  // I) Select camera directly:
21  // david.sls().SelectCamera("DAVID-CAM-3-M (8F6DEE1E)");
22 
23  // II) Select camera based on common name: Select any DAVID cam.
24  std::vector<std::string> cameraNames = david.sls().GetAvailableCameraNames();
25  for (size_t i=0; i < cameraNames.size(); ++i)
26  {
27  if (cameraNames[i].find("DAVID-CAM") != std::string::npos)
28  {
29  david.sls().SelectCamera(cameraNames[i]);
30  break;
31  }
32  }
33 
34  // Get current exposure for scanning.
35  std::cout << "Exposure: " << david.sls().GetCameraProperty("exposure") << std::endl;
36 
37  // Tells DAVID server to make a new scan and save it under 'filename'.
38  int num = david.sls().Scan();
39  std::cout << "New scan consists of " << num << " 3D points\n";
40 
41  david.sls().ExportMesh("scan.obj");
42  }
43  catch (david::Exception& e)
44  {
45  e.PrintError();
46  }
47 }
48 
49 
50 } // namespace examples