108 lines
3.1 KiB
TypeScript
108 lines
3.1 KiB
TypeScript
import McGiWorldDraw from '../McGiWorldDraw';
|
|
import MxDbEntity from '../MxDbEntity';
|
|
import MxDbSVGText from '../MxDbSVGText';
|
|
import MxDrawObject from '../MxDrawObject';
|
|
import drawMxDbSVG from './draw';
|
|
/**
|
|
* MxDbSVG 绘制SVG图形.
|
|
*/
|
|
declare class MxDbSVG extends MxDbEntity {
|
|
static cmd: string;
|
|
static draw: typeof drawMxDbSVG;
|
|
private svgPos;
|
|
private svg;
|
|
private svgPath;
|
|
private svgSize;
|
|
private svgAlignmentRatio;
|
|
private imagePath;
|
|
private isLoadMaterialFromPath;
|
|
private material;
|
|
/** 延z轴旋转的数值 */
|
|
svgRotate: number;
|
|
/** 是否倒置SVG图形 */
|
|
svgReverse: boolean;
|
|
svgMirror: boolean;
|
|
private svgChildColor;
|
|
svgMargin: THREE.Vector2;
|
|
private isSvgDirtyLocation;
|
|
private isLoadFromPath;
|
|
private aryText;
|
|
private svgBoxSize;
|
|
/** 固定尺寸,图片和文字大小,取屏幕像素绘图单位。 */
|
|
fixedSize: boolean;
|
|
/**使用svg的颜色 */
|
|
useSvgColor: boolean;
|
|
setSvgChildColor(aryColor: number[]): void;
|
|
getSvgChildColor(): number[];
|
|
private calcVewSize;
|
|
calcSvgDrawRect(mxObj: MxDrawObject): any;
|
|
private calcImageDrawRect;
|
|
worldDraw(pWorldDraw: McGiWorldDraw): void;
|
|
/**
|
|
* 设置SVG的路径
|
|
* @param path 路径
|
|
* @param preload 是否提前加载SVG
|
|
* */
|
|
setSvgPath(path: string, preload?: boolean): Promise<void>;
|
|
/**
|
|
* 获取SVG的路径
|
|
* */
|
|
getSvgPath(): string;
|
|
/**
|
|
* 设置SVG显示位置
|
|
* @param pos THREE.Vector3
|
|
* */
|
|
setSvgPostion(pos: THREE.Vector3): void;
|
|
/** 设置图片路径
|
|
* @param sPath 路径
|
|
* */
|
|
setImagePath(sPath: string, material?: THREE.MeshLambertMaterial): void;
|
|
/** 获取图片路径 */
|
|
getImagePath(): string;
|
|
/**
|
|
* 获取SVG显示位置
|
|
* */
|
|
getSvgPostion(): THREE.Vector3;
|
|
/**
|
|
* 设置SVG大小
|
|
* @param size THREE.Vector2 x表示宽度y表示高度
|
|
* */
|
|
setSvgSize(size: THREE.Vector2): void;
|
|
getSvgSize(): THREE.Vector2;
|
|
/** 设置SVG 的调整比例
|
|
* @param alignmentRatio THREE.Vector2
|
|
* */
|
|
setSvgAlignmentRatio(alignmentRatio: THREE.Vector2): void;
|
|
getSvgAlignmentRatio(): THREE.Vector2;
|
|
/** 获取文字数组下标中的文字
|
|
* @param index 数组下标
|
|
* @return {@link MxDbSVGText}
|
|
* */
|
|
getText(index: number): MxDbSVGText | null;
|
|
/** 添加文字
|
|
* @param txt {@link MxDbSVGText}
|
|
* */
|
|
addText(txt: MxDbSVGText): void;
|
|
getGripPoints(): Array<THREE.Vector3>;
|
|
moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
|
|
private calcSvgPosition;
|
|
dwgIn(obj: any): boolean;
|
|
dwgOut(obj: any): object;
|
|
create(): MxDbSVG;
|
|
transformBy(mat: THREE.Matrix4): void;
|
|
getTypeName(): string;
|
|
/**
|
|
* 设置颜色
|
|
* @param color 颜色值
|
|
* */
|
|
setColor(color: number | string | THREE.Color): this;
|
|
/**
|
|
* 设置svg对象
|
|
* */
|
|
setSvg(svg: any): void;
|
|
private calcSvgBoxSize;
|
|
reComputeSVG(): void;
|
|
protected onViewChange(): boolean;
|
|
}
|
|
export default MxDbSVG;
|