You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.4 KiB

4 weeks ago
function MyDynDrawCommentWorldDraw(pt1)
{
var _pt1 = pt1;
this.worldDraw = function(currentPoint)
{
this.drawLine(currentPoint,_pt1);
var sText = "测试Test";
var txtH = MxFun.screenCoordLong2Doc(50);
var ptTxt = new THREE.Vector3;
var dTxtWidth = txtH * 6.0;
ptTxt.x = currentPoint.x + txtH * 0.3 + dTxtWidth * 0.5;
ptTxt.y = currentPoint.y + txtH * 0.1 + txtH * 0.5;
this.drawText(sText,txtH,0.0,ptTxt);
var pt3 = new THREE.Vector3;
pt3.x = currentPoint.x + dTxtWidth;;
pt3.y = currentPoint.y
this.drawLine(pt3,currentPoint);
}
}
mxModule.regist(()=>{
MxFun.addCommand("Mx_Comment",()=>{
// ..
var getPoint = new MrxDbgUiPrPoint();
getPoint.go((status)=>{
if(status != 0)
{
console.log(status);
return;
}
var pt1 = getPoint.value();
getPoint.setBasePt(pt1);
getPoint.setUseBasePt(true);
MyDynDrawCommentWorldDraw.prototype = new McEdGetPointWorldDraw();
var worldDrawComment = new MyDynDrawCommentWorldDraw(getPoint.value());
getPoint.setUserDraw(worldDrawComment);
getPoint.go((status)=>{
if(status != 0)
{
console.log(status);
return;
}
var currentPoint = getPoint.value();
var scene = MxFun.getCurrentDraw().getDrawContainer();
var iColor = 0XFFFFFF;
scene.add(MxThreeJS.createLine(currentPoint,pt1,iColor));
var sText = "测试Test";
var txtH = MxFun.screenCoordLong2Doc(50);
var ptTxt = new THREE.Vector3;
var dTxtWidth = txtH * 6.0;
ptTxt.x = currentPoint.x + txtH * 0.3 + dTxtWidth * 0.5;
ptTxt.y = currentPoint.y + txtH * 0.1 + txtH * 0.5;
scene.add(MxThreeJS.creatTextSprite(sText,ptTxt,txtH,0.0,iColor) );
var pt3 = new THREE.Vector3;
pt3.x = currentPoint.x + dTxtWidth;;
pt3.y = currentPoint.y
scene.add(MxThreeJS.createLine(currentPoint,pt3,iColor));
MxFun.updateDisplay();
});
});
// ..
});
})