import { BufferGeometry, Mesh, type Material } from 'three'; import { type ExtractedIsosurface3, type FieldEvaluation4, type HyperplaneSlice4, type ImplicitField4, type SampledFieldSlice3, type SampleFieldSlice3Options } from '@holotope/core'; export interface SampledSlicedField3DOptions extends SampleFieldSlice3Options { isoValue?: number; material?: Material; /** Optional packed RGB color for each interpolated escape-iteration value. */ colorForIteration?: (iteration: number) => number; } /** * CPU render product for an implicit field restricted to a 3-flat in R4. * Sampling remains inspectable and deterministic; only the extracted mesh * is approximate, as declared by `surface.approximate`. */ export declare class SampledSlicedField3D { readonly field: ImplicitField4; readonly slice: HyperplaneSlice4; readonly geometry: BufferGeometry; readonly object: Mesh; readonly approximate = true; sample: SampledFieldSlice3; surface: ExtractedIsosurface3; private options; /** * Builds a sampled section of an implicit field. The field is evaluated on * a grid in the slice, so cost is the resolution cubed and a raised * resolution is paid on every rebuild rather than per frame. * * @param field - Field to evaluate. Its full record is retained per sample, * so a renderer can colour or inspect a point without rerunning the orbit. * @param slice - The hyperplane to sample within. Retained, so moving its * offset moves the sampled section. * @param options - Grid extent and resolution, the isosurface threshold, * and an optional material. */ constructor(field: ImplicitField4, slice: HyperplaneSlice4, options: SampledSlicedField3DOptions); /** Re-sample after changing the slice, or replace sampling options. */ update(options?: Partial): void; get triangleCount(): number; sourceCellOfFace(faceIndex: number): number; dispose(): void; } //# sourceMappingURL=sampled-sliced-field.d.ts.map