11 #ifndef _ALGORITHMS_H_
12 #define _ALGORITHMS_H_
20 namespace artec {
namespace sdk {
namespace base
24 class ICompositeContainer;
26 class ICancellationToken;
28 struct AlgorithmWorkset;
31 namespace artec {
namespace sdk {
namespace algorithms
467 #endif // _ALGORITHMS_H_
SimplifyMetric simplifyMetrics
Simplification method: EdgeLength, DistanceToSurface etc. Not supported by Fast simplification.
ErrorCode AALGORITHMSDK_LINK_SPEC createMeshSimplificationAlgorithm(IAlgorithm **meshSimplification, const MeshSimplificationSettings *desc)
Creates Mesh simplification algorithm.
Keep accuracy of the mesh being simplified.
bool removeTargets
If it is true, then erase small embossments from surfaces on which targets are placed.
All holes having radius no greater than the specified in "maxHoleRadius" value will be filled in;...
int atlasUnfoldingPolygonLimit
Set the limit for number of polygons for mesh unfolding: 0 - disable simplification (unfold original ...
Parameters for Loop closure algorithm designed to compensate for accumulated error during scanning...
Register surfaces by geometry.
base::ScannerType scannerType
Scanner type.
bool enableAngleThreshold
Limit the maximum normals deviation.
ErrorCode AALGORITHMSDK_LINK_SPEC createGlobalRegistrationAlgorithm(IAlgorithm **globalRegistration, const GlobalRegistrationSettings *desc)
Creates Global registration algorithm.
Quickly reduce triangle count to the given number (Fast mesh simplification)
Ensure that the new edges are less than the specified length (error) and angles between normals to th...
TexturizeType
Texturing algorithm type.
GlobalRegistrationType
Global registration type.
ErrorCode AALGORITHMSDK_LINK_SPEC createFastMeshSimplificationAlgorithm(IAlgorithm **meshSimplification, const FastMeshSimplificationSettings *desc)
Creates Fast mesh simplification algorithm.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeFastFusionSettings(FastFusionSettings *desc, base::ScannerType scannerType)
Initializes Fast Fusion algorithm descriptor with scanner related defaults.
Use this registration type only if all frames have texture.
FillHolesType
What kind of holes to fill.
InputFilter inputFilterType
Type of frames for algorithm to use.
ErrorCode AALGORITHMSDK_LINK_SPEC initializePoissonFusionSettings(PoissonFusionSettings *desc, base::ScannerType scannerType)
Initializes Sharp/Smooth fusion algorithm descriptor with scanner related defaults.
SerialRegistrationType registrationType
Serial registration type.
bool keepBoundary
Maintains boundary of the surface.
SmallObjectsFilterType
What size of object to erase?
2K texture file resolution
Parameters for Fast mesh simplification algorithm.
float resolution
Mesh resolution (in millimeters) is a step of grid which is used to reconstruct a polygonal model...
float angleThreshold
Maximum angle between neighboring normals (in degrees). Not supported by Fast simplification.
float targetOuterSize
Round type target - white circle diameter (in millimeters)
Ensure that the distance to the new faces are less than the specified value (error) ...
bool enableAmbientLightingCompensation
Enable compensation of ambient light.
base::ScannerType scannerType
Scanner type.
Each vertex gets multiple coordinates for each of the adjacent triangles, final texture coordinates a...
ErrorCode AALGORITHMSDK_LINK_SPEC createOutliersRemovalAlgorithm(IAlgorithm **outliesRemoval, const OutliersRemovalSettings *desc)
Creates Outlier removal algorithm.
Parameters for Small-object filter.
bool generateNormals
If true, then calculate normals for created mesh.
PoissonFusionType
Fusion type.
float angleThreshold
Maximum angle between normals to the neighboring faces (in degrees).
Parameters for Auto-alignment algorithm (Algorithm that assembles scans)
float maxHoleRadius
Maximum hole radius in millimeters.
ErrorCode AALGORITHMSDK_LINK_SPEC createFastFusionAlgorithm(IAlgorithm **fusion, const FastFusionSettings *desc)
Creates Fast fusion algorithm.
Remove triangles whose edge lengths are less than the remeshEdgeThreshold value.
Reduce triangle count to the given number.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeSmallObjectsFilterSettings(SmallObjectsFilterSettings *desc, base::ScannerType scannerType)
Initializes Small-object filter descriptor with scanner related defaults.
InputFilter
Enum for Poisson Fusion and Texturization algorithms.
SimplifyMetric
Simplification method. What exactly algorithm does to meet the target.
TexturizeType texturizeType
Texturing type to use.
int triangleNumber
Triangle number to target.
Register surfaces by geometry.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeFastMeshSimplificationSettings(FastMeshSimplificationSettings *desc, base::ScannerType scannerType)
Initializes Fast mesh simplification descriptor with scanner related defaults.
ErrorCode AALGORITHMSDK_LINK_SPEC createSerialRegistrationAlgorithm(IAlgorithm **serialRegistration, const SerialRegistrationSettings *desc)
Creates Fine/Rough serial registration algorithm.
float aspectRatioThreshold
Maximum available ratio of the edges in triangle.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeTexturizationSettings(TexturizationSettings *desc, base::ScannerType scannerType)
Initialize Texturing algorithm descriptor with scanner related defaults.
Use this registration type for any data types.
Keep UV coordinates and regenerate the texture image.
8K texture file resolution
float resolution
Mesh resolution (in millimeters) is a step of grid which is used to reconstruct a polygonal model...
0.5K texture file resolution
bool enableAdditionalCriteria
Simplification stops if either of the thresholding criteria below isn't satisfied.
bool useTextureNormalization
Correct texture brightness for Artec scanners.
Ensure that the new edges are less than the specified length (error)
bool enableBackgroundSegmentation
Enable background segmentation for input texture frames.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeMeshSimplificationSettings(MeshSimplificationSettings *desc, base::ScannerType scannerType, SimplifyType simplifyType)
Initializes Mesh simplification descriptor with scanner related defaults.
SerialRegistrationType
Serial registration type.
Algorithm will use only frames with set texture key-frame attribute.
base::ScannerType scannerType
Scanner type.
Erases all objects whose number of polygons is less than the amount specified in filterThreshold.
SimplifyType
Simplification-algorithm target.
Register surfaces by both texture and geometry (hybrid registration).
base::ScannerType scannerType
Scanner type.
base::ScannerType scannerType
Scanner type.
base::ScannerType scannerType
Scanner type.
ErrorCode AALGORITHMSDK_LINK_SPEC createPoissonFusionAlgorithm(IAlgorithm **fusion, const PoissonFusionSettings *desc)
Creates Sharp/Smooth fusion algorithm.
4K texture file resolution
PoissonFusionType fusionType
Fusion type.
#define AALGORITHMSDK_LINK_SPEC
bool enableTextureInpainting
Interpolate colors for empty texture areas.
float error
Maximum error or length (in millimeters). Not supported by Fast simplification.
Parameters for Sharp/Smooth fusion algorithms.
InputFilter inputFilterType
Type of frames for algorithm to use.
int filterThreshold
Threshold is the maximum number of triangles for FilterByThreshold.
base::ScannerType scannerType
Scanner type.
ErrorCode AALGORITHMSDK_LINK_SPEC createAutoalignAlgorithm(IAlgorithm **autoalign, const AutoAlignSettings *desc)
Creates Auto-align algorithm.
FillHolesType fillType
Settle the algorithm to fill holes in the mesh being reconstructed (for PoissonFusion).
Automatically fills in all holes in the mesh.
ErrorCode AALGORITHMSDK_LINK_SPEC createTexturizationAlgorithm(IAlgorithm **texturizer, const TexturizationSettings *desc)
Creates texturing algorithm.
float standardDeviationMultiplier
Standard deviation multiplier.
float resolution
Marching cube resolution (in millimeters).
base::ScannerType scannerType
Scanner type.
base::ScannerType scannerType
Scanner type.
Parameters for Texturing algorithm.
int radius
Radius(for Fast Fusion only) is a factor to define vicinity that algorithm takes into consideration w...
int triangleNumber
Triangle count after simplification.
Parameters for Outlier removal algorithm designed to erases small extraneous surfaces.
float distanceThreshold
Max error (in units^2).
ErrorCode AALGORITHMSDK_LINK_SPEC createLoopClosureAlgorithm(IAlgorithm **loopClosure, const LoopClosureSettings *desc)
Creates Loop closure algorithm.
bool enableAspectRatioThreshold
Limits edges length ratio.
Parameters for Fine registration algorithm.
Base interface for algorithms.
SimplifyType simplifyType
Simplification target: TriangleQuantity, Accuracy, Remesh, TriangleQuantityFast.
float remeshEdgeThreshold
Maximum edge length (in millimeters) after the Remesh operation. Not supported by Fast simplification...
bool enableDistanceThreshold
Limits maximum distance between the original and simplified meshes.
bool AALGORITHMSDK_LINK_SPEC checkAlgorithmsPermission()
Check whether the algorithms are available on this machine.
Parameters for Fast fusion algorithm (algorithm quickly creates a simple model)
Not implemented yet. Intended to texturize based on the vertex color data.
Register surfaces by both texture and geometry (hybrid registration).
base::ScannerType scannerType
Scanner type.
GlobalRegistrationType registrationType
Global registration type.
Erase all objects except the one with the most polygons.
ErrorCode AALGORITHMSDK_LINK_SPEC initializeOutliersRemovalSettings(OutliersRemovalSettings *desc, base::ScannerType scannerType)
Initializes Outliers removal descriptor with scanner related defaults.
base::ScannerType scannerType
Scanner type.
float targetInnerSize
Round type target - black circle diameter (in millimeters)
bool generateNormals
If true, then calculate normals for created mesh.
Parameters for Mesh simplification algorithm.
TexturizeResolution texturizeResolution
Resolution of texturing output (in pixels)
Parameters for Global registration algorithm (algorithm optimizes frames within scans, launch it for a pre-aligned batch of scans or for a single scan)
TexturizeResolution
Resolution of texture output file (in pixels)
1K texture file resolution
Algorithm considers all frames that do not have empty textures.
SmallObjectsFilterType filterType
Small-object filter type.
Ensure that the distance to the new faces are less than the specified value (error) ...
16K texture file resolution
bool keepBoundary
Maintains boundary of the surface.
ErrorCode AALGORITHMSDK_LINK_SPEC createSmallObjectsFilterAlgorithm(IAlgorithm **smallObjectsFilter, const SmallObjectsFilterSettings *desc)
Creates Small-object filter.
Unfold mesh to UV plane, then generate the texture image.