import { GeometryData, InstanceData } from "@shapediver/viewer.shared.node-tree"; import { type IPrimitiveData } from "@shapediver/viewer.shared.types"; import * as THREE from "three"; import { type ILoader } from "../interfaces/ILoader"; import { RenderingEngine } from "../RenderingEngine"; type GeometryType = THREE.Mesh | THREE.Line | THREE.Points | THREE.LineSegments | THREE.LineLoop; export declare class GeometryLoader implements ILoader { private readonly _renderingEngine; private _gemCubeCamera?; private _gemCubeCameraRenderTarget?; private _gemNormalMaterial?; private _gemScene?; private _gemSphericalMapsCache; private _geometryCache; private _logger; private _primitiveCache; constructor(_renderingEngine: RenderingEngine); emptyGeometryCache(): void; init(): void; /** * Create a geometry object with the provided geometry data. * * @param geometry the geometry data * @returns the geometry object */ load(geometry: GeometryData, instanceData?: InstanceData): GeometryType; loadPrimitive(primitive: IPrimitiveData): THREE.BufferGeometry; removeFromGemSphericalMapsCache(id: string): void; updateGeometryMaterial(geometry: GeometryData): void; removeFromGeometryCache(id: string): void; private checkNormals; private convertToTriangleMode; private createCubeNormalMap; private createMesh; private getAttributeName; private loadAttribute; private removeFromPrimitiveCache; } export {}; //# sourceMappingURL=GeometryLoader.d.ts.map