cesium 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. data/app/assets/javascripts/{Core/Core.profile.js → Assets/Assets.profile.js} +0 -0
  2. data/app/assets/javascripts/Assets/package.json +6 -0
  3. data/app/assets/javascripts/Cesium.js +369 -351
  4. data/app/assets/javascripts/Core/BoundingSphere.js +0 -4
  5. data/app/assets/javascripts/Core/Cartesian2.js +19 -0
  6. data/app/assets/javascripts/Core/Cartesian3.js +25 -2
  7. data/app/assets/javascripts/Core/Cartesian4.js +23 -0
  8. data/app/assets/javascripts/Core/CatmullRomSpline.js +1 -4
  9. data/app/assets/javascripts/Core/Clock.js +23 -30
  10. data/app/assets/javascripts/Core/CubicRealPolynomial.js +1 -4
  11. data/app/assets/javascripts/Core/EllipsoidTangentPlane.js +1 -1
  12. data/app/assets/javascripts/Core/EllipsoidalOccluder.js +159 -6
  13. data/app/assets/javascripts/Core/Extent.js +1 -1
  14. data/app/assets/javascripts/Core/ExtentTessellator.js +72 -19
  15. data/app/assets/javascripts/Core/Fullscreen.js +1 -4
  16. data/app/assets/javascripts/Core/HeightmapTessellator.js +2 -10
  17. data/app/assets/javascripts/Core/Iau2006XysData.js +9 -2
  18. data/app/assets/javascripts/Core/IntersectionTests.js +154 -2
  19. data/app/assets/javascripts/Core/JulianDate.js +1 -1
  20. data/app/assets/javascripts/Core/Math.js +7 -0
  21. data/app/assets/javascripts/Core/OrientationInterpolator.js +3 -6
  22. data/app/assets/javascripts/Core/Plane.js +1 -1
  23. data/app/assets/javascripts/Core/PolygonPipeline.js +135 -1
  24. data/app/assets/javascripts/Core/PolylinePipeline.js +2 -1
  25. data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +9 -11
  26. data/app/assets/javascripts/Core/Shapes.js +0 -2
  27. data/app/assets/javascripts/Core/Simon1994PlanetaryPositions.js +3 -6
  28. data/app/assets/javascripts/Core/TaskProcessor.js +2 -4
  29. data/app/assets/javascripts/Core/Transforms.js +0 -2
  30. data/app/assets/javascripts/Core/buildModuleUrl.js +17 -9
  31. data/app/assets/javascripts/Core/defaultValue.js +0 -0
  32. data/app/assets/javascripts/Core/freezeObject.js +0 -0
  33. data/app/assets/javascripts/Core/getImagePixels.js +0 -0
  34. data/app/assets/javascripts/Core/loadArrayBuffer.js +0 -0
  35. data/app/assets/javascripts/Core/loadImage.js +0 -0
  36. data/app/assets/javascripts/Core/throttleRequestByServer.js +0 -0
  37. data/app/assets/javascripts/Core/writeTextToCanvas.js +0 -0
  38. data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +14 -16
  39. data/app/assets/javascripts/DynamicScene/CzmlDataSource.js +197 -0
  40. data/app/assets/javascripts/DynamicScene/CzmlDefaults.js +10 -2
  41. data/app/assets/javascripts/DynamicScene/CzmlDirection.js +136 -0
  42. data/app/assets/javascripts/DynamicScene/DataSource.js +63 -0
  43. data/app/assets/javascripts/DynamicScene/DataSourceCollection.js +189 -0
  44. data/app/assets/javascripts/DynamicScene/DataSourceDisplay.js +225 -0
  45. data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +11 -11
  46. data/app/assets/javascripts/DynamicScene/DynamicClock.js +0 -4
  47. data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +12 -12
  48. data/app/assets/javascripts/DynamicScene/DynamicDirectionsProperty.js +5 -7
  49. data/app/assets/javascripts/DynamicScene/DynamicEllipsoid.js +0 -2
  50. data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +20 -22
  51. data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +10 -10
  52. data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +5 -7
  53. data/app/assets/javascripts/DynamicScene/DynamicObject.js +6 -0
  54. data/app/assets/javascripts/DynamicScene/DynamicObjectView.js +70 -2
  55. data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +1 -1
  56. data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +18 -20
  57. data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +12 -12
  58. data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +12 -12
  59. data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +0 -4
  60. data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +12 -12
  61. data/app/assets/javascripts/DynamicScene/DynamicVector.js +184 -0
  62. data/app/assets/javascripts/DynamicScene/DynamicVectorVisualizer.js +267 -0
  63. data/app/assets/javascripts/DynamicScene/DynamicVertexPositionsProperty.js +2 -6
  64. data/app/assets/javascripts/DynamicScene/processCzml.js +1 -3
  65. data/app/assets/javascripts/Renderer/Context.js +119 -86
  66. data/app/assets/javascripts/Renderer/CubeMap.js +39 -17
  67. data/app/assets/javascripts/Renderer/CubeMapFace.js +20 -10
  68. data/app/assets/javascripts/Renderer/DrawCommand.js +1 -1
  69. data/app/assets/javascripts/Renderer/PickFramebuffer.js +0 -2
  70. data/app/assets/javascripts/Renderer/PixelDatatype.js +9 -0
  71. data/app/assets/javascripts/Renderer/Renderbuffer.js +0 -2
  72. data/app/assets/javascripts/Renderer/ShaderProgram.js +91 -11
  73. data/app/assets/javascripts/Renderer/Texture.js +27 -2
  74. data/app/assets/javascripts/Renderer/UniformState.js +43 -14
  75. data/app/assets/javascripts/Renderer/VertexArray.js +87 -132
  76. data/app/assets/javascripts/Renderer/VertexArrayFacade.js +2 -2
  77. data/app/assets/javascripts/Scene/AnimationCollection.js +21 -17
  78. data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +0 -2
  79. data/app/assets/javascripts/Scene/Billboard.js +8 -51
  80. data/app/assets/javascripts/Scene/BillboardCollection.js +0 -6
  81. data/app/assets/javascripts/Scene/Camera.js +0 -2
  82. data/app/assets/javascripts/Scene/CameraController.js +81 -29
  83. data/app/assets/javascripts/Scene/CameraFlightPath.js +130 -72
  84. data/app/assets/javascripts/Scene/CentralBody.js +3 -16
  85. data/app/assets/javascripts/Scene/CentralBodySurface.js +12 -40
  86. data/app/assets/javascripts/Scene/CustomSensorVolume.js +0 -2
  87. data/app/assets/javascripts/Scene/DiscardMissingTileImagePolicy.js +0 -0
  88. data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +0 -10
  89. data/app/assets/javascripts/Scene/HeightmapTerrainData.js +0 -6
  90. data/app/assets/javascripts/Scene/ImageryLayer.js +0 -4
  91. data/app/assets/javascripts/Scene/ImageryLayerCollection.js +0 -0
  92. data/app/assets/javascripts/Scene/ImageryProvider.js +0 -0
  93. data/app/assets/javascripts/Scene/LabelCollection.js +0 -2
  94. data/app/assets/javascripts/Scene/PerspectiveFrustum.js +0 -8
  95. data/app/assets/javascripts/Scene/Polygon.js +30 -20
  96. data/app/assets/javascripts/Scene/Polyline.js +0 -4
  97. data/app/assets/javascripts/Scene/Scene.js +64 -18
  98. data/app/assets/javascripts/Scene/SceneTransforms.js +151 -0
  99. data/app/assets/javascripts/Scene/SceneTransitioner.js +0 -2
  100. data/app/assets/javascripts/Scene/ScreenSpaceCameraController.js +0 -4
  101. data/app/assets/javascripts/Scene/SensorVolumeCollection.js +0 -12
  102. data/app/assets/javascripts/Scene/Sun.js +180 -0
  103. data/app/assets/javascripts/Scene/SunPostProcess.js +417 -0
  104. data/app/assets/javascripts/Scene/Tile.js +0 -12
  105. data/app/assets/javascripts/Scene/TileProviderError.js +2 -8
  106. data/app/assets/javascripts/Scene/TileReplacementQueue.js +11 -11
  107. data/app/assets/javascripts/Scene/VRTheWorldTerrainProvider.js +0 -2
  108. data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +0 -2
  109. data/app/assets/javascripts/Scene/WebMercatorTilingScheme.js +0 -6
  110. data/app/assets/javascripts/Scene/sampleTerrain.js +0 -4
  111. data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +62 -0
  112. data/app/assets/javascripts/Shaders/BuiltinFunctions.js +62 -0
  113. data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +3 -0
  114. data/app/assets/javascripts/Shaders/CentralBodyVS.js +3 -0
  115. data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.glsl +1 -1
  116. data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.js +1 -1
  117. data/app/assets/javascripts/Shaders/PolylineVS.glsl +8 -5
  118. data/app/assets/javascripts/Shaders/PolylineVS.js +8 -5
  119. data/app/assets/javascripts/Shaders/PostProcessFilters/AdditiveBlend.glsl +17 -0
  120. data/app/assets/javascripts/Shaders/PostProcessFilters/AdditiveBlend.js +23 -0
  121. data/app/assets/javascripts/Shaders/PostProcessFilters/BrightPass.glsl +30 -0
  122. data/app/assets/javascripts/Shaders/PostProcessFilters/BrightPass.js +36 -0
  123. data/app/assets/javascripts/Shaders/PostProcessFilters/GaussianBlur1D.glsl +37 -0
  124. data/app/assets/javascripts/Shaders/PostProcessFilters/GaussianBlur1D.js +43 -0
  125. data/app/assets/javascripts/Shaders/PostProcessFilters/PassThrough.glsl +8 -0
  126. data/app/assets/javascripts/Shaders/PostProcessFilters/PassThrough.js +14 -0
  127. data/app/assets/javascripts/Shaders/SunFS.glsl +11 -0
  128. data/app/assets/javascripts/Shaders/SunFS.js +17 -0
  129. data/app/assets/javascripts/Shaders/SunVS.glsl +28 -0
  130. data/app/assets/javascripts/Shaders/SunVS.js +34 -0
  131. data/app/assets/javascripts/ThirdParty/when.js +0 -0
  132. data/app/assets/javascripts/Widgets/Animation/Animation.js +6 -10
  133. data/app/assets/javascripts/Widgets/Animation/AnimationViewModel.js +4 -14
  134. data/app/assets/javascripts/Widgets/BaseLayerPicker/BaseLayerPicker.js +3 -8
  135. data/app/assets/javascripts/Widgets/BaseLayerPicker/BaseLayerPickerViewModel.js +6 -7
  136. data/app/assets/javascripts/Widgets/CesiumWidget/CesiumWidget.js +5 -3
  137. data/app/assets/javascripts/Widgets/ClockViewModel.js +6 -7
  138. data/app/assets/javascripts/Widgets/Command.js +16 -0
  139. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +5 -21
  140. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +1 -1
  141. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +27 -62
  142. data/app/assets/javascripts/Widgets/{Fullscreen/FullscreenWidget.css → FullscreenButton/FullscreenButton.css} +3 -3
  143. data/app/assets/javascripts/Widgets/{Fullscreen/FullscreenWidget.js → FullscreenButton/FullscreenButton.js} +19 -23
  144. data/app/assets/javascripts/Widgets/{Fullscreen/FullscreenViewModel.js → FullscreenButton/FullscreenButtonViewModel.js} +16 -8
  145. data/app/assets/javascripts/Widgets/{Fullscreen → FullscreenButton}/lighter.css +3 -3
  146. data/app/assets/javascripts/Widgets/HomeButton/HomeButton.css +15 -0
  147. data/app/assets/javascripts/Widgets/HomeButton/HomeButton.js +82 -0
  148. data/app/assets/javascripts/Widgets/HomeButton/HomeButtonViewModel.js +139 -0
  149. data/app/assets/javascripts/Widgets/HomeButton/lighter.css +3 -0
  150. data/app/assets/javascripts/Widgets/SceneModePicker/SceneModePicker.js +3 -8
  151. data/app/assets/javascripts/Widgets/Timeline/Timeline.js +9 -11
  152. data/app/assets/javascripts/Widgets/createCommand.js +33 -9
  153. data/app/assets/javascripts/Widgets/lighter.css +2 -1
  154. data/app/assets/javascripts/Widgets/widgets.css +2 -1
  155. data/app/assets/javascripts/Workers/cesiumWorkerBootstrapper.js +0 -0
  156. data/app/assets/javascripts/Workers/createTaskProcessorWorker.js +0 -0
  157. data/app/assets/javascripts/Workers/createVerticesFromHeightmap.js +4 -15
  158. data/app/assets/javascripts/Workers/package.json +6 -0
  159. data/lib/cesium/version.rb +1 -1
  160. data/test/dummy/log/development.log +4884 -0
  161. data/test/dummy/tmp/cache/assets/B99/0B0/sprockets%2F4723632036683061b3298399d52922e7 +0 -0
  162. data/test/dummy/tmp/cache/assets/BF8/BC0/sprockets%2F1982805b53487d15554f20955019b8c4 +0 -0
  163. data/test/dummy/tmp/cache/assets/C07/150/sprockets%2F1b420211d4602737f80569030633dbf0 +0 -0
  164. data/test/dummy/tmp/cache/assets/C12/030/sprockets%2Fbd84b00d783150a219825433401a7946 +0 -0
  165. data/test/dummy/tmp/cache/assets/C21/2F0/sprockets%2F542b776b2358128506142733e2f7bc94 +0 -0
  166. data/test/dummy/tmp/cache/assets/C23/080/sprockets%2F7953320c0848d5564133365a6c3d728d +0 -0
  167. data/test/dummy/tmp/cache/assets/C26/5B0/sprockets%2F55b830337d0462859671b7e5447ed430 +0 -0
  168. data/test/dummy/tmp/cache/assets/C27/DA0/sprockets%2Fe49200d07769d24f54f721d890142818 +0 -0
  169. data/test/dummy/tmp/cache/assets/C40/040/sprockets%2F755e3952d9331b86782d4a7478a59299 +0 -0
  170. data/test/dummy/tmp/cache/assets/C42/440/sprockets%2F1b618402da380cb405d971458a874033 +0 -0
  171. data/test/dummy/tmp/cache/assets/C44/870/sprockets%2Fc7607e52811e723312c83d096c611c32 +0 -0
  172. data/test/dummy/tmp/cache/assets/C46/770/sprockets%2F9b6c82d0454ab5ba8727173860060324 +0 -0
  173. data/test/dummy/tmp/cache/assets/C46/E60/sprockets%2F151028e967f13248ca6121c9407242cf +0 -0
  174. data/test/dummy/tmp/cache/assets/C48/360/sprockets%2Fc966013651008025255f5b53b1d63f9e +0 -0
  175. data/test/dummy/tmp/cache/assets/C4A/020/sprockets%2F162d504e77459f0304b964139300cfe3 +0 -0
  176. data/test/dummy/tmp/cache/assets/C4A/2B0/sprockets%2F821c1d08482a9b936b661a56444551b3 +0 -0
  177. data/test/dummy/tmp/cache/assets/C53/040/sprockets%2F52411d26c4863636c7ae5b5090690f94 +0 -0
  178. data/test/dummy/tmp/cache/assets/C57/D10/sprockets%2F784e21cb5b634a598629115ef4685213 +0 -0
  179. data/test/dummy/tmp/cache/assets/C63/070/sprockets%2F8e770283d268526610e99264922dce9b +0 -0
  180. data/test/dummy/tmp/cache/assets/C64/730/sprockets%2F78fd706ba991f21a399070866616c297 +0 -0
  181. data/test/dummy/tmp/cache/assets/C6D/AC0/sprockets%2Fa1344c280c4d1518b6c15c357543247a +0 -0
  182. data/test/dummy/tmp/cache/assets/C76/F10/sprockets%2F536e031c5d9a257b602d38f8711480a2 +0 -0
  183. data/test/dummy/tmp/cache/assets/C7C/7C0/sprockets%2F951d4a02d8b2ce148765e618081a8036 +0 -0
  184. data/test/dummy/tmp/cache/assets/C80/780/sprockets%2F49930c35001a30c38745b89a6a86cf74 +0 -0
  185. data/test/dummy/tmp/cache/assets/C82/580/sprockets%2F8118f4526088ba8fd441f20317475d6b +0 -0
  186. data/test/dummy/tmp/cache/assets/C82/AA0/sprockets%2Fd83006c52345d7fe51216f1e577a8185 +0 -0
  187. data/test/dummy/tmp/cache/assets/C84/A30/sprockets%2F4867b0b9b390b58a539162663f95a11d +0 -0
  188. data/test/dummy/tmp/cache/assets/C85/310/sprockets%2Fc638d86c720815e5b635e0a3646e2186 +0 -0
  189. data/test/dummy/tmp/cache/assets/C85/A90/sprockets%2Fc1f8ee195823c02e7b7c623493141937 +0 -0
  190. data/test/dummy/tmp/cache/assets/C86/030/sprockets%2F0ad25c896165036167b94387675bcdd1 +0 -0
  191. data/test/dummy/tmp/cache/assets/C86/1D0/sprockets%2F27b505354597df6d366bbc531082e198 +0 -0
  192. data/test/dummy/tmp/cache/assets/C88/400/sprockets%2F9454b598601cfa56142892fc3f11e267 +0 -0
  193. data/test/dummy/tmp/cache/assets/C88/960/sprockets%2F50655bc2c86c7c3007756af818375e64 +0 -0
  194. data/test/dummy/tmp/cache/assets/C89/9E0/sprockets%2Fbc5d891273e7d61e56762000337868bf +0 -0
  195. data/test/dummy/tmp/cache/assets/C8B/0F0/sprockets%2F3317c35ce7597681091ac91985d08bb5 +0 -0
  196. data/test/dummy/tmp/cache/assets/C8B/A30/sprockets%2Fe20153c26552232703d0f4a5a60b10ed +0 -0
  197. data/test/dummy/tmp/cache/assets/C8E/1A0/sprockets%2F7937090f77385164f68c0ee252b26be5 +0 -0
  198. data/test/dummy/tmp/cache/assets/C8E/E40/sprockets%2F96aaf9af5e7906347880902610773bc5 +0 -0
  199. data/test/dummy/tmp/cache/assets/C92/5E0/sprockets%2F6638d8088cb498bf531942a54706ad85 +0 -0
  200. data/test/dummy/tmp/cache/assets/C92/E60/sprockets%2Fa80a146215a040d03e312a796c0b95f2 +0 -0
  201. data/test/dummy/tmp/cache/assets/C93/F70/sprockets%2F65f6452a7e17925ac0894c3e1858874c +0 -0
  202. data/test/dummy/tmp/cache/assets/C94/200/sprockets%2F8dae686ee6012f59a55568f381753237 +0 -0
  203. data/test/dummy/tmp/cache/assets/C94/230/sprockets%2Ff1065a9c342c30d071c501513a608e7a +0 -0
  204. data/test/dummy/tmp/cache/assets/C9B/D70/sprockets%2F3673a307810246b3d9e4ca84d3a8000a +0 -0
  205. data/test/dummy/tmp/cache/assets/C9F/CE0/sprockets%2F56383454ba44300671223dd6ab4b7ed3 +0 -0
  206. data/test/dummy/tmp/cache/assets/CA0/400/sprockets%2F416eb009b505cf50a4088253ba48268a +0 -0
  207. data/test/dummy/tmp/cache/assets/CA2/4E0/sprockets%2F064662810df01b94c2434af6f90161af +0 -0
  208. data/test/dummy/tmp/cache/assets/CA4/0A0/sprockets%2F482164b83a43ac07c4e351f2a936247b +0 -0
  209. data/test/dummy/tmp/cache/assets/CA5/F30/sprockets%2Fb2f70423bf51f566d201679bd037170e +0 -0
  210. data/test/dummy/tmp/cache/assets/CA9/5A0/sprockets%2F8282351dd11504a68cbc8500b7786cf2 +0 -0
  211. data/test/dummy/tmp/cache/assets/CA9/E20/sprockets%2F1ca84c82be52603a0c947256a38a0598 +0 -0
  212. data/test/dummy/tmp/cache/assets/CAA/D90/sprockets%2Fd477a5c2046351a0c462bb945e3954e5 +0 -0
  213. data/test/dummy/tmp/cache/assets/CB3/C00/sprockets%2F63c296a983bb460c9848035483be2cb2 +0 -0
  214. data/test/dummy/tmp/cache/assets/CB7/ED0/sprockets%2Ff8695d0f1536c18f414dfa467632323f +0 -0
  215. data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2F62d364e38ba9b500f8b1633367f782b9 +0 -0
  216. data/test/dummy/tmp/cache/assets/CB8/180/sprockets%2Fe66eae8997e04c4bf70531e166511662 +0 -0
  217. data/test/dummy/tmp/cache/assets/CB8/3D0/sprockets%2F82660934f515fc61a144b9c9cd39c482 +0 -0
  218. data/test/dummy/tmp/cache/assets/CB8/EA0/sprockets%2F9e63d365e2159c725d111698cc04a7e7 +0 -0
  219. data/test/dummy/tmp/cache/assets/CB8/EF0/sprockets%2Ff47909056b54fbb653c60c2b89746b07 +0 -0
  220. data/test/dummy/tmp/cache/assets/CB9/0C0/sprockets%2F4e8172b657637124dc8887da053dc90d +0 -0
  221. data/test/dummy/tmp/cache/assets/CBA/250/sprockets%2F39bb3860405888c9f3b4b35c738b940c +0 -0
  222. data/test/dummy/tmp/cache/assets/CBB/E80/sprockets%2F43b17645e39f018bc195bc9828f4b357 +0 -0
  223. data/test/dummy/tmp/cache/assets/CBC/520/sprockets%2Fc6485291750c5ad1b2498ad90498a67f +0 -0
  224. data/test/dummy/tmp/cache/assets/CBC/620/sprockets%2Fa222028f7794f7e9c619a390b389f0d3 +0 -0
  225. data/test/dummy/tmp/cache/assets/CBC/6C0/sprockets%2F464439bf5a0e28d80594ee09a9509f51 +0 -0
  226. data/test/dummy/tmp/cache/assets/CBC/6C0/sprockets%2F6f494cff47ee245d30168217542c66d6 +0 -0
  227. data/test/dummy/tmp/cache/assets/CBF/8B0/sprockets%2F5c98534d57c1e7f7d2926173d27e4d14 +0 -0
  228. data/test/dummy/tmp/cache/assets/CC0/170/sprockets%2F458478f2faf8559d5008ca28c64232f7 +0 -0
  229. data/test/dummy/tmp/cache/assets/CC0/640/sprockets%2Fd0118b2031c44248f899dc8f66784c9e +0 -0
  230. data/test/dummy/tmp/cache/assets/CC0/E60/sprockets%2F9731b0739ec7356b2e484cb427d6955f +0 -0
  231. data/test/dummy/tmp/cache/assets/CC4/B10/sprockets%2F55b1a4137e59cad5520e1f012eb29021 +0 -0
  232. data/test/dummy/tmp/cache/assets/CC4/B80/sprockets%2F5b090557c9468f93cc1ab77898ba2629 +0 -0
  233. data/test/dummy/tmp/cache/assets/CC7/0B0/sprockets%2Fa26009e31f9e68672f4fc7f873909a64 +0 -0
  234. data/test/dummy/tmp/cache/assets/CC7/370/sprockets%2F9603f587d0629697951e09f1d4fdaf25 +0 -0
  235. data/test/dummy/tmp/cache/assets/CCF/F90/sprockets%2F5829cbee03489d953e8a7f842925776b +0 -0
  236. data/test/dummy/tmp/cache/assets/CD3/250/sprockets%2F9982c13eacaf46622739beab50120614 +0 -0
  237. data/test/dummy/tmp/cache/assets/CD4/6A0/sprockets%2F46b43cd41eba3026e74fa4b450369707 +0 -0
  238. data/test/dummy/tmp/cache/assets/CD4/D20/sprockets%2F02e2c15292e6082a4626f13a4aa839ff +0 -0
  239. data/test/dummy/tmp/cache/assets/CD8/C00/sprockets%2F9090b24116705be9a907d1db3b66a65e +0 -0
  240. data/test/dummy/tmp/cache/assets/CD8/D40/sprockets%2F73570572f17300ebf2dda1ef2635149e +0 -0
  241. data/test/dummy/tmp/cache/assets/CD9/970/sprockets%2F136161482305ce48be8cb039cba47f64 +0 -0
  242. data/test/dummy/tmp/cache/assets/CD9/D90/sprockets%2F87979893cfde1b28afc60797a9948345 +0 -0
  243. data/test/dummy/tmp/cache/assets/CDC/B50/sprockets%2F0f1e213595a02089df9735ec41c3ee80 +0 -0
  244. data/test/dummy/tmp/cache/assets/CDD/4D0/sprockets%2F0f6b3e82dd3d95341ee015499e3072b3 +0 -0
  245. data/test/dummy/tmp/cache/assets/CDF/710/sprockets%2F16d775d6707a066df80d10cd1528ff33 +0 -0
  246. data/test/dummy/tmp/cache/assets/CE0/8E0/sprockets%2Ff8d73c0137e4da7517c4127b6e056d29 +0 -0
  247. data/test/dummy/tmp/cache/assets/CE1/A00/sprockets%2F168b4bf7364dfd883a5930302e0f554c +0 -0
  248. data/test/dummy/tmp/cache/assets/CE3/240/sprockets%2F018ba37f3cc68a07d752729e44e1790e +0 -0
  249. data/test/dummy/tmp/cache/assets/CE5/3C0/sprockets%2F51278e12fb2f83652a4698d0a7ffa625 +0 -0
  250. data/test/dummy/tmp/cache/assets/CE5/820/sprockets%2Fd5837a90d9d83d7208a14905e1f0f63d +0 -0
  251. data/test/dummy/tmp/cache/assets/CE5/A80/sprockets%2Ff284835027dd09004e65c8c7fcf4137d +0 -0
  252. data/test/dummy/tmp/cache/assets/CE5/F10/sprockets%2Fe9cf045465025d8527c83c3b93625fca +0 -0
  253. data/test/dummy/tmp/cache/assets/CE5/F80/sprockets%2F411e28ad08572cd67fcf1901569c45c8 +0 -0
  254. data/test/dummy/tmp/cache/assets/CE6/4A0/sprockets%2F9c04b8b8df7217a708732da4982a5f61 +0 -0
  255. data/test/dummy/tmp/cache/assets/CE7/650/sprockets%2F834b60044436456eefb9ce5cf7144d38 +0 -0
  256. data/test/dummy/tmp/cache/assets/CE7/970/sprockets%2Fc89cf760b663827c5e771b93d107b2c2 +0 -0
  257. data/test/dummy/tmp/cache/assets/CE7/A40/sprockets%2F2974c4aef7a04f06738c8f6a2066e292 +0 -0
  258. data/test/dummy/tmp/cache/assets/CE7/C70/sprockets%2F8627e999f207ce7214e0ab06afe86412 +0 -0
  259. data/test/dummy/tmp/cache/assets/CE8/AA0/sprockets%2Fd569f5f91016b77401782ef3b42de6a6 +0 -0
  260. data/test/dummy/tmp/cache/assets/CE8/C90/sprockets%2Fb58b83d1bc902887bc247af8336556c4 +0 -0
  261. data/test/dummy/tmp/cache/assets/CEA/860/sprockets%2F198736e2441a36cecc857814e7dda932 +0 -0
  262. data/test/dummy/tmp/cache/assets/CEB/0A0/sprockets%2Fa19152c9838b60787bad54bf0f5f6448 +0 -0
  263. data/test/dummy/tmp/cache/assets/CEB/B70/sprockets%2F139d9789a1a5e456ca4f796db15c5450 +0 -0
  264. data/test/dummy/tmp/cache/assets/CEB/B80/sprockets%2Fbd5b638965aac89832c75292e6c1435c +0 -0
  265. data/test/dummy/tmp/cache/assets/CEC/030/sprockets%2F15d996d59f6c9ce6c21f52604b903c71 +0 -0
  266. data/test/dummy/tmp/cache/assets/CEC/B30/sprockets%2F7cf9a1c683f008354d7837ea11439f6f +0 -0
  267. data/test/dummy/tmp/cache/assets/CEC/B60/sprockets%2F9dec0e0f236608a79f6690cf29211e59 +0 -0
  268. data/test/dummy/tmp/cache/assets/CED/500/sprockets%2F23db1088d6beb9cff9245e1648555294 +0 -0
  269. data/test/dummy/tmp/cache/assets/CED/5E0/sprockets%2F6e94c3343eb6f33eb4fd9803085d2983 +0 -0
  270. data/test/dummy/tmp/cache/assets/CED/730/sprockets%2Ffd2399e766d1a513490bd481898b2eb5 +0 -0
  271. data/test/dummy/tmp/cache/assets/CEE/920/sprockets%2F97c97b08d42738b583ed92b55c540a4f +0 -0
  272. data/test/dummy/tmp/cache/assets/CEE/C90/sprockets%2Fc66d1d80067892e2b17e3666f8255eec +0 -0
  273. data/test/dummy/tmp/cache/assets/CEF/160/sprockets%2F74caa14e02046241cad519b5c36c20a6 +0 -0
  274. data/test/dummy/tmp/cache/assets/CEF/F00/sprockets%2F8ac77338a1dc57bb32999653c561e74e +0 -0
  275. data/test/dummy/tmp/cache/assets/CF0/950/sprockets%2Fd08f99c34c161881adb05d342e8984f9 +0 -0
  276. data/test/dummy/tmp/cache/assets/CF1/980/sprockets%2Ffe3e06873a1d9f624947006e38fac498 +0 -0
  277. data/test/dummy/tmp/cache/assets/CF5/5C0/sprockets%2F64a4190014fe00d17e708fc02dfc2a32 +0 -0
  278. data/test/dummy/tmp/cache/assets/CF5/760/sprockets%2F681176b164b052212cabffc000e548ae +0 -0
  279. data/test/dummy/tmp/cache/assets/CF8/130/sprockets%2Fd519234d99322fc8c5e8d16d52e96d78 +0 -0
  280. data/test/dummy/tmp/cache/assets/CF8/8A0/sprockets%2Fa4144fea021936c315c3e315b56d6c2a +0 -0
  281. data/test/dummy/tmp/cache/assets/CF9/B70/sprockets%2F8144ebf49f85b18c46d90b897239b56e +0 -0
  282. data/test/dummy/tmp/cache/assets/CF9/EB0/sprockets%2F6b591f1a73b4b1b13410a5e3d0c2e488 +0 -0
  283. data/test/dummy/tmp/cache/assets/CFC/7F0/sprockets%2F6158d3ff6993e4c114a894dd371999ec +0 -0
  284. data/test/dummy/tmp/cache/assets/CFD/160/sprockets%2Fc63d29c7bc89b27fc00430230ba1d383 +0 -0
  285. data/test/dummy/tmp/cache/assets/CFD/750/sprockets%2Ff86ed3e35003369a86787f9cb98de345 +0 -0
  286. data/test/dummy/tmp/cache/assets/CFF/FC0/sprockets%2Ff34d34ffdba26c9d04860c02d6412107 +0 -0
  287. data/test/dummy/tmp/cache/assets/D00/5D0/sprockets%2F02f5e8429793cb8b4b69d38f8a7395e9 +0 -0
  288. data/test/dummy/tmp/cache/assets/D00/690/sprockets%2F488324fb426a1e3cb3ca16488caf4004 +0 -0
  289. data/test/dummy/tmp/cache/assets/D01/6F0/sprockets%2F740aff323f074082319acda2a34e781e +0 -0
  290. data/test/dummy/tmp/cache/assets/D02/320/sprockets%2F95d58a54f71758967c19cec8367ceb83 +0 -0
  291. data/test/dummy/tmp/cache/assets/D02/4C0/sprockets%2F6386d72b2c51c911a7fd84ba612430cc +0 -0
  292. data/test/dummy/tmp/cache/assets/D02/9C0/sprockets%2F65be886f420229fb150c2c10ea747c1b +0 -0
  293. data/test/dummy/tmp/cache/assets/D03/B80/sprockets%2F31dd24009526a39382b08eee51c6ad5c +0 -0
  294. data/test/dummy/tmp/cache/assets/D05/8A0/sprockets%2Fd1e45653c3a4190fb4dcc1b690781a55 +0 -0
  295. data/test/dummy/tmp/cache/assets/D06/590/sprockets%2F19c899c20cf5d9b8629878e3add89708 +0 -0
  296. data/test/dummy/tmp/cache/assets/D06/A70/sprockets%2Ff5da4e04222a35db9d267255424bf5c6 +0 -0
  297. data/test/dummy/tmp/cache/assets/D07/7F0/sprockets%2F3fb0ed6b32aa83a6878d12a209c38824 +0 -0
  298. data/test/dummy/tmp/cache/assets/D07/BF0/sprockets%2F47962bb2378ffb6010aaa3c0238f6d66 +0 -0
  299. data/test/dummy/tmp/cache/assets/D07/DC0/sprockets%2Fcf13f583677aa0343a26a3c58d25b1e8 +0 -0
  300. data/test/dummy/tmp/cache/assets/D09/020/sprockets%2F5176362c460747d5ebeb6c2ca3e02d84 +0 -0
  301. data/test/dummy/tmp/cache/assets/D09/7F0/sprockets%2Fa2d67c31222348f16a9812df26da3e8d +0 -0
  302. data/test/dummy/tmp/cache/assets/D0A/DD0/sprockets%2F00e49bc1f2658a16cb7682a0a8e95c16 +0 -0
  303. data/test/dummy/tmp/cache/assets/D0B/3E0/sprockets%2F66c11f02337c8851bfab67bbb3b94916 +0 -0
  304. data/test/dummy/tmp/cache/assets/D0B/E20/sprockets%2Ffabf936c2485109116fb25a3a277b28f +0 -0
  305. data/test/dummy/tmp/cache/assets/D0C/2E0/sprockets%2Fecb35ec370e250a63784c2f508b76a38 +0 -0
  306. data/test/dummy/tmp/cache/assets/D0E/010/sprockets%2F797b9e08c55a2106f8e2dace455710d0 +0 -0
  307. data/test/dummy/tmp/cache/assets/D0E/180/sprockets%2F045e183281dfc37485db513d585c5bdb +0 -0
  308. data/test/dummy/tmp/cache/assets/D0E/4E0/sprockets%2Fb2cdbc63ab95b474d109990759329a2a +0 -0
  309. data/test/dummy/tmp/cache/assets/D0E/7B0/sprockets%2Faf821bc72620991b57062886abfc0f8a +0 -0
  310. data/test/dummy/tmp/cache/assets/D0E/A90/sprockets%2F4ed87cbd33472d8a68d129e7c0a24045 +0 -0
  311. data/test/dummy/tmp/cache/assets/D0E/E40/sprockets%2Fdc478cae3337db897210c13c9c711e82 +0 -0
  312. data/test/dummy/tmp/cache/assets/D0F/590/sprockets%2F0602a50a4d729e9be6e2589d62d028bf +0 -0
  313. data/test/dummy/tmp/cache/assets/D10/890/sprockets%2Fdfa76c032ef4cb2636762a847488e0a2 +0 -0
  314. data/test/dummy/tmp/cache/assets/D11/FC0/sprockets%2F9bd6c83d367423fe05ef6c3338143aa6 +0 -0
  315. data/test/dummy/tmp/cache/assets/D12/1C0/sprockets%2F5901cb9faf1725dd2e472ca2965b4287 +0 -0
  316. data/test/dummy/tmp/cache/assets/D13/520/sprockets%2F3316346df1f7f5ff0202f8d5b4742de7 +0 -0
  317. data/test/dummy/tmp/cache/assets/D13/690/sprockets%2F305c399e52a63447a7be45c4d5d3dd74 +0 -0
  318. data/test/dummy/tmp/cache/assets/D13/6B0/sprockets%2F0975ed2a9d299bf1c719b3b1137e581b +0 -0
  319. data/test/dummy/tmp/cache/assets/D14/340/sprockets%2F4d057c80e80694c2c4d637ecd538bc08 +0 -0
  320. data/test/dummy/tmp/cache/assets/D14/BD0/sprockets%2Ffc2255112852fb55d96d41a92f8fb6b6 +0 -0
  321. data/test/dummy/tmp/cache/assets/D15/BD0/sprockets%2Fb15d82cc0a8387b5333c89a746d49f0e +0 -0
  322. data/test/dummy/tmp/cache/assets/D16/420/sprockets%2Fc1439b84cda5475e55f3d8da6071467c +0 -0
  323. data/test/dummy/tmp/cache/assets/D17/6C0/sprockets%2F69144d8b21e495ac17e4994fdfa3a803 +0 -0
  324. data/test/dummy/tmp/cache/assets/D19/680/sprockets%2Fcd3a545b89d274cfd328f4d341f96272 +0 -0
  325. data/test/dummy/tmp/cache/assets/D19/760/sprockets%2F6cb307be30e1d67f838e8d11a0678d89 +0 -0
  326. data/test/dummy/tmp/cache/assets/D19/AD0/sprockets%2F113bd6f12a1645dc5cc6a10bb3045b15 +0 -0
  327. data/test/dummy/tmp/cache/assets/D1B/210/sprockets%2F92ebfed0378e79e9bc22e628733d4042 +0 -0
  328. data/test/dummy/tmp/cache/assets/D1B/A60/sprockets%2F0f13887548f4f3b551c8c4a4b487e6bd +0 -0
  329. data/test/dummy/tmp/cache/assets/D1E/360/sprockets%2F4a6a3690f7ffd0ee9f19758978b3a200 +0 -0
  330. data/test/dummy/tmp/cache/assets/D1E/370/sprockets%2F99ee518676e86a61ec0dca0706665c5d +0 -0
  331. data/test/dummy/tmp/cache/assets/D1F/5D0/sprockets%2Fce9e23d48e27f794d23915d707fb9b03 +0 -0
  332. data/test/dummy/tmp/cache/assets/D20/A50/sprockets%2F4783e2bd28795d2da95bb0e195d9735e +0 -0
  333. data/test/dummy/tmp/cache/assets/D22/0B0/sprockets%2F9dfda36b032e59892637b875d7af392b +0 -0
  334. data/test/dummy/tmp/cache/assets/D22/2C0/sprockets%2Fe42d5d90d467a803999bdec116955f8b +0 -0
  335. data/test/dummy/tmp/cache/assets/D22/820/sprockets%2F1bc531079d5acc4c26b027b910b2af42 +0 -0
  336. data/test/dummy/tmp/cache/assets/D22/D40/sprockets%2Fc4121b103539f9c9fa321f05b1cb0a6b +0 -0
  337. data/test/dummy/tmp/cache/assets/D23/610/sprockets%2F0e51cca080cc65e62e080941b232a1ed +0 -0
  338. data/test/dummy/tmp/cache/assets/D25/C00/sprockets%2Ff63d097054df34bc660bdf98f7661b99 +0 -0
  339. data/test/dummy/tmp/cache/assets/D25/E40/sprockets%2F72fe6a6283eff449a28d79d8c33494d0 +0 -0
  340. data/test/dummy/tmp/cache/assets/D2A/6F0/sprockets%2Fd6e43c7223231cda4b71e82ba285bd40 +0 -0
  341. data/test/dummy/tmp/cache/assets/D2D/E40/sprockets%2Faf21fa3d26ad3f68a23532178e20fb15 +0 -0
  342. data/test/dummy/tmp/cache/assets/D2F/100/sprockets%2F8c0286ee70744ca12c7c12a563de4b2a +0 -0
  343. data/test/dummy/tmp/cache/assets/D2F/770/sprockets%2F02fc9c6163ec87ca3301a8ed104a5d63 +0 -0
  344. data/test/dummy/tmp/cache/assets/D30/5C0/sprockets%2F22dfce18279e968c8824f70808e6fce8 +0 -0
  345. data/test/dummy/tmp/cache/assets/D30/9E0/sprockets%2F0d913be407e5e0c8732bc2c4ed6e2160 +0 -0
  346. data/test/dummy/tmp/cache/assets/D34/020/sprockets%2F99d101b09145af7ac80cdd219ee4730b +0 -0
  347. data/test/dummy/tmp/cache/assets/D35/120/sprockets%2Fee634821c4051385267b64ef5dcba3aa +0 -0
  348. data/test/dummy/tmp/cache/assets/D36/7F0/sprockets%2F78e0c63f0043ae6e6536ec504cc23a9b +0 -0
  349. data/test/dummy/tmp/cache/assets/D36/E70/sprockets%2F69b00a4118d012bf6d7cf293b5f316ff +0 -0
  350. data/test/dummy/tmp/cache/assets/D39/3A0/sprockets%2F2e21042d01b594dd46e5a7b2bece9389 +0 -0
  351. data/test/dummy/tmp/cache/assets/D3A/7B0/sprockets%2Ff812a5e25abeb03b136494656f3b79bc +0 -0
  352. data/test/dummy/tmp/cache/assets/D3A/A00/sprockets%2F1077cd94fef55fbb01ce529612180bd5 +0 -0
  353. data/test/dummy/tmp/cache/assets/D3A/ED0/sprockets%2F5ae1cf0266d63b8eb0647535ca93b63d +0 -0
  354. data/test/dummy/tmp/cache/assets/D3C/640/sprockets%2F42e7a70bb8be9398385afb3c4742aa04 +0 -0
  355. data/test/dummy/tmp/cache/assets/D3C/BB0/sprockets%2Ff498d519cb8ac1895bb3aa90117d424a +0 -0
  356. data/test/dummy/tmp/cache/assets/D3D/A60/sprockets%2Fc1ddc173463642dde6a64d0ae5518c79 +0 -0
  357. data/test/dummy/tmp/cache/assets/D3E/940/sprockets%2F5ed82a03c1de5c34135b67ff053787ec +0 -0
  358. data/test/dummy/tmp/cache/assets/D3E/CF0/sprockets%2Ffdaaeb4c030471898b22f8c144f76b56 +0 -0
  359. data/test/dummy/tmp/cache/assets/D3F/050/sprockets%2Fab4aa96dbce1e6b359f2658118291d90 +0 -0
  360. data/test/dummy/tmp/cache/assets/D3F/350/sprockets%2Fc430fa77be69b17f1c9d6c01d667501f +0 -0
  361. data/test/dummy/tmp/cache/assets/D3F/6B0/sprockets%2Fd4c6072434f9fab0ef336571f108efb6 +0 -0
  362. data/test/dummy/tmp/cache/assets/D3F/E10/sprockets%2Ff8492202733ea4a4f67065c95eec1beb +0 -0
  363. data/test/dummy/tmp/cache/assets/D40/D10/sprockets%2F7af151c9b6080d9285fe058ae6d40c4d +0 -0
  364. data/test/dummy/tmp/cache/assets/D41/8A0/sprockets%2Fbc7ce77806517ea173350e6a4d8c55db +0 -0
  365. data/test/dummy/tmp/cache/assets/D42/140/sprockets%2F1cb73727ffa2680da8200ea7abf78669 +0 -0
  366. data/test/dummy/tmp/cache/assets/D42/DC0/sprockets%2F6c6197617cfb36bcc7bac0477815a3f5 +0 -0
  367. data/test/dummy/tmp/cache/assets/D43/6F0/sprockets%2F38649a8cba0b6c9788cb58f6e03da040 +0 -0
  368. data/test/dummy/tmp/cache/assets/D43/FE0/sprockets%2F5d585d195aa6c45453c7d8125fcb1dc8 +0 -0
  369. data/test/dummy/tmp/cache/assets/D44/4B0/sprockets%2F0eecb09395e147d5b94245d54cc8d6d2 +0 -0
  370. data/test/dummy/tmp/cache/assets/D45/3B0/sprockets%2Fd26b5a0d570ef57d06df6f032e9b8980 +0 -0
  371. data/test/dummy/tmp/cache/assets/D46/600/sprockets%2F1c942ecb30874a3f9e9fea418725ab75 +0 -0
  372. data/test/dummy/tmp/cache/assets/D46/770/sprockets%2F96355435f9ab8090c2d3e4f0ddd9b7c3 +0 -0
  373. data/test/dummy/tmp/cache/assets/D46/8A0/sprockets%2F49683a7741a9baf859c3aa7ff32a417b +0 -0
  374. data/test/dummy/tmp/cache/assets/D46/930/sprockets%2F3f7e8c9b45f15625db37da7d7325dc05 +0 -0
  375. data/test/dummy/tmp/cache/assets/D46/C80/sprockets%2Ff4ba1c28702e084d8c375097c78aea9e +0 -0
  376. data/test/dummy/tmp/cache/assets/D47/670/sprockets%2F95284b12addf9c46e49d92031ace56d8 +0 -0
  377. data/test/dummy/tmp/cache/assets/D47/8F0/sprockets%2F1cc6e49382be4f74cbb97821ae1928c4 +0 -0
  378. data/test/dummy/tmp/cache/assets/D47/AC0/sprockets%2Fcb9189183de4d74faa04d6ad1347964f +0 -0
  379. data/test/dummy/tmp/cache/assets/D48/250/sprockets%2F84991347702fd5edbb2ebb5515963ece +0 -0
  380. data/test/dummy/tmp/cache/assets/D48/2F0/sprockets%2F6b79e4839df89b4abb51c2c6105d15e8 +0 -0
  381. data/test/dummy/tmp/cache/assets/D48/960/sprockets%2F90e2c11ff8fd31e591b9fd39932631bf +0 -0
  382. data/test/dummy/tmp/cache/assets/D4A/DE0/sprockets%2F45bff385904356cf5b4852a8ef07e1fb +0 -0
  383. data/test/dummy/tmp/cache/assets/D4E/5A0/sprockets%2Ffb32d449b4bc8d5193d5daf6838f1667 +0 -0
  384. data/test/dummy/tmp/cache/assets/D4E/6C0/sprockets%2Fedd9cf282af0f00637e5273c8c3888b9 +0 -0
  385. data/test/dummy/tmp/cache/assets/D50/810/sprockets%2Fee536e389f63f834aece59d21801d36f +0 -0
  386. data/test/dummy/tmp/cache/assets/D50/ED0/sprockets%2F5332ba66dc2dfa796617ee96ce9d9900 +0 -0
  387. data/test/dummy/tmp/cache/assets/D51/230/sprockets%2F742ba6ca9f84d98ffc38ca5687c05155 +0 -0
  388. data/test/dummy/tmp/cache/assets/D53/440/sprockets%2F2def445147b9f5d6363f6f6d497d2f0e +0 -0
  389. data/test/dummy/tmp/cache/assets/D53/530/sprockets%2F59ee24852d9e4f5fbc71c76d036ec773 +0 -0
  390. data/test/dummy/tmp/cache/assets/D53/E50/sprockets%2Fb969596338bb3970b4d09a9bf1dd4ff6 +0 -0
  391. data/test/dummy/tmp/cache/assets/D54/0D0/sprockets%2F448752db3a53dd453db1b01de121ebd2 +0 -0
  392. data/test/dummy/tmp/cache/assets/D54/210/sprockets%2F685458463f9ac9566ebff2e93bbc920b +0 -0
  393. data/test/dummy/tmp/cache/assets/D56/140/sprockets%2F20a89c927f3ff593ebf3349f31f39e9a +0 -0
  394. data/test/dummy/tmp/cache/assets/D56/1F0/sprockets%2F291fcb7a26ff3aac6bc1404e0a247242 +0 -0
  395. data/test/dummy/tmp/cache/assets/D56/BA0/sprockets%2Fed013a2db663133e834b255e3aff20da +0 -0
  396. data/test/dummy/tmp/cache/assets/D59/070/sprockets%2F822cd47e69d40ba87f95181fdd698ed5 +0 -0
  397. data/test/dummy/tmp/cache/assets/D5D/120/sprockets%2F1d71e8cf1b3ca05ca8165a84a90bb615 +0 -0
  398. data/test/dummy/tmp/cache/assets/D5F/7F0/sprockets%2Fabbcc55042a82b42c900c09d59de4c29 +0 -0
  399. data/test/dummy/tmp/cache/assets/D5F/A30/sprockets%2F1b6a076e9dfac220107d3ec6b4a3b766 +0 -0
  400. data/test/dummy/tmp/cache/assets/D61/180/sprockets%2F8d15744bb332d6b8b1ffef2ce0315c04 +0 -0
  401. data/test/dummy/tmp/cache/assets/D62/2E0/sprockets%2F51a06ddef9bd05b405fd605d37be3154 +0 -0
  402. data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2Ff791df22a3d7e2f4ef01ad0742f370c1 +0 -0
  403. data/test/dummy/tmp/cache/assets/D63/DC0/sprockets%2Fc298c2b66150c7f11d95cecf450bb14a +0 -0
  404. data/test/dummy/tmp/cache/assets/D63/DE0/sprockets%2F73c9e04acfc930681ab170b3e4bfc453 +0 -0
  405. data/test/dummy/tmp/cache/assets/D64/670/sprockets%2F7dc8c0ad36d436eb56a0824a46e0eb08 +0 -0
  406. data/test/dummy/tmp/cache/assets/D65/990/sprockets%2Fa2965ca374a00aaceb747e60b654e2f8 +0 -0
  407. data/test/dummy/tmp/cache/assets/D67/A60/sprockets%2Faa00971b7f5d4b45eb77d656a284a5aa +0 -0
  408. data/test/dummy/tmp/cache/assets/D67/B70/sprockets%2F93b435826e79fa4e5f6eaa001a7a11bf +0 -0
  409. data/test/dummy/tmp/cache/assets/D68/000/sprockets%2F39c01fa5c01830f3558eb1c97c4dfb6b +0 -0
  410. data/test/dummy/tmp/cache/assets/D68/210/sprockets%2Fdc284967860db06c2cb2e1da78bab156 +0 -0
  411. data/test/dummy/tmp/cache/assets/D69/490/sprockets%2Fec6b9dc7d26370cb16e31c8f051e3e07 +0 -0
  412. data/test/dummy/tmp/cache/assets/D69/F10/sprockets%2Ff34035624ea8bef910a3f3afdc9f0526 +0 -0
  413. data/test/dummy/tmp/cache/assets/D6B/200/sprockets%2F5d6139fdef36c3f5380b2a7c2c4fc332 +0 -0
  414. data/test/dummy/tmp/cache/assets/D6C/AD0/sprockets%2Fdabce05f6e4419832e20d6b7420fe9a7 +0 -0
  415. data/test/dummy/tmp/cache/assets/D6D/080/sprockets%2F3cc7b7355591babda1661e6c5e9f8c20 +0 -0
  416. data/test/dummy/tmp/cache/assets/D6D/CF0/sprockets%2Fbbad825b6b477d1967533ee21c454ade +0 -0
  417. data/test/dummy/tmp/cache/assets/D6D/E80/sprockets%2F9ef00ee94e3b0eed7c4e45b342085d51 +0 -0
  418. data/test/dummy/tmp/cache/assets/D6E/940/sprockets%2Fb19f43bd8383eeb5e26a4d2b79f1240e +0 -0
  419. data/test/dummy/tmp/cache/assets/D6E/9F0/sprockets%2F15f61ad82d9ca6cce6a0e42b7249662f +0 -0
  420. data/test/dummy/tmp/cache/assets/D6F/AB0/sprockets%2Fb9d2a198d05cec1f1f9e110318cdf929 +0 -0
  421. data/test/dummy/tmp/cache/assets/D71/CA0/sprockets%2F441e444a0921896e5ca39df6bba85daf +0 -0
  422. data/test/dummy/tmp/cache/assets/D72/C00/sprockets%2Fbcb0957c48f5623c9cd792f05cb0f40f +0 -0
  423. data/test/dummy/tmp/cache/assets/D73/6E0/sprockets%2F1f4defb0e469096950900f0ad9c3fde4 +0 -0
  424. data/test/dummy/tmp/cache/assets/D75/6B0/sprockets%2Fec34bca59e6bb0e4ab0ef45953657992 +0 -0
  425. data/test/dummy/tmp/cache/assets/D76/030/sprockets%2F7e8689ec6a9f3754a4aa660e303cbf4a +0 -0
  426. data/test/dummy/tmp/cache/assets/D76/C80/sprockets%2F952307811ad5e9e8b540cf5e9cf08cea +0 -0
  427. data/test/dummy/tmp/cache/assets/D76/CA0/sprockets%2F797920cdabaf2f8431968a34c2cbae79 +0 -0
  428. data/test/dummy/tmp/cache/assets/D78/D60/sprockets%2Feb6b4ca6b29b6f82ea665a74e67d8621 +0 -0
  429. data/test/dummy/tmp/cache/assets/D78/DE0/sprockets%2F77704150a5a59b97997ebeeaa8d2aed2 +0 -0
  430. data/test/dummy/tmp/cache/assets/D79/4D0/sprockets%2Fd9478c98121c5a4bfccf42c262d587fc +0 -0
  431. data/test/dummy/tmp/cache/assets/D79/E80/sprockets%2F7d329345d1b9f914c87fc5e07ea9ab4b +0 -0
  432. data/test/dummy/tmp/cache/assets/D7A/D90/sprockets%2F5e731a54c86bfbaa18ba9e489178cf64 +0 -0
  433. data/test/dummy/tmp/cache/assets/D7C/620/sprockets%2Fa30b274099bbe2af59458e9f9e4d36fa +0 -0
  434. data/test/dummy/tmp/cache/assets/D7E/2A0/sprockets%2F1ce479f9423e748690a75abbabf8af84 +0 -0
  435. data/test/dummy/tmp/cache/assets/D80/3B0/sprockets%2Fd574f0ceb59e292506dc7dc2f99d6b91 +0 -0
  436. data/test/dummy/tmp/cache/assets/D81/B70/sprockets%2F44d160a7cd56a4d4b2e0d23a9c61aab1 +0 -0
  437. data/test/dummy/tmp/cache/assets/D84/0A0/sprockets%2F07fc0bfe2237a171b813aa147f3ced1a +0 -0
  438. data/test/dummy/tmp/cache/assets/D85/5A0/sprockets%2Fc2cbee1b5160e0e8b022933feb36ea30 +0 -0
  439. data/test/dummy/tmp/cache/assets/D8A/2C0/sprockets%2F6ec8da0142f240ce8a7e0b46aea363c1 +0 -0
  440. data/test/dummy/tmp/cache/assets/D8A/370/sprockets%2Fb4600d72a29aba7a39c2ec58aa04f18b +0 -0
  441. data/test/dummy/tmp/cache/assets/D8A/B90/sprockets%2F7506f75d60f93f9e8405ffb9cf85ddb2 +0 -0
  442. data/test/dummy/tmp/cache/assets/D8D/C50/sprockets%2Fa0229d30e2113dbf6d3cd51c5e82ee6c +0 -0
  443. data/test/dummy/tmp/cache/assets/D8F/4A0/sprockets%2Fec8facf81aea15d619953688978be79c +0 -0
  444. data/test/dummy/tmp/cache/assets/D8F/8A0/sprockets%2F5dfeb1f78f62586e3d97cb9e77758da0 +0 -0
  445. data/test/dummy/tmp/cache/assets/D90/2D0/sprockets%2Fac8aa858f328c72e90dff5de97c59939 +0 -0
  446. data/test/dummy/tmp/cache/assets/D93/0F0/sprockets%2Fbae826e41e4d9c8365bc23eb610dea40 +0 -0
  447. data/test/dummy/tmp/cache/assets/D94/1A0/sprockets%2Fb4748c092e8a4c127bcfacb06cdc2735 +0 -0
  448. data/test/dummy/tmp/cache/assets/D94/AD0/sprockets%2Fa1ac4bf342006e1f98def10cf9d7d234 +0 -0
  449. data/test/dummy/tmp/cache/assets/D95/430/sprockets%2Fcf054ac65aa2c4b72d661fc32c898aa5 +0 -0
  450. data/test/dummy/tmp/cache/assets/D95/A60/sprockets%2Fcade84652b25a95128cba5721b7bdb5e +0 -0
  451. data/test/dummy/tmp/cache/assets/D97/4C0/sprockets%2F4d4aea86610bc9652c70455a6beafc4d +0 -0
  452. data/test/dummy/tmp/cache/assets/D97/680/sprockets%2Fbcae9b5fae1163de31141bd7b94c7448 +0 -0
  453. data/test/dummy/tmp/cache/assets/D98/280/sprockets%2F1b8bca892cab85afe98307a2b0b394e2 +0 -0
  454. data/test/dummy/tmp/cache/assets/D99/B10/sprockets%2F4aa8fece5b18d820a44dc266a89d50e0 +0 -0
  455. data/test/dummy/tmp/cache/assets/D99/CD0/sprockets%2Ffe0c5f4b8b52baa0f91870da12599a6d +0 -0
  456. data/test/dummy/tmp/cache/assets/D9A/B20/sprockets%2Fcabbfbb982365500b12a89e74dfcb646 +0 -0
  457. data/test/dummy/tmp/cache/assets/D9B/6B0/sprockets%2Ffd3ec162a92d864e65f1b7ea48a4fa10 +0 -0
  458. data/test/dummy/tmp/cache/assets/D9D/170/sprockets%2F37f702f1f3ad35b9022fc87fdce7de02 +0 -0
  459. data/test/dummy/tmp/cache/assets/D9E/C90/sprockets%2F9cd75b38f1c1f85bbdac2576ca9106b5 +0 -0
  460. data/test/dummy/tmp/cache/assets/D9F/200/sprockets%2F22deb3ee0d99f7b2b283df5382e1ae81 +0 -0
  461. data/test/dummy/tmp/cache/assets/D9F/3D0/sprockets%2Fc85d1920bbf4d6f3b27723fcd2fb7c55 +0 -0
  462. data/test/dummy/tmp/cache/assets/D9F/7F0/sprockets%2Fd8fd738fc116ab5c8da0e4922cfb8180 +0 -0
  463. data/test/dummy/tmp/cache/assets/DA0/1B0/sprockets%2F71e2cd8803aac9fb0bb4c47593cf17e8 +0 -0
  464. data/test/dummy/tmp/cache/assets/DA1/710/sprockets%2Fcc28e7b96a94b2a571877b147fdecaa0 +0 -0
  465. data/test/dummy/tmp/cache/assets/DA2/9A0/sprockets%2F4bd1c9899ece1257adec0c553fc087b2 +0 -0
  466. data/test/dummy/tmp/cache/assets/DA3/9F0/sprockets%2F5122955dfe6694bdc6b69cbea09d2cd1 +0 -0
  467. data/test/dummy/tmp/cache/assets/DA4/A50/sprockets%2F5ccc3cb812b94b7b60841969a9ecbe7b +0 -0
  468. data/test/dummy/tmp/cache/assets/DA5/0E0/sprockets%2Fe61590dc98f1e532ea20e296c5fce7bd +0 -0
  469. data/test/dummy/tmp/cache/assets/DA5/830/sprockets%2Fefce0b2d75e80d1d17b6db8598841ed2 +0 -0
  470. data/test/dummy/tmp/cache/assets/DA5/920/sprockets%2F17fef15ed3d8c1147570663a93efedea +0 -0
  471. data/test/dummy/tmp/cache/assets/DAA/420/sprockets%2F6779ef7b8e5c2c362cfd5d5fa472e1b1 +0 -0
  472. data/test/dummy/tmp/cache/assets/DAB/920/sprockets%2F047a9da6b427dd9d7093799fad63aceb +0 -0
  473. data/test/dummy/tmp/cache/assets/DB0/BF0/sprockets%2F52e4cdf37aa489ff6c138dedf036588d +0 -0
  474. data/test/dummy/tmp/cache/assets/DB1/6D0/sprockets%2Fd7990d5c07f95d0ee1cb9d5e6e5b818c +0 -0
  475. data/test/dummy/tmp/cache/assets/DB1/C80/sprockets%2Fa2d1a10a3cc780fd30127b2be96ddfa2 +0 -0
  476. data/test/dummy/tmp/cache/assets/DB2/1F0/sprockets%2Fca6346c5717c1efd6fae57773f94ee8a +0 -0
  477. data/test/dummy/tmp/cache/assets/DB2/480/sprockets%2Fa249ccdcac57daf829713de88e3629f8 +0 -0
  478. data/test/dummy/tmp/cache/assets/DB2/9D0/sprockets%2F37bbd81e0c7ddf7c7668e674925eaca9 +0 -0
  479. data/test/dummy/tmp/cache/assets/DB7/670/sprockets%2F14afe7f2ff7c6a35f6f5dd27e95593f4 +0 -0
  480. data/test/dummy/tmp/cache/assets/DBC/DF0/sprockets%2Fd1ff56754c1bf2a8d4082abe2f00adb4 +0 -0
  481. data/test/dummy/tmp/cache/assets/DBD/080/sprockets%2F039ace5986a3cbf4cca0b0a753bc71a6 +0 -0
  482. data/test/dummy/tmp/cache/assets/DBE/430/sprockets%2Fe45190f40a462e86ae1ee01f3bbcad8a +0 -0
  483. data/test/dummy/tmp/cache/assets/DC1/C20/sprockets%2Fb60b7b3aeb56bd55b67183b6f151ecca +0 -0
  484. data/test/dummy/tmp/cache/assets/DC4/600/sprockets%2Fa0794a1ac15dbb57b803dbdce2069ff7 +0 -0
  485. data/test/dummy/tmp/cache/assets/DC5/500/sprockets%2F25ac94fa819bdb1fad28f4420fd4b90a +0 -0
  486. data/test/dummy/tmp/cache/assets/DC5/660/sprockets%2F637431e1c8fffeaafc23f021bd49fa06 +0 -0
  487. data/test/dummy/tmp/cache/assets/DC6/7C0/sprockets%2Fb408df7a822c70a0924e0cdf6c8fe2ca +0 -0
  488. data/test/dummy/tmp/cache/assets/DCC/F40/sprockets%2Fdc3342c548fc7d3c4f4e27732b5acfea +0 -0
  489. data/test/dummy/tmp/cache/assets/DCD/740/sprockets%2Fc80244c564e19eada1cdddf5f6d0d962 +0 -0
  490. data/test/dummy/tmp/cache/assets/DCD/8D0/sprockets%2Fbf36f09be83b4d0986ad23ea4d1f32df +0 -0
  491. data/test/dummy/tmp/cache/assets/DCE/170/sprockets%2F2576bc54ebe0a91592bbdbf3f5c8bb57 +0 -0
  492. data/test/dummy/tmp/cache/assets/DCE/1C0/sprockets%2F58cc5eb1cb2a47c8067c940caecf449d +0 -0
  493. data/test/dummy/tmp/cache/assets/DCE/BA0/sprockets%2F57c5ecddc82aa706b1e64691a8a5bcc9 +0 -0
  494. data/test/dummy/tmp/cache/assets/DCF/4A0/sprockets%2F3efd01a56bae3ae99fd13085f75b9e0d +0 -0
  495. data/test/dummy/tmp/cache/assets/DCF/900/sprockets%2Fb4dc2a3c5d5822e5cc13ee7098e9ec2e +0 -0
  496. data/test/dummy/tmp/cache/assets/DCF/E20/sprockets%2Fd24ee80741a60bd4db8f59b784e3ccda +0 -0
  497. data/test/dummy/tmp/cache/assets/DD5/D40/sprockets%2F8a656fbe5efc00f64f2451fff1c21fe9 +0 -0
  498. data/test/dummy/tmp/cache/assets/DD7/600/sprockets%2Fcc47edff1a4a983589bb45bce09533ed +0 -0
  499. data/test/dummy/tmp/cache/assets/DD9/530/sprockets%2Fe9cbd5b6d7b21568cfb4f7990c7b50eb +0 -0
  500. data/test/dummy/tmp/cache/assets/DDB/140/sprockets%2F7815fdf1a6a74db4fca71ff6537ced67 +0 -0
  501. data/test/dummy/tmp/cache/assets/DDE/450/sprockets%2Fdc1aabe992a97f95a43ce5d8364ff9d1 +0 -0
  502. data/test/dummy/tmp/cache/assets/DDF/070/sprockets%2Ffe4d825f88eadf5580f2db2f45c3df28 +0 -0
  503. data/test/dummy/tmp/cache/assets/DDF/3F0/sprockets%2F06db623ed4f5ff5f487dbcade39f9516 +0 -0
  504. data/test/dummy/tmp/cache/assets/DE7/550/sprockets%2Ffff04b0980f1fbe9ece54cd8ca779867 +0 -0
  505. data/test/dummy/tmp/cache/assets/DF0/CB0/sprockets%2F2b2884f2950bbb31aec8a3ef1e16cbdd +0 -0
  506. data/test/dummy/tmp/cache/assets/DF5/0C0/sprockets%2Faf8105cfdb7ceae04b099c4a2f654ce1 +0 -0
  507. data/test/dummy/tmp/cache/assets/DFC/9D0/sprockets%2F38fd8e0a2fde3b853f2a24571cd2dfdd +0 -0
  508. data/test/dummy/tmp/cache/assets/E02/B00/sprockets%2F723ccdfbeacf6c4176de34f371c91af9 +0 -0
  509. data/test/dummy/tmp/cache/assets/E02/DA0/sprockets%2F9829dec75de6c2a52fdc20d428d2edae +0 -0
  510. data/test/dummy/tmp/cache/assets/E02/FD0/sprockets%2F3b854b1f189aea494b8d7cbb8bba57bf +0 -0
  511. data/test/dummy/tmp/cache/assets/E04/860/sprockets%2F972757dbdbdfabfeac8ecb8a15520793 +0 -0
  512. data/test/dummy/tmp/cache/assets/E07/FD0/sprockets%2F2b98add7bf753973c33fe3b83bdb7abf +0 -0
  513. data/test/dummy/tmp/cache/assets/E09/EE0/sprockets%2F3a991c15e3b2bb3a1a61f1cad0babc5d +0 -0
  514. data/test/dummy/tmp/cache/assets/E0B/9C0/sprockets%2F056c4cfcff64c6e7d884bfc5df9a6a30 +0 -0
  515. data/test/dummy/tmp/cache/assets/E0C/810/sprockets%2Fe74897a12cedd8efea5a559354bd5bfc +0 -0
  516. data/test/dummy/tmp/cache/assets/E0F/B40/sprockets%2Ff5dfabed7f563e53d4735ef9c4b7a0e9 +0 -0
  517. data/test/dummy/tmp/cache/assets/E11/DA0/sprockets%2Fe190d6d51f5a7a4d99cb6fcee9aef818 +0 -0
  518. data/test/dummy/tmp/cache/assets/E1F/5E0/sprockets%2Fedacf71afed14b1da329d30fcaf84091 +0 -0
  519. data/test/dummy/tmp/cache/assets/E2D/630/sprockets%2F95b2fe9ec24a6321c9aebcc3b7c53dfe +0 -0
  520. data/test/dummy/tmp/cache/assets/E2F/3D0/sprockets%2Ff740ae8eecbaedadc3c664c62b83e925 +0 -0
  521. data/test/dummy/tmp/cache/assets/E2F/930/sprockets%2F22b1cbacd98f51adeaab5bd8765e4f97 +0 -0
  522. data/test/dummy/tmp/cache/assets/E30/C50/sprockets%2Fdaad6c4c7b1429f8de49d81fac6ad18b +0 -0
  523. data/test/dummy/tmp/cache/assets/E36/230/sprockets%2F56aec75c7f17ef3509d4cadcf2e6fc3d +0 -0
  524. data/test/dummy/tmp/cache/assets/E3C/680/sprockets%2Fd057ba99f8cc7b032da8ed9e8c0dff7c +0 -0
  525. data/test/dummy/tmp/cache/assets/E45/7D0/sprockets%2Fb0cc11f8e54af3bf47bfb15dd0a1cd4a +0 -0
  526. data/test/dummy/tmp/cache/assets/E53/340/sprockets%2Fbad75d3d5f8eba9ceada05fa125a642f +0 -0
  527. data/test/dummy/tmp/cache/assets/E55/340/sprockets%2Faaeaef87c1531a051fcdb8def54f4c1f +0 -0
  528. data/test/dummy/tmp/cache/assets/E5E/CA0/sprockets%2Fdf31d095f37e9abda2e4ddb3e0e6fcb9 +0 -0
  529. data/test/dummy/tmp/cache/assets/E89/BE0/sprockets%2F9bfc41fee1adbc5e0ab3e58eafb550f9 +0 -0
  530. metadata +163 -32
  531. data/app/assets/javascripts/Core/package.json +0 -6
  532. data/app/assets/javascripts/DynamicScene/DynamicScene.profile.js +0 -8
  533. data/app/assets/javascripts/DynamicScene/package.json +0 -6
  534. data/app/assets/javascripts/Renderer/Renderer.profile.js +0 -8
  535. data/app/assets/javascripts/Renderer/package.json +0 -6
  536. data/app/assets/javascripts/Scene/Scene.profile.js +0 -8
  537. data/app/assets/javascripts/Scene/TileLoadQueue.js +0 -123
  538. data/app/assets/javascripts/Scene/package.json +0 -6
  539. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +0 -454
  540. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +0 -24
  541. data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +0 -892
  542. data/app/assets/javascripts/Shaders/Noise.js +0 -477
  543. data/app/assets/javascripts/Shaders/PolygonFSPick.js +0 -11
  544. data/app/assets/javascripts/Shaders/PolygonVSPick.js +0 -36
  545. data/app/assets/javascripts/Shaders/Ray.js +0 -538
  546. data/app/assets/javascripts/Shaders/package.json +0 -6
  547. data/app/assets/javascripts/ThirdParty/ThirdParty.profile.js +0 -8
  548. data/app/assets/javascripts/ThirdParty/package.json +0 -6
  549. data/app/assets/javascripts/Widgets/Widgets.profile.js +0 -8
  550. data/app/assets/javascripts/Widgets/package.json +0 -6
  551. data/app/assets/javascripts/Workers/Workers.profile.js +0 -8
  552. data/app/assets/javascripts/copyrightHeader.js +0 -22
  553. data/app/assets/javascripts/main.js +0 -10
@@ -499,11 +499,11 @@ define([
499
499
  var allBuffers = this._allBuffers;
500
500
 
501
501
  for (var i = 0, len = allBuffers.length; i < len; ++i) {
502
- subCommit(this, allBuffers[i], offsetInVertices, lengthInVertices);
502
+ subCommit(allBuffers[i], offsetInVertices, lengthInVertices);
503
503
  }
504
504
  };
505
505
 
506
- function subCommit(vertexArrayFacade, buffer, offsetInVertices, lengthInVertices) {
506
+ function subCommit(buffer, offsetInVertices, lengthInVertices) {
507
507
  if (buffer.needsCommit && (buffer.vertexSizeInBytes > 0)) {
508
508
  var byteOffset = buffer.vertexSizeInBytes * offsetInVertices;
509
509
  var byteLength = buffer.vertexSizeInBytes * lengthInVertices;
@@ -35,25 +35,29 @@ define([
35
35
  throw new DeveloperError('duration is required.');
36
36
  }
37
37
 
38
- var delayDuration = defaultValue(options.delayDuration, 0);
39
- var easingFunction = defaultValue(options.easingFunction, Tween.Easing.Linear.None);
38
+ if (options.duration !== 0) {
39
+ var delayDuration = defaultValue(options.delayDuration, 0);
40
+ var easingFunction = defaultValue(options.easingFunction, Tween.Easing.Linear.None);
41
+
42
+ var value = clone(options.startValue);
43
+ var tween = new Tween.Tween(value);
44
+ tween.to(options.stopValue, options.duration);
45
+ tween.delay(delayDuration);
46
+ tween.easing(easingFunction);
47
+ if (typeof options.onUpdate === 'function') {
48
+ tween.onUpdate(function() {
49
+ options.onUpdate(value);
50
+ });
51
+ }
52
+ tween.onComplete(defaultValue(options.onComplete, null));
53
+ tween.start();
40
54
 
41
- var value = clone(options.startValue);
42
- var tween = new Tween.Tween(value);
43
- tween.to(options.stopValue, options.duration);
44
- tween.delay(delayDuration);
45
- tween.easing(easingFunction);
46
- if (typeof options.onUpdate === 'function') {
47
- tween.onUpdate(function() {
48
- options.onUpdate(value);
49
- });
55
+ return {
56
+ _tween : tween
57
+ };
58
+ } else if (typeof options.onComplete === 'function') {
59
+ options.onComplete();
50
60
  }
51
- tween.onComplete(defaultValue(options.onComplete, null));
52
- tween.start();
53
-
54
- return {
55
- _tween : tween
56
- };
57
61
  };
58
62
 
59
63
  /**
@@ -6,7 +6,6 @@ define([
6
6
  '../Core/Cartesian2',
7
7
  '../Core/DeveloperError',
8
8
  '../Core/Event',
9
- '../Core/RuntimeError',
10
9
  './DiscardMissingTileImagePolicy',
11
10
  './GeographicTilingScheme',
12
11
  './ImageryProvider',
@@ -20,7 +19,6 @@ define([
20
19
  Cartesian2,
21
20
  DeveloperError,
22
21
  Event,
23
- RuntimeError,
24
22
  DiscardMissingTileImagePolicy,
25
23
  GeographicTilingScheme,
26
24
  ImageryProvider,
@@ -2,31 +2,25 @@
2
2
  define([
3
3
  '../Core/defaultValue',
4
4
  '../Core/DeveloperError',
5
- '../Core/BoundingRectangle',
6
5
  '../Core/Color',
7
6
  '../Core/Cartesian2',
8
7
  '../Core/Cartesian3',
9
8
  '../Core/Cartesian4',
10
- '../Core/Cartographic',
11
- '../Core/Math',
12
- '../Core/Matrix4',
13
9
  './HorizontalOrigin',
14
10
  './VerticalOrigin',
15
- './SceneMode'
11
+ './SceneMode',
12
+ './SceneTransforms'
16
13
  ], function(
17
14
  defaultValue,
18
15
  DeveloperError,
19
- BoundingRectangle,
20
16
  Color,
21
17
  Cartesian2,
22
18
  Cartesian3,
23
19
  Cartesian4,
24
- Cartographic,
25
- CesiumMath,
26
- Matrix4,
27
20
  HorizontalOrigin,
28
21
  VerticalOrigin,
29
- SceneMode) {
22
+ SceneMode,
23
+ SceneTransforms) {
30
24
  "use strict";
31
25
 
32
26
  var EMPTY_OBJECT = {};
@@ -559,54 +553,21 @@ define([
559
553
  };
560
554
 
561
555
  var tempCartesian4 = new Cartesian4();
562
- var tempCartographic = new Cartographic();
563
556
  Billboard._computeActualPosition = function(position, frameState, modelMatrix) {
564
- var mode = frameState.mode;
565
-
566
- if (mode === SceneMode.SCENE3D) {
557
+ if (frameState.mode === SceneMode.SCENE3D) {
567
558
  return position;
568
559
  }
569
560
 
570
561
  modelMatrix.multiplyByPoint(position, tempCartesian4);
571
-
572
- var projection = frameState.scene2D.projection;
573
- var cartographic = projection.getEllipsoid().cartesianToCartographic(tempCartesian4, tempCartographic);
574
- if (typeof cartographic === 'undefined') {
575
- return undefined;
576
- }
577
-
578
- var projectedPosition = projection.project(cartographic);
579
- if (mode === SceneMode.MORPHING) {
580
- var morphTime = frameState.morphTime;
581
- var x = CesiumMath.lerp(projectedPosition.z, tempCartesian4.x, morphTime);
582
- var y = CesiumMath.lerp(projectedPosition.x, tempCartesian4.y, morphTime);
583
- var z = CesiumMath.lerp(projectedPosition.y, tempCartesian4.z, morphTime);
584
- return new Cartesian3(x, y, z);
585
- }
586
- if (mode === SceneMode.SCENE2D) {
587
- return new Cartesian3(0.0, projectedPosition.x, projectedPosition.y);
588
- }
589
- if (mode === SceneMode.COLUMBUS_VIEW) {
590
- return new Cartesian3(projectedPosition.z, projectedPosition.x, projectedPosition.y);
591
- }
592
- return undefined;
562
+ return SceneTransforms.computeActualWgs84Position(frameState, tempCartesian4);
593
563
  };
594
564
 
595
- var scratchViewport = new BoundingRectangle();
596
- var scratchViewportTransform = new Matrix4();
597
565
  Billboard._computeScreenSpacePosition = function(modelMatrix, position, eyeOffset, pixelOffset, context, frameState) {
598
566
  // This function is basically a stripped-down JavaScript version of BillboardCollectionVS.glsl
599
-
600
567
  var camera = frameState.camera;
601
568
  var view = camera.getViewMatrix();
602
569
  var projection = camera.frustum.getProjectionMatrix();
603
570
 
604
- // Assuming viewport takes up the entire canvas...
605
- var canvas = context.getCanvas();
606
- scratchViewport.width = canvas.clientWidth;
607
- scratchViewport.height = canvas.clientHeight;
608
- var viewportTransformation = Matrix4.computeViewportTransformation(scratchViewport, 0.0, 1.0, scratchViewportTransform);
609
-
610
571
  // Model to eye coordinates
611
572
  var mv = view.multiply(modelMatrix);
612
573
  var positionEC = mv.multiplyByPoint(position);
@@ -617,12 +578,8 @@ define([
617
578
  positionEC.y += eyeOffset.y + zEyeOffset.y;
618
579
  positionEC.z += zEyeOffset.z;
619
580
 
620
- // Eye to window coordinates, e.g., czm_eyeToWindowCoordinates
621
- var q = projection.multiplyByVector(positionEC); // clip coordinates
622
- q.x /= q.w; // normalized device coordinates
623
- q.y /= q.w;
624
- q.z /= q.w;
625
- var positionWC = viewportTransformation.multiplyByPoint(q); // window coordinates
581
+ var positionCC = projection.multiplyByVector(positionEC); // clip coordinates
582
+ var positionWC = SceneTransforms.clipToWindowCoordinates(context.getCanvas(), positionCC);
626
583
 
627
584
  // Apply pixel offset
628
585
  var uniformState = context.getUniformState();
@@ -2,12 +2,9 @@
2
2
  define([
3
3
  '../Core/DeveloperError',
4
4
  '../Core/Color',
5
- '../Core/combine',
6
5
  '../Core/destroyObject',
7
- '../Core/Math',
8
6
  '../Core/Cartesian2',
9
7
  '../Core/Cartesian3',
10
- '../Core/Cartesian4',
11
8
  '../Core/EncodedCartesian3',
12
9
  '../Core/Matrix4',
13
10
  '../Core/ComponentDatatype',
@@ -27,12 +24,9 @@ define([
27
24
  ], function(
28
25
  DeveloperError,
29
26
  Color,
30
- combine,
31
27
  destroyObject,
32
- CesiumMath,
33
28
  Cartesian2,
34
29
  Cartesian3,
35
- Cartesian4,
36
30
  EncodedCartesian3,
37
31
  Matrix4,
38
32
  ComponentDatatype,
@@ -6,7 +6,6 @@ define([
6
6
  '../Core/Cartesian3',
7
7
  '../Core/Cartesian4',
8
8
  '../Core/Matrix4',
9
- '../Core/Ray',
10
9
  './CameraController',
11
10
  './PerspectiveFrustum'
12
11
  ], function(
@@ -16,7 +15,6 @@ define([
16
15
  Cartesian3,
17
16
  Cartesian4,
18
17
  Matrix4,
19
- Ray,
20
18
  CameraController,
21
19
  PerspectiveFrustum) {
22
20
  "use strict";
@@ -786,7 +786,12 @@ define([
786
786
  var viewExtent3DNorthWest = new Cartesian3();
787
787
  var viewExtent3DSouthEast = new Cartesian3();
788
788
  var viewExtent3DCenter = new Cartesian3();
789
- function viewExtent3D(camera, extent, ellipsoid) {
789
+ var defaultRF = {direction: new Cartesian3(), right: new Cartesian3(), up: new Cartesian3()};
790
+ function extentCameraPosition3D (camera, extent, ellipsoid, result, positionOnly) {
791
+ var cameraRF = camera;
792
+ if (positionOnly) {
793
+ cameraRF = defaultRF;
794
+ }
790
795
  var north = extent.north;
791
796
  var south = extent.south;
792
797
  var east = extent.east;
@@ -817,12 +822,12 @@ define([
817
822
  Cartesian3.subtract(northEast, center, northEast);
818
823
  Cartesian3.subtract(southWest, center, southWest);
819
824
 
820
- var direction = ellipsoid.geodeticSurfaceNormal(center, camera.direction);
825
+ var direction = ellipsoid.geodeticSurfaceNormal(center, cameraRF.direction);
821
826
  Cartesian3.negate(direction, direction);
822
827
  Cartesian3.normalize(direction, direction);
823
- var right = Cartesian3.cross(direction, Cartesian3.UNIT_Z, camera.right);
828
+ var right = Cartesian3.cross(direction, Cartesian3.UNIT_Z, cameraRF.right);
824
829
  Cartesian3.normalize(right, right);
825
- var up = Cartesian3.cross(right, direction, camera.up);
830
+ var up = Cartesian3.cross(right, direction, cameraRF.up);
826
831
 
827
832
  var height = Math.max(Math.abs(up.dot(northWest)), Math.abs(up.dot(southEast)), Math.abs(up.dot(northEast)), Math.abs(up.dot(southWest)));
828
833
  var width = Math.max(Math.abs(right.dot(northWest)), Math.abs(right.dot(southEast)), Math.abs(right.dot(northEast)), Math.abs(right.dot(southWest)));
@@ -833,14 +838,14 @@ define([
833
838
 
834
839
  var scalar = center.magnitude() + d;
835
840
  Cartesian3.normalize(center, center);
836
- Cartesian3.multiplyByScalar(center, scalar, camera.position);
841
+ return Cartesian3.multiplyByScalar(center, scalar, result);
837
842
  }
838
843
 
839
844
  var viewExtentCVCartographic = new Cartographic();
840
845
  var viewExtentCVNorthEast = Cartesian4.UNIT_W.clone();
841
846
  var viewExtentCVSouthWest = Cartesian4.UNIT_W.clone();
842
847
  var viewExtentCVTransform = new Matrix4();
843
- function viewExtentColumbusView(camera, extent, projection) {
848
+ function extentCameraPositionColumbusView(camera, extent, projection, result, positionOnly) {
844
849
  var north = extent.north;
845
850
  var south = extent.south;
846
851
  var east = extent.east;
@@ -867,20 +872,28 @@ define([
867
872
 
868
873
  var tanPhi = Math.tan(camera.frustum.fovy * 0.5);
869
874
  var tanTheta = camera.frustum.aspectRatio * tanPhi;
875
+ if (typeof result === 'undefined') {
876
+ result = new Cartesian3();
877
+ }
870
878
 
871
- position = camera.position;
872
- position.x = (northEast.x - southWest.x) * 0.5 + southWest.x;
873
- position.y = (northEast.y - southWest.y) * 0.5 + southWest.y;
874
- position.z = Math.max((northEast.x - southWest.x) / tanTheta, (northEast.y - southWest.y) / tanPhi) * 0.5;
879
+ result.x = (northEast.x - southWest.x) * 0.5 + southWest.x;
880
+ result.y = (northEast.y - southWest.y) * 0.5 + southWest.y;
881
+ result.z = Math.max((northEast.x - southWest.x) / tanTheta, (northEast.y - southWest.y) / tanPhi) * 0.5;
875
882
 
876
- var direction = Cartesian3.clone(Cartesian3.UNIT_Z, camera.direction);
877
- Cartesian3.negate(direction, direction);
878
- var right = Cartesian3.clone(Cartesian3.UNIT_X, camera.right);
879
- Cartesian3.cross(right, direction, camera.up);
883
+ if (!positionOnly) {
884
+ var direction = Cartesian3.clone(Cartesian3.UNIT_Z, camera.direction);
885
+ Cartesian3.negate(direction, direction);
886
+ var right = Cartesian3.clone(Cartesian3.UNIT_X, camera.right);
887
+ Cartesian3.cross(right, direction, camera.up);
888
+ }
889
+
890
+ return result;
880
891
  }
881
892
 
882
893
  var viewExtent2DCartographic = new Cartographic();
883
- function viewExtent2D(camera, extent, projection) {
894
+ var viewExtent2DNorthEast = new Cartesian3();
895
+ var viewExtent2DSouthWest = new Cartesian3();
896
+ function extentCameraPosition2D (camera, extent, projection, result, positionOnly) {
884
897
  var north = extent.north;
885
898
  var south = extent.south;
886
899
  var east = extent.east;
@@ -889,10 +902,10 @@ define([
889
902
  var cart = viewExtent2DCartographic;
890
903
  cart.longitude = east;
891
904
  cart.latitude = north;
892
- var northEast = projection.project(cart);
905
+ var northEast = projection.project(cart, viewExtent2DNorthEast);
893
906
  cart.longitude = west;
894
907
  cart.latitude = south;
895
- var southWest = projection.project(cart);
908
+ var southWest = projection.project(cart, viewExtent2DSouthWest);
896
909
 
897
910
  var width = Math.abs(northEast.x - southWest.x) * 0.5;
898
911
  var height = Math.abs(northEast.y - southWest.y) * 0.5;
@@ -908,18 +921,57 @@ define([
908
921
  right = heightRatio;
909
922
  }
910
923
 
911
- camera.frustum.right = right;
912
- camera.frustum.left = -right;
913
- camera.frustum.top = top;
914
- camera.frustum.bottom = -top;
924
+ height = Math.max(2.0 * right, 2.0 * top);
915
925
 
916
- camera.position.x = (northEast.x - southWest.x) * 0.5 + southWest.x;
917
- camera.position.y = (northEast.y - southWest.y) * 0.5 + southWest.y;
926
+ if (typeof result === 'undefined') {
927
+ result = new Cartesian3();
928
+ }
929
+ result.x = (northEast.x - southWest.x) * 0.5 + southWest.x;
930
+ result.y = (northEast.y - southWest.y) * 0.5 + southWest.y;
931
+
932
+ if (positionOnly) {
933
+ cart = projection.unproject(result, cart);
934
+ cart.height = height;
935
+ result = projection.project(cart, result);
936
+ } else {
937
+ var frustum = camera.frustum;
938
+ frustum.right = right;
939
+ frustum.left = -right;
940
+ frustum.top = top;
941
+ frustum.bottom = -top;
942
+
943
+ var cameraRight = Cartesian3.clone(Cartesian3.UNIT_X, camera.right);
944
+ Cartesian3.cross(cameraRight, camera.direction, camera.up);
945
+ }
918
946
 
919
- //Orient the camera north.
920
- var cameraRight = Cartesian3.clone(Cartesian3.UNIT_X, camera.right);
921
- Cartesian3.cross(cameraRight, camera.direction, camera.up);
947
+ return result;
922
948
  }
949
+ /**
950
+ * Get the camera position neede to view an extent on an ellipsoid or map
951
+ * @memberof CameraController
952
+ *
953
+ * @param {Extent} extent The extent to view.
954
+ * @param {Cartesian3} [result] The camera position needed to view the extent
955
+ *
956
+ * @returns {Cartesian3} The camera position needed to view the extent
957
+ *
958
+ * @exception {DeveloperError} extent is required.
959
+ */
960
+ CameraController.prototype.getExtentCameraCoordinates = function(extent, result) {
961
+ if (typeof extent === 'undefined') {
962
+ throw new DeveloperError('extent is required');
963
+ }
964
+
965
+ if (this._mode === SceneMode.SCENE3D) {
966
+ return extentCameraPosition3D(this._camera, extent, this._projection.getEllipsoid(), result, true);
967
+ } else if (this._mode === SceneMode.COLUMBUS_VIEW) {
968
+ return extentCameraPositionColumbusView(this._camera, extent, this._projection, result, true);
969
+ } else if (this._mode === SceneMode.SCENE2D) {
970
+ return extentCameraPosition2D(this._camera, extent, this._projection, result, true);
971
+ }
972
+
973
+ return undefined;
974
+ };
923
975
 
924
976
  /**
925
977
  * View an extent on an ellipsoid or map.
@@ -937,11 +989,11 @@ define([
937
989
  ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
938
990
 
939
991
  if (this._mode === SceneMode.SCENE3D) {
940
- viewExtent3D(this._camera, extent, ellipsoid);
992
+ extentCameraPosition3D(this._camera, extent, ellipsoid, this._camera.position);
941
993
  } else if (this._mode === SceneMode.COLUMBUS_VIEW) {
942
- viewExtentColumbusView(this._camera, extent, this._projection);
994
+ extentCameraPositionColumbusView(this._camera, extent, this._projection, this._camera.position);
943
995
  } else if (this._mode === SceneMode.SCENE2D) {
944
- viewExtent2D(this._camera, extent, this._projection);
996
+ extentCameraPosition2D(this._camera, extent, this._projection, this._camera.position);
945
997
  }
946
998
  };
947
999
 
@@ -1,36 +1,28 @@
1
1
  /*global define*/
2
2
  define([
3
3
  '../Core/Cartesian3',
4
- '../Core/Cartographic',
5
4
  '../Core/clone',
6
5
  '../Core/defaultValue',
7
6
  '../Core/DeveloperError',
8
- '../Core/Ellipsoid',
9
7
  '../Core/HermiteSpline',
10
- '../Core/IntersectionTests',
11
8
  '../Core/Math',
12
9
  '../Core/Matrix3',
13
10
  '../Core/OrientationInterpolator',
14
11
  '../Core/Quaternion',
15
- '../Core/Ray',
16
12
  '../Scene/PerspectiveFrustum',
17
13
  '../Scene/PerspectiveOffCenterFrustum',
18
14
  '../Scene/SceneMode',
19
15
  '../ThirdParty/Tween'
20
16
  ], function(
21
17
  Cartesian3,
22
- Cartographic,
23
18
  clone,
24
19
  defaultValue,
25
20
  DeveloperError,
26
- Ellipsoid,
27
21
  HermiteSpline,
28
- IntersectionTests,
29
22
  CesiumMath,
30
23
  Matrix3,
31
24
  OrientationInterpolator,
32
25
  Quaternion,
33
- Ray,
34
26
  PerspectiveFrustum,
35
27
  PerspectiveOffCenterFrustum,
36
28
  SceneMode,
@@ -44,13 +36,26 @@ define([
44
36
  var CameraFlightPath = {
45
37
  };
46
38
 
47
- function createQuaternion(direction, up) {
48
- var right = direction.cross(up);
49
- up = right.cross(direction);
50
- var viewMat = new Matrix3( right.x, right.y, right.z,
51
- up.x, up.y, up.z,
52
- -direction.x, -direction.y, -direction.z);
53
- return Quaternion.fromRotationMatrix(viewMat);
39
+ var c3destination = new Cartesian3();
40
+ var rotMatrix = new Matrix3();
41
+ var viewMat = new Matrix3();
42
+
43
+ var cqRight = new Cartesian3();
44
+ var cqUp = new Cartesian3();
45
+ function createQuaternion(direction, up, result) {
46
+ direction.cross(up, cqRight);
47
+ cqRight.cross(direction, cqUp);
48
+ viewMat[0] = cqRight.x;
49
+ viewMat[1] = cqUp.x;
50
+ viewMat[2] = -direction.x;
51
+ viewMat[3] = cqRight.y;
52
+ viewMat[4] = cqUp.y;
53
+ viewMat[5] = -direction.y;
54
+ viewMat[6] = cqRight.z;
55
+ viewMat[7] = cqUp.z;
56
+ viewMat[8] = -direction.z;
57
+
58
+ return Quaternion.fromRotationMatrix(viewMat, result);
54
59
  }
55
60
 
56
61
  function getAltitude(frustum, dx, dy) {
@@ -87,10 +92,10 @@ define([
87
92
  return points;
88
93
  },
89
94
 
90
- evaluate : function(time) {
95
+ evaluate : function(time, result) {
91
96
  time = CesiumMath.clamp(time, p.time, q.time);
92
97
  var t = (time - p.time) / (q.time - p.time);
93
- return Cartesian3.lerp(p.point, q.point, t);
98
+ return Cartesian3.lerp(p.point, q.point, t, result);
94
99
  }
95
100
  };
96
101
  }
@@ -174,32 +179,30 @@ define([
174
179
 
175
180
  return createSpline(points);
176
181
  }
177
-
182
+ var direction3D = new Cartesian3();
183
+ var right3D = new Cartesian3();
184
+ var up3D = new Cartesian3();
185
+ var quat3D = new Quaternion();
178
186
  function createOrientations3D(camera, points, endDirection, endUp) {
179
187
  points[0].orientation = createQuaternion(camera.direction, camera.up);
180
-
181
188
  var point;
182
- var direction;
183
- var right;
184
- var up;
185
-
186
189
  var length = points.length - 1;
187
190
  for (var i = 1; i < length; ++i) {
188
191
  point = points[i];
189
- direction = point.point.negate().normalize();
190
- right = direction.cross(Cartesian3.UNIT_Z).normalize();
191
- up = right.cross(direction);
192
- point.orientation = createQuaternion(direction, up);
192
+ point.point.negate(direction3D).normalize(direction3D);
193
+ direction3D.cross(Cartesian3.UNIT_Z, right3D).normalize(right3D);
194
+ right3D.cross(direction3D, up3D);
195
+ point.orientation = createQuaternion(direction3D, up3D, quat3D);
193
196
  }
194
197
 
195
198
  point = points[length];
196
199
  if (typeof endDirection !== 'undefined' && typeof endUp !== 'undefined') {
197
200
  point.orientation = createQuaternion(endDirection, endUp);
198
201
  } else {
199
- direction = point.point.negate().normalize();
200
- right = direction.cross(Cartesian3.UNIT_Z).normalize();
201
- up = right.cross(direction);
202
- point.orientation = createQuaternion(direction, up);
202
+ point.point.negate(direction3D).normalize(direction3D);
203
+ direction3D.cross(Cartesian3.UNIT_Z, right3D).normalize(right3D);
204
+ right3D.cross(direction3D, up3D);
205
+ point.orientation = createQuaternion(direction3D, up3D, quat3D);
203
206
  }
204
207
 
205
208
  return new OrientationInterpolator(points);
@@ -215,12 +218,12 @@ define([
215
218
  var update = function(value) {
216
219
  var time = value.time;
217
220
  var orientation = orientations.evaluate(time);
218
- var rotationMatrix = Matrix3.fromQuaternion(orientation);
221
+ Matrix3.fromQuaternion(orientation, rotMatrix);
219
222
 
220
- camera.position = path.evaluate(time);
221
- camera.right = rotationMatrix.getRow(0);
222
- camera.up = rotationMatrix.getRow(1);
223
- camera.direction = rotationMatrix.getRow(2).negate();
223
+ camera.position = path.evaluate(time, camera.position);
224
+ camera.right = rotMatrix.getRow(0, camera.right);
225
+ camera.up = rotMatrix.getRow(1, camera.up);
226
+ camera.direction = rotMatrix.getRow(2, camera.direction).negate(camera.direction);
224
227
  };
225
228
 
226
229
  return update;
@@ -298,31 +301,24 @@ define([
298
301
  return createSpline(points);
299
302
  }
300
303
 
304
+ var direction2D = Cartesian3.UNIT_Z.negate();
305
+ var right2D = direction2D.cross(Cartesian3.UNIT_Y).normalize();
306
+ var up2D = right2D.cross(direction2D);
307
+ var quat = createQuaternion(direction2D, up2D);
301
308
  function createOrientations2D(camera, points, endDirection, endUp) {
302
309
  points[0].orientation = createQuaternion(camera.direction, camera.up);
303
-
304
310
  var point;
305
- var direction;
306
- var right;
307
- var up;
308
-
309
311
  var length = points.length - 1;
310
312
  for (var i = 1; i < length; ++i) {
311
313
  point = points[i];
312
- direction = Cartesian3.UNIT_Z.negate();
313
- right = direction.cross(Cartesian3.UNIT_Y).normalize();
314
- up = right.cross(direction);
315
- point.orientation = createQuaternion(direction, up);
314
+ point.orientation = quat;
316
315
  }
317
316
 
318
317
  point = points[length];
319
318
  if (typeof endDirection !== 'undefined' && typeof endUp !== 'undefined') {
320
319
  point.orientation = createQuaternion(endDirection, endUp);
321
320
  } else {
322
- direction = Cartesian3.UNIT_Z.negate();
323
- right = direction.cross(Cartesian3.UNIT_Y).normalize();
324
- up = right.cross(direction);
325
- point.orientation = createQuaternion(direction, up);
321
+ point.orientation = quat;
326
322
  }
327
323
 
328
324
  return new OrientationInterpolator(points);
@@ -338,12 +334,12 @@ define([
338
334
  var update = function(value) {
339
335
  var time = value.time;
340
336
  var orientation = orientations.evaluate(time);
341
- var rotationMatrix = Matrix3.fromQuaternion(orientation);
337
+ Matrix3.fromQuaternion(orientation, rotMatrix);
342
338
 
343
- camera.position = path.evaluate(time);
344
- camera.right = rotationMatrix.getRow(0);
345
- camera.up = rotationMatrix.getRow(1);
346
- camera.direction = rotationMatrix.getRow(2).negate();
339
+ camera.position = path.evaluate(time, camera.position);
340
+ camera.right = rotMatrix.getRow(0, camera.right);
341
+ camera.up = rotMatrix.getRow(1, camera.up);
342
+ camera.direction = rotMatrix.getRow(2, camera.direction).negate(camera.direction);
347
343
  };
348
344
 
349
345
  return update;
@@ -365,15 +361,15 @@ define([
365
361
  var update = function(value) {
366
362
  var time = value.time;
367
363
  var orientation = orientations.evaluate(time);
368
- var rotationMatrix = Matrix3.fromQuaternion(orientation);
364
+ Matrix3.fromQuaternion(orientation, rotMatrix);
369
365
 
370
- camera.position = path.evaluate(time);
366
+ camera.position = path.evaluate(time, camera.position);
371
367
  var zoom = camera.position.z;
372
368
  camera.position.z = height;
373
369
 
374
- camera.right = rotationMatrix.getRow(0);
375
- camera.up = rotationMatrix.getRow(1);
376
- camera.direction = rotationMatrix.getRow(2).negate();
370
+ camera.right = rotMatrix.getRow(0, camera.right);
371
+ camera.up = rotMatrix.getRow(1, camera.up);
372
+ camera.direction = rotMatrix.getRow(2, camera.direction).negate(camera.direction);
377
373
 
378
374
  var frustum = camera.frustum;
379
375
  var ratio = frustum.top / frustum.right;
@@ -403,28 +399,37 @@ define([
403
399
  *
404
400
  * @exception {DeveloperError} frameState is required.
405
401
  * @exception {DeveloperError} description.destination is required.
402
+ * @exception {DeveloperError} frameState.mode cannot be SceneMode.MORPHING
406
403
  *
407
404
  * @see Scene#getFrameState
408
- * @see Scene#getAnimationCollection
409
- * @see CameraFlightPath#createAnimationCartographic
405
+ * @see Scene#getAnimations
410
406
  */
411
407
  CameraFlightPath.createAnimation = function(frameState, description) {
412
408
  description = defaultValue(description, defaultValue.EMPTY_OBJECT);
413
409
  var destination = description.destination;
414
- var direction = description.direction;
415
- var up = description.up;
416
410
 
417
411
  if (typeof frameState === 'undefined') {
418
412
  throw new DeveloperError('frameState is required.');
419
413
  }
420
-
421
414
  if (typeof destination === 'undefined') {
422
415
  throw new DeveloperError('destination is required.');
423
416
  }
417
+ if (frameState.mode === SceneMode.MORPHING) {
418
+ throw new DeveloperError('frameState.mode cannot be SceneMode.MORPHING');
419
+ }
424
420
 
421
+ var direction = description.direction;
422
+ var up = description.up;
425
423
  var duration = defaultValue(description.duration, 3000.0);
426
424
  var onComplete = description.onComplete;
427
425
 
426
+ if (Cartesian3.equalsEpsilon(destination, frameState.camera.position, CesiumMath.EPSILON6)) {
427
+ return {
428
+ duration : 0,
429
+ onComplete : description.onComplete
430
+ };
431
+ }
432
+
428
433
  var update;
429
434
  if (frameState.mode === SceneMode.SCENE3D) {
430
435
  update = createUpdate3D(frameState, destination, duration, direction, up);
@@ -453,7 +458,7 @@ define([
453
458
  * will happen in the camera's current reference frame.
454
459
  *
455
460
  * @param {FrameState} frameState The current frame state.
456
- * @param {Cartesian3} description.destination The final position of the camera.
461
+ * @param {Cartographic} description.destination The final position of the camera.
457
462
  * @param {Cartesian3} [description.direction] The final direction of the camera. By default, the direction will point towards the center of the frame in 3D and in the negative z direction in Columbus view or 2D.
458
463
  * @param {Cartesian3} [description.up] The final up direction. By default, the up direction will point towards local north in 3D and in the positive y direction in Columbus view or 2D.
459
464
  * @param {Number} [description.duration=3000] The duration of the animation in milliseconds.
@@ -463,10 +468,10 @@ define([
463
468
  *
464
469
  * @exception {DeveloperError} frameState is required.
465
470
  * @exception {DeveloperError} description.destination is required.
471
+ * @exception {DeveloperError} frameState.mode cannot be SceneMode.MORPHING
466
472
  *
467
473
  * @see Scene#getFrameState
468
- * @see Scene#getAnimationCollection
469
- * @see CameraFlightPath#createAnimationCartographic
474
+ * @see Scene#getAnimations
470
475
  */
471
476
  CameraFlightPath.createAnimationCartographic = function(frameState, description) {
472
477
  description = defaultValue(description, defaultValue.EMPTY_OBJECT);
@@ -475,22 +480,75 @@ define([
475
480
  if (typeof frameState === 'undefined') {
476
481
  throw new DeveloperError('frameState is required.');
477
482
  }
478
-
479
483
  if (typeof destination === 'undefined') {
480
484
  throw new DeveloperError('description.destination is required.');
481
485
  }
482
486
 
483
- var end;
484
487
  var projection = frameState.scene2D.projection;
485
488
  if (frameState.mode === SceneMode.SCENE3D) {
486
489
  var ellipsoid = projection.getEllipsoid();
487
- end = ellipsoid.cartographicToCartesian(destination);
490
+ ellipsoid.cartographicToCartesian(destination, c3destination);
491
+ } else if (frameState.mode === SceneMode.COLUMBUS_VIEW || frameState.mode === SceneMode.SCENE2D) {
492
+ projection.project(destination, c3destination);
488
493
  } else {
489
- end = projection.project(destination);
494
+ throw new DeveloperError('frameState.mode cannot be SceneMode.MORPHING');
495
+ }
496
+
497
+ if (Cartesian3.equalsEpsilon(c3destination, frameState.camera.position, CesiumMath.EPSILON6)) {
498
+ return {
499
+ duration : 0,
500
+ onComplete : description.onComplete
501
+ };
490
502
  }
491
503
 
492
504
  var createAnimationDescription = clone(description);
493
- createAnimationDescription.destination = end;
505
+ createAnimationDescription.destination = c3destination;
506
+ return this.createAnimation(frameState, createAnimationDescription);
507
+ };
508
+
509
+ /**
510
+ * Creates an animation to fly the camera from it's current position to a position in which the entire extent will be visible. Keep in mind that the animation
511
+ * will happen in the camera's current reference frame.
512
+ *
513
+ * @param {FrameState} frameState The current frame state.
514
+ * @param {Extent} description.destination The final position of the camera.
515
+ * @param {Number} [description.duration=3000] The duration of the animation in milliseconds.
516
+ * @param {Function} [onComplete] The function to execute when the animation has completed.
517
+ *
518
+ * @returns {Object} An Object that can be added to an {@link AnimationCollection} for animation.
519
+ *
520
+ * @exception {DeveloperError} frameState is required.
521
+ * @exception {DeveloperError} description.destination is required.
522
+ * @exception {DeveloperError} frameState.mode cannot be SceneMode.MORPHING
523
+ *
524
+ * @see Scene#getFrameState
525
+ * @see Scene#getAnimations
526
+ */
527
+ CameraFlightPath.createAnimationExtent = function(frameState, description) {
528
+ description = defaultValue(description, defaultValue.EMPTY_OBJECT);
529
+ var extent = description.destination;
530
+ if (typeof frameState === 'undefined') {
531
+ throw new DeveloperError('frameState is required.');
532
+ }
533
+ if (typeof extent === 'undefined') {
534
+ throw new DeveloperError('description.destination is required.');
535
+ }
536
+ if (frameState.mode === SceneMode.MORPHING) {
537
+ throw new DeveloperError('frameState.mode cannot be SceneMode.MORPHING');
538
+ }
539
+
540
+ var createAnimationDescription = clone(description);
541
+ var camera = frameState.camera;
542
+ camera.controller.getExtentCameraCoordinates(extent, c3destination);
543
+
544
+ if (Cartesian3.equalsEpsilon(c3destination, frameState.camera.position, CesiumMath.EPSILON6)) {
545
+ return {
546
+ duration : 0,
547
+ onComplete : description.onComplete
548
+ };
549
+ }
550
+
551
+ createAnimationDescription.destination = c3destination;
494
552
  return this.createAnimation(frameState, createAnimationDescription);
495
553
  };
496
554