Bläddra i källkod

Merge pull request #848 from dad72/patch-11

Update babylon.babylonFileLoader.ts
Temechon 9 år sedan
förälder
incheckning
a70d077101
1 ändrade filer med 35 tillägg och 47 borttagningar
  1. 35 47
      src/Loading/Plugins/babylon.babylonFileLoader.ts

+ 35 - 47
src/Loading/Plugins/babylon.babylonFileLoader.ts

@@ -1,13 +1,12 @@
-module BABYLON.Internals {
+module BABYLON.Internals {
 
 
     var parseMaterialById = (id, parsedData, scene, rootUrl) => {
     var parseMaterialById = (id, parsedData, scene, rootUrl) => {
-        for (var index = 0; index < parsedData.materials.length; index++) {
+        for (var index = 0, cache = parsedData.materials.length; index < cache; index++) {
             var parsedMaterial = parsedData.materials[index];
             var parsedMaterial = parsedData.materials[index];
             if (parsedMaterial.id === id) {
             if (parsedMaterial.id === id) {
                 return Material.Parse(parsedMaterial, scene, rootUrl);
                 return Material.Parse(parsedMaterial, scene, rootUrl);
             }
             }
         }
         }
-
         return null;
         return null;
     };
     };
 
 
@@ -19,12 +18,10 @@
                 return true;
                 return true;
             }
             }
         }
         }
-
         if (mesh.parentId && hierarchyIds.indexOf(mesh.parentId) !== -1) {
         if (mesh.parentId && hierarchyIds.indexOf(mesh.parentId) !== -1) {
             hierarchyIds.push(mesh.id);
             hierarchyIds.push(mesh.id);
             return true;
             return true;
         }
         }
-
         return false;
         return false;
     };
     };
 
 
@@ -37,7 +34,8 @@
             var loadedMaterialsIds = [];
             var loadedMaterialsIds = [];
             var hierarchyIds = [];
             var hierarchyIds = [];
             var index: number;
             var index: number;
-            for (index = 0; index < parsedData.meshes.length; index++) {
+			var cache: number;
+            for (index = 0, cache = parsedData.meshes.length; index < cache; index++) {
                 var parsedMesh = parsedData.meshes[index];
                 var parsedMesh = parsedData.meshes[index];
 
 
                 if (!meshesNames || isDescendantOf(parsedMesh, meshesNames, hierarchyIds)) {
                 if (!meshesNames || isDescendantOf(parsedMesh, meshesNames, hierarchyIds)) {
@@ -99,17 +97,15 @@
                     // Material ?
                     // Material ?
                     if (parsedMesh.materialId) {
                     if (parsedMesh.materialId) {
                         var materialFound = (loadedMaterialsIds.indexOf(parsedMesh.materialId) !== -1);
                         var materialFound = (loadedMaterialsIds.indexOf(parsedMesh.materialId) !== -1);
-
                         if (!materialFound && parsedData.multiMaterials) {
                         if (!materialFound && parsedData.multiMaterials) {
-                            for (var multimatIndex = 0; multimatIndex < parsedData.multiMaterials.length; multimatIndex++) {
+                            for (var multimatIndex = 0, multimatCache = parsedData.multiMaterials.length; multimatIndex < multimatCache; multimatIndex++) {
                                 var parsedMultiMaterial = parsedData.multiMaterials[multimatIndex];
                                 var parsedMultiMaterial = parsedData.multiMaterials[multimatIndex];
                                 if (parsedMultiMaterial.id === parsedMesh.materialId) {
                                 if (parsedMultiMaterial.id === parsedMesh.materialId) {
-                                    for (var matIndex = 0; matIndex < parsedMultiMaterial.materials.length; matIndex++) {
+                                    for (var matIndex = 0, matCache = parsedMultiMaterial.materials.length; matIndex < matCache; matIndex++) {
                                         var subMatId = parsedMultiMaterial.materials[matIndex];
                                         var subMatId = parsedMultiMaterial.materials[matIndex];
                                         loadedMaterialsIds.push(subMatId);
                                         loadedMaterialsIds.push(subMatId);
                                         parseMaterialById(subMatId, parsedData, scene, rootUrl);
                                         parseMaterialById(subMatId, parsedData, scene, rootUrl);
                                     }
                                     }
-
                                     loadedMaterialsIds.push(parsedMultiMaterial.id);
                                     loadedMaterialsIds.push(parsedMultiMaterial.id);
                                     Material.ParseMultiMaterial(parsedMultiMaterial, scene);
                                     Material.ParseMultiMaterial(parsedMultiMaterial, scene);
                                     materialFound = true;
                                     materialFound = true;
@@ -129,11 +125,9 @@
                     // Skeleton ?
                     // Skeleton ?
                     if (parsedMesh.skeletonId > -1 && scene.skeletons) {
                     if (parsedMesh.skeletonId > -1 && scene.skeletons) {
                         var skeletonAlreadyLoaded = (loadedSkeletonsIds.indexOf(parsedMesh.skeletonId) > -1);
                         var skeletonAlreadyLoaded = (loadedSkeletonsIds.indexOf(parsedMesh.skeletonId) > -1);
-
                         if (!skeletonAlreadyLoaded) {
                         if (!skeletonAlreadyLoaded) {
-                            for (var skeletonIndex = 0; skeletonIndex < parsedData.skeletons.length; skeletonIndex++) {
+                            for (var skeletonIndex = 0, skeletonCache = parsedData.skeletons.length; skeletonIndex < skeletonCache; skeletonIndex++) {
                                 var parsedSkeleton = parsedData.skeletons[skeletonIndex];
                                 var parsedSkeleton = parsedData.skeletons[skeletonIndex];
-
                                 if (parsedSkeleton.id === parsedMesh.skeletonId) {
                                 if (parsedSkeleton.id === parsedMesh.skeletonId) {
                                     skeletons.push(Skeleton.Parse(parsedSkeleton, scene));
                                     skeletons.push(Skeleton.Parse(parsedSkeleton, scene));
                                     loadedSkeletonsIds.push(parsedSkeleton.id);
                                     loadedSkeletonsIds.push(parsedSkeleton.id);
@@ -149,7 +143,7 @@
 
 
             // Connecting parents
             // Connecting parents
             var currentMesh: AbstractMesh;
             var currentMesh: AbstractMesh;
-            for (index = 0; index < scene.meshes.length; index++) {
+            for (index = 0, cache = scene.meshes.length; index < cache; index++) {
                 currentMesh = scene.meshes[index];
                 currentMesh = scene.meshes[index];
                 if (currentMesh._waitingParentId) {
                 if (currentMesh._waitingParentId) {
                     currentMesh.parent = scene.getLastEntryByID(currentMesh._waitingParentId);
                     currentMesh.parent = scene.getLastEntryByID(currentMesh._waitingParentId);
@@ -158,7 +152,7 @@
             }
             }
 
 
             // freeze world matrix application
             // freeze world matrix application
-            for (index = 0; index < scene.meshes.length; index++) {
+            for (index = 0, cache = scene.meshes.length; index < cache; index++) {
                 currentMesh = scene.meshes[index];
                 currentMesh = scene.meshes[index];
                 if (currentMesh._waitingFreezeWorldMatrix) {
                 if (currentMesh._waitingFreezeWorldMatrix) {
                     currentMesh.freezeWorldMatrix();
                     currentMesh.freezeWorldMatrix();
@@ -168,9 +162,8 @@
 
 
             // Particles
             // Particles
             if (parsedData.particleSystems) {
             if (parsedData.particleSystems) {
-                for (index = 0; index < parsedData.particleSystems.length; index++) {
+                for (index = 0, cache = parsedData.particleSystems.length; index < cache; index++) {
                     var parsedParticleSystem = parsedData.particleSystems[index];
                     var parsedParticleSystem = parsedData.particleSystems[index];
-
                     if (hierarchyIds.indexOf(parsedParticleSystem.emitterId) !== -1) {
                     if (hierarchyIds.indexOf(parsedParticleSystem.emitterId) !== -1) {
                         particleSystems.push(ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl));
                         particleSystems.push(ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl));
                     }
                     }
@@ -219,23 +212,24 @@
             }
             }
             scene.workerCollisions = !!parsedData.workerCollisions;            
             scene.workerCollisions = !!parsedData.workerCollisions;            
 
 
-            // Lights
             var index: number;
             var index: number;
-            for (index = 0; index < parsedData.lights.length; index++) {
+            var cache: number;
+			// Lights
+            for (index = 0, cache = parsedData.lights.length; index < cache; index++) {
                 var parsedLight = parsedData.lights[index];
                 var parsedLight = parsedData.lights[index];
                 Light.Parse(parsedLight, scene);
                 Light.Parse(parsedLight, scene);
             }
             }
 
 
             // Materials
             // Materials
             if (parsedData.materials) {
             if (parsedData.materials) {
-                for (index = 0; index < parsedData.materials.length; index++) {
+                for (index = 0, cache = parsedData.materials.length; index < cache; index++) {
                     var parsedMaterial = parsedData.materials[index];
                     var parsedMaterial = parsedData.materials[index];
                     Material.Parse(parsedMaterial, scene, rootUrl);
                     Material.Parse(parsedMaterial, scene, rootUrl);
                 }
                 }
             }
             }
 
 
             if (parsedData.multiMaterials) {
             if (parsedData.multiMaterials) {
-                for (index = 0; index < parsedData.multiMaterials.length; index++) {
+                for (index = 0, cache = parsedData.multiMaterials.length; index < cache; index++) {
                     var parsedMultiMaterial = parsedData.multiMaterials[index];
                     var parsedMultiMaterial = parsedData.multiMaterials[index];
                     Material.ParseMultiMaterial(parsedMultiMaterial, scene);
                     Material.ParseMultiMaterial(parsedMultiMaterial, scene);
                 }
                 }
@@ -243,7 +237,7 @@
 
 
             // Skeletons
             // Skeletons
             if (parsedData.skeletons) {
             if (parsedData.skeletons) {
-                for (index = 0; index < parsedData.skeletons.length; index++) {
+                for (index = 0, cache = parsedData.skeletons.length; index < cache; index++) {
                     var parsedSkeleton = parsedData.skeletons[index];
                     var parsedSkeleton = parsedData.skeletons[index];
                     Skeleton.Parse(parsedSkeleton, scene);
                     Skeleton.Parse(parsedSkeleton, scene);
                 }
                 }
@@ -255,7 +249,7 @@
                 // Boxes
                 // Boxes
                 var boxes = geometries.boxes;
                 var boxes = geometries.boxes;
                 if (boxes) {
                 if (boxes) {
-                    for (index = 0; index < boxes.length; index++) {
+                    for (index = 0, cache = boxes.length; index < cache; index++) {
                         var parsedBox = boxes[index];
                         var parsedBox = boxes[index];
                         Geometry.Primitives.Box.Parse(parsedBox, scene);
                         Geometry.Primitives.Box.Parse(parsedBox, scene);
                     }
                     }
@@ -264,7 +258,7 @@
                 // Spheres
                 // Spheres
                 var spheres = geometries.spheres;
                 var spheres = geometries.spheres;
                 if (spheres) {
                 if (spheres) {
-                    for (index = 0; index < spheres.length; index++) {
+                    for (index = 0, cache = spheres.length; index < cache; index++) {
                         var parsedSphere = spheres[index];
                         var parsedSphere = spheres[index];
                         Geometry.Primitives.Sphere.Parse(parsedSphere, scene);
                         Geometry.Primitives.Sphere.Parse(parsedSphere, scene);
                     }
                     }
@@ -273,7 +267,7 @@
                 // Cylinders
                 // Cylinders
                 var cylinders = geometries.cylinders;
                 var cylinders = geometries.cylinders;
                 if (cylinders) {
                 if (cylinders) {
-                    for (index = 0; index < cylinders.length; index++) {
+                    for (index = 0, cache = cylinders.length; index < cache; index++) {
                         var parsedCylinder = cylinders[index];
                         var parsedCylinder = cylinders[index];
                         Geometry.Primitives.Cylinder.Parse(parsedCylinder, scene);
                         Geometry.Primitives.Cylinder.Parse(parsedCylinder, scene);
                     }
                     }
@@ -282,7 +276,7 @@
                 // Toruses
                 // Toruses
                 var toruses = geometries.toruses;
                 var toruses = geometries.toruses;
                 if (toruses) {
                 if (toruses) {
-                    for (index = 0; index < toruses.length; index++) {
+                    for (index = 0, cache = toruses.length; index < cache; index++) {
                         var parsedTorus = toruses[index];
                         var parsedTorus = toruses[index];
                         Geometry.Primitives.Torus.Parse(parsedTorus, scene);
                         Geometry.Primitives.Torus.Parse(parsedTorus, scene);
                     }
                     }
@@ -291,7 +285,7 @@
                 // Grounds
                 // Grounds
                 var grounds = geometries.grounds;
                 var grounds = geometries.grounds;
                 if (grounds) {
                 if (grounds) {
-                    for (index = 0; index < grounds.length; index++) {
+                    for (index = 0, cache = grounds.length; index < cache; index++) {
                         var parsedGround = grounds[index];
                         var parsedGround = grounds[index];
                         Geometry.Primitives.Ground.Parse(parsedGround, scene);
                         Geometry.Primitives.Ground.Parse(parsedGround, scene);
                     }
                     }
@@ -300,7 +294,7 @@
                 // Planes
                 // Planes
                 var planes = geometries.planes;
                 var planes = geometries.planes;
                 if (planes) {
                 if (planes) {
-                    for (index = 0; index < planes.length; index++) {
+                    for (index = 0, cache = planes.length; index < cache; index++) {
                         var parsedPlane = planes[index];
                         var parsedPlane = planes[index];
                         Geometry.Primitives.Plane.Parse(parsedPlane, scene);
                         Geometry.Primitives.Plane.Parse(parsedPlane, scene);
                     }
                     }
@@ -309,7 +303,7 @@
                 // TorusKnots
                 // TorusKnots
                 var torusKnots = geometries.torusKnots;
                 var torusKnots = geometries.torusKnots;
                 if (torusKnots) {
                 if (torusKnots) {
-                    for (index = 0; index < torusKnots.length; index++) {
+                    for (index = 0, cache = torusKnots.length; index < cache; index++) {
                         var parsedTorusKnot = torusKnots[index];
                         var parsedTorusKnot = torusKnots[index];
                         Geometry.Primitives.TorusKnot.Parse(parsedTorusKnot, scene);
                         Geometry.Primitives.TorusKnot.Parse(parsedTorusKnot, scene);
                     }
                     }
@@ -318,7 +312,7 @@
                 // VertexData
                 // VertexData
                 var vertexData = geometries.vertexData;
                 var vertexData = geometries.vertexData;
                 if (vertexData) {
                 if (vertexData) {
-                    for (index = 0; index < vertexData.length; index++) {
+                    for (index = 0, cache = vertexData.length; index < cache; index++) {
                         var parsedVertexData = vertexData[index];
                         var parsedVertexData = vertexData[index];
                         Geometry.Parse(parsedVertexData, scene, rootUrl);
                         Geometry.Parse(parsedVertexData, scene, rootUrl);
                     }
                     }
@@ -326,23 +320,22 @@
             }
             }
 
 
             // Meshes
             // Meshes
-            for (index = 0; index < parsedData.meshes.length; index++) {
+            for (index = 0, cache = parsedData.meshes.length; index < cache; index++) {
                 var parsedMesh = parsedData.meshes[index];
                 var parsedMesh = parsedData.meshes[index];
                 Mesh.Parse(parsedMesh, scene, rootUrl);
                 Mesh.Parse(parsedMesh, scene, rootUrl);
             }
             }
 
 
             // Cameras
             // Cameras
-            for (index = 0; index < parsedData.cameras.length; index++) {
+            for (index = 0, cache = parsedData.cameras.length; index < cache; index++) {
                 var parsedCamera = parsedData.cameras[index];
                 var parsedCamera = parsedData.cameras[index];
                 Camera.Parse(parsedCamera, scene);
                 Camera.Parse(parsedCamera, scene);
             }
             }
-
             if (parsedData.activeCameraID) {
             if (parsedData.activeCameraID) {
                 scene.setActiveCameraByID(parsedData.activeCameraID);
                 scene.setActiveCameraByID(parsedData.activeCameraID);
             }
             }
 
 
             // Browsing all the graph to connect the dots
             // Browsing all the graph to connect the dots
-            for (index = 0; index < scene.cameras.length; index++) {
+            for (index = 0, cache = scene.cameras.length; index < cache; index++) {
                 var camera = scene.cameras[index];
                 var camera = scene.cameras[index];
                 if (camera._waitingParentId) {
                 if (camera._waitingParentId) {
                     camera.parent = scene.getLastEntryByID(camera._waitingParentId);
                     camera.parent = scene.getLastEntryByID(camera._waitingParentId);
@@ -350,7 +343,7 @@
                 }
                 }
             }
             }
 
 
-            for (index = 0; index < scene.lights.length; index++) {
+            for (index = 0, cache = scene.lights.length; index < cache; index++) {
                 var light = scene.lights[index];
                 var light = scene.lights[index];
                 if (light._waitingParentId) {
                 if (light._waitingParentId) {
                     light.parent = scene.getLastEntryByID(light._waitingParentId);
                     light.parent = scene.getLastEntryByID(light._waitingParentId);
@@ -360,19 +353,18 @@
 
 
             // Sounds
             // Sounds
             if (AudioEngine && parsedData.sounds) {
             if (AudioEngine && parsedData.sounds) {
-                for (index = 0; index < parsedData.sounds.length; index++) {
+                for (index = 0, cache = parsedData.sounds.length; index < cache; index++) {
                     var parsedSound = parsedData.sounds[index];
                     var parsedSound = parsedData.sounds[index];
                     if (Engine.audioEngine.canUseWebAudio) {
                     if (Engine.audioEngine.canUseWebAudio) {
                         Sound.Parse(parsedSound, scene, rootUrl);
                         Sound.Parse(parsedSound, scene, rootUrl);
-                    }
-                    else {
+                    } else {
                         var emptySound = new Sound(parsedSound.name, null, scene);
                         var emptySound = new Sound(parsedSound.name, null, scene);
                     }
                     }
                 }
                 }
             }
             }
 
 
             // Connect parents & children and parse actions
             // Connect parents & children and parse actions
-            for (index = 0; index < scene.meshes.length; index++) {
+            for (index = 0, cache = scene.meshes.length; index < cache; index++) {
                 var mesh = scene.meshes[index];
                 var mesh = scene.meshes[index];
                 if (mesh._waitingParentId) {
                 if (mesh._waitingParentId) {
                     mesh.parent = scene.getLastEntryByID(mesh._waitingParentId);
                     mesh.parent = scene.getLastEntryByID(mesh._waitingParentId);
@@ -385,7 +377,7 @@
             }
             }
 
 
             // freeze world matrix application
             // freeze world matrix application
-            for (index = 0; index < scene.meshes.length; index++) {
+            for (index = 0, cache = scene.meshes.length; index < cache; index++) {
                 var currentMesh = scene.meshes[index];
                 var currentMesh = scene.meshes[index];
                 if (currentMesh._waitingFreezeWorldMatrix) {
                 if (currentMesh._waitingFreezeWorldMatrix) {
                     currentMesh.freezeWorldMatrix();
                     currentMesh.freezeWorldMatrix();
@@ -395,7 +387,7 @@
 
 
             // Particles Systems
             // Particles Systems
             if (parsedData.particleSystems) {
             if (parsedData.particleSystems) {
-                for (index = 0; index < parsedData.particleSystems.length; index++) {
+                for (index = 0, cache = parsedData.particleSystems.length; index < cache; index++) {
                     var parsedParticleSystem = parsedData.particleSystems[index];
                     var parsedParticleSystem = parsedData.particleSystems[index];
                     ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);
                     ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);
                 }
                 }
@@ -403,7 +395,7 @@
 
 
             // Lens flares
             // Lens flares
             if (parsedData.lensFlareSystems) {
             if (parsedData.lensFlareSystems) {
-                for (index = 0; index < parsedData.lensFlareSystems.length; index++) {
+                for (index = 0, cache = parsedData.lensFlareSystems.length; index < cache; index++) {
                     var parsedLensFlareSystem = parsedData.lensFlareSystems[index];
                     var parsedLensFlareSystem = parsedData.lensFlareSystems[index];
                     LensFlareSystem.Parse(parsedLensFlareSystem, scene, rootUrl);
                     LensFlareSystem.Parse(parsedLensFlareSystem, scene, rootUrl);
                 }
                 }
@@ -411,9 +403,8 @@
 
 
             // Shadows
             // Shadows
             if (parsedData.shadowGenerators) {
             if (parsedData.shadowGenerators) {
-                for (index = 0; index < parsedData.shadowGenerators.length; index++) {
+                for (index = 0, cache = parsedData.shadowGenerators.length; index < cache; index++) {
                     var parsedShadowGenerator = parsedData.shadowGenerators[index];
                     var parsedShadowGenerator = parsedData.shadowGenerators[index];
-
                     ShadowGenerator.Parse(parsedShadowGenerator, scene);
                     ShadowGenerator.Parse(parsedShadowGenerator, scene);
                 }
                 }
             }
             }
@@ -428,6 +419,3 @@
         }
         }
     });
     });
 }
 }
-
-
-