298 lines
5.8 KiB
TypeScript
298 lines
5.8 KiB
TypeScript
/** @module McGiWorldDraw*/
|
||
import McGiWorldDrawType from '../McGiWorldDrawType';
|
||
import MxDbEntity from '../MxDbEntity';
|
||
import MxDrawObject from '../MxDrawObject';
|
||
import { UnstableColor } from '../MxType';
|
||
/**
|
||
* McGiWorldDraw 用于构建一个动态绘制回调对象的规范接口
|
||
* @abstract 是 {@link MxDbEntity.worldDraw }必须实现的抽象回调方法中的回调对象 通过回调对象完成一些动态绘制任务
|
||
* @example ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
export default interface McGiWorldDraw {
|
||
/**
|
||
* 得到WorldDraw的绘制类型.
|
||
* @returns McGiWorldDrawType
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getType(): McGiWorldDrawType;
|
||
/**
|
||
* 绘制一个Three.js对象
|
||
* @param ent Three.js对象
|
||
* @returns void
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawEntity(ent: THREE.Object3D): void;
|
||
/**
|
||
* 返回动态绘制的控件对像
|
||
* @returns MxDrawObject
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getMxObject(): MxDrawObject;
|
||
/**
|
||
* 设置绘制颜色
|
||
* @param iColor 颜色值
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setColor(iColor: UnstableColor): void;
|
||
/**
|
||
* 返回绘制颜色
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getColor(): number;
|
||
/**
|
||
* 设置绘制的线宽
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setLineWidth(iLineWidth: number): void;
|
||
/**
|
||
* 返回绘制的线宽
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getLineWidth(): number;
|
||
/**
|
||
* 绘制直线
|
||
* @param pt1 第一个点 THREE.Vector3
|
||
* @param pt2 第二个点
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawLine(pt1: THREE.Vector3 | number, pt2: THREE.Vector3 | number, x2?: number, y2?: number): void;
|
||
/**
|
||
* 绘制连续的直线
|
||
* @param points 点数组
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawLines(points: THREE.Vector3[] | THREE.Vector2[]): void;
|
||
/**
|
||
* 根据几何数据绘制直线
|
||
* @param points 点数组
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawGeometryLines(geometry: THREE.Geometry): void;
|
||
/**
|
||
* 绘制圆
|
||
* @param cen 圆的中心点 THREE.Vector3
|
||
* @param dRadius 圆的半径
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawCircle(cen: THREE.Vector3, dRadius: number): void;
|
||
/**
|
||
* 绘文本
|
||
* @param sText 文本信息
|
||
* @param iSize 文字大小
|
||
* @param dAngle 角度
|
||
* @param pt 位置
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawText(sText: string, iSize: number, dAngle: number, pt: THREE.Vector3, width?: number, callGetFontStyle?: (iFontSize: number) => string): THREE.Sprite | null;
|
||
/**
|
||
* 设置DrawOrder,默认值为100.
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setRenderOrder(iRenderOrder: number): void;
|
||
/**
|
||
* 得到DrawOrder
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getRenderOrder(): number;
|
||
/**
|
||
* 设置宽度单位是屏幕像素,默认是屏幕像素,设置false,单位是Threejs坐标。
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setLineWidthIsPixels(isPixels: boolean): void;
|
||
/**
|
||
* 得到宽度单位
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getLineWidthIsPixels(): boolean;
|
||
/**
|
||
* 设置虚线显示数据。
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setDash(dDashArray: number, dDashRatio: number): void;
|
||
/**
|
||
* 得到虚线显示数据。
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getDash(): any;
|
||
/**
|
||
* 设置虚线显示
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setDashLineDisplay(isDashLine: boolean): void;
|
||
/**
|
||
*是否虚线显示
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
isDashLineDisplay(): boolean;
|
||
/**
|
||
*绘制选择线。
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawSelectLine(pt1: THREE.Vector3 | number, pt2: THREE.Vector3 | number, x2?: number, y2?: number): void;
|
||
/**
|
||
* 设置变换矩阵
|
||
* @param
|
||
*/
|
||
setMatrix(matrix: THREE.Matrix4 | null): void;
|
||
/**
|
||
* 返回变换矩阵
|
||
* @param
|
||
*/
|
||
getMatrix(): THREE.Matrix4 | null;
|
||
/**
|
||
*设置透明度
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setOpacity(opacity: number): void;
|
||
/**
|
||
*返回透明度
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
getOpacity(): number;
|
||
/**
|
||
*绘制纯色填充
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
drawSolid(points: THREE.Vector3[]): void;
|
||
/**
|
||
*把一个对象的绘图属性设置到当前绘图上下文
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setupForEntity(ent: MxDbEntity): void;
|
||
/**
|
||
*设置drawEntity函数,绘制的three.js对象,附加一个扩展数据,方便在后续选择对象,得到该扩展数据.、
|
||
*只会对一次的drawEntity调用有效.
|
||
* @returns
|
||
* @example
|
||
* ``` typescript
|
||
*
|
||
* ```
|
||
*
|
||
*/
|
||
setXData(xData: any): void;
|
||
}
|