CADViewComponent/dist/Dimension.js
2018-05-28 09:49:45 +08:00

46 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const three_1 = require("three");
const ColorPalette_1 = require("./ColorPalette");
const Text_1 = require("./Text");
const GeUtils_1 = require("./GeUtils");
/**
* 标注实体
*
* @export
* @class Dimension
* @extends {Group}
*/
class Dimension extends three_1.Group {
constructor(length, textHeight = 25, mirror = false, mirrorFoot = false) {
super();
let footLength = 60;
if (mirrorFoot) {
footLength = -footLength;
}
//针脚几何体
let lineGeo = new three_1.Geometry();
lineGeo.vertices.push(new three_1.Vector3(), new three_1.Vector3(0, footLength, 0));
//托盘几何体
let lineGeo2 = new three_1.Geometry();
lineGeo2.vertices.push(new three_1.Vector3(0, footLength), new three_1.Vector3(length, footLength, 0));
let material = ColorPalette_1.ColorMaterial.GetLineMaterial(5);
let line1 = new three_1.Line(lineGeo, material);
let line2 = new three_1.Line(lineGeo, material);
line2.position.x = length;
let line3 = new three_1.Line(lineGeo2, material);
let text = new Text_1.DbText(parseFloat(length.toFixed(2)).toString(), textHeight);
if (mirror) {
let roMat = new three_1.Matrix4().makeRotationZ(Math.PI);
text.applyMatrix(roMat);
text.applyMatrix(GeUtils_1.MoveMatrix(new three_1.Vector3(length * 0.5, footLength - textHeight * 0.1)));
}
else {
text.applyMatrix(GeUtils_1.MoveMatrix(new three_1.Vector3(length * 0.5, footLength * 1.1)));
}
this.add(text);
this.add(line1, line2, line3);
}
}
exports.Dimension = Dimension;
//# sourceMappingURL=Dimension.js.map