Artec 3D Scanning SDK  2.0
IArrayScanner.h
Go to the documentation of this file.
1 /********************************************************************
2 *
3 * Project Artec 3D Scanning SDK
4 *
5 * Purpose: Store scanner array.
6 *
7 * Copyright: Artec Group
8 *
9 ********************************************************************/
10 
11 #ifndef _ISCANNERARRAY_H_
12 #define _ISCANNERARRAY_H_
13 
14 #include <artec/sdk/base/Errors.h>
15 #include <artec/sdk/base/IRef.h>
17 
18 namespace artec { namespace sdk { namespace capturing
19 {
20  class IScanner;
21 } } }
22 
23 namespace artec { namespace sdk { namespace scanning
24 {
25 using namespace artec::sdk::base::errors;
26 
27 class IArrayScanner;
28 
29 extern "C"
30 {
31 
33  /**
34  * Create the ArrayScanner object representing an array of the Scanner objects. Once this function is called, all objects
35  * within the array will be default-constructed.
36  *
37  * @param pArray pointer to store the IArrayScanner interface.
38  * @param elementsCount number of elements the newly constructed array will contain.
39  *
40  * @return ErrorCode_OK if the array was successfully constructed; specific error code otherwise.
41  */
42  createArrayScanner(IArrayScanner** pArray, int elementsCount);
43 
44 }
45 
46 /**
47 * Represents an interface to an array of the Scanner objects with methods for getting array size, as well
48 * as getting and setting particular elements by their index in the array.
49 */
50 class IArrayScanner : public base::IRef
51 {
52 public:
53  /**
54  * Get the number of array elements.
55  * @return array size.
56  */
57  virtual int getSize() const = 0;
58 
59  /**
60  * Get scanner object pointer by its index in the array.
61  * @param index index of the scanner object to retrieve.
62  * @return pointer to the IScanner interface at a particular index in the array.
63  */
64  virtual artec::sdk::capturing::IScanner* getElement(int index) const = 0;
65 
66  /**
67  * Set new scanner object at a certain index in the array.
68  * @param index index of the scanner object to set.
69  * @param frame pointer to the scanner object to be stored at this location.
70  */
71  virtual void setElement(int index, const artec::sdk::capturing::IScanner* scanner) = 0;
72 };
73 
74 } } } // namespace artec::sdk::scanning
75 
76 #endif // _ISCANNERARRAY_H_
ErrorCode ASCANNINGSDK_LINK_SPEC createArrayScanner(IArrayScanner **pArray, int elementsCount)
Create the ArrayScanner object representing an array of the Scanner objects.
Represents an interface to an array of the Scanner objects with methods for getting array size...
Definition: IArrayScanner.h:50
#define ASCANNINGSDK_LINK_SPEC
Interface to initiate capture and control scanner parameters (fps, texture, exposure time...
Definition: IScanner.h:97
Interface that implements reference counting and life-time management.
Definition: IRef.h:22