IFClite TypeScript API
    Preparing search index...

    Every field is optional; omitted fields take the Rust defaults below.

    interface ScanSegmentationOptions {
        classificationAngleDegrees?: number;
        cylinderDraws?: number;
        cylinderScoreSample?: number;
        detectCylinders?: boolean;
        madScale?: number;
        maxBendPerMetre?: number;
        maxCylinderGroups?: number;
        maxCylinderRadiusMetres?: number;
        maxNormalAngleDegrees?: number;
        maxPlaneDistanceMetres?: number;
        maxPlanes?: number;
        maxSeedCurvature?: number;
        maxVoxels?: number;
        minCylinderArcDegrees?: number;
        minCylinderInlierFraction?: number;
        minCylinderLengthMetres?: number;
        minCylinderRadiusMetres?: number | null;
        minNeighbors?: number;
        minPlaneAreaSquareMetres?: number;
        normalNeighborRings?: number;
        origin?: ScanVec3;
        region?: ScanRegion | null;
        scannerPosition?: ScanVec3 | null;
        upAxis?: ScanVec3;
        voxelSizeMetres?: number;
    }
    Index
    classificationAngleDegrees?: number

    Horizontal / vertical classification tolerance. Default 10 degrees.

    cylinderDraws?: number

    RANSAC draws per candidate. Default 256.

    cylinderScoreSample?: number

    Voxels each draw is scored on. Default 2,048.

    detectCylinders?: boolean

    Look for cylinders (columns, pipes) among non-planar voxels. Default true.

    madScale?: number

    Robust refit band in MADs. Default 2.5.

    maxBendPerMetre?: number

    Regions whose normals turn faster than this (1/radius) are curved. Default 1 per metre.

    maxCylinderGroups?: number

    Largest non-planar groups examined. Default 1,024.

    maxCylinderRadiusMetres?: number
    maxNormalAngleDegrees?: number

    Growth and merge angle tolerance. Default 10 degrees.

    maxPlaneDistanceMetres?: number

    Growth and merge distance tolerance. Default 0.02 m.

    maxPlanes?: number

    Largest planes kept. Default 10,000.

    maxSeedCurvature?: number

    Seed voxels have curvature at most this, or at most the curvature of the flattest 5 % of voxels when noise lifts even flat surfaces above it. Default 0.02.

    maxVoxels?: number

    Voxel budget; past it the voxel size doubles. Default 1,500,000. Memory is roughly 180 bytes per voxel: the 8,000,000 maximum (with 2 normal rings) peaks near 1.4 GB, more than a browser tab should spend.

    minCylinderArcDegrees?: number

    Minimum circumference covered. Default 90 degrees.

    minCylinderInlierFraction?: number

    Share of a group a candidate must fit. Default 0.6.

    minCylinderLengthMetres?: number

    Minimum length along the axis. Default 0.3 m.

    minCylinderRadiusMetres?: number | null

    Accepted cylinder radius range. The minimum defaults to two voxel edges (null), the maximum to 2 m.

    minNeighbors?: number

    Occupied voxels (self included) a normal needs. Default 6.

    minPlaneAreaSquareMetres?: number

    Smaller planes are dropped. Default 0.25 m^2.

    normalNeighborRings?: number

    Normal neighbourhood: 1 = 26 neighbours (default), 2 = 124.

    origin?: ScanVec3

    Added to every output coordinate. Default [0, 0, 0].

    region?: ScanRegion | null

    Only points inside this box take part.

    scannerPosition?: ScanVec3 | null

    When given, every plane normal faces the scanner.

    upAxis?: ScanVec3

    Up direction of the positions' frame. Default [0, 0, 1].

    voxelSizeMetres?: number

    Averaging voxel edge. Default 0.03 m; 0.005..=1.