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

Classes

struct  AutoAlignSettings
 Parameters for Auto-alignment algorithm (Algorithm that assembles scans) More...
 
struct  FastFusionSettings
 Parameters for Fast fusion algorithm (algorithm quickly creates a simple model) More...
 
struct  FastMeshSimplificationSettings
 Parameters for Fast mesh simplification algorithm. More...
 
struct  GlobalRegistrationSettings
 Parameters for Global registration algorithm (algorithm optimizes frames within scans, launch it for a pre-aligned batch of scans or for a single scan) More...
 
class  IAlgorithm
 Base interface for algorithms. More...
 
struct  LoopClosureSettings
 Parameters for Loop closure algorithm designed to compensate for accumulated error during scanning. More...
 
struct  MeshSimplificationSettings
 Parameters for Mesh simplification algorithm. More...
 
struct  OutliersRemovalSettings
 Parameters for Outlier removal algorithm designed to erases small extraneous surfaces. More...
 
struct  PoissonFusionSettings
 Parameters for Sharp/Smooth fusion algorithms. More...
 
struct  SerialRegistrationSettings
 Parameters for Fine registration algorithm. More...
 
struct  SmallObjectsFilterSettings
 Parameters for Small-object filter. More...
 
struct  TexturizationSettings
 Parameters for Texturing algorithm. More...
 

Enumerations

enum  InputFilter {
  InputFilter_UseTextureKeyFrames = 0,
  InputFilter_UseAllTextures
}
 Enum for Poisson Fusion and Texturization algorithms. More...
 
enum  PoissonFusionType {
  PoissonFusionType_Sharp,
  PoissonFusionType_Smooth,
  PoissonFusionType_ForceDword = 0x7fffffff
}
 Fusion type. More...
 
enum  FillHolesType {
  FillHolesType_All,
  FillHolesType_ByRadius,
  FillHolesType_ForceDword = 0x7fffffff
}
 What kind of holes to fill. More...
 
enum  SerialRegistrationType {
  SerialRegistrationType_Rough,
  SerialRegistrationType_RoughTextured,
  SerialRegistrationType_Fine,
  SerialRegistrationType_FineTextured,
  SerialRegistrationType_ForceDword = 0x7fffffff
}
 Serial registration type. More...
 
enum  GlobalRegistrationType {
  GlobalRegistrationType_Geometry,
  GlobalRegistrationType_GeometryAndTexture,
  GlobalRegistrationType_ForceDword = 0x7fffffff
}
 Global registration type. More...
 
enum  TexturizeType {
  TexturizeType_Advanced = 0,
  TexturizeType_Atlas,
  TexturizeType_KeepAtlas,
  TexturizeType_VertexColorToAtlas,
  TexturizeType_ForceDword = 0x7fffffff
}
 Texturing algorithm type. More...
 
enum  TexturizeResolution {
  TexturizeResolution_512x512 = 0,
  TexturizeResolution_1024x1024,
  TexturizeResolution_2048x2048,
  TexturizeResolution_4096x4096,
  TexturizeResolution_8192x8192,
  TexturizeResolution_16384x16384,
  TexturizeResolution_ForceDword = 0x7fffffff
}
 Resolution of texture output file (in pixels) More...
 
enum  SmallObjectsFilterType {
  SmallObjectsFilterType_LeaveBiggestObject = 0,
  SmallObjectsFilterType_FilterByThreshold = 1,
  SmallObjectsFilterType_ForceDword = 0x7fffffff
}
 What size of object to erase? More...
 
enum  SimplifyType {
  SimplifyType_TriangleQuantity,
  SimplifyType_Accuracy,
  SimplifyType_Remesh,
  SimplifyType_TriangleQuantityFast,
  SimplifyType_ForceDword = 0x7fffffff
}
 Simplification-algorithm target. More...
 
enum  SimplifyMetric {
  SimplifyMetric_EdgeLength,
  SimplifyMetric_EdgeLengthAndAngle,
  SimplifyMetric_DistanceToSurface,
  SimplifyMetric_DistanceToSurfaceIterative,
  SimplifyMetric_ForceDword = 0x7fffffff
}
 Simplification method. What exactly algorithm does to meet the target. More...
 

Functions

bool AALGORITHMSDK_LINK_SPEC checkAlgorithmsPermission ()
 Check whether the algorithms are available on this machine. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeFastFusionSettings (FastFusionSettings *desc, base::ScannerType scannerType)
 Initializes Fast Fusion algorithm descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializePoissonFusionSettings (PoissonFusionSettings *desc, base::ScannerType scannerType)
 Initializes Sharp/Smooth fusion algorithm descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeTexturizationSettings (TexturizationSettings *desc, base::ScannerType scannerType)
 Initialize Texturing algorithm descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeSmallObjectsFilterSettings (SmallObjectsFilterSettings *desc, base::ScannerType scannerType)
 Initializes Small-object filter descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeMeshSimplificationSettings (MeshSimplificationSettings *desc, base::ScannerType scannerType, SimplifyType simplifyType)
 Initializes Mesh simplification descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeFastMeshSimplificationSettings (FastMeshSimplificationSettings *desc, base::ScannerType scannerType)
 Initializes Fast mesh simplification descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC initializeOutliersRemovalSettings (OutliersRemovalSettings *desc, base::ScannerType scannerType)
 Initializes Outliers removal descriptor with scanner related defaults. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createFastFusionAlgorithm (IAlgorithm **fusion, const FastFusionSettings *desc)
 Creates Fast fusion algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createPoissonFusionAlgorithm (IAlgorithm **fusion, const PoissonFusionSettings *desc)
 Creates Sharp/Smooth fusion algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createSerialRegistrationAlgorithm (IAlgorithm **serialRegistration, const SerialRegistrationSettings *desc)
 Creates Fine/Rough serial registration algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createAutoalignAlgorithm (IAlgorithm **autoalign, const AutoAlignSettings *desc)
 Creates Auto-align algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createGlobalRegistrationAlgorithm (IAlgorithm **globalRegistration, const GlobalRegistrationSettings *desc)
 Creates Global registration algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createTexturizationAlgorithm (IAlgorithm **texturizer, const TexturizationSettings *desc)
 Creates texturing algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createSmallObjectsFilterAlgorithm (IAlgorithm **smallObjectsFilter, const SmallObjectsFilterSettings *desc)
 Creates Small-object filter. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createMeshSimplificationAlgorithm (IAlgorithm **meshSimplification, const MeshSimplificationSettings *desc)
 Creates Mesh simplification algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createFastMeshSimplificationAlgorithm (IAlgorithm **meshSimplification, const FastMeshSimplificationSettings *desc)
 Creates Fast mesh simplification algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createLoopClosureAlgorithm (IAlgorithm **loopClosure, const LoopClosureSettings *desc)
 Creates Loop closure algorithm. More...
 
ErrorCode AALGORITHMSDK_LINK_SPEC createOutliersRemovalAlgorithm (IAlgorithm **outliesRemoval, const OutliersRemovalSettings *desc)
 Creates Outlier removal algorithm. More...
 

Enumeration Type Documentation

What kind of holes to fill.

Enumerator
FillHolesType_All 

Automatically fills in all holes in the mesh.

FillHolesType_ByRadius 

All holes having radius no greater than the specified in "maxHoleRadius" value will be filled in;.

FillHolesType_ForceDword 

Force 32-bit size enum.

Definition at line 80 of file Algorithms.h.

Global registration type.

Enumerator
GlobalRegistrationType_Geometry 

Use this registration type for any data types.

GlobalRegistrationType_GeometryAndTexture 

Use this registration type only if all frames have texture.

GlobalRegistrationType_ForceDword 

Force 32-bit size enum.

Definition at line 161 of file Algorithms.h.

Enum for Poisson Fusion and Texturization algorithms.

Enumerator
InputFilter_UseTextureKeyFrames 

Algorithm will use only frames with set texture key-frame attribute.

This type is used by default.

InputFilter_UseAllTextures 

Algorithm considers all frames that do not have empty textures.

Definition at line 38 of file Algorithms.h.

Fusion type.

Enumerator
PoissonFusionType_Sharp 

Sharp fusion.

PoissonFusionType_Smooth 

Smooth fusion.

PoissonFusionType_ForceDword 

Force 32-bit size enum.

Definition at line 71 of file Algorithms.h.

Serial registration type.

Enumerator
SerialRegistrationType_Rough 

Register surfaces by geometry.

Use this registration type only if no frames were registered during scanning. It is suited for any data types. It is fast, but less accurate.

SerialRegistrationType_RoughTextured 

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

Use this registration type only if no frames were registered during scanning. It is suited for all frames that have texture. It is fast, but less accurate.

SerialRegistrationType_Fine 

Register surfaces by geometry.

Use this registration type for any data types.

SerialRegistrationType_FineTextured 

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

Use this registration type only if all frames have texture.

SerialRegistrationType_ForceDword 

Force 32-bit size enum.

Definition at line 126 of file Algorithms.h.

Simplification method. What exactly algorithm does to meet the target.

Enumerator
SimplifyMetric_EdgeLength 

Ensure that the new edges are less than the specified length (error)

SimplifyMetric_EdgeLengthAndAngle 

Ensure that the new edges are less than the specified length (error) and angles between normals to the new neighboring faces are less than the specified value (angleThreshold)

SimplifyMetric_DistanceToSurface 

Ensure that the distance to the new faces are less than the specified value (error)

SimplifyMetric_DistanceToSurfaceIterative 

Ensure that the distance to the new faces are less than the specified value (error)

SimplifyMetric_ForceDword 

Force 32-bit size enum.

Definition at line 279 of file Algorithms.h.

Simplification-algorithm target.

Enumerator
SimplifyType_TriangleQuantity 

Reduce triangle count to the given number.

SimplifyType_Accuracy 

Keep accuracy of the mesh being simplified.

SimplifyType_Remesh 

Remove triangles whose edge lengths are less than the remeshEdgeThreshold value.

SimplifyType_TriangleQuantityFast 

Quickly reduce triangle count to the given number (Fast mesh simplification)

SimplifyType_ForceDword 

Force 32-bit size enum.

Definition at line 267 of file Algorithms.h.

What size of object to erase?

Enumerator
SmallObjectsFilterType_LeaveBiggestObject 

Erase all objects except the one with the most polygons.

SmallObjectsFilterType_FilterByThreshold 

Erases all objects whose number of polygons is less than the amount specified in filterThreshold.

SmallObjectsFilterType_ForceDword 

Force 32-bit size enum.

Definition at line 240 of file Algorithms.h.

Resolution of texture output file (in pixels)

Enumerator
TexturizeResolution_512x512 

0.5K texture file resolution

TexturizeResolution_1024x1024 

1K texture file resolution

TexturizeResolution_2048x2048 

2K texture file resolution

TexturizeResolution_4096x4096 

4K texture file resolution

TexturizeResolution_8192x8192 

8K texture file resolution

TexturizeResolution_16384x16384 

16K texture file resolution

TexturizeResolution_ForceDword 

Force 32-bit size enum.

Definition at line 194 of file Algorithms.h.

Texturing algorithm type.

Enumerator
TexturizeType_Advanced 

Each vertex gets multiple coordinates for each of the adjacent triangles, final texture coordinates are continuous only for a given triangle area.

TexturizeType_Atlas 

Unfold mesh to UV plane, then generate the texture image.

TexturizeType_KeepAtlas 

Keep UV coordinates and regenerate the texture image.

TexturizeType_VertexColorToAtlas 

Not implemented yet. Intended to texturize based on the vertex color data.

TexturizeType_ForceDword 

Force 32-bit size enum.

Definition at line 179 of file Algorithms.h.

Function Documentation

bool AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::checkAlgorithmsPermission ( )

Check whether the algorithms are available on this machine.

Return values
trueif algorithm creation is permitted
falseif algorithm creation is forbidden
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createAutoalignAlgorithm ( IAlgorithm **  autoalign,
const AutoAlignSettings desc 
)

Creates Auto-align algorithm.

Examples:
project-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createFastFusionAlgorithm ( IAlgorithm **  fusion,
const FastFusionSettings desc 
)

Creates Fast fusion algorithm.

Examples:
project-sample.cpp, and scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createFastMeshSimplificationAlgorithm ( IAlgorithm **  meshSimplification,
const FastMeshSimplificationSettings desc 
)

Creates Fast mesh simplification algorithm.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createGlobalRegistrationAlgorithm ( IAlgorithm **  globalRegistration,
const GlobalRegistrationSettings desc 
)

Creates Global registration algorithm.

Examples:
project-sample.cpp, and scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createLoopClosureAlgorithm ( IAlgorithm **  loopClosure,
const LoopClosureSettings desc 
)

Creates Loop closure algorithm.

No need to utilize this algorithm. Starting from SDK ver. 2.0, you can skip it and run Global registration instead.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createMeshSimplificationAlgorithm ( IAlgorithm **  meshSimplification,
const MeshSimplificationSettings desc 
)

Creates Mesh simplification algorithm.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createOutliersRemovalAlgorithm ( IAlgorithm **  outliesRemoval,
const OutliersRemovalSettings desc 
)

Creates Outlier removal algorithm.

Examples:
scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createPoissonFusionAlgorithm ( IAlgorithm **  fusion,
const PoissonFusionSettings desc 
)

Creates Sharp/Smooth fusion algorithm.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createSerialRegistrationAlgorithm ( IAlgorithm **  serialRegistration,
const SerialRegistrationSettings desc 
)

Creates Fine/Rough serial registration algorithm.

Examples:
scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createSmallObjectsFilterAlgorithm ( IAlgorithm **  smallObjectsFilter,
const SmallObjectsFilterSettings desc 
)

Creates Small-object filter.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::createTexturizationAlgorithm ( IAlgorithm **  texturizer,
const TexturizationSettings desc 
)

Creates texturing algorithm.

Examples:
scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeFastFusionSettings ( FastFusionSettings desc,
base::ScannerType  scannerType 
)

Initializes Fast Fusion algorithm descriptor with scanner related defaults.

Examples:
project-sample.cpp, and scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeFastMeshSimplificationSettings ( FastMeshSimplificationSettings desc,
base::ScannerType  scannerType 
)

Initializes Fast mesh simplification descriptor with scanner related defaults.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeMeshSimplificationSettings ( MeshSimplificationSettings desc,
base::ScannerType  scannerType,
SimplifyType  simplifyType 
)

Initializes Mesh simplification descriptor with scanner related defaults.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeOutliersRemovalSettings ( OutliersRemovalSettings desc,
base::ScannerType  scannerType 
)

Initializes Outliers removal descriptor with scanner related defaults.

Examples:
scanning-and-process-sample.cpp.
ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializePoissonFusionSettings ( PoissonFusionSettings desc,
base::ScannerType  scannerType 
)

Initializes Sharp/Smooth fusion algorithm descriptor with scanner related defaults.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeSmallObjectsFilterSettings ( SmallObjectsFilterSettings desc,
base::ScannerType  scannerType 
)

Initializes Small-object filter descriptor with scanner related defaults.

ErrorCode AALGORITHMSDK_LINK_SPEC artec::sdk::algorithms::initializeTexturizationSettings ( TexturizationSettings desc,
base::ScannerType  scannerType 
)

Initialize Texturing algorithm descriptor with scanner related defaults.

Examples:
scanning-and-process-sample.cpp.