修复:矩阵应用错误

pull/1771/MERGE
ChenX 3 years ago
parent b1ebca44e7
commit 76d1a595c4

@ -23,7 +23,7 @@ export class MoveX implements Command
let x = new Vector3().setFromMatrixColumn(ents[0].OCSNoClone, 0);
let pos = ents[0].Position;
let cloneEnts = ents.map(e => { let clone = JigUtils.Draw(e); e.DrawObject.visible = false; return clone; });
let jigEnts = ents.map(e => { let clone = JigUtils.Draw(e); e.DrawObject.visible = false; return clone; });
let xscale = x.clone().multiplyScalar(1e6);
let jigLine = new Line(pos.clone().add(xscale), pos.clone().sub(xscale));
@ -66,7 +66,7 @@ export class MoveX implements Command
for (let i = 0; i < ents.length; i++)
{
let pree = ents[i];
let e = cloneEnts[i];
let e = jigEnts[i];
e.OCSNoClone.copy(pree.OCSNoClone);
e.ApplyMatrix(moveMtx);
}

@ -80,8 +80,7 @@ export class ParsePlacePos
mtx.setPosition(moveVector);
}
this._Entity.OCSNoClone.copy(mtx);
this._Entity.Update(UpdateDraw.Matrix);
this._Entity.ApplyMatrix(this._Entity.OCSInv.premultiply(mtx));
}
else //在不平的平面上
{
@ -173,8 +172,7 @@ export class ParsePlacePos
mtx.setPosition(moveVector);
}
this._Entity.OCSNoClone.copy(mtx);
this._Entity.Update(UpdateDraw.Matrix);
this._Entity.ApplyMatrix(this._Entity.OCSInv.premultiply(mtx));
}
private GetRayObjects()

@ -7,7 +7,6 @@ import { DisposeThreeObj } from '../../Common/Dispose';
import { InputState } from '../../Common/InputState';
import { KeyCode, MouseKey } from '../../Common/KeyEnum';
import { MakeRotateMatrix4, MakeScaleMatrix, matrixScale } from '../../Common/Matrix4Utils';
import { UpdateDraw } from '../../Common/Status';
import { BlockTableRecord } from '../../DatabaseServices/BlockTableRecord';
import { CommandHistoryRecord } from '../../DatabaseServices/CommandHistoryRecord';
import { Curve } from '../../DatabaseServices/Entity/Curve';
@ -465,16 +464,14 @@ export class TransformServicess implements EditorService
{
let pree = this._Ents[0];
let e = pree.Clone();
e.OCSNoClone.copy(jigEns[0].OCSNoClone);
e.Update(UpdateDraw.Matrix);
e.ApplyMatrix(e.OCSInv.premultiply(jigEns[0].OCSNoClone));
let btr = pree.Owner.Object as BlockTableRecord;
btr.Append(e);
}
else
{
this._Ents[0].WriteAllObjectRecord();
this._Ents[0].OCSNoClone.copy(jigEns[0].OCSNoClone);
this._Ents[0].Update(UpdateDraw.Matrix);
this._Ents[0].ApplyMatrix(this._Ents[0].OCSInv.premultiply(jigEns[0].OCSNoClone));
}
}

Loading…
Cancel
Save