53 lines
2.0 KiB
TypeScript
53 lines
2.0 KiB
TypeScript
/** @module MxDbCloudLine*/
|
|
import McGiWorldDraw from '../McGiWorldDraw';
|
|
import MxDbEntity from '../MxDbEntity';
|
|
import drawMxDbCloudLine from './draw';
|
|
/**
|
|
* MxDbCloudLine 对象. 绘制任意的云线
|
|
*/
|
|
declare class MxDbCloudLine extends MxDbEntity {
|
|
static isRegister: boolean;
|
|
static cmd: string;
|
|
static draw: typeof drawMxDbCloudLine;
|
|
private points;
|
|
private radius;
|
|
private cachePoint;
|
|
getTypeName(): string;
|
|
create(): MxDbEntity;
|
|
/** 设置构成云线的每个圆弧半径长度
|
|
* @parma radius 圆弧半径
|
|
* */
|
|
setRadius(radius: number): void;
|
|
/**
|
|
* 获取云线的圆弧半径
|
|
* */
|
|
getRadius(): number;
|
|
getCachePoint(): THREE.Vector3[] | null;
|
|
private clacNewArcDiameterPoint;
|
|
private createCloudArcCurvePoints;
|
|
/**
|
|
* 添加云线的顶点坐标, 该顶点坐标会根据上一个构成云线的点计算出下一个云线的顶点位置
|
|
* @param pt 坐标位置
|
|
* @param isAddToDrawGeometry 如果为true 将立即添加顶点并绘制下一个圆弧
|
|
* */
|
|
addPoint(pt: THREE.Vector3, isAddToDrawGeometry?: boolean): void;
|
|
/**
|
|
* 绘制两点之间的云线(与addPoint不同的是它不是只绘制一个半圆弧,而是绘制两点之间相连接的所有半圆弧)
|
|
* @param pt1 云线开始点
|
|
* @param pt2 云线结束点
|
|
* */
|
|
addLine(pt1: THREE.Vector3, pt2: THREE.Vector3): import("three").Vector3;
|
|
/** 重新计算云线的的所有顶点坐标, 如绘制完云线后 重新设置了圆弧半径, 在worldDraw动态绘制时会调用该方法 */
|
|
reCalculateDrawGeometryPoint(): THREE.Vector3[] | null;
|
|
worldDraw(pWorldDraw: McGiWorldDraw): void;
|
|
/**
|
|
* 获取云线包围盒的中心点
|
|
* */
|
|
getCenter(): THREE.Vector3;
|
|
getGripPoints(): THREE.Vector3[];
|
|
moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
|
|
dwgIn(obj: any): boolean;
|
|
dwgOut(obj: any): object;
|
|
}
|
|
export default MxDbCloudLine;
|