import * as THREE from 'three'; import { IObject3D } from '../../model/common/IObject3D'; import { Mesh } from './_Mesh'; import { TextureManager } from '../texture/TextureManager'; import { SvgObject } from '../../model/SvgObject'; import { SOLID_LINE_CAP_TYPE, SOLID_LINE_JOIN_TYPE } from '../../model/map/INaviLineOptions'; import { CAMERA_TYPE } from '../../model/IMapOption'; import { Group } from './_Group'; export interface IShaderMaterialValue { name: string; topUrl?: string | null; sideUrl?: string | null; topColor?: number; sideColor?: number; topPatternRepeat?: boolean; sidePatternRepeat?: boolean; topPatternScale?: number; sidePatternScale?: number; topPatternRotation?: number; sidePatternRotation?: number; topPatternSize?: { width: number; height: number; }; sidePatternSize?: { width: number; height: number; }; } export interface IMaterialValue { url: string | null | undefined; color: string; opacity: number | string; lambert: boolean; side?: THREE.Side; } export interface IStrokeGeometryStyle { strokeLineCap: SOLID_LINE_CAP_TYPE; strokeLineJoin: SOLID_LINE_JOIN_TYPE; strokeMiterLimit: number; strokeWidth: number; depth: number; } export declare class MapObject3D extends THREE.Object3D implements IObject3D { children: any; $d3g: { transformSVGPath: ObjectConstructor; }; textureManager: TextureManager; private cameraType; constructor(textureManager: TextureManager, cameraType: CAMERA_TYPE); getMergedMesh(geometry: THREE.BufferGeometry, materialInfo: IShaderMaterialValue): Mesh; getMergedOutlineMesh(geometry: THREE.BufferGeometry): THREE.LineSegments; getMesh(geometry: THREE.BufferGeometry, materialInfo: any[], renderOrder?: number): Mesh; getMultiMaterials(materialInfo: IMaterialValue[]): any; getGeoFromShape(shape: THREE.Shape, depth: number, renderOrder?: number): THREE.ShapeGeometry | THREE.ExtrudeGeometry; getGeoFromPath(path: string, depth: number, renderOrder?: number): THREE.ShapeGeometry | THREE.ExtrudeGeometry; private addMaterial; drawOutline(svgObject: SvgObject): Group; drawObject(svgObject: SvgObject): Mesh; drawSvgObject(svgObject: SvgObject): THREE.Mesh[]; drawSvgOutline(svgObject: SvgObject): Group | null; getStrokeGeometryFromPoints(points: THREE.Vector2, lineStyle: IStrokeGeometryStyle): { strokeGeometry: THREE.BufferGeometry | null; isStrokeExtrude: boolean; }; updateTexture(svgObjectInfo: SvgObject, mesh: Mesh, direction: string): void; Start(): void; Update(): void; cleanup(): void; }