Artec 3D Scanning SDK  2.0
IScanningProcedureBundle.h
Go to the documentation of this file.
1 /********************************************************************
2 *
3 * Project Artec 3D Scanning SDK
4 *
5 * Purpose: Scanning by scanner bundle procedure.
6 *
7 * Copyright: Artec Group
8 *
9 ********************************************************************/
10 
11 #ifndef _ISCANNINGPROCEDUREBUNDLE_H_
12 #define _ISCANNINGPROCEDUREBUNDLE_H_
13 
14 #include <artec/sdk/base/Errors.h>
18 
19 namespace artec { namespace sdk { namespace scanning
20 {
21 using namespace artec::sdk::base::errors;
22 
23 class IScanningProcedureBundle;
24 
25 /*! \public
26  These settings entirely cover the scanning procedure using bundle.
27 */
29 {
30  /// Scanning procedure settings (the same for each scanner).
32 
33  /// @brief Run procedure instance for each scanner using the threadCountPerScanner threads.
34  /// @details In order to use all available threads, set this parameter to 0.
36 
37  /// Use hardware trigger for more precise synchronization of bundled scanners.
39 };
40 
41 extern "C"
42 {
43 
44 /** Create procedure for scanning by using the scanner bundle.
45 * @param job - bundle scanning procedure to return
46 * @param scanners - scanner list (the first (zero index) scanner is the master)
47 * @param desc - scanning procedure settings (the same for all scanners, NULL stands for default settings)
48 */
51 }
52 
53 /**
54 * Bundle scanning procedure controller.
55 * This class needs AlgorithmWorkset because the way of its calling follows the one for the algorithms.
56 */
58 {
59 public:
60  /**
61  * Get current scanning state (ScanningState_Preview, ScanningState_Record, etc.).
62  * @return current scanning state.
63  */
64  virtual ScanningState getState() = 0;
65 
66  /**
67  * Set new scanning state. It can be changed while capture is in progress.
68  * @param state - current scanning state.
69  */
70  virtual ErrorCode setState( ScanningState state ) = 0;
71 };
72 
73 } } } // namespace artec::sdk::scanning
74 
75 #endif // _ISCANNINGPROCEDUREBUNDLE_H_
These settings entirely cover the scanning procedure using bundle.
ErrorCode ASCANNINGSDK_LINK_SPEC createScanningProcedureBundle(IScanningProcedureBundle **job, IArrayScanner *scanners, const ScanningProcedureBundleSettings *desc=NULL)
Create procedure for scanning by using the scanner bundle.
Bundle scanning procedure controller.
int threadCountPerScanner
Run procedure instance for each scanner using the threadCountPerScanner threads.
ScanningProcedureSettings procedureSettings
Scanning procedure settings (the same for each scanner).
ScanningState
Setting of the scanning procedure to specify the way it works.
Interface that represents a basic multithreaded work item; Used by executeJob and launchJob...
Definition: IJob.h:51
Represents an interface to an array of the Scanner objects with methods for getting array size...
Definition: IArrayScanner.h:50
#define ASCANNINGSDK_LINK_SPEC
These settings specify the scanning procedure entirely.
bool useHardwareSynchronization
Use hardware trigger for more precise synchronization of bundled scanners.