import { Box } from '../common/geometry'; import RawData from '../common/RawData'; import { OrientationString } from './section-util'; import { Vector3 } from 'three'; /** * Scans all the voxels in the given volume and * determines the minimum bounding box that contains all the non-zero voxels. * @param volume The volume to scan over. * @param snap If this is set true and the volume is in binary format, * the x-size will be normalized to the multiple of 8. * @return The bounding box measured in the given volume's coordinate. */ export declare function scanBoundingBox(volume: RawData, snap?: boolean): Box | null; /** * Fill all voxels with the given value when it intersects with the line segment * specified by the two points. * Voxels are filled when the line only "glances" them. * TODO: Introduce edge-overflow detection for all directions to reduce unnecessary calls to writePixelAt */ export declare function draw3DLine(volume: RawData, p0: Vector3, // offset (not mm!) p1: Vector3, // offset (not mm!) value?: number): void; /** * Performs a flood-fill on a given orthogonal MPR section of the volume. * @param volume The target volume to fill. * @param center The starting point to start filling. * @param orientation The orientation of the orthogonal MPR section. * @return The number of voxels affected (filled). */ export declare function floodFillOnSlice(volume: RawData, center: Vector3, orientation: OrientationString): number;