Artec 3D Scanning SDK  2.0
Classes | Enumerations | Functions
artec::sdk::scanning Namespace Reference

Classes

class  IArrayScanner
 Represents an interface to an array of the Scanner objects with methods for getting array size, as well as getting and setting particular elements by their index in the array. More...
 
class  IScanningProcedure
 Interface to start/pause/stop recording, control scanner sensitivity, FOV, ROI, etc. More...
 
class  IScanningProcedureBundle
 Bundle scanning procedure controller. More...
 
class  IScanningProcedureObserver
 Interface to receive notifications about events during scanning (e.g., frame scanned). More...
 
struct  RegistrationInfo
 Represents several aspects of the frame processing in the course of frame processing pipeline. More...
 
struct  ScanningProcedureBundleSettings
 These settings entirely cover the scanning procedure using bundle. More...
 
class  ScanningProcedureObserverBase
 The preferred way to use IScanningProcedureObserver is through using this class as a base. More...
 
struct  ScanningProcedureSettings
 These settings specify the scanning procedure entirely. More...
 

Enumerations

enum  ScanningState {
  ScanningState_Preview,
  ScanningState_Record,
  ScanningState_ContinueRecord,
  ScanningState_Stop,
  ScanningState_ForceDword = 0x7fffffff
}
 Setting of the scanning procedure to specify the way it works. More...
 
enum  RegistrationAlgorithmType {
  RegistrationAlgorithmType_ICP = 0x0,
  RegistrationAlgorithmType_Hybrid = 0x1,
  RegistrationAlgorithmType_Texture = 0x2,
  RegistrationAlgorithmType_ForceDword = 0x7fffffff
}
 Frame registration type that the procedure uses while scanning. More...
 
enum  ScanningPipeline {
  ScanningPipeline_CaptureOnly = 0x0,
  ScanningPipeline_ConvertTextures = 0x1,
  ScanningPipeline_CalculateNormals = 0x2,
  ScanningPipeline_MapTexture = 0x4,
  ScanningPipeline_RegisterFrame = 0x8,
  ScanningPipeline_FindGeometryKeyFrame = 0x10,
  ScanningPipeline_FastCapture = 0x20,
  ScanningPipelene_ForceDword = 0x7fffffff
}
 The flags that define stages in the scanning procedure pipeline. More...
 
enum  CaptureTextureMethod {
  CaptureTextureMethod_NoTextures,
  CaptureTextureMethod_EveryNFrame,
  CaptureTextureMethod_OnTextureKeyFrame,
  CaptureTextureMethod_Always,
  CaptureTextureMethod_ForceDword = 0x7fffffff
}
 This setting defines a condition for the full-sized texture capturing. More...
 
enum  FrameState {
  FrameState_Ok,
  FrameState_TriggerCaptureFailed,
  FrameState_CaptureFailed,
  FrameState_ReconstructionFailed,
  FrameState_RegistrationFailed,
  FrameState_TextureMappingFailed,
  FrameState_AddToScanFailed,
  FrameState_ForceDword = 0x7fffffff
}
 Represents different processing states of the frame being captured. More...
 

Functions

ErrorCode ASCANNINGSDK_LINK_SPEC createArrayScanner (IArrayScanner **pArray, int elementsCount)
 Create the ArrayScanner object representing an array of the Scanner objects. More...
 
ErrorCode ASCANNINGSDK_LINK_SPEC initializeScanningProcedureSettings (ScanningProcedureSettings *desc)
 Initialize scanning procedure descriptor with the default settings. More...
 
ErrorCode ASCANNINGSDK_LINK_SPEC createScanningProcedure (IScanningProcedure **job, artec::sdk::capturing::IScanner *scanner, const ScanningProcedureSettings *desc=NULL)
 Create scanning procedure instance. More...
 
ErrorCode ASCANNINGSDK_LINK_SPEC createScanningProcedureBundle (IScanningProcedureBundle **job, IArrayScanner *scanners, const ScanningProcedureBundleSettings *desc=NULL)
 Create procedure for scanning by using the scanner bundle. More...
 

Enumeration Type Documentation

This setting defines a condition for the full-sized texture capturing.

Enumerator
CaptureTextureMethod_NoTextures 

Textures are not captured at all.

CaptureTextureMethod_EveryNFrame 

Textures are captured at each N-th frame.

CaptureTextureMethod_OnTextureKeyFrame 

Textures are captured only if the frame is detected as a key frame for the texturing algorithm.

This flag is skipped if registration is unsuccessful or ScanningPipeline_FindGeometryKeyFrame is not set.

CaptureTextureMethod_Always 

Textures are captured for each single frame.

Use this capturing mode to apply registration algorithm by texture and geometry (hybrid registration) later.

CaptureTextureMethod_ForceDword 

Definition at line 105 of file IScanningProcedure.h.

Represents different processing states of the frame being captured.

Enumerator
FrameState_Ok 

Frame is captured and processed correctly. A new frame is generated.

FrameState_TriggerCaptureFailed 

Failed to start capturing (hardware error). No frame is generated.

FrameState_CaptureFailed 

Failed to capture a frame image from the camera. No frame is generated.

FrameState_ReconstructionFailed 

Failed to reconstruct a frame mesh from the image captured. No frame is generated.

FrameState_RegistrationFailed 

Failed to register the frame mesh after successful reconstruction. A new frame is generated with registration error below zero.

FrameState_TextureMappingFailed 

Failed to map raw texture to the frame mesh. A new frame is generated with no texture.

FrameState_AddToScanFailed 

Failed to add the processed frame to a scan, probably caused by the lack of memory.

FrameState_ForceDword 

Definition at line 29 of file IScanningProcedureObserver.h.

Frame registration type that the procedure uses while scanning.

Enumerator
RegistrationAlgorithmType_ICP 

Register surfaces by geometry only.

RegistrationAlgorithmType_Hybrid 

Register surfaces by both texture and geometry (hybrid registration).

Texture will be captured automatically.

RegistrationAlgorithmType_Texture 

Register surfaces by texture only.

RegistrationAlgorithmType_ForceDword 

Definition at line 51 of file IScanningProcedure.h.

The flags that define stages in the scanning procedure pipeline.

Enumerator
ScanningPipeline_CaptureOnly 

Capture frames and reconstruct surfaces from them.

ScanningPipeline_ConvertTextures 

Convert textures from raw to color format.

ScanningPipeline_CalculateNormals 

Calculate normals for the registered surfaces.

ScanningPipeline_MapTexture 

Map raw (either half-size or full-size) texture to the surface.

If no texture is captured, then no action is taken.

ScanningPipeline_RegisterFrame 

Apply frame registration.

If this flag is enabled, the successfully registered frames are added to the scan whereas failed frames are dropped. Otherwise all frames are added to the scan. If this flag is enabled, normals are calculated automatically. If registration type is set to texture or hybrid, textures are also mapped to the frames.

ScanningPipeline_FindGeometryKeyFrame 

Detect whether a captured frame is the geometry key frame (skeleton frame).

If registration is unsuccessful or ScanningPipeline_RegisterFrame is not set, this detection is skipped.

ScanningPipeline_FastCapture 

Perform only capture during scanning and postpone all postprocessing steps.

This mode is suitable for scanning with bundle.

ScanningPipelene_ForceDword 

Definition at line 67 of file IScanningProcedure.h.

Setting of the scanning procedure to specify the way it works.

Enumerator
ScanningState_Preview 

Capture frames without adding them to the scan.

ScanningState_Record 

Capture frames and add them to the scan.

ScanningState_ContinueRecord 

Not supported now.

ScanningState_Stop 

Stop frame capturing. If you set it for the procedure, capturing stops, but some frames can be captured afterwards.

ScanningState_ForceDword 

Definition at line 34 of file IScanningProcedure.h.

Function Documentation

ErrorCode ASCANNINGSDK_LINK_SPEC artec::sdk::scanning::createArrayScanner ( IArrayScanner **  pArray,
int  elementsCount 
)

Create the ArrayScanner object representing an array of the Scanner objects.

Once this function is called, all objects within the array will be default-constructed.

Parameters
pArraypointer to store the IArrayScanner interface.
elementsCountnumber of elements the newly constructed array will contain.
Returns
ErrorCode_OK if the array was successfully constructed; specific error code otherwise.
ErrorCode ASCANNINGSDK_LINK_SPEC artec::sdk::scanning::createScanningProcedure ( IScanningProcedure **  job,
artec::sdk::capturing::IScanner scanner,
const ScanningProcedureSettings desc = NULL 
)

Create scanning procedure instance.

Parameters
job- scanning procedure to return
scanner- scanner to use
desc- scanning procedure settings (NULL means default settings)
Examples:
scanning-and-process-sample.cpp.
ErrorCode ASCANNINGSDK_LINK_SPEC artec::sdk::scanning::createScanningProcedureBundle ( IScanningProcedureBundle **  job,
IArrayScanner scanners,
const ScanningProcedureBundleSettings desc = NULL 
)

Create procedure for scanning by using the scanner bundle.

Parameters
job- bundle scanning procedure to return
scanners- scanner list (the first (zero index) scanner is the master)
desc- scanning procedure settings (the same for all scanners, NULL stands for default settings)
ErrorCode ASCANNINGSDK_LINK_SPEC artec::sdk::scanning::initializeScanningProcedureSettings ( ScanningProcedureSettings desc)

Initialize scanning procedure descriptor with the default settings.