更新rotate命令 支持ucs

pull/51/head^2
ChenX 7 years ago
parent d807548e9e
commit 1235180f4d

@ -3,6 +3,7 @@ import * as THREE from 'three';
import { app } from '../ApplicationServices/Application';
import { Command } from '../Editor/CommandMachine';
import { PromptStatus } from '../Editor/PromptResult';
import { Matrix4 } from 'three';
export class Command_Rotate implements Command
{
@ -20,12 +21,15 @@ export class Command_Rotate implements Command
{ return; }
let pt1 = ptRes.Value;
let ucsInv = new Matrix4().getInverse(app.m_Editor.UCSMatrix);
let pt1Ucs = pt1.clone().applyMatrix4(ucsInv);
app.m_Editor.m_CommandStore.Prompt("请输入第二个点:");
let an = 0;
ptRes = await app.m_Editor.GetPoint({
Callback: (p: THREE.Vector3) =>
{
let rov = p.clone().sub(pt1);
let pInv = p.clone().applyMatrix4(ucsInv);
let rov = pInv.sub(pt1Ucs);
let newan = Math.atan2(rov.y, rov.x);
if (!newan)
{
@ -38,7 +42,7 @@ export class Command_Rotate implements Command
moveMatInv.getInverse(moveMat);
let roMat = new THREE.Matrix4();
roMat.makeRotationAxis(new THREE.Vector3(0, 0, 1), newan - an);
roMat.makeRotationAxis(new THREE.Vector3(0, 0, 1).applyMatrix4(app.m_Editor.UCSMatrix), newan - an);
app.m_Viewer.m_OutlinePass.selectedObjects.forEach(o =>
{
@ -56,4 +60,4 @@ export class Command_Rotate implements Command
}
}
}

Loading…
Cancel
Save