Version 1.0.1.684 - 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.
Enhancements:
[*] 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.
- AALGORITHMSDK_VERBOSE() macro was renamed to AALGORITHMSDK_INFO().
Changes in Scanning (artec::sdk::scanning)
- saveEmptySurfaces data member was added to ScanningProcedureSettings structure.
- IScanningProcedureObserver: base class IRef was added.
- ASCANNINGSDK_VERBOSE() macro was renamed to ASCANNINGSDK_INFO().
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:
- Documentation is available online at http://docs.artec-group.com/sdk/1.0/index.html
- Code samples are available online at http://docs.artec-group.com/sdk/1.0/examples.html
- Scanning-and-process sample became more interactive thanks to the GLFW 3D viewer.
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 1.0.1.41 - July 30 2015
SDK was re-build with extended expiration date
Version 1.0.1.32 - June 5 2015
SDK was re-build with the latest drivers for Artec scanners
Version 1.0.1.31 - May 7 2015
Enhancements:
- 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