export interface SectionPlaneRenderOptions { axis: 'down' | 'front' | 'side'; position: number; bounds: { min: { x: number; y: number; z: number; }; max: { x: number; y: number; z: number; }; }; viewProj: Float32Array; flipped?: boolean; isPreview?: boolean; min?: number; max?: number; /** * Optional explicit plane normal (unit vector) and signed distance from * origin. When both are provided, the gizmo is placed on that world-space * plane and its quad is built from the deterministic in-plane basis * (`planeBasis(normal)`) shared with the cap renderer — `axis` / * `position` / `min` / `max` are ignored on this path. */ normal?: [number, number, number]; distance?: number; } export declare class SectionPlaneRenderer { private device; private bindGroupLayout; private previewPipeline; private cutPipeline; private vertexBuffer; private uniformBuffer; private bindGroup; private format; private sampleCount; private initialized; constructor(device: GPUDevice, format: GPUTextureFormat, sampleCount?: number); private init; /** * Draw section plane into an existing render pass (preferred - avoids MSAA mismatch) */ draw(pass: GPURenderPassEncoder, options: SectionPlaneRenderOptions): void; private calculatePlaneVertices; /** * Build a 6-vertex (two-triangle) preview quad for an arbitrary plane * defined by `dot(p, normal) = distance`. The quad is centred on the * foot of the perpendicular from the bounds centre, oriented via * `planeBasis(normal)` (the same basis the cap renderer uses), and * sized from the bounds' diagonal so it stays visible no matter how * the plane is tilted relative to the model. */ private calculatePlaneVerticesFromNormal; /** * Destroy all GPU resources held by this section-plane renderer. * After calling this method the renderer is no longer usable. * Safe to call multiple times. */ destroy(): void; } //# sourceMappingURL=section-plane.d.ts.map