From 0cebca6d6a799014f26d36d927f3c014142c1a67 Mon Sep 17 00:00:00 2001 From: Mohamad Moneimne Date: Thu, 1 Jun 2017 11:58:19 -0400 Subject: [PATCH] Added unit test from fromGltf and updated CHANGES.md --- CHANGES.md | 1 + .../CesiumTexturedBoxTest.gltf | 339 ++++++++++++++++++ Specs/Scene/ModelSpec.js | 12 + 3 files changed, 352 insertions(+) create mode 100644 Specs/Data/Models/Box-Textured-BasePath/CesiumTexturedBoxTest.gltf diff --git a/CHANGES.md b/CHANGES.md index 2a31206f654..476f5ccf07a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -21,6 +21,7 @@ Change Log * Fixed an issue where billboards were not properly aligned. [#2487](https://github.com/AnalyticalGraphicsInc/cesium/issues/2487) * Fixed an issue where translucent objects could flicker when picking on mouse move. [#5307](https://github.com/AnalyticalGraphicsInc/cesium/issues/5307) * Fixed a bug where billboards with sizeInMeters set to true would move upwards when zooming out. [#5373](https://github.com/AnalyticalGraphicsInc/cesium/issues/5373) +* Added `basePath` option to `Cesium.Model.fromGltf`. [#5320](https://github.com/AnalyticalGraphicsInc/cesium/issues/5320) ### 1.33 - 2017-05-01 diff --git a/Specs/Data/Models/Box-Textured-BasePath/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-BasePath/CesiumTexturedBoxTest.gltf new file mode 100644 index 00000000000..4d4c3c17879 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-BasePath/CesiumTexturedBoxTest.gltf @@ -0,0 +1,339 @@ +{ + "accessors": { + "accessor_21": { + "bufferView": "bufferView_29", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + "accessor_23": { + "bufferView": "bufferView_30", + "byteOffset": 0, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + "accessor_25": { + "bufferView": "bufferView_30", + "byteOffset": 288, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + "accessor_27": { + "bufferView": "bufferView_30", + "byteOffset": 576, + "byteStride": 8, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" + }, + "version": "1.0" + }, + "bufferViews": { + "bufferView_29": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 0, + "target": 34963 + }, + "bufferView_30": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 72, + "target": 34962 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "byteLength": 840, + "type": "arraybuffer", + "uri": "CesiumTexturedBoxTest.bin" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "Cesium_Logo_Flat.jpg" + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 + } + ] + } + }, + "nodes": { + "Geometry-mesh002Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "meshes": [ + "Geometry-mesh002" + ], + "name": "Mesh" + }, + "groupLocator030Node": { + "children": [ + "txtrLocator026Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Texture_Group" + }, + "node_3": { + "children": [ + "Geometry-mesh002Node", + "groupLocator030Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Y_UP_Transform" + }, + "txtrLocator026Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Cesium_Logo_Flat__Image___Texture_" + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "node_3" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "CesiumTexturedBoxTest0FS.glsl" + }, + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "CesiumTexturedBoxTest0VS.glsl" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 + }, + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 + }, + "normal": { + "semantic": "NORMAL", + "type": 35665 + }, + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 + }, + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 + } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 + } + } +} diff --git a/Specs/Scene/ModelSpec.js b/Specs/Scene/ModelSpec.js index 90325e25c8b..5328b82b5a3 100644 --- a/Specs/Scene/ModelSpec.js +++ b/Specs/Scene/ModelSpec.js @@ -80,6 +80,7 @@ defineSuite([ var boxNoIndicesUrl = './Data/Models/Box-NoIndices/box-noindices.gltf'; var texturedBoxUrl = './Data/Models/Box-Textured/CesiumTexturedBoxTest.gltf'; var texturedBoxSeparateUrl = './Data/Models/Box-Textured-Separate/CesiumTexturedBoxTest.gltf'; + var texturedBoxBasePathUrl = './Data/Models/Box-Textured-BasePath/CesiumTexturedBoxTest.gltf'; var texturedBoxKTXUrl = './Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf'; var texturedBoxKTXBinaryUrl = './Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb'; var texturedBoxKTXEmbeddedUrl = './Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf'; @@ -272,6 +273,17 @@ defineSuite([ expect(model._baseUri).toEndWith(params); }); + it('fromGltf cache key different when given base path', function() { + var url = texturedBoxBasePathUrl; + var basePath = './Data/Models/Box-Textured-Separate/'; + var model = Model.fromGltf({ + url: url, + basePath: basePath + }); + expect(model._basePath).toEndWith(basePath); + expect(model._cacheKey).toEndWith(basePath); + }); + it('renders', function() { verifyRender(texturedBoxModel); });