浏览代码

Merge pull request #7814 from sebavan/master

BoundingBoxGizmo heterogenous scaling as option
sebavan 5 年之前
父节点
当前提交
cea8e5833f
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      src/Gizmos/boundingBoxGizmo.ts

+ 10 - 2
src/Gizmos/boundingBoxGizmo.ts

@@ -256,8 +256,10 @@ export class BoundingBoxGizmo extends Gizmo {
                     if (zeroAxisCount === 1 || zeroAxisCount === 3) {
                         continue;
                     }
+
                     let box = BoxBuilder.CreateBox("", { size: 1 }, gizmoLayer.utilityLayerScene);
                     box.material = this.coloredMaterial;
+                    box.metadata = zeroAxisCount === 2; // None homogenous scale handle
 
                     // Dragging logic
                     let dragAxis = new Vector3(i - 1, j - 1, k - 1);
@@ -542,10 +544,16 @@ export class BoundingBoxGizmo extends Gizmo {
     /**
      * Enables/disables scaling
      * @param enable if scaling should be enabled
+     * @param homogeneousScaling defines if scaling should only be homogeneous
      */
-    public setEnabledScaling(enable: boolean) {
+    public setEnabledScaling(enable: boolean, homogeneousScaling = false) {
         this._scaleBoxesParent.getChildMeshes().forEach((m, i) => {
-            m.setEnabled(enable);
+            let enableMesh = enable;
+            // Disable heterogenous scale handles if requested.
+            if (homogeneousScaling && m.metadata === true) {
+                enableMesh = false;
+            }
+            m.setEnabled(enableMesh);
         });
     }