@realsee/dnalogel
Version:
60 lines (59 loc) • 2.25 kB
TypeScript
import * as THREE from 'three';
import { type OcclusionStyle, type LineStyle, type LengthConfig, type DisplayInfoConfig, type Color } from '../typings/style';
import { type AnyPositions } from '../../shared-utils/positionToVector3';
import { IObject3D } from '../../shared-utils/three/IObject3D';
import type { PointsData } from '../utils/data';
import { LightTag } from '../../shared-utils/tag';
import { LineGeometry } from '../../shared-utils/three/core/LineGeometry';
import { THREE_Line2 } from '../../shared-utils/three/core/Line2';
import { type RenderDomObjectType } from '../utils/renderDom';
export type LineMeshStyle = LineStyle & {
dashed?: boolean;
} & OcclusionStyle & Partial<LengthConfig> & Partial<DisplayInfoConfig>;
export type LineData = PointsData;
export declare class LineMesh extends IObject3D implements RenderDomObjectType {
name: string;
type: string;
object?: THREE.Object3D;
points: THREE.Vector3[];
doms: LightTag[];
get style(): LineMeshStyle;
get lineOpacity(): number;
get lineWidth(): number;
get color(): THREE.Color;
get dashed(): boolean;
get occlusionVisibility(): boolean;
get occlusionMode(): "depthTest" | "translucence";
protected highlighted: boolean;
private get five();
set geometry(geometry: LineGeometry);
get geometry(): LineGeometry;
private _geometry;
protected line1: THREE_Line2;
protected line2: THREE_Line2;
private opacityBeforeHighlight;
private colorBeforeHighlight;
private paramsStyle;
private lastRenderDomItem;
private lastFOV;
private fiveListenersInited;
private fiveRef?;
private initFiveListeners;
private removeFiveListeners;
constructor(params?: Partial<LineMeshStyle & LineData>);
updateMatrixWorld(force?: boolean): void;
setPoints(points: AnyPositions): void;
setResolution(width: number, height: number): void;
setStyle(params: Partial<LineMeshStyle>): void;
highlight(params?: {
color?: Color;
}): void;
unhighlight(): void;
_onAdded: () => void;
_onRemoved: () => void;
_onShowed: () => void;
_onHidden: () => void;
private updateDomItems;
private onCameraUpdate;
private onPanoArrived;
}