Submit a request

Artec Software Development Kit 1.0

Version - October 22 2015

Change list (list of updates within this version):

[*] Artec 3D Scanning SDK structure was changed as follows:

\base-sdk\include\*.h         ->  \include\artec\sdk\base\*.h
\base-sdk\include\IO\*.h    ->  \include\artec\sdk\base\IO\*.h
\capture-sdk\include\*.h     ->  \include\artec\sdk\capturing\*.h
\algorithm-sdk\include\*.h  ->  \include\artec\sdk\algorithms\*.h
\scanning-sdk\include\*.h   ->  \include\artec\sdk\scanning\*.h

[*] ARTEC_SDK_HOME, an environment variable added.

[*] SDK license never expires as of now. Algorithms will work only if any scanner is Activated or Rented on a machine.

[*] NVIDIA Optimus Technology support was added.


[*] Added trace message for a scanner creation.

[*] Base implementations were added for some user interfaces.

[*] Introduced argument checks for all API calls.

[*] Global registration behavior changed:

  • Registration errors and geometry key frame properties in the Geometry mode are now saved.
  • Unsuccessfully registered frames still keep the transformation applied instead of resetting it to the original state.

[*] Added the log message about large number of polygons in Texturizing algorithm.

[*] Obj and Ply io classes are now able to save and load empty IFrameMeshes with textures.

[*] Added new frame attributes:

  • frame index (comes from the scanner during capture);
  • capture timestamp (a moment of time when the first frame for the surface is captured).

[+] ScanningProcedure has got an option for saving empty surfaces to the resulting scan.

[+] cloneCompositeContainer() global method was added.

[+] cloneModel() global method was added.

[+] allScansInModelEmpty() global method was added.

[+] isCompositeContainerInModelEmpty() global method was added.

[+] JobObserverBase class was added.

[+] ProgressBase class was added.

[+] ProgressInfoBase class was added.

[+] cloneScan(), createSimilarScan() global methods were added.

[+] RefBase class was added.

[+] C-style IO global methods were added:

  • saveAopImageToFile(), saveAopMeshToFile(),  
  • saveBmpImageToFile/Blob(), loadBmpImageFromFile/Blob(),
  • saveBuffFrameToFile/Blob(), loadBuffFrameFromFile/Blob(),
  • saveJpgImageToFile/Blob(), loadJpgImageFromFile/Blob(),
  • saveObjFrameToFile/Blob(), saveObjCompositeToFile/Blob(),
  • loadObjFrameFromFile/Blob(), loadObjCompositeFromFile/Blob(),
  • savePlyFrameToFile/Blob(), savePlyCompositeToFile/Blob(),
  • loadPlyFrameFromFile/Blob(), loadPlyCompositeFromFile/Blob(),
  • savePngImageToFile/Blob(), loadPngImageFromFile/Blob(),
  • saveStlMeshToFile(), saveStlMeshToFileAscii(), saveStlMeshToFileBinary(),
  • saveStlMeshToBlob(), saveStlMeshToBlobAscii(), saveStlMeshToBlobBinary(),
  • loadStlMeshFromFile(), loadStlMeshFromFileAutodetect(),
  • loadStlMeshFromFileAscii(), loadStlMeshFromFileBinary(),
  • loadStlMeshFromBlob(), loadStlMeshFromBlobAscii(), loadStlMeshFromBlobBinary(),
  • checkAlgorithmsPermission() global method was added.
  • TexturizeResolution enum was added.
  • ScanningProcedureObserverBase class was added.
  • initializeScanningProcedureSettings() global method was added.
  • ScannerObserverBase class was added.

SDK API changes:
Changes in Base (artec::sdk::base, artec::sdk::base::io)

  • AlgorithmWorkset::threadsCount type was changed to an unsigned int.
  • Error codes in Errors.h were revised with the selectivity improved.
  • ErrorCode_InvalidArgument was renamed to ErrorCode_ArgumentInvalid.
  • IBitSet interface was removed.
  • ICompositeContainer: get/setScanTransformation() were renamed to get/setContainerTransformation().
  • ICompositeContainer: set/getScanAttributes() were renamed to get/setContainerAttributes().
  • IFrameMesh / ICompositeMesh: overloaded getCalculated() methods were removed.
  • IJob::getThreadsRequired() return value type was changed to an unsigned int.
  • IJobEvent was renamed to IJobObsever.
  • IJobObsever: base class IRef was added.
  • IMesh::transform() argument type was changed to the Matrix4x4D& const.
  • IMesh::rotate() argument type was changed to the Matrix4x4D& const.
  • IMesh: get/set/hasInterpolatePoints(), get/set/hasInterpolateTriangles() were removed.
  • IMesh: isInterpolatePoint(), isInterpolateTriangle() were removed.
  • IProgress: base class IRef was added.
  • ScannerType enum was moved from artec::sdk::capturing to artec::sdk::base.
  • ScannerType, a dedicated enumis used instead of int for scanner type arguments.
  • IScan::getScannerType() return value type was changed to ScannerType.
  • enum CalculateMode: CM_InterpolatePoints, CM_InterpolateTri were removed.
  • ABASESDK_VERBOSE() macro was renamed to ABASESDK_INFO().
  • load/saveImage32F() were renamed to load/saveImage32fToFile().
  • load/saveImage() were renamed to load/saveImageFromFile().
  • saveTexture()/saveTextures() were renamed to savePlyTexture()/savePlyTextures().
  • TexturizationSettings: enableAOTextureGeneration was renamed to enableAmbientLightingCompensation.
  • TexturizationSettings: brightnessLevel was removed.
  • TexturizationSettings: atlasUnfoldingPolygonLimit parameter was added.
  • scalar-to-vector binary operators were removed from the Point definition.

Changes in Capturing (artec::sdk::capturing)

  •  ScannerType enum was moved from artec::sdk::capturing to artec::sdk::base.
  •  deinitCaptureSdk() global method was removed.
  •  captureAndProcess() global method was removed.
  •  IScanner: get/setFPS(), getMaximumFPS() methods were added.
  •  IScanner: isTextureFlashEnabled() has no argument now.
  •  IScannerEvent was renamed to IScannerObserver.
  •  ScannerId structure was changed.
  •  ACAPTURESDK_VERBOSE() macro was renamed to ACAPTURESDK_INFO().

Changes in Algorithms (artec::sdk::algorithms)

  •  All initializeXxxxxSettings() global methods use enum ScannerType for scanner type argument.
  •  All XxxxxSettings structures use the ScannerType enum for retrieving the appropriate settings.
  •  ErrorCode_InvalidOpenGLVersion was renamed to ErrorCode_OpenGlInvalidVersion.
  •  tweakDefaultAlgorithmSettings() global method was removed.
  •  texturizeResolution data member was added to TexturizationSettings structure.

Changes in Scanning (artec::sdk::scanning)

  •  saveEmptySurfaces data member was added to ScanningProcedureSettings structure.
  •  IScanningProcedureObserver: base class IRef was added.

SDK files changes:

  •  IBitSet.h was removed.
  •  ScannerType.h was added to \include\artec\sdk\base.
  •  IJobEvent.h was renamed to IJobObserver.h
  •  IScannerEvent.h was renamed to IScannerObserver.h

SDK documentation and code samples updates:

SDK installation package

  • Improved communication with users throughout the installation process.

Resolved Issues:

  •  Issue that prevent texture matrices form saving properly to the PLY file.
  •  Fixed scanner synchronization mechanism in ScanningProcedure. Once any thread leaves the capturing section, synchronization gets disabled. Reconstruction time now includes time spent on a synchronization.
  •  Matrix4x4<>::translation() was fixed.
  •  SerialRegistrationAlgorithm was fixed.


Artec Software Development Kit 1.0 Beta

Version - July 30 2015

SDK was re-build with extended expiration date

Version - June 5 2015

SDK was re-build with the latest drivers for Artec scanners

Version - May 7 2015


  •  EULA for SDK installer was added
  •  TexturizationAlgorithm was added
  •  Outliers removal algorithm was added
  •  Mesh simplification algorithm was splitted to Mesh simplification and Fast mesh simplification
  •  IArrayMatrix4x4D interface was added
  •  IArrayPoint3D interface was added
  •  IArrayFrame interface was added
  •  Props files were added for samples

 SDK API changes:

  •  get/setSensitivity, get/setScanningRange, get/setROI added to IScanningProcedure interface
  •  getSensitivity, getScanningRange, getROI added to IFrameProcessor interface
  •  a number of IMesh methods were removed
  •  a number of MeshFlags enum values were removed
  •  structure PointNormalsWeighting was removed
  •  vReport function was added for va_list args support in log functions
  •  const modifier was added to pointers members in RegistrationInfo structure
  •  onScanningFinished event was added to IScanningProcedureObserver interface
  •  onFrameCaptured event was added to IScanningProcedureObserver interface
  •  FrameState_TriggerCaptureFailed state was added to enum FrameState
  •  Box3D class was removed
  •  captureTexture method to capture texture only was added to IScanner
  •  setElement function was added to IScan
  •  setElement function was added to IModel
  •  setElement function was added to ICompositeContainer
  •  Visual hull was removed from Poisson fusion algorithm
  •  Floor detection algorithm was removed
  •  Various constructors were added to GenericMatrix class
  •  Hardware synchronization parameter useHardwareSynchronization was added to ScanningProcedureBundleSettings structure
  •  Scanner index in bundle parameter was added to createScanner function and RegistrationInfo structure
  •  ScannerType_KinectXXXX items were removed from ScannerType enum

SDK files changes:

  • IScanningStrategy.h renamed to IProcedureObserver.h

Resolved Issues:

  •  Thread synchronization bug was fixed in Fast and Poisson fusion algorithms
  •  Deadlock bug was fixed in Global registration algorithm


Was this article helpful?
0 out of 0 found this helpful