cesium 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/Cesium.js +7 -7
- data/app/assets/javascripts/Core/BoundingRectangle.js +1 -1
- data/app/assets/javascripts/Core/BoundingSphere.js +12 -5
- data/app/assets/javascripts/Core/BoxTessellator.js +11 -8
- data/app/assets/javascripts/Core/CatmullRomSpline.js +23 -21
- data/app/assets/javascripts/Core/Clock.js +1 -1
- data/app/assets/javascripts/Core/Color.js +51 -0
- data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +3 -1
- data/app/assets/javascripts/Core/EarthOrientationParameters.js +1 -1
- data/app/assets/javascripts/Core/EllipsoidalOccluder.js +15 -12
- data/app/assets/javascripts/Core/Extent.js +37 -0
- data/app/assets/javascripts/Core/ExtentTessellator.js +33 -25
- data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +18 -19
- data/app/assets/javascripts/Core/HermiteSpline.js +49 -49
- data/app/assets/javascripts/Core/Iau2006XysData.js +4 -5
- data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +10 -20
- data/app/assets/javascripts/Core/LinearApproximation.js +19 -23
- data/app/assets/javascripts/Core/Math.js +15 -3
- data/app/assets/javascripts/Core/Matrix4.js +186 -2
- data/app/assets/javascripts/Core/MeshFilters.js +13 -13
- data/app/assets/javascripts/Core/OrientationInterpolator.js +19 -19
- data/app/assets/javascripts/Core/PlaneTessellator.js +8 -6
- data/app/assets/javascripts/Core/PolygonPipeline.js +21 -21
- data/app/assets/javascripts/Core/PolylinePipeline.js +17 -25
- data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +187 -185
- data/app/assets/javascripts/Core/Shapes.js +8 -4
- data/app/assets/javascripts/Core/Simon1994PlanetaryPositions.js +521 -0
- data/app/assets/javascripts/Core/Spherical.js +36 -9
- data/app/assets/javascripts/Core/TaskProcessor.js +42 -5
- data/app/assets/javascripts/Core/TimeIntervalCollection.js +5 -5
- data/app/assets/javascripts/Core/Tipsify.js +21 -16
- data/app/assets/javascripts/Core/Transforms.js +11 -11
- data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +4 -4
- data/app/assets/javascripts/Core/clone.js +25 -8
- data/app/assets/javascripts/Core/defaultValue.js +10 -1
- data/app/assets/javascripts/Core/isCrossOriginUrl.js +32 -0
- data/app/assets/javascripts/Core/jsonp.js +2 -2
- data/app/assets/javascripts/Core/loadImage.js +13 -6
- data/app/assets/javascripts/Core/loadJson.js +4 -1
- data/app/assets/javascripts/Core/pointInsideTriangle2D.js +1 -1
- data/app/assets/javascripts/Core/writeTextToCanvas.js +1 -3
- data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +7 -4
- data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlColor.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +6 -5
- data/app/assets/javascripts/DynamicScene/CzmlImage.js +8 -3
- data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +6 -5
- data/app/assets/javascripts/DynamicScene/CzmlNumber.js +6 -4
- data/app/assets/javascripts/DynamicScene/CzmlPosition.js +166 -0
- data/app/assets/javascripts/DynamicScene/CzmlString.js +6 -4
- data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +6 -5
- data/app/assets/javascripts/DynamicScene/DynamicGridMaterial.js +202 -0
- data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +5 -3
- data/app/assets/javascripts/DynamicScene/DynamicObject.js +1 -2
- data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +19 -15
- data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +12 -10
- data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +17 -10
- data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +39 -90
- data/app/assets/javascripts/DynamicScene/DynamicProperty.js +19 -6
- data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +6 -4
- data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +10 -11
- data/app/assets/javascripts/Renderer/ClearCommand.js +60 -9
- data/app/assets/javascripts/Renderer/Context.js +234 -575
- data/app/assets/javascripts/Renderer/DrawCommand.js +15 -3
- data/app/assets/javascripts/Renderer/PassState.js +55 -0
- data/app/assets/javascripts/Renderer/PickFramebuffer.js +47 -77
- data/app/assets/javascripts/Renderer/RenderState.js +541 -0
- data/app/assets/javascripts/Renderer/ShaderCache.js +34 -1
- data/app/assets/javascripts/Renderer/ShaderProgram.js +112 -6
- data/app/assets/javascripts/Renderer/TextureAtlas.js +63 -67
- data/app/assets/javascripts/Renderer/UniformState.js +59 -30
- data/app/assets/javascripts/Renderer/VertexArray.js +9 -7
- data/app/assets/javascripts/Renderer/VertexArrayFacade.js +28 -27
- data/app/assets/javascripts/Renderer/createPickFragmentShaderSource.js +53 -0
- data/app/assets/javascripts/Renderer/loadCubeMap.js +10 -11
- data/app/assets/javascripts/Scene/AnimationCollection.js +48 -44
- data/app/assets/javascripts/Scene/Billboard.js +8 -2
- data/app/assets/javascripts/Scene/BillboardCollection.js +66 -62
- data/app/assets/javascripts/Scene/Camera.js +3 -0
- data/app/assets/javascripts/Scene/CameraController.js +3 -3
- data/app/assets/javascripts/Scene/CameraFlightPath.js +9 -6
- data/app/assets/javascripts/Scene/CentralBody.js +47 -65
- data/app/assets/javascripts/Scene/CentralBodySurface.js +9 -6
- data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +5 -9
- data/app/assets/javascripts/Scene/CompositePrimitive.js +8 -8
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +66 -55
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +26 -27
- data/app/assets/javascripts/Scene/FrameState.js +15 -4
- data/app/assets/javascripts/Scene/GridImageryProvider.js +266 -0
- data/app/assets/javascripts/Scene/ImageryLayer.js +44 -19
- data/app/assets/javascripts/Scene/ImageryLayerCollection.js +3 -0
- data/app/assets/javascripts/Scene/ImageryProvider.js +3 -0
- data/app/assets/javascripts/Scene/Label.js +4 -4
- data/app/assets/javascripts/Scene/LabelCollection.js +2 -9
- data/app/assets/javascripts/Scene/Material.js +97 -8
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +2 -2
- data/app/assets/javascripts/Scene/PerformanceDisplay.js +17 -10
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +2 -2
- data/app/assets/javascripts/Scene/Polygon.js +30 -56
- data/app/assets/javascripts/Scene/Polyline.js +93 -227
- data/app/assets/javascripts/Scene/PolylineCollection.js +685 -757
- data/app/assets/javascripts/Scene/Projections.js +2 -2
- data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +21 -16
- data/app/assets/javascripts/Scene/Scene.js +40 -32
- data/app/assets/javascripts/Scene/SceneTransitioner.js +8 -56
- data/app/assets/javascripts/Scene/SensorVolumeCollection.js +6 -20
- data/app/assets/javascripts/Scene/SkyAtmosphere.js +0 -11
- data/app/assets/javascripts/Scene/SkyBox.js +0 -11
- data/app/assets/javascripts/Scene/VRTheWorldTerrainProvider.js +3 -2
- data/app/assets/javascripts/Scene/ViewportQuad.js +8 -8
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +0 -2
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +0 -2
- data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +517 -3
- data/app/assets/javascripts/Shaders/BuiltinFunctions.js +535 -4
- data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +11 -24
- data/app/assets/javascripts/Shaders/CentralBodyFS.js +11 -24
- data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +1 -3
- data/app/assets/javascripts/Shaders/CentralBodyVS.js +1 -3
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +14 -33
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +14 -33
- data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +0 -1
- data/app/assets/javascripts/Shaders/EllipsoidFS.js +0 -1
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +1 -11
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +1 -11
- data/app/assets/javascripts/Shaders/Materials/FadeMaterial.glsl +36 -0
- data/app/assets/javascripts/Shaders/Materials/FadeMaterial.js +42 -0
- data/app/assets/javascripts/Shaders/Materials/GridMaterial.glsl +9 -1
- data/app/assets/javascripts/Shaders/Materials/GridMaterial.js +9 -1
- data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.glsl +60 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.js +66 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineGlowMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineGlowMaterial.js +23 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineOutlineMaterial.glsl +28 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineOutlineMaterial.js +34 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +4 -10
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +4 -10
- data/app/assets/javascripts/Shaders/PolygonFS.glsl +0 -3
- data/app/assets/javascripts/Shaders/PolygonFS.js +1 -4
- data/app/assets/javascripts/Shaders/PolygonVS.glsl +3 -4
- data/app/assets/javascripts/Shaders/PolygonVS.js +3 -4
- data/app/assets/javascripts/Shaders/PolylineFS.glsl +9 -2
- data/app/assets/javascripts/Shaders/PolylineFS.js +9 -2
- data/app/assets/javascripts/Shaders/PolylineVS.glsl +131 -14
- data/app/assets/javascripts/Shaders/PolylineVS.js +131 -14
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +1 -19
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +1 -19
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +9 -1
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +9 -1
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +1 -3
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +1 -3
- data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +1 -2
- data/app/assets/javascripts/Shaders/SkyBoxFS.js +1 -2
- data/app/assets/javascripts/Widgets/Animation/Animation.js +8 -5
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +19 -1
- data/app/assets/javascripts/Widgets/Timeline/Timeline.js +19 -2
- data/lib/cesium/version.rb +1 -1
- data/test/dummy/app/assets/javascripts/application.js.coffee +10 -10
- data/test/dummy/log/development.log +28285 -0
- data/test/dummy/tmp/cache/assets/BAF/370/sprockets%2F799a74598087f7719313562f44828061 +0 -0
- data/test/dummy/tmp/cache/assets/BF8/BC0/sprockets%2F1982805b53487d15554f20955019b8c4 +0 -0
- data/test/dummy/tmp/cache/assets/C12/030/sprockets%2Fbd84b00d783150a219825433401a7946 +0 -0
- data/test/dummy/tmp/cache/assets/C1F/BE0/sprockets%2F9ff195723d3a539023420682a372f561 +0 -0
- data/test/dummy/tmp/cache/assets/C23/060/sprockets%2F0844038b70e644bef4539389305680a3 +0 -0
- data/test/dummy/tmp/cache/assets/C27/DA0/sprockets%2Fe49200d07769d24f54f721d890142818 +0 -0
- data/test/dummy/tmp/cache/assets/C37/EB0/sprockets%2F410166e528f769c35999d061f6552d57 +0 -0
- data/test/dummy/tmp/cache/assets/C38/870/sprockets%2F3c244a5393086f3b95954f4675f29458 +0 -0
- data/test/dummy/tmp/cache/assets/C44/870/sprockets%2Fc7607e52811e723312c83d096c611c32 +0 -0
- data/test/dummy/tmp/cache/assets/C46/770/sprockets%2F9b6c82d0454ab5ba8727173860060324 +0 -0
- data/test/dummy/tmp/cache/assets/C46/E60/sprockets%2F151028e967f13248ca6121c9407242cf +0 -0
- data/test/dummy/tmp/cache/assets/C48/360/sprockets%2Fc966013651008025255f5b53b1d63f9e +0 -0
- data/test/dummy/tmp/cache/assets/C49/6B0/sprockets%2Ff15d3a84028c48073d820c51575157a4 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/020/sprockets%2F162d504e77459f0304b964139300cfe3 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/2B0/sprockets%2F821c1d08482a9b936b661a56444551b3 +0 -0
- data/test/dummy/tmp/cache/assets/C4F/630/sprockets%2F8935f51ad832c341c838751031a827f2 +0 -0
- data/test/dummy/tmp/cache/assets/C51/170/sprockets%2F7121148c53e447e867b886592e11ad00 +0 -0
- data/test/dummy/tmp/cache/assets/C53/040/sprockets%2F52411d26c4863636c7ae5b5090690f94 +0 -0
- data/test/dummy/tmp/cache/assets/C57/D10/sprockets%2F784e21cb5b634a598629115ef4685213 +0 -0
- data/test/dummy/tmp/cache/assets/C59/810/sprockets%2Fc37183f61d9511d324983656cd9375a1 +0 -0
- data/test/dummy/tmp/cache/assets/C61/2F0/sprockets%2Fe7f511982b4799474ab391f714d39630 +0 -0
- data/test/dummy/tmp/cache/assets/C64/730/sprockets%2F78fd706ba991f21a399070866616c297 +0 -0
- data/test/dummy/tmp/cache/assets/C65/0E0/sprockets%2F8303e4555c14f5f62cd2979665f50578 +0 -0
- data/test/dummy/tmp/cache/assets/C6C/C90/sprockets%2Fad7947b2492467a62388859219a92de9 +0 -0
- data/test/dummy/tmp/cache/assets/C70/900/sprockets%2F8dc34820f1167ed79c121111a0696c03 +0 -0
- data/test/dummy/tmp/cache/assets/C72/450/sprockets%2F12725ceae78656537003a1240f640ed4 +0 -0
- data/test/dummy/tmp/cache/assets/C73/0F0/sprockets%2F8a6a50d9b866140c720b6a48307c4116 +0 -0
- data/test/dummy/tmp/cache/assets/C75/F50/sprockets%2F52991c5c131fb0049279124ef17047ba +0 -0
- data/test/dummy/tmp/cache/assets/C76/F10/sprockets%2F536e031c5d9a257b602d38f8711480a2 +0 -0
- data/test/dummy/tmp/cache/assets/C7E/EA0/sprockets%2F2504a119ab66f79d8d296032e957a023 +0 -0
- data/test/dummy/tmp/cache/assets/C7F/860/sprockets%2F7646acf5464f211440d12d09847e7c43 +0 -0
- data/test/dummy/tmp/cache/assets/C80/150/sprockets%2F0d3881005b0646df783d5c24683d34f5 +0 -0
- data/test/dummy/tmp/cache/assets/C80/780/sprockets%2F49930c35001a30c38745b89a6a86cf74 +0 -0
- data/test/dummy/tmp/cache/assets/C82/060/sprockets%2Fb043f48276a50489714f9ec04525e26a +0 -0
- data/test/dummy/tmp/cache/assets/C82/580/sprockets%2F8118f4526088ba8fd441f20317475d6b +0 -0
- data/test/dummy/tmp/cache/assets/C82/AA0/sprockets%2Fd83006c52345d7fe51216f1e577a8185 +0 -0
- data/test/dummy/tmp/cache/assets/C83/A50/sprockets%2F26b151f7490286ff7059ff9a411e1027 +0 -0
- data/test/dummy/tmp/cache/assets/C84/E00/sprockets%2F49d13d786c17ba7650b374646455a6b3 +0 -0
- data/test/dummy/tmp/cache/assets/C85/310/sprockets%2Fc638d86c720815e5b635e0a3646e2186 +0 -0
- data/test/dummy/tmp/cache/assets/C87/1B0/sprockets%2F58524f16545fa54ea39c3c1270d06799 +0 -0
- data/test/dummy/tmp/cache/assets/C88/960/sprockets%2F50655bc2c86c7c3007756af818375e64 +0 -0
- data/test/dummy/tmp/cache/assets/C89/9E0/sprockets%2Fbc5d891273e7d61e56762000337868bf +0 -0
- data/test/dummy/tmp/cache/assets/C8A/680/sprockets%2F401d94c3b6643cb7764590d5765197ea +0 -0
- data/test/dummy/tmp/cache/assets/C8B/0F0/sprockets%2F3317c35ce7597681091ac91985d08bb5 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/A30/sprockets%2Fe20153c26552232703d0f4a5a60b10ed +0 -0
- data/test/dummy/tmp/cache/assets/C8D/FC0/sprockets%2Fab1b1b654d968822069892e844f5244f +0 -0
- data/test/dummy/tmp/cache/assets/C8E/1A0/sprockets%2F7937090f77385164f68c0ee252b26be5 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/1B0/sprockets%2F3309cd849788a2b736f12369ad4e4851 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/D50/sprockets%2F687d2438d13763a733287fc4a2e5f746 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/E40/sprockets%2F96aaf9af5e7906347880902610773bc5 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/370/sprockets%2Ff794170ec844d49b57216a088c0297d7 +0 -0
- data/test/dummy/tmp/cache/assets/C91/F00/sprockets%2F0f611f4f95811990472ff1b6f95383d5 +0 -0
- data/test/dummy/tmp/cache/assets/C98/D30/sprockets%2F3f2411651caa9b4fd0833085b001f490 +0 -0
- data/test/dummy/tmp/cache/assets/CA9/5A0/sprockets%2F8282351dd11504a68cbc8500b7786cf2 +0 -0
- data/test/dummy/tmp/cache/assets/CA9/E20/sprockets%2F1ca84c82be52603a0c947256a38a0598 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/3C0/sprockets%2F75ce813900f222ce7892711f61db04d3 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/400/sprockets%2F5c330e413aa8e6769050215b5366c7ef +0 -0
- data/test/dummy/tmp/cache/assets/CAA/A60/sprockets%2F76b467bc7a2344e208653c4261f8ab15 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/D90/sprockets%2Fd477a5c2046351a0c462bb945e3954e5 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/670/sprockets%2F678e67cae28828b42b010381be1f1247 +0 -0
- data/test/dummy/tmp/cache/assets/CAC/000/sprockets%2F39720f0080e70a954d9956acd571d0b2 +0 -0
- data/test/dummy/tmp/cache/assets/CAC/220/sprockets%2Fe9d921c5251a11d0a6296974975dbb20 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/B20/sprockets%2F4c087829240d4b69e0a47e39bb8124d0 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/CF0/sprockets%2F25811882cd57a31606348eb7b16f4f0d +0 -0
- data/test/dummy/tmp/cache/assets/CAE/0D0/sprockets%2F02345f5b06f3a25b588ed66b8e167034 +0 -0
- data/test/dummy/tmp/cache/assets/CAF/AD0/sprockets%2Fec228a94364d0d686876d02550ed15c1 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/D20/sprockets%2F94c251de5c21293f227709479c4f32be +0 -0
- data/test/dummy/tmp/cache/assets/CB5/4C0/sprockets%2F446522846ac4ed6619268b3e00fd497a +0 -0
- data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2F62d364e38ba9b500f8b1633367f782b9 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/180/sprockets%2Fe66eae8997e04c4bf70531e166511662 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/E20/sprockets%2Fcb0a5df9573576546972b95a14d8f112 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/EA0/sprockets%2F9e63d365e2159c725d111698cc04a7e7 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/680/sprockets%2F9bad6dc04875e04891351521b9795f5a +0 -0
- data/test/dummy/tmp/cache/assets/CBA/250/sprockets%2F39bb3860405888c9f3b4b35c738b940c +0 -0
- data/test/dummy/tmp/cache/assets/CBB/E80/sprockets%2F43b17645e39f018bc195bc9828f4b357 +0 -0
- data/test/dummy/tmp/cache/assets/CBC/6C0/sprockets%2F6f494cff47ee245d30168217542c66d6 +0 -0
- data/test/dummy/tmp/cache/assets/CBE/6B0/sprockets%2F285b1ec717d1c4c725758951c8785b2f +0 -0
- data/test/dummy/tmp/cache/assets/CBE/F20/sprockets%2F7610efc00f29935606275944978fbabf +0 -0
- data/test/dummy/tmp/cache/assets/CBF/3A0/sprockets%2Fc7b6a2891626c77607ea2881dc84d475 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/8B0/sprockets%2F5c98534d57c1e7f7d2926173d27e4d14 +0 -0
- data/test/dummy/tmp/cache/assets/CC0/E60/sprockets%2F9731b0739ec7356b2e484cb427d6955f +0 -0
- data/test/dummy/tmp/cache/assets/CC1/600/sprockets%2F322629f082c9e743f47a32edd58874b8 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/950/sprockets%2F697670d712a9a24f564f9e62b5ed1389 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/B10/sprockets%2F55b1a4137e59cad5520e1f012eb29021 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/B80/sprockets%2F5b090557c9468f93cc1ab77898ba2629 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/0B0/sprockets%2Fa26009e31f9e68672f4fc7f873909a64 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/D20/sprockets%2F372172a3ef18b8cac40a5c410f748021 +0 -0
- data/test/dummy/tmp/cache/assets/CCD/9B0/sprockets%2F0b3845e705c1a2c20c80b56c9c8a2246 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/7E0/sprockets%2F3d478e2550d0140a8da13a229735bcd7 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/990/sprockets%2F3027964ce732931bb70c158aa61ab08d +0 -0
- data/test/dummy/tmp/cache/assets/CD1/590/sprockets%2F2f99067423113c4aebb30a4dd3643b85 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/250/sprockets%2F9982c13eacaf46622739beab50120614 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/DB0/sprockets%2F38ec8b4912b23f2b31322570d56c9c2b +0 -0
- data/test/dummy/tmp/cache/assets/CD8/5E0/sprockets%2Ffd127b418d9dc4cc3d196672811a6112 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/D40/sprockets%2F73570572f17300ebf2dda1ef2635149e +0 -0
- data/test/dummy/tmp/cache/assets/CD9/B20/sprockets%2F65698070c3bce81f5ee4eb101722b741 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/D90/sprockets%2F87979893cfde1b28afc60797a9948345 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/DA0/sprockets%2F13e6789dd595b2b5033b335bbd1472f2 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/4D0/sprockets%2Ffb9182b4d13b796b245db8153324f4d2 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/630/sprockets%2Fc48aca3d09504ff1811d9234c8267f50 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/B50/sprockets%2F0f1e213595a02089df9735ec41c3ee80 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/380/sprockets%2F39695e0a1726566c80281aab8d9a51cc +0 -0
- data/test/dummy/tmp/cache/assets/CDF/710/sprockets%2F16d775d6707a066df80d10cd1528ff33 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/CA0/sprockets%2F3d5b2c400b7877c15ec29575d95b613b +0 -0
- data/test/dummy/tmp/cache/assets/CE0/420/sprockets%2F5b3a1508216cb6b968313beae256f788 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/A00/sprockets%2F168b4bf7364dfd883a5930302e0f554c +0 -0
- data/test/dummy/tmp/cache/assets/CE4/F60/sprockets%2Fbc3490162e3489bf88aab055d19397f0 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/F10/sprockets%2Fe9cf045465025d8527c83c3b93625fca +0 -0
- data/test/dummy/tmp/cache/assets/CE5/F90/sprockets%2F31557450886bf9c124f2fdb42704ce8e +0 -0
- data/test/dummy/tmp/cache/assets/CE5/FE0/sprockets%2F627e4127557531a3f8471cfbc718ed2f +0 -0
- data/test/dummy/tmp/cache/assets/CE6/4A0/sprockets%2F9c04b8b8df7217a708732da4982a5f61 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/650/sprockets%2F834b60044436456eefb9ce5cf7144d38 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/A40/sprockets%2F2974c4aef7a04f06738c8f6a2066e292 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/C70/sprockets%2F8627e999f207ce7214e0ab06afe86412 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/AA0/sprockets%2Fd569f5f91016b77401782ef3b42de6a6 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/DC0/sprockets%2F49324064376deb60c942b7d85a3e7d9b +0 -0
- data/test/dummy/tmp/cache/assets/CEA/6D0/sprockets%2F1da842257a051a9e871c739d29b7d77f +0 -0
- data/test/dummy/tmp/cache/assets/CEA/E10/sprockets%2F888c18a6b36ca5e51363b7b21c29f877 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/520/sprockets%2Fe99130a4204fac5e0b886885339af7c8 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/C10/sprockets%2F6cadb28080126992d76e5e35ba79088e +0 -0
- data/test/dummy/tmp/cache/assets/CEC/2B0/sprockets%2F917af8a56c884b3d5c6a03593d95a365 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/7A0/sprockets%2F1ccee406d881875c559b82932a25e7d4 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/920/sprockets%2F97c97b08d42738b583ed92b55c540a4f +0 -0
- data/test/dummy/tmp/cache/assets/CEF/F00/sprockets%2F8ac77338a1dc57bb32999653c561e74e +0 -0
- data/test/dummy/tmp/cache/assets/CF0/950/sprockets%2Fd08f99c34c161881adb05d342e8984f9 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/000/sprockets%2Fa779ae7d9f80d3098529264b91dd405d +0 -0
- data/test/dummy/tmp/cache/assets/CF1/5B0/sprockets%2F46e4886602bb924fc5c638865b6bf4f2 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/2E0/sprockets%2F14513ab2f3a0311abd083e70c99bd293 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/5C0/sprockets%2F64a4190014fe00d17e708fc02dfc2a32 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/4E0/sprockets%2Ff9c27df89c8173d41850b9c40e766a85 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/710/sprockets%2Fe53fe9369ad5f26285ab27754a943c88 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/B70/sprockets%2F8144ebf49f85b18c46d90b897239b56e +0 -0
- data/test/dummy/tmp/cache/assets/CFB/540/sprockets%2Fc40fe1438edc416788894df8b834f944 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/7F0/sprockets%2F6158d3ff6993e4c114a894dd371999ec +0 -0
- data/test/dummy/tmp/cache/assets/CFD/EA0/sprockets%2Fe43051fb1f2752c010e292ccbc53399b +0 -0
- data/test/dummy/tmp/cache/assets/CFD/F60/sprockets%2Fb5776671dd7cf557332f7720f49c9c9f +0 -0
- data/test/dummy/tmp/cache/assets/CFD/F80/sprockets%2Fe2b02979764013ad04e2f2b23d28e2ca +0 -0
- data/test/dummy/tmp/cache/assets/D00/690/sprockets%2F488324fb426a1e3cb3ca16488caf4004 +0 -0
- data/test/dummy/tmp/cache/assets/D01/A00/sprockets%2F5704bfb588da51f6053f30abd310b458 +0 -0
- data/test/dummy/tmp/cache/assets/D02/4C0/sprockets%2F6386d72b2c51c911a7fd84ba612430cc +0 -0
- data/test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F886e897f07ee48ec4e9f640643440dd9 +0 -0
- data/test/dummy/tmp/cache/assets/D03/EF0/sprockets%2F4799db40f9cc57f50689f6da487464f5 +0 -0
- data/test/dummy/tmp/cache/assets/D04/530/sprockets%2Fc14ce481964a025c2501a5c907c65fce +0 -0
- data/test/dummy/tmp/cache/assets/D06/590/sprockets%2F19c899c20cf5d9b8629878e3add89708 +0 -0
- data/test/dummy/tmp/cache/assets/D06/A70/sprockets%2Ff5da4e04222a35db9d267255424bf5c6 +0 -0
- data/test/dummy/tmp/cache/assets/D07/330/sprockets%2F3b24c0c589b1004b399d108ae5d6ef81 +0 -0
- data/test/dummy/tmp/cache/assets/D07/7F0/sprockets%2F3fb0ed6b32aa83a6878d12a209c38824 +0 -0
- data/test/dummy/tmp/cache/assets/D08/530/sprockets%2F311d9ba15b34718d1e60ddc95a84194d +0 -0
- data/test/dummy/tmp/cache/assets/D08/D80/sprockets%2F388df4f82d11657bb0b4024448b6af2b +0 -0
- data/test/dummy/tmp/cache/assets/D09/7F0/sprockets%2Fa2d67c31222348f16a9812df26da3e8d +0 -0
- data/test/dummy/tmp/cache/assets/D09/E40/sprockets%2Fc2693927bc52084b4d2b89373aaa0ac9 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/830/sprockets%2F3155dcf93a62cf601a0d48b2806b599b +0 -0
- data/test/dummy/tmp/cache/assets/D0A/830/sprockets%2F830cdfb33202453675d55d8de703fa2f +0 -0
- data/test/dummy/tmp/cache/assets/D0B/3E0/sprockets%2F66c11f02337c8851bfab67bbb3b94916 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/2E0/sprockets%2Fecb35ec370e250a63784c2f508b76a38 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/010/sprockets%2F797b9e08c55a2106f8e2dace455710d0 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/180/sprockets%2F045e183281dfc37485db513d585c5bdb +0 -0
- data/test/dummy/tmp/cache/assets/D0E/EA0/sprockets%2F1d36a1420cf4558fb3c793316ae89ca7 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/7E0/sprockets%2F45f0d1bae6783a949cd01767d4c7e212 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/9E0/sprockets%2F1536c04e487ca1a768d90a68513c3cff +0 -0
- data/test/dummy/tmp/cache/assets/D10/750/sprockets%2F4c4a696e3e0b905d75ed60f9042cd227 +0 -0
- data/test/dummy/tmp/cache/assets/D11/FC0/sprockets%2F9bd6c83d367423fe05ef6c3338143aa6 +0 -0
- data/test/dummy/tmp/cache/assets/D11/FD0/sprockets%2Fa7872e06fd015c19f48f4c350d63cc19 +0 -0
- data/test/dummy/tmp/cache/assets/D12/1C0/sprockets%2F5901cb9faf1725dd2e472ca2965b4287 +0 -0
- data/test/dummy/tmp/cache/assets/D12/BE0/sprockets%2Ff01aaa83ff0f19584cb671837a7d7444 +0 -0
- data/test/dummy/tmp/cache/assets/D13/6B0/sprockets%2F0975ed2a9d299bf1c719b3b1137e581b +0 -0
- data/test/dummy/tmp/cache/assets/D14/340/sprockets%2F4d057c80e80694c2c4d637ecd538bc08 +0 -0
- data/test/dummy/tmp/cache/assets/D14/BD0/sprockets%2Ffc2255112852fb55d96d41a92f8fb6b6 +0 -0
- data/test/dummy/tmp/cache/assets/D14/DA0/sprockets%2F54a7d7c2a544df07d57173cda79e9700 +0 -0
- data/test/dummy/tmp/cache/assets/D15/A20/sprockets%2F46b5881e463b09c7f61736e5ec2aeb16 +0 -0
- data/test/dummy/tmp/cache/assets/D15/A20/sprockets%2F9e52b9b230f4aa1d0e1a74699d82e983 +0 -0
- data/test/dummy/tmp/cache/assets/D16/2A0/sprockets%2F3739709cf73c9a32b521b45677cd4bde +0 -0
- data/test/dummy/tmp/cache/assets/D17/6C0/sprockets%2F69144d8b21e495ac17e4994fdfa3a803 +0 -0
- data/test/dummy/tmp/cache/assets/D19/680/sprockets%2Fcd3a545b89d274cfd328f4d341f96272 +0 -0
- data/test/dummy/tmp/cache/assets/D19/E90/sprockets%2F16cd7e58935dd8d1d376f10be6b50368 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/0C0/sprockets%2Fa606399c0ce2e298b58fec46777024ad +0 -0
- data/test/dummy/tmp/cache/assets/D1B/C80/sprockets%2F835147dfca8c918a99182e9e2e600f1c +0 -0
- data/test/dummy/tmp/cache/assets/D1C/070/sprockets%2F19aa6be16056890e435d65d4c84cf69e +0 -0
- data/test/dummy/tmp/cache/assets/D1D/700/sprockets%2F72d9824da671eff2338d52de93b83a56 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/C60/sprockets%2F54364ea078190fbd4168336feef963fc +0 -0
- data/test/dummy/tmp/cache/assets/D1F/5F0/sprockets%2Ff8cb248d9fc90758124cd284e17e3b66 +0 -0
- data/test/dummy/tmp/cache/assets/D21/EF0/sprockets%2F935d9ee3ec37515493a293c3785dadc8 +0 -0
- data/test/dummy/tmp/cache/assets/D22/0B0/sprockets%2F9dfda36b032e59892637b875d7af392b +0 -0
- data/test/dummy/tmp/cache/assets/D22/2C0/sprockets%2Fe42d5d90d467a803999bdec116955f8b +0 -0
- data/test/dummy/tmp/cache/assets/D23/610/sprockets%2F0e51cca080cc65e62e080941b232a1ed +0 -0
- data/test/dummy/tmp/cache/assets/D23/EB0/sprockets%2Fe26ee953fe7e3172d737e6e67a96332a +0 -0
- data/test/dummy/tmp/cache/assets/D25/C00/sprockets%2Ff63d097054df34bc660bdf98f7661b99 +0 -0
- data/test/dummy/tmp/cache/assets/D26/470/sprockets%2F1e9b32c11057bc537b0021de4f1f1fc6 +0 -0
- data/test/dummy/tmp/cache/assets/D29/910/sprockets%2Fe51f36e9fde73e3928070a96fcf77571 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/E10/sprockets%2F2d2a1cfcc28a38330d30434fd8c1077c +0 -0
- data/test/dummy/tmp/cache/assets/D2B/210/sprockets%2F67aaa6c903e6b15c74de39af0002a451 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/CF0/sprockets%2F70b2adc5e73b271342371aaad257b76d +0 -0
- data/test/dummy/tmp/cache/assets/D2D/E40/sprockets%2Faf21fa3d26ad3f68a23532178e20fb15 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/100/sprockets%2F8c0286ee70744ca12c7c12a563de4b2a +0 -0
- data/test/dummy/tmp/cache/assets/D32/3E0/sprockets%2Fc9f2c6b93b29fa3b0d5420b751903eb1 +0 -0
- data/test/dummy/tmp/cache/assets/D32/6E0/sprockets%2Fb4f78f31b9aab6dbd2911b07076d4601 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A80/sprockets%2Fb12fb26042f73cf3b2796abc2836ee20 +0 -0
- data/test/dummy/tmp/cache/assets/D36/7F0/sprockets%2F78e0c63f0043ae6e6536ec504cc23a9b +0 -0
- data/test/dummy/tmp/cache/assets/D36/E70/sprockets%2F69b00a4118d012bf6d7cf293b5f316ff +0 -0
- data/test/dummy/tmp/cache/assets/D37/070/sprockets%2F59e3be9a13634f3b3d0cab4ad0889063 +0 -0
- data/test/dummy/tmp/cache/assets/D39/740/sprockets%2Fd4834d921f293e5dcc04bea2b3917d51 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/520/sprockets%2F7193d867aa217d4a306848dbcc1d9c0b +0 -0
- data/test/dummy/tmp/cache/assets/D3A/670/sprockets%2F0db6624d07920a5f4decb479718da33c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/690/sprockets%2Fb5058a82d02b84df6210af598cfa644c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/A00/sprockets%2F1077cd94fef55fbb01ce529612180bd5 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/ED0/sprockets%2F5ae1cf0266d63b8eb0647535ca93b63d +0 -0
- data/test/dummy/tmp/cache/assets/D3C/640/sprockets%2F42e7a70bb8be9398385afb3c4742aa04 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/E40/sprockets%2Fba57600a2dd2f6da96613de37f27930f +0 -0
- data/test/dummy/tmp/cache/assets/D3D/4E0/sprockets%2F7d37b8c27a3f3b1a02c4fe17643de865 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/940/sprockets%2F5ed82a03c1de5c34135b67ff053787ec +0 -0
- data/test/dummy/tmp/cache/assets/D3E/F80/sprockets%2Fa146a4bfc3b8cb08334b9b14fe379756 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/050/sprockets%2Fab4aa96dbce1e6b359f2658118291d90 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/590/sprockets%2F13a259ba93c919fa5a47ba9cf10569f1 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/E10/sprockets%2Ff8492202733ea4a4f67065c95eec1beb +0 -0
- data/test/dummy/tmp/cache/assets/D40/6C0/sprockets%2Fafe496eaca27b82020893b81383e8b6b +0 -0
- data/test/dummy/tmp/cache/assets/D40/D10/sprockets%2F7af151c9b6080d9285fe058ae6d40c4d +0 -0
- data/test/dummy/tmp/cache/assets/D40/E50/sprockets%2F278df3df34e9573cbd9a402e42d1193b +0 -0
- data/test/dummy/tmp/cache/assets/D41/220/sprockets%2Fafb511e47c76bf448b6f7072c8d3118c +0 -0
- data/test/dummy/tmp/cache/assets/D41/770/sprockets%2F271c5f12457864bbb0c6646c9ebf1f3f +0 -0
- data/test/dummy/tmp/cache/assets/D41/8A0/sprockets%2Fbc7ce77806517ea173350e6a4d8c55db +0 -0
- data/test/dummy/tmp/cache/assets/D41/D70/sprockets%2F48b33bbf96854b502b0eaf902e69d55c +0 -0
- data/test/dummy/tmp/cache/assets/D41/FE0/sprockets%2F2901ba969f333cc19393afd2f0fc7c64 +0 -0
- data/test/dummy/tmp/cache/assets/D42/970/sprockets%2Fe27c8084b9cf2eaa063f585e92064c5a +0 -0
- data/test/dummy/tmp/cache/assets/D43/F70/sprockets%2F2c844357dd8de7db147f80c3539b0ee0 +0 -0
- data/test/dummy/tmp/cache/assets/D44/6D0/sprockets%2F4d7032af47bfce2d4a8564830f8a6a96 +0 -0
- data/test/dummy/tmp/cache/assets/D45/1C0/sprockets%2F7e052d17bd4b749ba373bea97380c8f6 +0 -0
- data/test/dummy/tmp/cache/assets/D45/3B0/sprockets%2Fd26b5a0d570ef57d06df6f032e9b8980 +0 -0
- data/test/dummy/tmp/cache/assets/D46/770/sprockets%2F96355435f9ab8090c2d3e4f0ddd9b7c3 +0 -0
- data/test/dummy/tmp/cache/assets/D46/8E0/sprockets%2F1a4f07bd2741629bdd572848dccf773e +0 -0
- data/test/dummy/tmp/cache/assets/D47/2B0/sprockets%2Ff3d8c4ca1a44044d98395b36b770fcf9 +0 -0
- data/test/dummy/tmp/cache/assets/D47/8F0/sprockets%2F1cc6e49382be4f74cbb97821ae1928c4 +0 -0
- data/test/dummy/tmp/cache/assets/D47/AC0/sprockets%2Fcb9189183de4d74faa04d6ad1347964f +0 -0
- data/test/dummy/tmp/cache/assets/D48/1D0/sprockets%2Fbff4201c0944eaf31a2f6a0110cbd224 +0 -0
- data/test/dummy/tmp/cache/assets/D48/2F0/sprockets%2F6b79e4839df89b4abb51c2c6105d15e8 +0 -0
- data/test/dummy/tmp/cache/assets/D48/960/sprockets%2F90e2c11ff8fd31e591b9fd39932631bf +0 -0
- data/test/dummy/tmp/cache/assets/D4A/C80/sprockets%2F0289519826ada458af4b9a728fdfcf31 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/C20/sprockets%2Fc28f3c4d6cd98dbb784830d7c6214d65 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/E90/sprockets%2F51d49f9bc2549684e6da91a4e0bc379b +0 -0
- data/test/dummy/tmp/cache/assets/D4C/490/sprockets%2F7e207e1654e5343a964fd6cf3fefb447 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/BD0/sprockets%2F4ac9d1aa903d4731edf18fe2b9589829 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/640/sprockets%2Fdaab3d2130266b5b7a2f1d04b8c4322e +0 -0
- data/test/dummy/tmp/cache/assets/D4E/6C0/sprockets%2Fedd9cf282af0f00637e5273c8c3888b9 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/D00/sprockets%2F1a6846f0a837ae2524e2f9ec89e6ef43 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/410/sprockets%2F1377bb2e86073ae3a688e5a6c499a9df +0 -0
- data/test/dummy/tmp/cache/assets/D50/E10/sprockets%2F28698bc0c536fe5e97a2935e3bb929bb +0 -0
- data/test/dummy/tmp/cache/assets/D51/230/sprockets%2F742ba6ca9f84d98ffc38ca5687c05155 +0 -0
- data/test/dummy/tmp/cache/assets/D53/440/sprockets%2F2def445147b9f5d6363f6f6d497d2f0e +0 -0
- data/test/dummy/tmp/cache/assets/D53/DE0/sprockets%2F7736b51cb3bf8679b8bdc8ab9d184954 +0 -0
- data/test/dummy/tmp/cache/assets/D54/0D0/sprockets%2F448752db3a53dd453db1b01de121ebd2 +0 -0
- data/test/dummy/tmp/cache/assets/D56/1F0/sprockets%2F291fcb7a26ff3aac6bc1404e0a247242 +0 -0
- data/test/dummy/tmp/cache/assets/D57/DF0/sprockets%2F8d06b94587d49e037e77f8afcb6802cf +0 -0
- data/test/dummy/tmp/cache/assets/D59/070/sprockets%2F822cd47e69d40ba87f95181fdd698ed5 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/070/sprockets%2Fe7159b621a21a7a0ebd81a32912e8faa +0 -0
- data/test/dummy/tmp/cache/assets/D5A/D80/sprockets%2F28dc9152e2ead49ae414a5b82d04a1a2 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/660/sprockets%2F5baf6a64b3151ae6bf40155e90db6e03 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/E00/sprockets%2F92930d4e993eb8bd3498b699dccf9a33 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/3D0/sprockets%2F5f786d832b4e0ba05f6abc3ea314901a +0 -0
- data/test/dummy/tmp/cache/assets/D5F/7F0/sprockets%2Fabbcc55042a82b42c900c09d59de4c29 +0 -0
- data/test/dummy/tmp/cache/assets/D60/2A0/sprockets%2Fcd5c12269b6c414bf722c6c2dc0e18c4 +0 -0
- data/test/dummy/tmp/cache/assets/D62/140/sprockets%2F7e5a724c4c00951a0da7ec767ce19aa1 +0 -0
- data/test/dummy/tmp/cache/assets/D62/2E0/sprockets%2F51a06ddef9bd05b405fd605d37be3154 +0 -0
- data/test/dummy/tmp/cache/assets/D63/B00/sprockets%2F2672399dfcdd2b6b61536cab3d800bc1 +0 -0
- data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2Ff791df22a3d7e2f4ef01ad0742f370c1 +0 -0
- data/test/dummy/tmp/cache/assets/D63/DC0/sprockets%2Fc298c2b66150c7f11d95cecf450bb14a +0 -0
- data/test/dummy/tmp/cache/assets/D63/DE0/sprockets%2F73c9e04acfc930681ab170b3e4bfc453 +0 -0
- data/test/dummy/tmp/cache/assets/D64/670/sprockets%2F7dc8c0ad36d436eb56a0824a46e0eb08 +0 -0
- data/test/dummy/tmp/cache/assets/D64/B50/sprockets%2F7ac06eacb363b85744337c0ea88e2b0c +0 -0
- data/test/dummy/tmp/cache/assets/D65/990/sprockets%2Fa2965ca374a00aaceb747e60b654e2f8 +0 -0
- data/test/dummy/tmp/cache/assets/D66/360/sprockets%2Fc94d86aa0bc1a44817a1fd3db0873a87 +0 -0
- data/test/dummy/tmp/cache/assets/D66/6C0/sprockets%2F1b63a7f0e3fb2a7f3124f198d0ff462b +0 -0
- data/test/dummy/tmp/cache/assets/D67/8E0/sprockets%2Ffd0eaaf36da9805e6c4ec303534162f5 +0 -0
- data/test/dummy/tmp/cache/assets/D67/C10/sprockets%2Ffb4b4451c110f07957c2ecacf854c5d4 +0 -0
- data/test/dummy/tmp/cache/assets/D68/000/sprockets%2F39c01fa5c01830f3558eb1c97c4dfb6b +0 -0
- data/test/dummy/tmp/cache/assets/D68/0C0/sprockets%2F6c628ddf1ba5c680e04ad54a476f163b +0 -0
- data/test/dummy/tmp/cache/assets/D68/210/sprockets%2Fdc284967860db06c2cb2e1da78bab156 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/2E0/sprockets%2Fc3a3a8e66c9b58b52b1db3ad754c9423 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/BA0/sprockets%2F8293eb343aead8dda54496532fb24fa1 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/AD0/sprockets%2Fdabce05f6e4419832e20d6b7420fe9a7 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/080/sprockets%2F3cc7b7355591babda1661e6c5e9f8c20 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/690/sprockets%2Fd288d7215df092fdc70b3b8216dce2f3 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/7A0/sprockets%2Fff4be901f55528b85b2b1fc73ebc4352 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/E80/sprockets%2F9ef00ee94e3b0eed7c4e45b342085d51 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/940/sprockets%2Fb19f43bd8383eeb5e26a4d2b79f1240e +0 -0
- data/test/dummy/tmp/cache/assets/D6E/9F0/sprockets%2F15f61ad82d9ca6cce6a0e42b7249662f +0 -0
- data/test/dummy/tmp/cache/assets/D6E/AD0/sprockets%2F4441be9946083b61e75f7bf1a1cca5cf +0 -0
- data/test/dummy/tmp/cache/assets/D73/3F0/sprockets%2F09b4a9c1131740eba5d85fcf9c86b97a +0 -0
- data/test/dummy/tmp/cache/assets/D76/030/sprockets%2F7e8689ec6a9f3754a4aa660e303cbf4a +0 -0
- data/test/dummy/tmp/cache/assets/D76/C80/sprockets%2F952307811ad5e9e8b540cf5e9cf08cea +0 -0
- data/test/dummy/tmp/cache/assets/D76/CA0/sprockets%2F797920cdabaf2f8431968a34c2cbae79 +0 -0
- data/test/dummy/tmp/cache/assets/D77/B70/sprockets%2Fa02f64f352cfa69d33983fd15e8ea3d7 +0 -0
- data/test/dummy/tmp/cache/assets/D77/FF0/sprockets%2F126c2e2ca6f5e8477c9525f46cdba7d5 +0 -0
- data/test/dummy/tmp/cache/assets/D79/2F0/sprockets%2F4b9fd617fe0d6c7e5eb934a139507e3d +0 -0
- data/test/dummy/tmp/cache/assets/D79/E80/sprockets%2F7d329345d1b9f914c87fc5e07ea9ab4b +0 -0
- data/test/dummy/tmp/cache/assets/D7A/5C0/sprockets%2F6e2b202ee971a68c1e78eddf5658e53a +0 -0
- data/test/dummy/tmp/cache/assets/D7A/8C0/sprockets%2Fc477a2d0aa5d658fd7294d6f6c5a484e +0 -0
- data/test/dummy/tmp/cache/assets/D7C/160/sprockets%2F6847e66cdafb094701f479a515ede5dd +0 -0
- data/test/dummy/tmp/cache/assets/D7C/750/sprockets%2F1f76d236fdf42a817bd84da719fde069 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/B90/sprockets%2Fc89b5af12387ee80ca80e3f2ac776c79 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/2A0/sprockets%2F1ce479f9423e748690a75abbabf8af84 +0 -0
- data/test/dummy/tmp/cache/assets/D7F/A60/sprockets%2F5c683951503f673cceffa6ba76f38b8d +0 -0
- data/test/dummy/tmp/cache/assets/D81/120/sprockets%2F75c7f18e61fa042b776ce2e5c3ff786f +0 -0
- data/test/dummy/tmp/cache/assets/D82/560/sprockets%2Fcb5875caef3f569f08878b13cdd991a2 +0 -0
- data/test/dummy/tmp/cache/assets/D84/0A0/sprockets%2F07fc0bfe2237a171b813aa147f3ced1a +0 -0
- data/test/dummy/tmp/cache/assets/D85/050/sprockets%2Fa9b35663e7dc78eacde8d84ae3599163 +0 -0
- data/test/dummy/tmp/cache/assets/D85/5A0/sprockets%2Fc2cbee1b5160e0e8b022933feb36ea30 +0 -0
- data/test/dummy/tmp/cache/assets/D87/6D0/sprockets%2F51df69aad9a6f892254deb9d4c1992f8 +0 -0
- data/test/dummy/tmp/cache/assets/D88/1B0/sprockets%2Fb5bb04fc812b607ce046a4b702be4c4f +0 -0
- data/test/dummy/tmp/cache/assets/D88/7E0/sprockets%2Fe9fedb2c5be893a15939dc65f684196b +0 -0
- data/test/dummy/tmp/cache/assets/D8A/2C0/sprockets%2F6ec8da0142f240ce8a7e0b46aea363c1 +0 -0
- data/test/dummy/tmp/cache/assets/D8A/370/sprockets%2Fb4600d72a29aba7a39c2ec58aa04f18b +0 -0
- data/test/dummy/tmp/cache/assets/D8A/B90/sprockets%2F7506f75d60f93f9e8405ffb9cf85ddb2 +0 -0
- data/test/dummy/tmp/cache/assets/D8A/BF0/sprockets%2F1967ce66d464496a6fab44ff8be55ef6 +0 -0
- data/test/dummy/tmp/cache/assets/D8C/9C0/sprockets%2F2e7c2cd86215800a37c4d4b1bf0bea5f +0 -0
- data/test/dummy/tmp/cache/assets/D8E/910/sprockets%2Fbbf8e4c05ca721c1cd18c17902256ade +0 -0
- data/test/dummy/tmp/cache/assets/D8F/C40/sprockets%2Fa76260381aff4aa0c8beea0404e95de2 +0 -0
- data/test/dummy/tmp/cache/assets/D93/3B0/sprockets%2Fd0fb3bdcf317425a433a125c986b3dff +0 -0
- data/test/dummy/tmp/cache/assets/D94/1A0/sprockets%2Fb4748c092e8a4c127bcfacb06cdc2735 +0 -0
- data/test/dummy/tmp/cache/assets/D94/AD0/sprockets%2Fa1ac4bf342006e1f98def10cf9d7d234 +0 -0
- data/test/dummy/tmp/cache/assets/D95/430/sprockets%2Fcf054ac65aa2c4b72d661fc32c898aa5 +0 -0
- data/test/dummy/tmp/cache/assets/D96/C10/sprockets%2F620f6865aeb0de3c5cf8b305b13c7cb7 +0 -0
- data/test/dummy/tmp/cache/assets/D97/2B0/sprockets%2F16a899a4b20af5f53cdd2870e1b0aed8 +0 -0
- data/test/dummy/tmp/cache/assets/D97/4C0/sprockets%2F4d4aea86610bc9652c70455a6beafc4d +0 -0
- data/test/dummy/tmp/cache/assets/D99/330/sprockets%2Ff01679ca9c88dd0a3eb6922b0b8f3bc0 +0 -0
- data/test/dummy/tmp/cache/assets/D99/B10/sprockets%2F4aa8fece5b18d820a44dc266a89d50e0 +0 -0
- data/test/dummy/tmp/cache/assets/D99/CD0/sprockets%2Ffe0c5f4b8b52baa0f91870da12599a6d +0 -0
- data/test/dummy/tmp/cache/assets/D9D/170/sprockets%2F37f702f1f3ad35b9022fc87fdce7de02 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/C90/sprockets%2F9cd75b38f1c1f85bbdac2576ca9106b5 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/6F0/sprockets%2Fff261c15e6b97bf57e372f0de1ad571a +0 -0
- data/test/dummy/tmp/cache/assets/D9F/800/sprockets%2F5c722d8150c68e6eacad70fb64e5e1f5 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/1B0/sprockets%2F71e2cd8803aac9fb0bb4c47593cf17e8 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/530/sprockets%2F88a8bb9debb752ba06f07909db83e02d +0 -0
- data/test/dummy/tmp/cache/assets/DA3/9F0/sprockets%2F5122955dfe6694bdc6b69cbea09d2cd1 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/450/sprockets%2F6f2bd50f9f1551ed8e00fd8b84f37c2c +0 -0
- data/test/dummy/tmp/cache/assets/DA5/0E0/sprockets%2Fe61590dc98f1e532ea20e296c5fce7bd +0 -0
- data/test/dummy/tmp/cache/assets/DA6/FC0/sprockets%2F900ed66847c0ec1eff94ad75fc26f11e +0 -0
- data/test/dummy/tmp/cache/assets/DAB/B00/sprockets%2F5286678a74e7bcc66e0d3c7c7d2db5fb +0 -0
- data/test/dummy/tmp/cache/assets/DAD/810/sprockets%2Fcfb7db145b0d0a3010f5d0cd7a08fb15 +0 -0
- data/test/dummy/tmp/cache/assets/DAE/A40/sprockets%2F7fefa2cd6e72f17c926159c9b7c3a95a +0 -0
- data/test/dummy/tmp/cache/assets/DB0/BF0/sprockets%2F52e4cdf37aa489ff6c138dedf036588d +0 -0
- data/test/dummy/tmp/cache/assets/DB1/C80/sprockets%2Fa2d1a10a3cc780fd30127b2be96ddfa2 +0 -0
- data/test/dummy/tmp/cache/assets/DB2/850/sprockets%2F9d6e12a0e28cc9ded4e859613cf75f6e +0 -0
- data/test/dummy/tmp/cache/assets/DB6/710/sprockets%2Ff53e9d96ae4808ad0f9e09ab4ef78f80 +0 -0
- data/test/dummy/tmp/cache/assets/DBA/7F0/sprockets%2F4f7fd7b68b8bc29c67fa996e37eaf512 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/080/sprockets%2F039ace5986a3cbf4cca0b0a753bc71a6 +0 -0
- data/test/dummy/tmp/cache/assets/DBE/210/sprockets%2Fa12ca5480c3e2b9cf44ab4ef32e813ec +0 -0
- data/test/dummy/tmp/cache/assets/DBE/DF0/sprockets%2F6d1f018e11ee2240a8dd1df920c6cddd +0 -0
- data/test/dummy/tmp/cache/assets/DC0/760/sprockets%2Fb7e4cf2efcf48d0dcc420131fd30d454 +0 -0
- data/test/dummy/tmp/cache/assets/DC1/C20/sprockets%2Fb60b7b3aeb56bd55b67183b6f151ecca +0 -0
- data/test/dummy/tmp/cache/assets/DC5/5F0/sprockets%2F9d4cc0ae7ac214bb22c7cf455d06b9c9 +0 -0
- data/test/dummy/tmp/cache/assets/DC5/660/sprockets%2F637431e1c8fffeaafc23f021bd49fa06 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/7C0/sprockets%2Fb408df7a822c70a0924e0cdf6c8fe2ca +0 -0
- data/test/dummy/tmp/cache/assets/DC8/2F0/sprockets%2F15c5ad9491aa5ef9fe4aef6333fa12c0 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/C70/sprockets%2Fbb5351434afe5616cbe7e4a6cea95a6b +0 -0
- data/test/dummy/tmp/cache/assets/DCC/F40/sprockets%2Fdc3342c548fc7d3c4f4e27732b5acfea +0 -0
- data/test/dummy/tmp/cache/assets/DCD/390/sprockets%2Fdcd461b67aec99b76eea270a9ad2c046 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/730/sprockets%2Fe577d2f2df0ce1516b2bdfa9fe0909e0 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/8D0/sprockets%2Fbf36f09be83b4d0986ad23ea4d1f32df +0 -0
- data/test/dummy/tmp/cache/assets/DCE/1C0/sprockets%2F58cc5eb1cb2a47c8067c940caecf449d +0 -0
- data/test/dummy/tmp/cache/assets/DCE/BA0/sprockets%2F57c5ecddc82aa706b1e64691a8a5bcc9 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/4A0/sprockets%2F3efd01a56bae3ae99fd13085f75b9e0d +0 -0
- data/test/dummy/tmp/cache/assets/DD1/4A0/sprockets%2Fd1fd81d46b69d255ebc7ab7f3f96a03a +0 -0
- data/test/dummy/tmp/cache/assets/DD2/380/sprockets%2F7972dab64d4a2a8007c3ecfd887ace4e +0 -0
- data/test/dummy/tmp/cache/assets/DD2/D90/sprockets%2Facc08ab37871b8576bfcb992aedaf228 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/FE0/sprockets%2Fd19b0f09a29f8558a8d1f5cfc02acec9 +0 -0
- data/test/dummy/tmp/cache/assets/DD8/5C0/sprockets%2F9dd7bcb46a4b58ee446353a9cdaf93f2 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/AA0/sprockets%2Ff96cdb075b4fc5b6eabb92832f6ad758 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/F90/sprockets%2Ff09bdb745c8fa4987aa1ffcd6370c94b +0 -0
- data/test/dummy/tmp/cache/assets/DDB/140/sprockets%2F7815fdf1a6a74db4fca71ff6537ced67 +0 -0
- data/test/dummy/tmp/cache/assets/DDD/E10/sprockets%2Fd7292f5eb3a7b1f583efbf05aef567d9 +0 -0
- data/test/dummy/tmp/cache/assets/DDE/C00/sprockets%2Ffb5947d8ea5a7d6c08c71b3c9d7a88cb +0 -0
- data/test/dummy/tmp/cache/assets/DE7/3B0/sprockets%2F55fc91edc7ee6e5f818993cbddb6b707 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/550/sprockets%2Ffff04b0980f1fbe9ece54cd8ca779867 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/980/sprockets%2Fea9daa72d1acd0886cc064d0ea6c4a30 +0 -0
- data/test/dummy/tmp/cache/assets/DEF/140/sprockets%2F0182a5cba9d2df2eabb3783cf53a1ea9 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/0C0/sprockets%2Faf8105cfdb7ceae04b099c4a2f654ce1 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/4D0/sprockets%2Fa1a06ee61db75c3c0bed4caad288789b +0 -0
- data/test/dummy/tmp/cache/assets/DF7/110/sprockets%2F0654cdd8dfa5adb61e2029fefe5f50c0 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/D40/sprockets%2F38cdcfc274accc45023affa7be98350c +0 -0
- data/test/dummy/tmp/cache/assets/DF8/570/sprockets%2Fd956ef1a15caba08edb2fc63c569f20d +0 -0
- data/test/dummy/tmp/cache/assets/DFB/E90/sprockets%2Ff7bd5fbb19ef32fc5a396d8012fac3f0 +0 -0
- data/test/dummy/tmp/cache/assets/DFC/9D0/sprockets%2F38fd8e0a2fde3b853f2a24571cd2dfdd +0 -0
- data/test/dummy/tmp/cache/assets/DFE/3C0/sprockets%2Fe7c824dbbee345aa5a66a56ebe82a29e +0 -0
- data/test/dummy/tmp/cache/assets/DFF/560/sprockets%2F5c1cedb5538de9d0c4dc9fdb62554fa1 +0 -0
- data/test/dummy/tmp/cache/assets/E02/B00/sprockets%2F723ccdfbeacf6c4176de34f371c91af9 +0 -0
- data/test/dummy/tmp/cache/assets/E02/DA0/sprockets%2F9829dec75de6c2a52fdc20d428d2edae +0 -0
- data/test/dummy/tmp/cache/assets/E04/860/sprockets%2F972757dbdbdfabfeac8ecb8a15520793 +0 -0
- data/test/dummy/tmp/cache/assets/E05/A70/sprockets%2F7a4daf48a8b7fba4f7bd770048b37fbf +0 -0
- data/test/dummy/tmp/cache/assets/E07/5B0/sprockets%2F75fdbfc0584a9cb9dda6428a66dec4b5 +0 -0
- data/test/dummy/tmp/cache/assets/E0C/810/sprockets%2Fe74897a12cedd8efea5a559354bd5bfc +0 -0
- data/test/dummy/tmp/cache/assets/E0F/B40/sprockets%2Ff5dfabed7f563e53d4735ef9c4b7a0e9 +0 -0
- data/test/dummy/tmp/cache/assets/E11/400/sprockets%2Ff6a9c23ee9f2ed728efa077ea66dfb55 +0 -0
- data/test/dummy/tmp/cache/assets/E11/4E0/sprockets%2F86e145a39f85cceeaffdff91ebb61449 +0 -0
- data/test/dummy/tmp/cache/assets/E11/C70/sprockets%2Fe5ad970d57c66489f9eebacb8e3a5ae5 +0 -0
- data/test/dummy/tmp/cache/assets/E13/B10/sprockets%2Fafbb0a11dcbf1c86ee74a1f22f2c173a +0 -0
- data/test/dummy/tmp/cache/assets/E14/0B0/sprockets%2F8bffda6f68fc139ee329bc86f6b7d2f1 +0 -0
- data/test/dummy/tmp/cache/assets/E1E/DE0/sprockets%2F84b3baefc2c0a8c2c9c0a92eacc3557b +0 -0
- data/test/dummy/tmp/cache/assets/E1F/5E0/sprockets%2Fedacf71afed14b1da329d30fcaf84091 +0 -0
- data/test/dummy/tmp/cache/assets/E21/330/sprockets%2F816aead61cd3e240f2bbe1e78da1fdb7 +0 -0
- data/test/dummy/tmp/cache/assets/E27/540/sprockets%2F3507970b2c1ccbf7b6bc37d61efadfeb +0 -0
- data/test/dummy/tmp/cache/assets/E2A/030/sprockets%2Fc8ab33fc707f5fb9b8befd27b142b3cb +0 -0
- data/test/dummy/tmp/cache/assets/E2C/EA0/sprockets%2Fcb15d5ff97502cc7dfe8a2e06ab16efb +0 -0
- data/test/dummy/tmp/cache/assets/E2F/3D0/sprockets%2Ff740ae8eecbaedadc3c664c62b83e925 +0 -0
- data/test/dummy/tmp/cache/assets/E30/C50/sprockets%2Fdaad6c4c7b1429f8de49d81fac6ad18b +0 -0
- data/test/dummy/tmp/cache/assets/E32/FD0/sprockets%2Fce7d29b07b2f0d14ef1add992dfafa89 +0 -0
- data/test/dummy/tmp/cache/assets/E36/230/sprockets%2F56aec75c7f17ef3509d4cadcf2e6fc3d +0 -0
- data/test/dummy/tmp/cache/assets/E37/6B0/sprockets%2Fce49aa1fbe8185b07e78cf9b9eee22ab +0 -0
- data/test/dummy/tmp/cache/assets/E3B/DD0/sprockets%2F8cb9fef1ee4f6bcbb80758f5c675db1a +0 -0
- data/test/dummy/tmp/cache/assets/E3C/680/sprockets%2Fd057ba99f8cc7b032da8ed9e8c0dff7c +0 -0
- data/test/dummy/tmp/cache/assets/E3E/270/sprockets%2F426e7ee1f8aeb990a55fdf8d6eefbd04 +0 -0
- data/test/dummy/tmp/cache/assets/E54/0F0/sprockets%2Fddbe86c2b19c9b2c5d0bca8e248a1fcb +0 -0
- data/test/dummy/tmp/cache/assets/E83/3A0/sprockets%2Ffdb5f7dc3aba4ce1edb8fd4bd1b42923 +0 -0
- data/test/dummy/tmp/cache/assets/E89/BE0/sprockets%2F9bfc41fee1adbc5e0ab3e58eafb550f9 +0 -0
- data/test/dummy/tmp/cache/assets/E93/2E0/sprockets%2Fba1eb3cc84f5e1fd789bf5f61a8ecdbc +0 -0
- metadata +90 -24
- data/app/assets/javascripts/Core/computeSunPosition.js +0 -116
- data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +0 -125
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +0 -350
- data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +0 -511
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +0 -448
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +0 -19
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +0 -886
- data/app/assets/javascripts/Shaders/Noise.glsl +0 -453
- data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +0 -6
- data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +0 -30
- data/app/assets/javascripts/Shaders/Ray.glsl +0 -532
- data/app/assets/javascripts/Widgets/Animation/darker.css +0 -69
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +0 -4
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +0 -348
- data/app/assets/javascripts/Widgets/Fullscreen/darker.css +0 -14
- data/app/assets/javascripts/Widgets/Images/enterFullscreen-darker.svg +0 -18
- data/app/assets/javascripts/Widgets/Images/exitFullscreen-darker.svg +0 -18
- data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
- data/app/assets/javascripts/Widgets/Timeline/darker.css +0 -20
- data/app/assets/javascripts/Workers/package.json +0 -6
@@ -7,6 +7,9 @@ define(['../Core/DeveloperError'], function(DeveloperError) {
|
|
7
7
|
*
|
8
8
|
* @alias DrawCommand
|
9
9
|
* @constructor
|
10
|
+
*
|
11
|
+
* @see ClearCommand
|
12
|
+
* @see PassState
|
10
13
|
*/
|
11
14
|
var DrawCommand = function() {
|
12
15
|
/**
|
@@ -15,6 +18,15 @@ define(['../Core/DeveloperError'], function(DeveloperError) {
|
|
15
18
|
*/
|
16
19
|
this.boundingVolume = undefined;
|
17
20
|
|
21
|
+
/**
|
22
|
+
* When <code>true</code>, the renderer frustum and horizon culls the command based on its {@link DrawCommand#boundingVolume}.
|
23
|
+
* If the command was already culled, set this to <code>false</code> for a performance improvement.
|
24
|
+
*
|
25
|
+
* @type Boolean
|
26
|
+
* @default true
|
27
|
+
*/
|
28
|
+
this.cull = true;
|
29
|
+
|
18
30
|
/**
|
19
31
|
* The transformation from the geometry in model space to world space.
|
20
32
|
* @type Matrix4
|
@@ -86,10 +98,10 @@ define(['../Core/DeveloperError'], function(DeveloperError) {
|
|
86
98
|
* @memberof DrawCommand
|
87
99
|
*
|
88
100
|
* @param {Context} context The renderer context in which to draw.
|
89
|
-
* @param {
|
101
|
+
* @param {PassState} [passState] TBA.
|
90
102
|
*/
|
91
|
-
DrawCommand.prototype.execute = function(context,
|
92
|
-
context.draw(this,
|
103
|
+
DrawCommand.prototype.execute = function(context, passState) {
|
104
|
+
context.draw(this, passState);
|
93
105
|
};
|
94
106
|
|
95
107
|
return DrawCommand;
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define(function() {
|
3
|
+
"use strict";
|
4
|
+
|
5
|
+
/**
|
6
|
+
* The state for a particular rendering pass. This is used to supplement the state
|
7
|
+
* in a command being executed.
|
8
|
+
*
|
9
|
+
* @alias PassState
|
10
|
+
* @constructor
|
11
|
+
*
|
12
|
+
* @see DrawCommand
|
13
|
+
* @see ClearCommand
|
14
|
+
*/
|
15
|
+
var PassState = function(context) {
|
16
|
+
/**
|
17
|
+
* The context used to execute commands for this pass.
|
18
|
+
*
|
19
|
+
* @type Context
|
20
|
+
*/
|
21
|
+
this.context = context;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* The framebuffer to render to. This framebuffer is used unless a {@link DrawCommand}
|
25
|
+
* or {@link ClearCommand} explicitly define a framebuffer, which is used for off-screen
|
26
|
+
* rendering.
|
27
|
+
*
|
28
|
+
* @type Framebuffer
|
29
|
+
*/
|
30
|
+
this.framebuffer = undefined;
|
31
|
+
|
32
|
+
/**
|
33
|
+
* When defined, this overrides the blending property of a {@link DrawCommand}'s render state.
|
34
|
+
* This is used to, for example, to allow the renderer to turn off blending during the picking pass.
|
35
|
+
* <p>
|
36
|
+
* When this is <code>undefined</code>, the {@link DrawCommand}'s property is used.
|
37
|
+
* </p>
|
38
|
+
*
|
39
|
+
* @type Boolean
|
40
|
+
* @default undefined
|
41
|
+
*/
|
42
|
+
this.blendingEnabled = undefined;
|
43
|
+
|
44
|
+
/**
|
45
|
+
* When defined, this overrides the scissor test property of a {@link DrawCommand}'s render state.
|
46
|
+
* This is used to, for example, to allow the renderer to scissor out the pick region during the picking pass.
|
47
|
+
* <p>
|
48
|
+
* When this is <code>undefined</code>, the {@link DrawCommand}'s property is used.
|
49
|
+
* </p>
|
50
|
+
*/
|
51
|
+
this.scissorTest = undefined;
|
52
|
+
};
|
53
|
+
|
54
|
+
return PassState;
|
55
|
+
});
|
@@ -4,84 +4,85 @@ define([
|
|
4
4
|
'../Core/destroyObject',
|
5
5
|
'../Core/Color',
|
6
6
|
'../Core/DeveloperError',
|
7
|
+
'../Core/BoundingRectangle',
|
7
8
|
'./ClearCommand',
|
9
|
+
'./PassState',
|
8
10
|
'./RenderbufferFormat'
|
9
11
|
], function(
|
10
12
|
defaultValue,
|
11
13
|
destroyObject,
|
12
14
|
Color,
|
13
15
|
DeveloperError,
|
16
|
+
BoundingRectangle,
|
14
17
|
ClearCommand,
|
18
|
+
PassState,
|
15
19
|
RenderbufferFormat) {
|
16
20
|
"use strict";
|
17
21
|
|
18
22
|
/**
|
19
|
-
*
|
20
|
-
*
|
21
|
-
* @alias PickFramebuffer
|
22
|
-
* @internalConstructor
|
23
|
-
*
|
24
|
-
* @see Context#createPickFramebuffer
|
25
|
-
* @see Context#pick
|
23
|
+
* @private
|
26
24
|
*/
|
27
25
|
var PickFramebuffer = function(context) {
|
26
|
+
// Override per-command states
|
27
|
+
var passState = new PassState(context);
|
28
|
+
passState.blendingEnabled = false;
|
29
|
+
passState.scissorTest = {
|
30
|
+
enabled : true,
|
31
|
+
rectangle : new BoundingRectangle()
|
32
|
+
};
|
33
|
+
|
34
|
+
// Clear to black. Since this is the background color, no objects will be black
|
35
|
+
var command = new ClearCommand();
|
36
|
+
command.color = new Color(0.0, 0.0, 0.0, 0.0);
|
37
|
+
command.depth = 1.0;
|
38
|
+
command.stencil = 0;
|
39
|
+
|
28
40
|
this._context = context;
|
29
|
-
this._fb =
|
41
|
+
this._fb = undefined;
|
42
|
+
this._passState = passState;
|
30
43
|
this._width = 0;
|
31
44
|
this._height = 0;
|
32
|
-
|
33
|
-
// Clear to black. Since this is the background color, no objects will be black
|
34
|
-
this._clearCommand = new ClearCommand();
|
35
|
-
this._clearCommand.clearState = context.createClearState({
|
36
|
-
color : new Color(0.0, 0.0, 0.0, 1.0),
|
37
|
-
depth : 1.0,
|
38
|
-
stencil : 0
|
39
|
-
});
|
45
|
+
this._clearCommand = command;
|
40
46
|
};
|
41
47
|
|
42
|
-
|
43
|
-
* DOC_TBA
|
44
|
-
* @memberof PickFramebuffer
|
45
|
-
*/
|
46
|
-
PickFramebuffer.prototype.begin = function() {
|
48
|
+
PickFramebuffer.prototype.begin = function(screenSpaceRectangle) {
|
47
49
|
var context = this._context;
|
50
|
+
var width = context.getCanvas().clientWidth;
|
51
|
+
var height = context.getCanvas().clientHeight;
|
52
|
+
|
53
|
+
BoundingRectangle.clone(screenSpaceRectangle, this._passState.scissorTest.rectangle);
|
48
54
|
|
49
55
|
// Initially create or recreate renderbuffers and framebuffer used for picking
|
50
|
-
if (
|
51
|
-
|
52
|
-
|
53
|
-
this._width = context.getCanvas().clientWidth;
|
54
|
-
this._height = context.getCanvas().clientHeight;
|
56
|
+
if ((typeof this._fb === 'undefined') || (this._width !== width) || (this._height !== height)) {
|
57
|
+
this._width = width;
|
58
|
+
this._height = height;
|
55
59
|
|
56
60
|
this._fb = this._fb && this._fb.destroy();
|
57
61
|
this._fb = context.createFramebuffer({
|
58
|
-
|
59
|
-
|
60
|
-
|
62
|
+
colorTexture : context.createTexture2D({
|
63
|
+
width : width,
|
64
|
+
height : height
|
65
|
+
}),
|
66
|
+
depthRenderbuffer : context.createRenderbuffer({
|
67
|
+
format : RenderbufferFormat.DEPTH_COMPONENT16
|
61
68
|
})
|
62
69
|
});
|
70
|
+
this._passState.framebuffer = this._fb;
|
63
71
|
}
|
64
72
|
|
65
|
-
this._clearCommand.execute(context, this.
|
73
|
+
this._clearCommand.execute(context, this._passState);
|
66
74
|
|
67
|
-
return this.
|
75
|
+
return this._passState;
|
68
76
|
};
|
69
77
|
|
70
78
|
var colorScratch = new Color();
|
71
79
|
|
72
|
-
/**
|
73
|
-
* DOC_TBA
|
74
|
-
* @memberof PickFramebuffer
|
75
|
-
*/
|
76
80
|
PickFramebuffer.prototype.end = function(screenSpaceRectangle) {
|
77
|
-
if (typeof screenSpaceRectangle === 'undefined') {
|
78
|
-
throw new DeveloperError('screenSpaceRectangle is required.');
|
79
|
-
}
|
80
|
-
|
81
81
|
var width = defaultValue(screenSpaceRectangle.width, 1.0);
|
82
82
|
var height = defaultValue(screenSpaceRectangle.height, 1.0);
|
83
83
|
|
84
|
-
var
|
84
|
+
var context = this._context;
|
85
|
+
var pixels = context.readPixels({
|
85
86
|
x : screenSpaceRectangle.x,
|
86
87
|
y : screenSpaceRectangle.y,
|
87
88
|
width : width,
|
@@ -108,18 +109,18 @@ define([
|
|
108
109
|
if (-halfWidth <= x && x <= halfWidth && -halfHeight <= y && y <= halfHeight) {
|
109
110
|
var index = 4 * ((halfHeight - y) * width + x + halfWidth);
|
110
111
|
|
111
|
-
colorScratch.red = pixels[index];
|
112
|
-
colorScratch.green = pixels[index + 1];
|
113
|
-
colorScratch.blue = pixels[index + 2];
|
114
|
-
colorScratch.alpha = pixels[index + 3];
|
112
|
+
colorScratch.red = Color.byteToFloat(pixels[index]);
|
113
|
+
colorScratch.green = Color.byteToFloat(pixels[index + 1]);
|
114
|
+
colorScratch.blue = Color.byteToFloat(pixels[index + 2]);
|
115
|
+
colorScratch.alpha = Color.byteToFloat(pixels[index + 3]);
|
115
116
|
|
116
|
-
var object =
|
117
|
+
var object = context.getObjectByPickColor(colorScratch);
|
117
118
|
if (typeof object !== 'undefined') {
|
118
119
|
return object;
|
119
120
|
}
|
120
121
|
}
|
121
122
|
|
122
|
-
// if (top right || bottom left corners) || (top left corner) || (bottom right corner + (1, 0)
|
123
|
+
// if (top right || bottom left corners) || (top left corner) || (bottom right corner + (1, 0))
|
123
124
|
// change spiral direction
|
124
125
|
if (x === y || (x < 0 && -x === y) || (x > 0 && x === 1 - y)) {
|
125
126
|
var temp = dx;
|
@@ -134,41 +135,10 @@ define([
|
|
134
135
|
return undefined;
|
135
136
|
};
|
136
137
|
|
137
|
-
/**
|
138
|
-
* Returns true if this object was destroyed; otherwise, false.
|
139
|
-
* <br /><br />
|
140
|
-
* If this object was destroyed, it should not be used; calling any function other than
|
141
|
-
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
142
|
-
*
|
143
|
-
* @memberof PickFramebuffer
|
144
|
-
*
|
145
|
-
* @return {Boolean} True if this object was destroyed; otherwise, false.
|
146
|
-
*
|
147
|
-
* @see PickFramebuffer#destroy
|
148
|
-
*/
|
149
138
|
PickFramebuffer.prototype.isDestroyed = function() {
|
150
139
|
return false;
|
151
140
|
};
|
152
141
|
|
153
|
-
/**
|
154
|
-
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
155
|
-
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
156
|
-
* <br /><br />
|
157
|
-
* Once an object is destroyed, it should not be used; calling any function other than
|
158
|
-
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
159
|
-
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
160
|
-
*
|
161
|
-
* @memberof PickFramebuffer
|
162
|
-
*
|
163
|
-
* @return {undefined}
|
164
|
-
*
|
165
|
-
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
166
|
-
*
|
167
|
-
* @see PickFramebuffer#isDestroyed
|
168
|
-
*
|
169
|
-
* @example
|
170
|
-
* PickFramebuffer = PickFramebuffer && PickFramebuffer.destroy();
|
171
|
-
*/
|
172
142
|
PickFramebuffer.prototype.destroy = function() {
|
173
143
|
this._fb = this._fb && this._fb.destroy();
|
174
144
|
return destroyObject(this);
|
@@ -0,0 +1,541 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'../Core/Color',
|
4
|
+
'../Core/defaultValue',
|
5
|
+
'../Core/DeveloperError',
|
6
|
+
'../Core/BoundingRectangle',
|
7
|
+
'../Core/RuntimeError',
|
8
|
+
'../Core/WindingOrder',
|
9
|
+
'./CullFace',
|
10
|
+
'./DepthFunction',
|
11
|
+
'./BlendEquation',
|
12
|
+
'./BlendFunction',
|
13
|
+
'./StencilFunction',
|
14
|
+
'./StencilOperation'
|
15
|
+
], function(
|
16
|
+
Color,
|
17
|
+
defaultValue,
|
18
|
+
DeveloperError,
|
19
|
+
BoundingRectangle,
|
20
|
+
RuntimeError,
|
21
|
+
WindingOrder,
|
22
|
+
CullFace,
|
23
|
+
DepthFunction,
|
24
|
+
BlendEquation,
|
25
|
+
BlendFunction,
|
26
|
+
StencilFunction,
|
27
|
+
StencilOperation) {
|
28
|
+
"use strict";
|
29
|
+
|
30
|
+
/**
|
31
|
+
* An immutable render state. Do not create this directly. See {@link Context#createRenderState}.
|
32
|
+
*
|
33
|
+
* @alias RenderState
|
34
|
+
* @internalConstructor
|
35
|
+
*
|
36
|
+
* @see Context#createRenderState
|
37
|
+
*/
|
38
|
+
var RenderState = function(context, renderState) {
|
39
|
+
var rs = defaultValue(renderState, {});
|
40
|
+
var cull = defaultValue(rs.cull, {});
|
41
|
+
var polygonOffset = defaultValue(rs.polygonOffset, {});
|
42
|
+
var scissorTest = defaultValue(rs.scissorTest, {});
|
43
|
+
var scissorTestRectangle = defaultValue(scissorTest.rectangle, {});
|
44
|
+
var depthRange = defaultValue(rs.depthRange, {});
|
45
|
+
var depthTest = defaultValue(rs.depthTest, {});
|
46
|
+
var colorMask = defaultValue(rs.colorMask, {});
|
47
|
+
var blending = defaultValue(rs.blending, {});
|
48
|
+
var blendingColor = defaultValue(blending.color, {});
|
49
|
+
var stencilTest = defaultValue(rs.stencilTest, {});
|
50
|
+
var stencilTestFrontOperation = defaultValue(stencilTest.frontOperation, {});
|
51
|
+
var stencilTestBackOperation = defaultValue(stencilTest.backOperation, {});
|
52
|
+
var sampleCoverage = defaultValue(rs.sampleCoverage, {});
|
53
|
+
var viewport = rs.viewport;
|
54
|
+
|
55
|
+
this.frontFace = defaultValue(rs.frontFace, WindingOrder.COUNTER_CLOCKWISE);
|
56
|
+
this.cull = {
|
57
|
+
enabled : defaultValue(cull.enabled, false),
|
58
|
+
face : defaultValue(cull.face, CullFace.BACK)
|
59
|
+
};
|
60
|
+
this.lineWidth = defaultValue(rs.lineWidth, 1.0);
|
61
|
+
this.polygonOffset = {
|
62
|
+
enabled : defaultValue(polygonOffset.enabled, false),
|
63
|
+
factor : defaultValue(polygonOffset.factor, 0),
|
64
|
+
units : defaultValue(polygonOffset.units, 0)
|
65
|
+
};
|
66
|
+
this.scissorTest = {
|
67
|
+
enabled : defaultValue(scissorTest.enabled, false),
|
68
|
+
rectangle : BoundingRectangle.clone(scissorTestRectangle)
|
69
|
+
};
|
70
|
+
this.depthRange = {
|
71
|
+
near : defaultValue(depthRange.near, 0),
|
72
|
+
far : defaultValue(depthRange.far, 1)
|
73
|
+
};
|
74
|
+
this.depthTest = {
|
75
|
+
enabled : defaultValue(depthTest.enabled, false),
|
76
|
+
func : defaultValue(depthTest.func, DepthFunction.LESS) // func, because function is a JavaScript keyword
|
77
|
+
};
|
78
|
+
this.colorMask = {
|
79
|
+
red : defaultValue(colorMask.red, true),
|
80
|
+
green : defaultValue(colorMask.green, true),
|
81
|
+
blue : defaultValue(colorMask.blue, true),
|
82
|
+
alpha : defaultValue(colorMask.alpha, true)
|
83
|
+
};
|
84
|
+
this.depthMask = defaultValue(rs.depthMask, true);
|
85
|
+
this.stencilMask = defaultValue(rs.stencilMask, ~0);
|
86
|
+
this.blending = {
|
87
|
+
enabled : defaultValue(blending.enabled, false),
|
88
|
+
color : new Color(
|
89
|
+
defaultValue(blendingColor.red, 0.0),
|
90
|
+
defaultValue(blendingColor.green, 0.0),
|
91
|
+
defaultValue(blendingColor.blue, 0.0),
|
92
|
+
defaultValue(blendingColor.alpha, 0.0)
|
93
|
+
),
|
94
|
+
equationRgb : defaultValue(blending.equationRgb, BlendEquation.ADD),
|
95
|
+
equationAlpha : defaultValue(blending.equationAlpha, BlendEquation.ADD),
|
96
|
+
functionSourceRgb : defaultValue(blending.functionSourceRgb, BlendFunction.ONE),
|
97
|
+
functionSourceAlpha : defaultValue(blending.functionSourceAlpha, BlendFunction.ONE),
|
98
|
+
functionDestinationRgb : defaultValue(blending.functionDestinationRgb, BlendFunction.ZERO),
|
99
|
+
functionDestinationAlpha : defaultValue(blending.functionDestinationAlpha, BlendFunction.ZERO)
|
100
|
+
};
|
101
|
+
this.stencilTest = {
|
102
|
+
enabled : defaultValue(stencilTest.enabled, false),
|
103
|
+
frontFunction : defaultValue(stencilTest.frontFunction, StencilFunction.ALWAYS),
|
104
|
+
backFunction : defaultValue(stencilTest.backFunction, StencilFunction.ALWAYS),
|
105
|
+
reference : defaultValue(stencilTest.reference, 0),
|
106
|
+
mask : defaultValue(stencilTest.mask, ~0),
|
107
|
+
frontOperation : {
|
108
|
+
fail : defaultValue(stencilTestFrontOperation.fail, StencilOperation.KEEP),
|
109
|
+
zFail : defaultValue(stencilTestFrontOperation.zFail, StencilOperation.KEEP),
|
110
|
+
zPass : defaultValue(stencilTestFrontOperation.zPass, StencilOperation.KEEP)
|
111
|
+
},
|
112
|
+
backOperation : {
|
113
|
+
fail : defaultValue(stencilTestBackOperation.fail, StencilOperation.KEEP),
|
114
|
+
zFail : defaultValue(stencilTestBackOperation.zFail, StencilOperation.KEEP),
|
115
|
+
zPass : defaultValue(stencilTestBackOperation.zPass, StencilOperation.KEEP)
|
116
|
+
}
|
117
|
+
};
|
118
|
+
this.sampleCoverage = {
|
119
|
+
enabled : defaultValue(sampleCoverage.enabled, false),
|
120
|
+
value : defaultValue(sampleCoverage.value, 1.0),
|
121
|
+
invert : defaultValue(sampleCoverage.invert, false)
|
122
|
+
};
|
123
|
+
this.dither = defaultValue(rs.dither, true);
|
124
|
+
this.viewport = (typeof viewport !== 'undefined') ? new BoundingRectangle(viewport.x, viewport.y,
|
125
|
+
(typeof viewport.width === 'undefined') ? context.getCanvas().clientWidth : viewport.width,
|
126
|
+
(typeof viewport.height === 'undefined') ? context.getCanvas().clientHeight : viewport.height) : undefined;
|
127
|
+
|
128
|
+
// Validate
|
129
|
+
|
130
|
+
if (!WindingOrder.validate(this.frontFace)) {
|
131
|
+
throw new DeveloperError('Invalid renderState.frontFace.');
|
132
|
+
}
|
133
|
+
|
134
|
+
if (!CullFace.validate(this.cull.face)) {
|
135
|
+
throw new DeveloperError('Invalid renderState.cull.face.');
|
136
|
+
}
|
137
|
+
|
138
|
+
if ((this.lineWidth < context.getMinimumAliasedLineWidth()) ||
|
139
|
+
(this.lineWidth > context.getMaximumAliasedLineWidth())) {
|
140
|
+
throw new RuntimeError('renderState.lineWidth is out of range. Check getMinimumAliasedLineWidth() and getMaximumAliasedLineWidth().');
|
141
|
+
}
|
142
|
+
|
143
|
+
if ((this.scissorTest.rectangle.width < 0) ||
|
144
|
+
(this.scissorTest.rectangle.height < 0)) {
|
145
|
+
throw new DeveloperError('renderState.scissorTest.rectangle.width and renderState.scissorTest.rectangle.height must be greater than or equal to zero.');
|
146
|
+
}
|
147
|
+
|
148
|
+
if (this.depthRange.near > this.depthRange.far) {
|
149
|
+
// WebGL specific - not an error in GL ES
|
150
|
+
throw new DeveloperError('renderState.depthRange.near can not be greater than renderState.depthRange.far.');
|
151
|
+
}
|
152
|
+
|
153
|
+
if (this.depthRange.near < 0) {
|
154
|
+
// Would be clamped by GL
|
155
|
+
throw new DeveloperError('renderState.depthRange.near must be greater than or equal to zero.');
|
156
|
+
}
|
157
|
+
|
158
|
+
if (this.depthRange.far > 1) {
|
159
|
+
// Would be clamped by GL
|
160
|
+
throw new DeveloperError('renderState.depthRange.far must be less than or equal to one.');
|
161
|
+
}
|
162
|
+
|
163
|
+
if (!DepthFunction.validate(this.depthTest.func)) {
|
164
|
+
throw new DeveloperError('Invalid renderState.depthTest.func.');
|
165
|
+
}
|
166
|
+
|
167
|
+
if ((this.blending.color.red < 0.0) || (this.blending.color.red > 1.0) ||
|
168
|
+
(this.blending.color.green < 0.0) || (this.blending.color.green > 1.0) ||
|
169
|
+
(this.blending.color.blue < 0.0) || (this.blending.color.blue > 1.0) ||
|
170
|
+
(this.blending.color.alpha < 0.0) || (this.blending.color.alpha > 1.0)) {
|
171
|
+
// Would be clamped by GL
|
172
|
+
throw new DeveloperError('renderState.blending.color components must be greater than or equal to zero and less than or equal to one.');
|
173
|
+
}
|
174
|
+
|
175
|
+
if (!BlendEquation.validate(this.blending.equationRgb)) {
|
176
|
+
throw new DeveloperError('Invalid renderState.blending.equationRgb.');
|
177
|
+
}
|
178
|
+
|
179
|
+
if (!BlendEquation.validate(this.blending.equationAlpha)) {
|
180
|
+
throw new DeveloperError('Invalid renderState.blending.equationAlpha.');
|
181
|
+
}
|
182
|
+
|
183
|
+
if (!BlendFunction.validate(this.blending.functionSourceRgb)) {
|
184
|
+
throw new DeveloperError('Invalid renderState.blending.functionSourceRgb.');
|
185
|
+
}
|
186
|
+
|
187
|
+
if (!BlendFunction.validate(this.blending.functionSourceAlpha)) {
|
188
|
+
throw new DeveloperError('Invalid renderState.blending.functionSourceAlpha.');
|
189
|
+
}
|
190
|
+
|
191
|
+
if (!BlendFunction.validate(this.blending.functionDestinationRgb)) {
|
192
|
+
throw new DeveloperError('Invalid renderState.blending.functionDestinationRgb.');
|
193
|
+
}
|
194
|
+
|
195
|
+
if (!BlendFunction.validate(this.blending.functionDestinationAlpha)) {
|
196
|
+
throw new DeveloperError('Invalid renderState.blending.functionDestinationAlpha.');
|
197
|
+
}
|
198
|
+
|
199
|
+
if (!StencilFunction.validate(this.stencilTest.frontFunction)) {
|
200
|
+
throw new DeveloperError('Invalid renderState.stencilTest.frontFunction.');
|
201
|
+
}
|
202
|
+
|
203
|
+
if (!StencilFunction.validate(this.stencilTest.backFunction)) {
|
204
|
+
throw new DeveloperError('Invalid renderState.stencilTest.backFunction.');
|
205
|
+
}
|
206
|
+
|
207
|
+
if (!StencilOperation.validate(this.stencilTest.frontOperation.fail)) {
|
208
|
+
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.fail.');
|
209
|
+
}
|
210
|
+
|
211
|
+
if (!StencilOperation.validate(this.stencilTest.frontOperation.zFail)) {
|
212
|
+
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.zFail.');
|
213
|
+
}
|
214
|
+
|
215
|
+
if (!StencilOperation.validate(this.stencilTest.frontOperation.zPass)) {
|
216
|
+
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.zPass.');
|
217
|
+
}
|
218
|
+
|
219
|
+
if (!StencilOperation.validate(this.stencilTest.backOperation.fail)) {
|
220
|
+
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.fail.');
|
221
|
+
}
|
222
|
+
|
223
|
+
if (!StencilOperation.validate(this.stencilTest.backOperation.zFail)) {
|
224
|
+
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.zFail.');
|
225
|
+
}
|
226
|
+
|
227
|
+
if (!StencilOperation.validate(this.stencilTest.backOperation.zPass)) {
|
228
|
+
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.zPass.');
|
229
|
+
}
|
230
|
+
|
231
|
+
if (typeof this.viewport !== 'undefined') {
|
232
|
+
if (this.viewport.width < 0) {
|
233
|
+
throw new DeveloperError('renderState.viewport.width must be greater than or equal to zero.');
|
234
|
+
}
|
235
|
+
|
236
|
+
if (this.viewport.width > context.getMaximumViewportWidth()) {
|
237
|
+
throw new RuntimeError('renderState.viewport.width must be less than or equal to the maximum viewport width (' + this.getMaximumViewportWidth().toString() + '). Check getMaximumViewportWidth().');
|
238
|
+
}
|
239
|
+
|
240
|
+
if (this.viewport.height < 0) {
|
241
|
+
throw new DeveloperError('renderState.viewport.height must be greater than or equal to zero.');
|
242
|
+
}
|
243
|
+
|
244
|
+
if (this.viewport.height > context.getMaximumViewportHeight()) {
|
245
|
+
throw new RuntimeError('renderState.viewport.height must be less than or equal to the maximum viewport height (' + this.getMaximumViewportHeight().toString() + '). Check getMaximumViewportHeight().');
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
this.id = 0;
|
250
|
+
this._applyFunctions = [];
|
251
|
+
};
|
252
|
+
|
253
|
+
function enableOrDisable(gl, glEnum, enable) {
|
254
|
+
if (enable) {
|
255
|
+
gl.enable(glEnum);
|
256
|
+
} else {
|
257
|
+
gl.disable(glEnum);
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
function applyFrontFace(gl, renderState) {
|
262
|
+
gl.frontFace(renderState.frontFace);
|
263
|
+
}
|
264
|
+
|
265
|
+
function applyCull(gl, renderState) {
|
266
|
+
var cull = renderState.cull;
|
267
|
+
var enabled = cull.enabled;
|
268
|
+
|
269
|
+
enableOrDisable(gl, gl.CULL_FACE, enabled);
|
270
|
+
|
271
|
+
if (enabled) {
|
272
|
+
gl.cullFace(cull.face);
|
273
|
+
}
|
274
|
+
}
|
275
|
+
|
276
|
+
function applyLineWidth(gl, renderState) {
|
277
|
+
gl.lineWidth(renderState.lineWidth);
|
278
|
+
}
|
279
|
+
|
280
|
+
function applyPolygonOffset(gl, renderState) {
|
281
|
+
var polygonOffset = renderState.polygonOffset;
|
282
|
+
var enabled = polygonOffset.enabled;
|
283
|
+
|
284
|
+
enableOrDisable(gl, gl.POLYGON_OFFSET_FILL, enabled);
|
285
|
+
|
286
|
+
if (enabled) {
|
287
|
+
gl.polygonOffset(polygonOffset.factor, polygonOffset.units);
|
288
|
+
}
|
289
|
+
}
|
290
|
+
|
291
|
+
function applyScissorTest(gl, renderState, passState) {
|
292
|
+
var scissorTest = renderState.scissorTest;
|
293
|
+
var enabled = (typeof passState.scissorTest !== 'undefined') ? passState.scissorTest.enabled : scissorTest.enabled;
|
294
|
+
|
295
|
+
enableOrDisable(gl, gl.SCISSOR_TEST, enabled);
|
296
|
+
|
297
|
+
if (enabled) {
|
298
|
+
var rectangle = (typeof passState.scissorTest !== 'undefined') ? passState.scissorTest.rectangle : scissorTest.rectangle;
|
299
|
+
gl.scissor(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
|
300
|
+
}
|
301
|
+
}
|
302
|
+
|
303
|
+
function applyDepthRange(gl, renderState) {
|
304
|
+
var depthRange = renderState.depthRange;
|
305
|
+
gl.depthRange(depthRange.near, depthRange.far);
|
306
|
+
}
|
307
|
+
|
308
|
+
function applyDepthTest(gl, renderState) {
|
309
|
+
var depthTest = renderState.depthTest;
|
310
|
+
var enabled = depthTest.enabled;
|
311
|
+
|
312
|
+
enableOrDisable(gl, gl.DEPTH_TEST, enabled);
|
313
|
+
|
314
|
+
if (enabled) {
|
315
|
+
gl.depthFunc(depthTest.func);
|
316
|
+
}
|
317
|
+
}
|
318
|
+
|
319
|
+
function applyColorMask(gl, renderState) {
|
320
|
+
var colorMask = renderState.colorMask;
|
321
|
+
gl.colorMask(colorMask.red, colorMask.green, colorMask.blue, colorMask.alpha);
|
322
|
+
}
|
323
|
+
|
324
|
+
function applyDepthMask(gl, renderState) {
|
325
|
+
gl.depthMask(renderState.depthMask);
|
326
|
+
}
|
327
|
+
|
328
|
+
function applyStencilMask(gl, renderState) {
|
329
|
+
gl.stencilMask(renderState.stencilMask);
|
330
|
+
}
|
331
|
+
|
332
|
+
function applyBlending(gl, renderState, passState) {
|
333
|
+
var blending = renderState.blending;
|
334
|
+
var enabled = (typeof passState.blendingEnabled !== 'undefined') ? passState.blendingEnabled : blending.enabled;
|
335
|
+
|
336
|
+
enableOrDisable(gl, gl.BLEND, enabled);
|
337
|
+
|
338
|
+
if (enabled) {
|
339
|
+
var color = blending.color;
|
340
|
+
var equationRgb = blending.equationRgb;
|
341
|
+
var equationAlpha = blending.equationAlpha;
|
342
|
+
var functionSourceRgb = blending.functionSourceRgb;
|
343
|
+
var functionDestinationRgb = blending.functionDestinationRgb;
|
344
|
+
var functionSourceAlpha = blending.functionSourceAlpha;
|
345
|
+
var functionDestinationAlpha = blending.functionDestinationAlpha;
|
346
|
+
|
347
|
+
gl.blendColor(color.red, color.green, color.blue, color.alpha);
|
348
|
+
gl.blendEquationSeparate(equationRgb, equationAlpha);
|
349
|
+
gl.blendFuncSeparate(functionSourceRgb, functionDestinationRgb, functionSourceAlpha, functionDestinationAlpha);
|
350
|
+
}
|
351
|
+
}
|
352
|
+
|
353
|
+
function applyStencilTest(gl, renderState) {
|
354
|
+
var stencilTest = renderState.stencilTest;
|
355
|
+
var enabled = stencilTest.enabled;
|
356
|
+
|
357
|
+
enableOrDisable(gl, gl.STENCIL_TEST, enabled);
|
358
|
+
|
359
|
+
if (enabled) {
|
360
|
+
var frontFunction = stencilTest.frontFunction;
|
361
|
+
var backFunction = stencilTest.backFunction;
|
362
|
+
var reference = stencilTest.reference;
|
363
|
+
var mask = stencilTest.mask;
|
364
|
+
|
365
|
+
// Section 6.8 of the WebGL spec requires the reference and masks to be the same for
|
366
|
+
// front- and back-face tests. This call prevents invalid operation errors when calling
|
367
|
+
// stencilFuncSeparate on Firefox. Perhaps they should delay validation to avoid requiring this.
|
368
|
+
gl.stencilFunc(stencilTest.frontFunction, stencilTest.reference, stencilTest.mask);
|
369
|
+
gl.stencilFuncSeparate(gl.BACK, backFunction, reference, mask);
|
370
|
+
gl.stencilFuncSeparate(gl.FRONT, frontFunction, reference, mask);
|
371
|
+
|
372
|
+
var frontOperation = stencilTest.frontOperation;
|
373
|
+
var frontOperationFail = frontOperation.fail;
|
374
|
+
var frontOperationZFail = frontOperation.zFail;
|
375
|
+
var frontOperationZPass = frontOperation.zPass;
|
376
|
+
|
377
|
+
gl.stencilOpSeparate(gl.FRONT, frontOperationFail, frontOperationZFail, frontOperationZPass);
|
378
|
+
|
379
|
+
var backOperation = stencilTest.backOperation;
|
380
|
+
var backOperationFail = backOperation.fail;
|
381
|
+
var backOperationZFail = backOperation.zFail;
|
382
|
+
var backOperationZPass = backOperation.zPass;
|
383
|
+
|
384
|
+
gl.stencilOpSeparate(gl.BACK, backOperationFail, backOperationZFail, backOperationZPass);
|
385
|
+
}
|
386
|
+
}
|
387
|
+
|
388
|
+
function applySampleCoverage(gl, renderState) {
|
389
|
+
var sampleCoverage = renderState.sampleCoverage;
|
390
|
+
var enabled = sampleCoverage.enabled;
|
391
|
+
|
392
|
+
enableOrDisable(gl, gl.SAMPLE_COVERAGE, enabled);
|
393
|
+
|
394
|
+
if (enabled) {
|
395
|
+
gl.sampleCoverage(sampleCoverage.value, sampleCoverage.invert);
|
396
|
+
}
|
397
|
+
}
|
398
|
+
|
399
|
+
function applyDither(gl, renderState) {
|
400
|
+
enableOrDisable(gl, gl.DITHER, renderState.dither);
|
401
|
+
}
|
402
|
+
|
403
|
+
var scratchViewport = new BoundingRectangle();
|
404
|
+
function applyViewport(gl, renderState, passState) {
|
405
|
+
var viewport = renderState.viewport;
|
406
|
+
|
407
|
+
if (typeof viewport === 'undefined') {
|
408
|
+
var canvas = passState.context.getCanvas();
|
409
|
+
viewport = scratchViewport;
|
410
|
+
viewport.width = canvas.clientWidth;
|
411
|
+
viewport.height = canvas.clientHeight;
|
412
|
+
}
|
413
|
+
|
414
|
+
passState.context.getUniformState().setViewport(viewport);
|
415
|
+
gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
|
416
|
+
}
|
417
|
+
|
418
|
+
/**
|
419
|
+
* @private
|
420
|
+
*/
|
421
|
+
RenderState.apply = function(gl, renderState, passState) {
|
422
|
+
applyFrontFace(gl, renderState);
|
423
|
+
applyCull(gl, renderState);
|
424
|
+
applyLineWidth(gl, renderState);
|
425
|
+
applyPolygonOffset(gl, renderState);
|
426
|
+
applyScissorTest(gl, renderState, passState);
|
427
|
+
applyDepthRange(gl, renderState);
|
428
|
+
applyDepthTest(gl, renderState);
|
429
|
+
applyColorMask(gl, renderState);
|
430
|
+
applyDepthMask(gl, renderState);
|
431
|
+
applyStencilMask(gl, renderState);
|
432
|
+
applyBlending(gl, renderState, passState);
|
433
|
+
applyStencilTest(gl, renderState);
|
434
|
+
applySampleCoverage(gl, renderState);
|
435
|
+
applyDither(gl, renderState);
|
436
|
+
applyViewport(gl, renderState, passState);
|
437
|
+
};
|
438
|
+
|
439
|
+
function createFuncs(previousState, nextState) {
|
440
|
+
var funcs = [];
|
441
|
+
|
442
|
+
if (previousState.frontFace !== nextState.frontFace) {
|
443
|
+
funcs.push(applyFrontFace);
|
444
|
+
}
|
445
|
+
|
446
|
+
if ((previousState.cull.enabled !== nextState.cull.enabled) || (previousState.cull.face !== nextState.cull.face)) {
|
447
|
+
funcs.push(applyCull);
|
448
|
+
}
|
449
|
+
|
450
|
+
if (previousState.lineWidth !== nextState.lineWidth) {
|
451
|
+
funcs.push(applyLineWidth);
|
452
|
+
}
|
453
|
+
|
454
|
+
if ((previousState.polygonOffset.enabled !== nextState.polygonOffset.enabled) ||
|
455
|
+
(previousState.polygonOffset.factor !== nextState.polygonOffset.factor) ||
|
456
|
+
(previousState.polygonOffset.units !== nextState.polygonOffset.units)) {
|
457
|
+
funcs.push(applyPolygonOffset);
|
458
|
+
}
|
459
|
+
|
460
|
+
// For now, always apply because of passState
|
461
|
+
funcs.push(applyScissorTest);
|
462
|
+
|
463
|
+
if ((previousState.depthRange.near !== nextState.depthRange.near) || (previousState.depthRange.far !== nextState.depthRange.far)) {
|
464
|
+
funcs.push(applyDepthRange);
|
465
|
+
}
|
466
|
+
|
467
|
+
if ((previousState.depthTest.enabled !== nextState.depthTest.enabled) || (previousState.depthTest.func !== nextState.depthTest.func)) {
|
468
|
+
funcs.push(applyDepthTest);
|
469
|
+
}
|
470
|
+
|
471
|
+
if ((previousState.colorMask.red !== nextState.colorMask.red) ||
|
472
|
+
(previousState.colorMask.green !== nextState.colorMask.green) ||
|
473
|
+
(previousState.colorMask.blue !== nextState.colorMask.blue) ||
|
474
|
+
(previousState.colorMask.alpha !== nextState.colorMask.alpha)) {
|
475
|
+
funcs.push(applyColorMask);
|
476
|
+
}
|
477
|
+
|
478
|
+
if (previousState.depthMask !== nextState.depthMask) {
|
479
|
+
funcs.push(applyDepthMask);
|
480
|
+
}
|
481
|
+
|
482
|
+
// For now, always apply because of passState
|
483
|
+
funcs.push(applyBlending);
|
484
|
+
|
485
|
+
if (previousState.stencilMask !== nextState.stencilMask) {
|
486
|
+
funcs.push(applyStencilMask);
|
487
|
+
}
|
488
|
+
|
489
|
+
if ((previousState.stencilTest.enabled !== nextState.stencilTest.enabled) ||
|
490
|
+
(previousState.stencilTest.frontFunction !== nextState.stencilTest.frontFunction) ||
|
491
|
+
(previousState.stencilTest.backFunction !== nextState.stencilTest.backFunction) ||
|
492
|
+
(previousState.stencilTest.reference !== nextState.stencilTest.reference) ||
|
493
|
+
(previousState.stencilTest.mask !== nextState.stencilTest.mask) ||
|
494
|
+
(previousState.stencilTest.frontOperation.fail !== nextState.stencilTest.frontOperation.fail) ||
|
495
|
+
(previousState.stencilTest.frontOperation.zFail !== nextState.stencilTest.frontOperation.zFail) ||
|
496
|
+
(previousState.stencilTest.backOperation.fail !== nextState.stencilTest.backOperation.fail) ||
|
497
|
+
(previousState.stencilTest.backOperation.zFail !== nextState.stencilTest.backOperation.zFail) ||
|
498
|
+
(previousState.stencilTest.backOperation.zPass !== nextState.stencilTest.backOperation.zPass)) {
|
499
|
+
funcs.push(applyStencilTest);
|
500
|
+
}
|
501
|
+
|
502
|
+
if ((previousState.sampleCoverage.enabled !== nextState.sampleCoverage.enabled) ||
|
503
|
+
(previousState.sampleCoverage.value !== nextState.sampleCoverage.value) ||
|
504
|
+
(previousState.sampleCoverage.invert !== nextState.sampleCoverage.invert)) {
|
505
|
+
funcs.push(applySampleCoverage);
|
506
|
+
}
|
507
|
+
|
508
|
+
if (previousState.dither !== nextState.dither) {
|
509
|
+
funcs.push(applyDither);
|
510
|
+
}
|
511
|
+
|
512
|
+
// For now, always apply because of passState
|
513
|
+
funcs.push(applyViewport);
|
514
|
+
|
515
|
+
return funcs;
|
516
|
+
}
|
517
|
+
|
518
|
+
/**
|
519
|
+
* @private
|
520
|
+
*/
|
521
|
+
RenderState.partialApply = function(gl, previousState, nextState, passState) {
|
522
|
+
// When a new render state is applied, instead of making WebGL calls for all the states or first
|
523
|
+
// comparing the states one-by-one with the previous state (basically a linear search), we take
|
524
|
+
// advantage of RenderState's immutability, and store a dynamically populated sparse data structure
|
525
|
+
// containing functions that make the minimum number of WebGL calls when transitioning from one state
|
526
|
+
// to the other. In practice, this works well since state-to-state transitions generally only require a
|
527
|
+
// few WebGL calls, especially if commands are stored by state.
|
528
|
+
var funcs = nextState._applyFunctions[previousState.id];
|
529
|
+
if (typeof funcs === 'undefined') {
|
530
|
+
funcs = createFuncs(previousState, nextState);
|
531
|
+
nextState._applyFunctions[previousState.id] = funcs;
|
532
|
+
}
|
533
|
+
|
534
|
+
var len = funcs.length;
|
535
|
+
for (var i = 0; i < len; ++i) {
|
536
|
+
funcs[i](gl, nextState, passState);
|
537
|
+
}
|
538
|
+
};
|
539
|
+
|
540
|
+
return RenderState;
|
541
|
+
});
|