变更:矩形灯S拉伸过滤中心点

pull/1768/head
ChenX 3 years ago
parent a2e92c07f6
commit 7d4ebe2c54

@ -128,64 +128,78 @@ export class RectAreaLight extends Light
}
MoveStretchPoints(ids: number[], vec: Vector3)
{
if (ids.length === 4 || ids.length === 3)
if (ids.length === 4)
{
this.Move(vec);
return;
}
else if (ids.length === 1)
const MoveOneGrip = () =>
{
let i = ids[0];
if (i < 4)
this.MoveGripPoints(ids, vec);
else
this.MoveGripPoints([5], vec);
};
if (ids.length === 1)
{
MoveOneGrip();
return;
}
else//===2
//ids.length === 2,3
ids = ids.filter(i => i !== 4);//移除中心
if (ids.length === 1)
{
ids.sort((a1, a2) => a1 - a2);
let inv = this.OCSInv.setPosition(0, 0, 0);
vec = vec.clone().applyMatrix4(inv);
let ocs = inv.copy(this._Matrix).setPosition(0, 0, 0);
MoveOneGrip();
return;
}
if (ids[0] === 0)
//ids.length === 2
ids.sort((a1, a2) => a1 - a2);
let inv = this.OCSInv.setPosition(0, 0, 0);
vec = vec.clone().applyMatrix4(inv);
let ocs = inv.copy(this._Matrix).setPosition(0, 0, 0);
if (ids[0] === 0)
{
if (ids[1] === 1)//下
{
if (ids[1] === 1)//下
{
vec.x = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([0], vec);
}
else if (ids[1] === 3)//左
{
vec.y = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([0], vec);
}
vec.x = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([0], vec);
}
else if (ids[1] === 3)//左
{
vec.y = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([0], vec);
}
else if (ids[0] === 1)
}
else if (ids[0] === 1)
{
if (ids[1] === 2)//右
{
if (ids[1] === 2)//右
{
vec.y = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([1], vec);
}
vec.y = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([1], vec);
}
else if (ids[0] === 2)
}
else if (ids[0] === 2)
{
if (ids[1] === 3)//上
{
if (ids[1] === 3)//上
{
vec.x = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([2], vec);
}
vec.x = 0;
vec.z = 0;
vec.applyMatrix4(ocs);
this.MoveGripPoints([2], vec);
}
}
}

Loading…
Cancel
Save