cesium 0.16.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
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