瀏覽代碼

Merge pull request #495 from jbousquie/feature.Mesh.freezeNormals

added freezeNormals to createRibbon
David Catuhe 10 年之前
父節點
當前提交
0b23edbc94
共有 1 個文件被更改,包括 15 次插入1 次删除
  1. 15 1
      Babylon/Mesh/babylon.mesh.ts

+ 15 - 1
Babylon/Mesh/babylon.mesh.ts

@@ -67,6 +67,7 @@
         public _shouldGenerateFlatShading: boolean;
         public _shouldGenerateFlatShading: boolean;
         private _preActivateId: number;
         private _preActivateId: number;
         private _sideOrientation: number = Mesh._DEFAULTSIDE;
         private _sideOrientation: number = Mesh._DEFAULTSIDE;
+        private _areNormalsFrozen: boolean = false;
 
 
         /**
         /**
          * @constructor
          * @constructor
@@ -317,7 +318,19 @@
         public set sideOrientation(sideO: number) {
         public set sideOrientation(sideO: number) {
             this._sideOrientation = sideO;
             this._sideOrientation = sideO;
         }
         }
+        
+        public get areNormalsFrozen(): boolean {
+            return this._areNormalsFrozen;
+        }
+        
+        public freezeNormals(): void {
+            this._areNormalsFrozen = true;
+        }
 
 
+        public unfreezeNormals(): void {
+            this._areNormalsFrozen = false;
+        }
+        
         // Methods  
         // Methods  
         public _preActivate(): void {
         public _preActivate(): void {
             var sceneRenderId = this.getScene().getRenderId();
             var sceneRenderId = this.getScene().getRenderId();
@@ -1214,7 +1227,8 @@
                 };
                 };
                 var sideOrientation = ribbonInstance.sideOrientation;
                 var sideOrientation = ribbonInstance.sideOrientation;
                 var positionFunction = positionsOfRibbon(pathArray, sideOrientation);
                 var positionFunction = positionsOfRibbon(pathArray, sideOrientation);
-                ribbonInstance.updateMeshPositions(positionFunction, true);
+                var computeNormals = !(ribbonInstance.areNormalsFrozen);
+                ribbonInstance.updateMeshPositions(positionFunction, computeNormals);
 
 
                 return ribbonInstance;
                 return ribbonInstance;