cesium 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
@@ -1,39 +1,90 @@
|
|
1
1
|
/*global define*/
|
2
|
-
define([
|
2
|
+
define([
|
3
|
+
'../Core/Color',
|
4
|
+
'../Core/freezeObject'
|
5
|
+
], function(
|
6
|
+
Color,
|
7
|
+
freezeObject) {
|
3
8
|
"use strict";
|
4
9
|
|
5
10
|
/**
|
6
|
-
* Represents a command to the renderer for clearing.
|
11
|
+
* Represents a command to the renderer for clearing a framebuffer.
|
7
12
|
*
|
8
13
|
* @alias ClearCommand
|
9
14
|
* @constructor
|
10
15
|
*
|
11
|
-
* @
|
16
|
+
* @see DrawCommand
|
17
|
+
* @see PassState
|
12
18
|
*/
|
13
|
-
var ClearCommand = function(
|
19
|
+
var ClearCommand = function() {
|
14
20
|
/**
|
15
|
-
* The clear
|
21
|
+
* The value to clear the color buffer to. When <code>undefined</code>, the color buffer is not cleared.
|
22
|
+
*
|
23
|
+
* @type Color
|
24
|
+
* @default undefined
|
25
|
+
*/
|
26
|
+
this.color = undefined;
|
27
|
+
|
28
|
+
/**
|
29
|
+
* The value to clear the depth buffer to. When <code>undefined</code>, the depth buffer is not cleared.
|
30
|
+
*
|
31
|
+
* @type Number
|
32
|
+
* @default undefined
|
33
|
+
*/
|
34
|
+
this.depth = undefined;
|
35
|
+
|
36
|
+
/**
|
37
|
+
* The value to clear the stencil buffer to. When <code>undefined</code>, the stencil buffer is not cleared.
|
38
|
+
*
|
39
|
+
* @type Number
|
40
|
+
* @default undefined
|
41
|
+
*/
|
42
|
+
this.stencil = undefined;
|
43
|
+
|
44
|
+
/**
|
45
|
+
* The render state to apply when executing the clear command. The following states affect clearing:
|
46
|
+
* scissor test, color mask, depth mask, stencil mask, and dither. When the render state is
|
47
|
+
* <code>undefined</code>, the default render state is used.
|
48
|
+
*
|
16
49
|
* @type Object
|
50
|
+
* @default undefined
|
51
|
+
*
|
52
|
+
* @see Context#createRenderState
|
17
53
|
*/
|
18
|
-
this.
|
54
|
+
this.renderState = undefined;
|
19
55
|
|
20
56
|
/**
|
21
57
|
* The framebuffer to clear.
|
58
|
+
*
|
22
59
|
* @type Framebuffer
|
60
|
+
* @default undefined
|
23
61
|
*/
|
24
62
|
this.framebuffer = undefined;
|
25
63
|
};
|
26
64
|
|
65
|
+
var all = new ClearCommand();
|
66
|
+
all.color = new Color(0.0, 0.0, 0.0, 0.0);
|
67
|
+
all.depth = 1.0;
|
68
|
+
all.stencil = 0.0;
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Clears color to (0.0, 0.0, 0.0, 0.0); depth to 1.0; and stencil to 0.
|
72
|
+
*
|
73
|
+
* @constant
|
74
|
+
* @type {ClearCommand}
|
75
|
+
*/
|
76
|
+
ClearCommand.ALL = freezeObject(all);
|
77
|
+
|
27
78
|
/**
|
28
79
|
* Executes the clear command.
|
29
80
|
*
|
30
81
|
* @memberof ClearCommand
|
31
82
|
*
|
32
83
|
* @param {Context} context The renderer context in which to clear.
|
33
|
-
* @param {
|
84
|
+
* @param {PassState} [passState] The state for the current rendering pass.
|
34
85
|
*/
|
35
|
-
ClearCommand.prototype.execute = function(context,
|
36
|
-
context.clear(this,
|
86
|
+
ClearCommand.prototype.execute = function(context, passState) {
|
87
|
+
context.clear(this, passState);
|
37
88
|
};
|
38
89
|
|
39
90
|
return ClearCommand;
|
@@ -7,17 +7,11 @@ define([
|
|
7
7
|
'../Core/IndexDatatype',
|
8
8
|
'../Core/RuntimeError',
|
9
9
|
'../Core/PrimitiveType',
|
10
|
-
'../Core/WindingOrder',
|
11
|
-
'../Core/BoundingRectangle',
|
12
10
|
'../Core/createGuid',
|
13
11
|
'../Core/Matrix4',
|
14
12
|
'./Buffer',
|
15
13
|
'./BufferUsage',
|
16
|
-
'./BlendEquation',
|
17
|
-
'./BlendFunction',
|
18
14
|
'./CubeMap',
|
19
|
-
'./CullFace',
|
20
|
-
'./DepthFunction',
|
21
15
|
'./Framebuffer',
|
22
16
|
'./MipmapHint',
|
23
17
|
'./PixelDatatype',
|
@@ -25,10 +19,9 @@ define([
|
|
25
19
|
'./PickFramebuffer',
|
26
20
|
'./Renderbuffer',
|
27
21
|
'./RenderbufferFormat',
|
22
|
+
'./RenderState',
|
28
23
|
'./ShaderCache',
|
29
24
|
'./ShaderProgram',
|
30
|
-
'./StencilFunction',
|
31
|
-
'./StencilOperation',
|
32
25
|
'./Texture',
|
33
26
|
'./TextureAtlas',
|
34
27
|
'./TextureMagnificationFilter',
|
@@ -36,7 +29,9 @@ define([
|
|
36
29
|
'./TextureWrap',
|
37
30
|
'./UniformState',
|
38
31
|
'./VertexArray',
|
39
|
-
'./VertexLayout'
|
32
|
+
'./VertexLayout',
|
33
|
+
'./ClearCommand',
|
34
|
+
'./PassState'
|
40
35
|
], function(
|
41
36
|
defaultValue,
|
42
37
|
DeveloperError,
|
@@ -45,17 +40,11 @@ define([
|
|
45
40
|
IndexDatatype,
|
46
41
|
RuntimeError,
|
47
42
|
PrimitiveType,
|
48
|
-
WindingOrder,
|
49
|
-
BoundingRectangle,
|
50
43
|
createGuid,
|
51
44
|
Matrix4,
|
52
45
|
Buffer,
|
53
46
|
BufferUsage,
|
54
|
-
BlendEquation,
|
55
|
-
BlendFunction,
|
56
47
|
CubeMap,
|
57
|
-
CullFace,
|
58
|
-
DepthFunction,
|
59
48
|
Framebuffer,
|
60
49
|
MipmapHint,
|
61
50
|
PixelDatatype,
|
@@ -63,10 +52,9 @@ define([
|
|
63
52
|
PickFramebuffer,
|
64
53
|
Renderbuffer,
|
65
54
|
RenderbufferFormat,
|
55
|
+
RenderState,
|
66
56
|
ShaderCache,
|
67
57
|
ShaderProgram,
|
68
|
-
StencilFunction,
|
69
|
-
StencilOperation,
|
70
58
|
Texture,
|
71
59
|
TextureAtlas,
|
72
60
|
TextureMagnificationFilter,
|
@@ -74,9 +62,10 @@ define([
|
|
74
62
|
TextureWrap,
|
75
63
|
UniformState,
|
76
64
|
VertexArray,
|
77
|
-
VertexLayout
|
65
|
+
VertexLayout,
|
66
|
+
ClearCommand,
|
67
|
+
PassState) {
|
78
68
|
"use strict";
|
79
|
-
/*global Uint8Array*/
|
80
69
|
|
81
70
|
function _errorToString(gl, error) {
|
82
71
|
var message = 'OpenGL Error: ';
|
@@ -173,7 +162,7 @@ define([
|
|
173
162
|
throw new RuntimeError('The browser does not support WebGL. Visit http://get.webgl.org.');
|
174
163
|
}
|
175
164
|
|
176
|
-
if (
|
165
|
+
if (typeof canvas === 'undefined') {
|
177
166
|
throw new DeveloperError('canvas is required.');
|
178
167
|
}
|
179
168
|
|
@@ -183,7 +172,7 @@ define([
|
|
183
172
|
options = {};
|
184
173
|
}
|
185
174
|
if (typeof options.stencil === 'undefined') {
|
186
|
-
options.stencil =
|
175
|
+
options.stencil = false;
|
187
176
|
}
|
188
177
|
if (typeof options.alpha === 'undefined') {
|
189
178
|
options.alpha = false;
|
@@ -203,8 +192,6 @@ define([
|
|
203
192
|
this._logShaderCompilation = false;
|
204
193
|
this._throwOnWebGLError = false;
|
205
194
|
|
206
|
-
// TODO: Also need point_size and point_size_enable for ColladaFX
|
207
|
-
// TODO: Also need sample_alpha_to_coverage_enable for ColladaFX
|
208
195
|
this._shaderCache = new ShaderCache(this);
|
209
196
|
|
210
197
|
var gl = this._gl = this._originalGLContext;
|
@@ -244,17 +231,24 @@ define([
|
|
244
231
|
this._clearColor = new Color(cc[0], cc[1], cc[2], cc[3]);
|
245
232
|
this._clearDepth = gl.getParameter(gl.DEPTH_CLEAR_VALUE);
|
246
233
|
this._clearStencil = gl.getParameter(gl.STENCIL_CLEAR_VALUE);
|
247
|
-
this._defaultClearColor = new Color(cc[0], cc[1], cc[2], cc[3]);
|
248
|
-
this._defaultClearDepth = this._clearDepth;
|
249
|
-
this._defaultClearStencil = this._clearStencil;
|
250
234
|
|
251
|
-
|
252
|
-
|
253
|
-
|
235
|
+
var us = new UniformState();
|
236
|
+
var ps = new PassState(this);
|
237
|
+
var rs = this.createRenderState();
|
254
238
|
|
239
|
+
this._defaultPassState = ps;
|
240
|
+
this._defaultRenderState = rs;
|
255
241
|
this._defaultTexture = undefined;
|
256
242
|
this._defaultCubeMap = undefined;
|
257
243
|
|
244
|
+
this._us = us;
|
245
|
+
this._currentFramebuffer = undefined;
|
246
|
+
this._currentSp = undefined;
|
247
|
+
this._currentRenderState = rs;
|
248
|
+
|
249
|
+
this._pickObjects = {};
|
250
|
+
this._nextPickColor = new Uint32Array(1);
|
251
|
+
|
258
252
|
/**
|
259
253
|
* A cache of objects tied to this context. Just before the Context is destroyed,
|
260
254
|
* <code>destroy</code> will be invoked on each object in this object literal that has
|
@@ -266,186 +260,8 @@ define([
|
|
266
260
|
* @type {Object}
|
267
261
|
*/
|
268
262
|
this.cache = {};
|
269
|
-
};
|
270
|
-
|
271
|
-
Context.prototype._enableOrDisable = function(glEnum, enable) {
|
272
|
-
if (enable) {
|
273
|
-
this._gl.enable(glEnum);
|
274
|
-
} else {
|
275
|
-
this._gl.disable(glEnum);
|
276
|
-
}
|
277
|
-
};
|
278
|
-
|
279
|
-
Context.prototype._applyFrontFace = function(frontFace) {
|
280
|
-
this._gl.frontFace(frontFace);
|
281
|
-
};
|
282
|
-
|
283
|
-
Context.prototype._applyCull = function(cull) {
|
284
|
-
var gl = this._gl;
|
285
|
-
var enabled = cull.enabled;
|
286
|
-
|
287
|
-
this._enableOrDisable(gl.CULL_FACE, enabled);
|
288
|
-
|
289
|
-
if (enabled) {
|
290
|
-
gl.cullFace(cull.face);
|
291
|
-
}
|
292
|
-
};
|
293
|
-
|
294
|
-
Context.prototype._applyLineWidth = function(lineWidth) {
|
295
|
-
this._gl.lineWidth(lineWidth);
|
296
|
-
};
|
297
|
-
|
298
|
-
Context.prototype._applyPolygonOffset = function(polygonOffset) {
|
299
|
-
var gl = this._gl;
|
300
|
-
var enabled = polygonOffset.enabled;
|
301
|
-
|
302
|
-
this._enableOrDisable(gl.POLYGON_OFFSET_FILL, enabled);
|
303
|
-
|
304
|
-
if (enabled) {
|
305
|
-
gl.polygonOffset(polygonOffset.factor, polygonOffset.units);
|
306
|
-
}
|
307
|
-
};
|
308
|
-
|
309
|
-
Context.prototype._applyScissorTest = function(scissorTest) {
|
310
|
-
var gl = this._gl;
|
311
|
-
var enabled = scissorTest.enabled;
|
312
|
-
|
313
|
-
this._enableOrDisable(gl.SCISSOR_TEST, enabled);
|
314
|
-
|
315
|
-
if (enabled) {
|
316
|
-
var newRectangle = scissorTest.rectangle;
|
317
|
-
gl.scissor(newRectangle.x, newRectangle.y, newRectangle.width, newRectangle.height);
|
318
|
-
}
|
319
|
-
};
|
320
|
-
|
321
|
-
Context.prototype._applyDepthRange = function(depthRange) {
|
322
|
-
var near = depthRange.near;
|
323
|
-
var far = depthRange.far;
|
324
|
-
this._gl.depthRange(near, far);
|
325
|
-
};
|
326
|
-
|
327
|
-
Context.prototype._applyDepthTest = function(depthTest) {
|
328
|
-
var gl = this._gl;
|
329
|
-
var enabled = depthTest.enabled;
|
330
|
-
|
331
|
-
this._enableOrDisable(gl.DEPTH_TEST, enabled);
|
332
|
-
|
333
|
-
if (enabled) {
|
334
|
-
gl.depthFunc(depthTest.func);
|
335
|
-
}
|
336
|
-
};
|
337
|
-
|
338
|
-
Context.prototype._applyColorMask = function(colorMask) {
|
339
|
-
this._gl.colorMask(colorMask.red, colorMask.green, colorMask.blue, colorMask.alpha);
|
340
|
-
};
|
341
|
-
|
342
|
-
Context.prototype._applyDepthMask = function(depthMask) {
|
343
|
-
this._gl.depthMask(depthMask);
|
344
|
-
};
|
345
|
-
|
346
|
-
Context.prototype._applyStencilMask = function(stencilMask) {
|
347
|
-
this._gl.stencilMask(stencilMask);
|
348
|
-
};
|
349
|
-
|
350
|
-
Context.prototype._applyBlending = function(blending) {
|
351
|
-
var gl = this._gl;
|
352
|
-
var enabled = blending.enabled;
|
353
|
-
|
354
|
-
this._enableOrDisable(gl.BLEND, enabled);
|
355
|
-
|
356
|
-
if (enabled) {
|
357
|
-
var color = blending.color;
|
358
|
-
var equationRgb = blending.equationRgb;
|
359
|
-
var equationAlpha = blending.equationAlpha;
|
360
|
-
var functionSourceRgb = blending.functionSourceRgb;
|
361
|
-
var functionDestinationRgb = blending.functionDestinationRgb;
|
362
|
-
var functionSourceAlpha = blending.functionSourceAlpha;
|
363
|
-
var functionDestinationAlpha = blending.functionDestinationAlpha;
|
364
|
-
|
365
|
-
gl.blendColor(color.red, color.green, color.blue, color.alpha);
|
366
|
-
gl.blendEquationSeparate(equationRgb, equationAlpha);
|
367
|
-
gl.blendFuncSeparate(functionSourceRgb, functionDestinationRgb, functionSourceAlpha, functionDestinationAlpha);
|
368
|
-
}
|
369
|
-
};
|
370
|
-
|
371
|
-
Context.prototype._applyStencilTest = function(stencilTest) {
|
372
|
-
var gl = this._gl;
|
373
|
-
var enabled = stencilTest.enabled;
|
374
|
-
|
375
|
-
this._enableOrDisable(gl.STENCIL_TEST, enabled);
|
376
|
-
|
377
|
-
if (enabled) {
|
378
|
-
var frontFunction = stencilTest.frontFunction;
|
379
|
-
var backFunction = stencilTest.backFunction;
|
380
|
-
var reference = stencilTest.reference;
|
381
|
-
var mask = stencilTest.mask;
|
382
|
-
|
383
|
-
// Section 6.8 of the WebGL spec requires the reference and masks to be the same for
|
384
|
-
// front- and back-face tests. This call prevents invalid operation errors when calling
|
385
|
-
// stencilFuncSeparate on Firefox. Perhaps they should delay validation to avoid requiring this.
|
386
|
-
gl.stencilFunc(stencilTest.frontFunction, stencilTest.reference, stencilTest.mask);
|
387
|
-
gl.stencilFuncSeparate(gl.BACK, backFunction, reference, mask);
|
388
|
-
gl.stencilFuncSeparate(gl.FRONT, frontFunction, reference, mask);
|
389
|
-
|
390
|
-
var frontOperation = stencilTest.frontOperation;
|
391
|
-
var frontOperationFail = frontOperation.fail;
|
392
|
-
var frontOperationZFail = frontOperation.zFail;
|
393
|
-
var frontOperationZPass = frontOperation.zPass;
|
394
263
|
|
395
|
-
|
396
|
-
|
397
|
-
var backOperation = stencilTest.backOperation;
|
398
|
-
var backOperationFail = backOperation.fail;
|
399
|
-
var backOperationZFail = backOperation.zFail;
|
400
|
-
var backOperationZPass = backOperation.zPass;
|
401
|
-
|
402
|
-
gl.stencilOpSeparate(gl.BACK, backOperationFail, backOperationZFail, backOperationZPass);
|
403
|
-
}
|
404
|
-
};
|
405
|
-
|
406
|
-
Context.prototype._applySampleCoverage = function(sampleCoverage) {
|
407
|
-
var gl = this._gl;
|
408
|
-
var enabled = sampleCoverage.enabled;
|
409
|
-
|
410
|
-
this._enableOrDisable(gl.SAMPLE_COVERAGE, enabled);
|
411
|
-
|
412
|
-
if (enabled) {
|
413
|
-
gl.sampleCoverage(sampleCoverage.value, sampleCoverage.invert);
|
414
|
-
}
|
415
|
-
};
|
416
|
-
|
417
|
-
Context.prototype._applyDither = function(dither) {
|
418
|
-
this._enableOrDisable(this._gl.DITHER, dither);
|
419
|
-
};
|
420
|
-
|
421
|
-
var scratchViewport = new BoundingRectangle();
|
422
|
-
Context.prototype._applyViewport = function(viewport) {
|
423
|
-
if (typeof viewport === 'undefined') {
|
424
|
-
viewport = scratchViewport;
|
425
|
-
viewport.width = this._canvas.clientWidth;
|
426
|
-
viewport.height = this._canvas.clientHeight;
|
427
|
-
}
|
428
|
-
|
429
|
-
this._us.setViewport(viewport);
|
430
|
-
this._gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
|
431
|
-
};
|
432
|
-
|
433
|
-
Context.prototype._applyRenderState = function(state) {
|
434
|
-
this._applyFrontFace(state.frontFace);
|
435
|
-
this._applyCull(state.cull);
|
436
|
-
this._applyLineWidth(state.lineWidth);
|
437
|
-
this._applyPolygonOffset(state.polygonOffset);
|
438
|
-
this._applyScissorTest(state.scissorTest);
|
439
|
-
this._applyDepthRange(state.depthRange);
|
440
|
-
this._applyDepthTest(state.depthTest);
|
441
|
-
this._applyColorMask(state.colorMask);
|
442
|
-
this._applyDepthMask(state.depthMask);
|
443
|
-
this._applyStencilMask(state.stencilMask);
|
444
|
-
this._applyBlending(state.blending);
|
445
|
-
this._applyStencilTest(state.stencilTest);
|
446
|
-
this._applySampleCoverage(state.sampleCoverage);
|
447
|
-
this._applyDither(state.dither);
|
448
|
-
this._applyViewport(state.viewport);
|
264
|
+
RenderState.apply(gl, rs, ps);
|
449
265
|
};
|
450
266
|
|
451
267
|
/**
|
@@ -1496,7 +1312,7 @@ define([
|
|
1496
1312
|
* var t = context.createTexture2DFromFramebuffer();
|
1497
1313
|
*/
|
1498
1314
|
Context.prototype.createTexture2DFromFramebuffer = function(pixelFormat, framebufferXOffset, framebufferYOffset, width, height) {
|
1499
|
-
pixelFormat = pixelFormat
|
1315
|
+
pixelFormat = defaultValue(pixelFormat, PixelFormat.RGB);
|
1500
1316
|
framebufferXOffset = defaultValue(framebufferXOffset, 0);
|
1501
1317
|
framebufferYOffset = defaultValue(framebufferYOffset, 0);
|
1502
1318
|
width = defaultValue(width, this._canvas.clientWidth);
|
@@ -1763,11 +1579,10 @@ define([
|
|
1763
1579
|
* @see Context#createFramebuffer
|
1764
1580
|
*/
|
1765
1581
|
Context.prototype.createRenderbuffer = function(description) {
|
1766
|
-
description = description
|
1767
|
-
var format = description.format
|
1768
|
-
var width =
|
1769
|
-
var height =
|
1770
|
-
|
1582
|
+
description = defaultValue(description, defaultValue.EMPTY_OBJECT);
|
1583
|
+
var format = defaultValue(description.format, RenderbufferFormat.RGBA4);
|
1584
|
+
var width = typeof description.width !== 'undefined' ? description.width : this._canvas.clientWidth;
|
1585
|
+
var height = typeof description.height !== 'undefined' ? description.height : this._canvas.clientHeight;
|
1771
1586
|
|
1772
1587
|
var gl = this._gl;
|
1773
1588
|
if (!RenderbufferFormat.validate(format)) {
|
@@ -1793,13 +1608,18 @@ define([
|
|
1793
1608
|
return new Renderbuffer(gl, format, width, height);
|
1794
1609
|
};
|
1795
1610
|
|
1611
|
+
var nextRenderStateId = 0;
|
1612
|
+
var renderStateCache = {};
|
1613
|
+
|
1796
1614
|
/**
|
1797
|
-
*
|
1798
|
-
*
|
1799
|
-
*
|
1615
|
+
* Validates and then finds or creates an immutable render state, which defines the pipeline
|
1616
|
+
* state for a {@link DrawCommand} or {@link ClearCommand}. All inputs states are optional. Omitted states
|
1617
|
+
* use the defaults shown in the example below.
|
1800
1618
|
*
|
1801
1619
|
* @memberof Context
|
1802
1620
|
*
|
1621
|
+
* @param {Object} [renderState=undefined] The states defining the render state as shown in the example below.
|
1622
|
+
*
|
1803
1623
|
* @exception {RuntimeError} renderState.lineWidth is out of range.
|
1804
1624
|
* @exception {DeveloperError} Invalid renderState.frontFace.
|
1805
1625
|
* @exception {DeveloperError} Invalid renderState.cull.face.
|
@@ -1827,226 +1647,115 @@ define([
|
|
1827
1647
|
* @exception {DeveloperError} renderState.viewport.width must be less than or equal to the maximum viewport width.
|
1828
1648
|
* @exception {DeveloperError} renderState.viewport.height must be greater than or equal to zero.
|
1829
1649
|
* @exception {DeveloperError} renderState.viewport.height must be less than or equal to the maximum viewport height.
|
1650
|
+
*
|
1651
|
+
* @example
|
1652
|
+
* var defaults = {
|
1653
|
+
* frontFace : WindingOrder.COUNTER_CLOCKWISE,
|
1654
|
+
* cull : {
|
1655
|
+
* enabled : false,
|
1656
|
+
* face : CullFace.BACK
|
1657
|
+
* },
|
1658
|
+
* lineWidth : 1,
|
1659
|
+
* polygonOffset : {
|
1660
|
+
* enabled : false,
|
1661
|
+
* factor : 0,
|
1662
|
+
* units : 0
|
1663
|
+
* },
|
1664
|
+
* scissorTest : {
|
1665
|
+
* enabled : false,
|
1666
|
+
* rectangle : {
|
1667
|
+
* x : 0,
|
1668
|
+
* y : 0,
|
1669
|
+
* width : 0,
|
1670
|
+
* height : 0
|
1671
|
+
* }
|
1672
|
+
* },
|
1673
|
+
* depthRange : {
|
1674
|
+
* near : 0,
|
1675
|
+
* far : 1
|
1676
|
+
* },
|
1677
|
+
* depthTest : {
|
1678
|
+
* enabled : false,
|
1679
|
+
* func : DepthFunction.LESS
|
1680
|
+
* },
|
1681
|
+
* colorMask : {
|
1682
|
+
* red : true,
|
1683
|
+
* green : true,
|
1684
|
+
* blue : true,
|
1685
|
+
* alpha : true
|
1686
|
+
* },
|
1687
|
+
* depthMask : true,
|
1688
|
+
* stencilMask : ~0,
|
1689
|
+
* blending : {
|
1690
|
+
* enabled : false,
|
1691
|
+
* color : {
|
1692
|
+
* red : 0.0,
|
1693
|
+
* green : 0.0,
|
1694
|
+
* blue : 0.0,
|
1695
|
+
* alpha : 0.0
|
1696
|
+
* },
|
1697
|
+
* equationRgb : BlendEquation.ADD,
|
1698
|
+
* equationAlpha : BlendEquation.ADD,
|
1699
|
+
* functionSourceRgb : BlendFunction.ONE,
|
1700
|
+
* functionSourceAlpha : BlendFunction.ONE,
|
1701
|
+
* functionDestinationRgb : BlendFunction.ZERO,
|
1702
|
+
* functionDestinationAlpha : BlendFunction.ZERO
|
1703
|
+
* },
|
1704
|
+
* stencilTest : {
|
1705
|
+
* enabled : false,
|
1706
|
+
* frontFunction : StencilFunction.ALWAYS,
|
1707
|
+
* backFunction : StencilFunction.ALWAYS,
|
1708
|
+
* reference : 0,
|
1709
|
+
* mask : ~0,
|
1710
|
+
* frontOperation : {
|
1711
|
+
* fail : StencilOperation.KEEP,
|
1712
|
+
* zFail : StencilOperation.KEEP,
|
1713
|
+
* zPass : StencilOperation.KEEP
|
1714
|
+
* },
|
1715
|
+
* backOperation : {
|
1716
|
+
* fail : StencilOperation.KEEP,
|
1717
|
+
* zFail : StencilOperation.KEEP,
|
1718
|
+
* zPass : StencilOperation.KEEP
|
1719
|
+
* }
|
1720
|
+
* },
|
1721
|
+
* sampleCoverage : {
|
1722
|
+
* enabled : false,
|
1723
|
+
* value : 1.0,
|
1724
|
+
* invert : false
|
1725
|
+
* },
|
1726
|
+
* dither : true
|
1727
|
+
* };
|
1728
|
+
*
|
1729
|
+
* // Same as just context.createRenderState().
|
1730
|
+
* var rs = context.createRenderState(defaults);
|
1731
|
+
*
|
1732
|
+
* @see DrawCommand
|
1733
|
+
* @see ClearCommand
|
1830
1734
|
*/
|
1831
1735
|
Context.prototype.createRenderState = function(renderState) {
|
1832
|
-
var
|
1833
|
-
var
|
1834
|
-
|
1835
|
-
|
1836
|
-
var scissorTestRectangle = scissorTest.rectangle || {};
|
1837
|
-
var depthRange = rs.depthRange || {};
|
1838
|
-
var depthTest = rs.depthTest || {};
|
1839
|
-
var colorMask = rs.colorMask || {};
|
1840
|
-
var blending = rs.blending || {};
|
1841
|
-
var blendingColor = blending.color || {};
|
1842
|
-
var stencilTest = rs.stencilTest || {};
|
1843
|
-
var stencilTestFrontOperation = stencilTest.frontOperation || {};
|
1844
|
-
var stencilTestBackOperation = stencilTest.backOperation || {};
|
1845
|
-
var sampleCoverage = rs.sampleCoverage || {};
|
1846
|
-
var viewport = rs.viewport;
|
1847
|
-
|
1848
|
-
var r = {
|
1849
|
-
frontFace : (typeof rs.frontFace === 'undefined') ? WindingOrder.COUNTER_CLOCKWISE : rs.frontFace,
|
1850
|
-
cull : {
|
1851
|
-
enabled : (typeof cull.enabled === 'undefined') ? false : cull.enabled,
|
1852
|
-
face : (typeof cull.face === 'undefined') ? CullFace.BACK : cull.face
|
1853
|
-
},
|
1854
|
-
lineWidth : (typeof rs.lineWidth === 'undefined') ? 1 : rs.lineWidth,
|
1855
|
-
polygonOffset : {
|
1856
|
-
enabled : (typeof polygonOffset.enabled === 'undefined') ? false : polygonOffset.enabled,
|
1857
|
-
factor : (typeof polygonOffset.factor === 'undefined') ? 0 : polygonOffset.factor,
|
1858
|
-
units : (typeof polygonOffset.units === 'undefined') ? 0 : polygonOffset.units
|
1859
|
-
},
|
1860
|
-
scissorTest : {
|
1861
|
-
enabled : (typeof scissorTest.enabled === 'undefined') ? false : scissorTest.enabled,
|
1862
|
-
rectangle : BoundingRectangle.clone(scissorTestRectangle)
|
1863
|
-
},
|
1864
|
-
depthRange : {
|
1865
|
-
near : (typeof depthRange.near === 'undefined') ? 0 : depthRange.near,
|
1866
|
-
far : (typeof depthRange.far === 'undefined') ? 1 : depthRange.far
|
1867
|
-
},
|
1868
|
-
depthTest : {
|
1869
|
-
enabled : (typeof depthTest.enabled === 'undefined') ? false : depthTest.enabled,
|
1870
|
-
func : (typeof depthTest.func === 'undefined') ? DepthFunction.LESS : depthTest.func // func, because function is a JavaScript keyword
|
1871
|
-
},
|
1872
|
-
colorMask : {
|
1873
|
-
red : (typeof colorMask.red === 'undefined') ? true : colorMask.red,
|
1874
|
-
green : (typeof colorMask.green === 'undefined') ? true : colorMask.green,
|
1875
|
-
blue : (typeof colorMask.blue === 'undefined') ? true : colorMask.blue,
|
1876
|
-
alpha : (typeof colorMask.alpha === 'undefined') ? true : colorMask.alpha
|
1877
|
-
},
|
1878
|
-
depthMask : (typeof rs.depthMask === 'undefined') ? true : rs.depthMask,
|
1879
|
-
stencilMask : (typeof rs.stencilMask === 'undefined') ? ~0 : rs.stencilMask,
|
1880
|
-
blending : {
|
1881
|
-
enabled : (typeof blending.enabled === 'undefined') ? false : blending.enabled,
|
1882
|
-
color : new Color(
|
1883
|
-
(typeof blendingColor.red === 'undefined') ? 0.0 : blendingColor.red,
|
1884
|
-
(typeof blendingColor.green === 'undefined') ? 0.0 : blendingColor.green,
|
1885
|
-
(typeof blendingColor.blue === 'undefined') ? 0.0 : blendingColor.blue,
|
1886
|
-
(typeof blendingColor.alpha === 'undefined') ? 0.0 : blendingColor.alpha
|
1887
|
-
),
|
1888
|
-
equationRgb : (typeof blending.equationRgb === 'undefined') ? BlendEquation.ADD : blending.equationRgb,
|
1889
|
-
equationAlpha : (typeof blending.equationAlpha === 'undefined') ? BlendEquation.ADD : blending.equationAlpha,
|
1890
|
-
functionSourceRgb : (typeof blending.functionSourceRgb === 'undefined') ? BlendFunction.ONE : blending.functionSourceRgb,
|
1891
|
-
functionSourceAlpha : (typeof blending.functionSourceAlpha === 'undefined') ? BlendFunction.ONE : blending.functionSourceAlpha,
|
1892
|
-
functionDestinationRgb : (typeof blending.functionDestinationRgb === 'undefined') ? BlendFunction.ZERO : blending.functionDestinationRgb,
|
1893
|
-
functionDestinationAlpha : (typeof blending.functionDestinationAlpha === 'undefined') ? BlendFunction.ZERO : blending.functionDestinationAlpha
|
1894
|
-
},
|
1895
|
-
stencilTest : {
|
1896
|
-
enabled : (typeof stencilTest.enabled === 'undefined') ? false : stencilTest.enabled,
|
1897
|
-
frontFunction : (typeof stencilTest.frontFunction === 'undefined') ? StencilFunction.ALWAYS : stencilTest.frontFunction,
|
1898
|
-
backFunction : (typeof stencilTest.backFunction === 'undefined') ? StencilFunction.ALWAYS : stencilTest.backFunction,
|
1899
|
-
reference : (typeof stencilTest.reference === 'undefined') ? 0 : stencilTest.reference,
|
1900
|
-
mask : (typeof stencilTest.mask === 'undefined') ? ~0 : stencilTest.mask,
|
1901
|
-
frontOperation : {
|
1902
|
-
fail : (typeof stencilTestFrontOperation.fail === 'undefined') ? StencilOperation.KEEP : stencilTestFrontOperation.fail,
|
1903
|
-
zFail : (typeof stencilTestFrontOperation.zFail === 'undefined') ? StencilOperation.KEEP : stencilTestFrontOperation.zFail,
|
1904
|
-
zPass : (typeof stencilTestFrontOperation.zPass === 'undefined') ? StencilOperation.KEEP : stencilTestFrontOperation.zPass
|
1905
|
-
},
|
1906
|
-
backOperation : {
|
1907
|
-
fail : (typeof stencilTestBackOperation.fail === 'undefined') ? StencilOperation.KEEP : stencilTestBackOperation.fail,
|
1908
|
-
zFail : (typeof stencilTestBackOperation.zFail === 'undefined') ? StencilOperation.KEEP : stencilTestBackOperation.zFail,
|
1909
|
-
zPass : (typeof stencilTestBackOperation.zPass === 'undefined') ? StencilOperation.KEEP : stencilTestBackOperation.zPass
|
1910
|
-
}
|
1911
|
-
},
|
1912
|
-
// TODO: Also need point_size and point_size_enable for ColladaFX
|
1913
|
-
// TODO: Also need sample_alpha_to_coverage_enable for ColladaFX
|
1914
|
-
sampleCoverage : {
|
1915
|
-
enabled : (typeof sampleCoverage.enabled === 'undefined') ? false : sampleCoverage.enabled,
|
1916
|
-
value : (typeof sampleCoverage.value === 'undefined') ? 1.0 : sampleCoverage.value,
|
1917
|
-
invert : (typeof sampleCoverage.invert === 'undefined') ? false : sampleCoverage.invert
|
1918
|
-
},
|
1919
|
-
dither : (typeof rs.dither === 'undefined') ? true : rs.dither
|
1920
|
-
// viewport is set below because it is allowed to be undefined - meaning always the canvas size.
|
1921
|
-
};
|
1922
|
-
|
1923
|
-
// Validate
|
1924
|
-
|
1925
|
-
if (!WindingOrder.validate(r.frontFace)) {
|
1926
|
-
throw new DeveloperError('Invalid renderState.frontFace.');
|
1736
|
+
var partialKey = JSON.stringify(renderState);
|
1737
|
+
var cachedState = renderStateCache[partialKey];
|
1738
|
+
if (typeof cachedState !== 'undefined') {
|
1739
|
+
return cachedState;
|
1927
1740
|
}
|
1928
1741
|
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1742
|
+
// Cache miss. Fully define render state and try again.
|
1743
|
+
var states = new RenderState(this, renderState);
|
1744
|
+
var fullKey = JSON.stringify(states);
|
1745
|
+
cachedState = renderStateCache[fullKey];
|
1746
|
+
if (typeof cachedState === 'undefined') {
|
1747
|
+
states.id = nextRenderStateId++;
|
1932
1748
|
|
1933
|
-
|
1934
|
-
(r.lineWidth > this._aliasedLineWidthRange[1])) {
|
1935
|
-
throw new RuntimeError('renderState.lineWidth is out of range. Check getMinimumAliasedLineWidth() and getMaximumAliasedLineWidth().');
|
1936
|
-
}
|
1937
|
-
|
1938
|
-
if ((r.scissorTest.rectangle.width < 0) ||
|
1939
|
-
(r.scissorTest.rectangle.height < 0)) {
|
1940
|
-
throw new DeveloperError('renderState.scissorTest.rectangle.width and renderState.scissorTest.rectangle.height must be greater than or equal to zero.');
|
1941
|
-
}
|
1749
|
+
cachedState = states;
|
1942
1750
|
|
1943
|
-
|
1944
|
-
|
1945
|
-
throw new DeveloperError('renderState.depthRange.near can not be greater than renderState.depthRange.far.');
|
1751
|
+
// Cache full render state. Multiple partially defined render states may map to this.
|
1752
|
+
renderStateCache[fullKey] = cachedState;
|
1946
1753
|
}
|
1947
1754
|
|
1948
|
-
|
1949
|
-
|
1950
|
-
throw new DeveloperError('renderState.depthRange.near must be greater than or equal to zero.');
|
1951
|
-
}
|
1952
|
-
|
1953
|
-
if (r.depthRange.far > 1) {
|
1954
|
-
// Would be clamped by GL
|
1955
|
-
throw new DeveloperError('renderState.depthRange.far must be less than or equal to one.');
|
1956
|
-
}
|
1755
|
+
// Cache partial render state so we can skip validation on a cache hit for a partially defined render state
|
1756
|
+
renderStateCache[partialKey] = cachedState;
|
1957
1757
|
|
1958
|
-
|
1959
|
-
if (!DepthFunction.validate(r.depthTest.func)) {
|
1960
|
-
throw new DeveloperError('Invalid renderState.depthTest.func.');
|
1961
|
-
}
|
1962
|
-
|
1963
|
-
if ((r.blending.color.red < 0.0) || (r.blending.color.red > 1.0) ||
|
1964
|
-
(r.blending.color.green < 0.0) || (r.blending.color.green > 1.0) ||
|
1965
|
-
(r.blending.color.blue < 0.0) || (r.blending.color.blue > 1.0) ||
|
1966
|
-
(r.blending.color.alpha < 0.0) || (r.blending.color.alpha > 1.0)) {
|
1967
|
-
// Would be clamped by GL
|
1968
|
-
throw new DeveloperError('renderState.blending.color components must be greater than or equal to zero and less than or equal to one.');
|
1969
|
-
}
|
1970
|
-
|
1971
|
-
if (!BlendEquation.validate(r.blending.equationRgb)) {
|
1972
|
-
throw new DeveloperError('Invalid renderState.blending.equationRgb.');
|
1973
|
-
}
|
1974
|
-
|
1975
|
-
if (!BlendEquation.validate(r.blending.equationAlpha)) {
|
1976
|
-
throw new DeveloperError('Invalid renderState.blending.equationAlpha.');
|
1977
|
-
}
|
1978
|
-
|
1979
|
-
if (!BlendFunction.validate(r.blending.functionSourceRgb)) {
|
1980
|
-
throw new DeveloperError('Invalid renderState.blending.functionSourceRgb.');
|
1981
|
-
}
|
1982
|
-
|
1983
|
-
if (!BlendFunction.validate(r.blending.functionSourceAlpha)) {
|
1984
|
-
throw new DeveloperError('Invalid renderState.blending.functionSourceAlpha.');
|
1985
|
-
}
|
1986
|
-
|
1987
|
-
if (!BlendFunction.validate(r.blending.functionDestinationRgb)) {
|
1988
|
-
throw new DeveloperError('Invalid renderState.blending.functionDestinationRgb.');
|
1989
|
-
}
|
1990
|
-
|
1991
|
-
if (!BlendFunction.validate(r.blending.functionDestinationAlpha)) {
|
1992
|
-
throw new DeveloperError('Invalid renderState.blending.functionDestinationAlpha.');
|
1993
|
-
}
|
1994
|
-
|
1995
|
-
if (!StencilFunction.validate(r.stencilTest.frontFunction)) {
|
1996
|
-
throw new DeveloperError('Invalid renderState.stencilTest.frontFunction.');
|
1997
|
-
}
|
1998
|
-
|
1999
|
-
if (!StencilFunction.validate(r.stencilTest.backFunction)) {
|
2000
|
-
throw new DeveloperError('Invalid renderState.stencilTest.backFunction.');
|
2001
|
-
}
|
2002
|
-
|
2003
|
-
if (!StencilOperation.validate(r.stencilTest.frontOperation.fail)) {
|
2004
|
-
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.fail.');
|
2005
|
-
}
|
2006
|
-
|
2007
|
-
if (!StencilOperation.validate(r.stencilTest.frontOperation.zFail)) {
|
2008
|
-
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.zFail.');
|
2009
|
-
}
|
2010
|
-
|
2011
|
-
if (!StencilOperation.validate(r.stencilTest.frontOperation.zPass)) {
|
2012
|
-
throw new DeveloperError('Invalid renderState.stencilTest.frontOperation.zPass.');
|
2013
|
-
}
|
2014
|
-
|
2015
|
-
if (!StencilOperation.validate(r.stencilTest.backOperation.fail)) {
|
2016
|
-
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.fail.');
|
2017
|
-
}
|
2018
|
-
|
2019
|
-
if (!StencilOperation.validate(r.stencilTest.backOperation.zFail)) {
|
2020
|
-
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.zFail.');
|
2021
|
-
}
|
2022
|
-
|
2023
|
-
if (!StencilOperation.validate(r.stencilTest.backOperation.zPass)) {
|
2024
|
-
throw new DeveloperError('Invalid renderState.stencilTest.backOperation.zPass.');
|
2025
|
-
}
|
2026
|
-
|
2027
|
-
if (typeof vieport !== 'undefined') {
|
2028
|
-
if (viewport.width < 0) {
|
2029
|
-
throw new DeveloperError('renderState.viewport.width must be greater than or equal to zero.');
|
2030
|
-
}
|
2031
|
-
|
2032
|
-
if (viewport.width > this.getMaximumViewportWidth()) {
|
2033
|
-
throw new RuntimeError('renderState.viewport.width must be less than or equal to the maximum viewport width (' + this.getMaximumViewportWidth().toString() + '). Check getMaximumViewportWidth().');
|
2034
|
-
}
|
2035
|
-
|
2036
|
-
if (viewport.height < 0) {
|
2037
|
-
throw new DeveloperError('renderState.viewport.height must be greater than or equal to zero.');
|
2038
|
-
}
|
2039
|
-
|
2040
|
-
if (viewport.height > this.getMaximumViewportHeight()) {
|
2041
|
-
throw new RuntimeError('renderState.viewport.height must be less than or equal to the maximum viewport height (' + this.getMaximumViewportHeight().toString() + '). Check getMaximumViewportHeight().');
|
2042
|
-
}
|
2043
|
-
|
2044
|
-
r.viewport = new BoundingRectangle(viewport.x, viewport.y,
|
2045
|
-
(typeof viewport.width === 'undefined') ? this._canvas.clientWidth : viewport.width,
|
2046
|
-
(typeof viewport.height === 'undefined') ? this._canvas.clientHeight : viewport.height);
|
2047
|
-
}
|
2048
|
-
|
2049
|
-
return r;
|
1758
|
+
return cachedState;
|
2050
1759
|
};
|
2051
1760
|
|
2052
1761
|
/**
|
@@ -2094,68 +1803,6 @@ define([
|
|
2094
1803
|
return s;
|
2095
1804
|
};
|
2096
1805
|
|
2097
|
-
/**
|
2098
|
-
* DOC_TBA.
|
2099
|
-
*
|
2100
|
-
* @memberof Context
|
2101
|
-
*
|
2102
|
-
* Validates and adds defaults for missing states.
|
2103
|
-
*
|
2104
|
-
* @exception {DeveloperError} clearState.scissorTest.rectangle.width and clearState.scissorTest.rectangle.height must be greater than or equal to zero.
|
2105
|
-
*
|
2106
|
-
* @see Context#clear
|
2107
|
-
*/
|
2108
|
-
Context.prototype.createClearState = function(clearState) {
|
2109
|
-
var cs = clearState || {};
|
2110
|
-
var scissorTest = cs.scissorTest || {};
|
2111
|
-
var scissorTestRectangle = scissorTest.rectangle || {};
|
2112
|
-
var colorMask = cs.colorMask || {};
|
2113
|
-
|
2114
|
-
var color = cs.color;
|
2115
|
-
var depth = cs.depth;
|
2116
|
-
var stencil = cs.stencil;
|
2117
|
-
|
2118
|
-
// Clear everything if nothing is specified
|
2119
|
-
if ((typeof color === 'undefined') && (typeof depth === 'undefined') && (typeof stencil === 'undefined')) {
|
2120
|
-
color = this._defaultClearColor;
|
2121
|
-
depth = this._defaultClearDepth;
|
2122
|
-
stencil = this._defaultClearStencil;
|
2123
|
-
}
|
2124
|
-
|
2125
|
-
var c = {
|
2126
|
-
scissorTest : {
|
2127
|
-
enabled : (typeof scissorTest.enabled === 'undefined') ? false : scissorTest.enabled,
|
2128
|
-
rectangle : {
|
2129
|
-
x : (typeof scissorTestRectangle.x === 'undefined') ? 0 : scissorTestRectangle.x,
|
2130
|
-
y : (typeof scissorTestRectangle.y === 'undefined') ? 0 : scissorTestRectangle.y,
|
2131
|
-
width : (typeof scissorTestRectangle.width === 'undefined') ? 0 : scissorTestRectangle.width,
|
2132
|
-
height : (typeof scissorTestRectangle.height === 'undefined') ? 0 : scissorTestRectangle.height
|
2133
|
-
}
|
2134
|
-
},
|
2135
|
-
colorMask : {
|
2136
|
-
red : (typeof colorMask.red === 'undefined') ? true : colorMask.red,
|
2137
|
-
green : (typeof colorMask.green === 'undefined') ? true : colorMask.green,
|
2138
|
-
blue : (typeof colorMask.blue === 'undefined') ? true : colorMask.blue,
|
2139
|
-
alpha : (typeof colorMask.alpha === 'undefined') ? true : colorMask.alpha
|
2140
|
-
},
|
2141
|
-
depthMask : (typeof cs.depthMask === 'undefined') ? true : cs.depthMask,
|
2142
|
-
stencilMask : (typeof cs.stencilMask === 'undefined') ? ~0 : cs.stencilMask,
|
2143
|
-
dither : (typeof cs.dither === 'undefined') ? true : cs.dither,
|
2144
|
-
|
2145
|
-
framebuffer : cs.framebuffer,
|
2146
|
-
|
2147
|
-
color : (typeof color !== 'undefined') ? Color.clone(color) : undefined,
|
2148
|
-
depth : depth,
|
2149
|
-
stencil : stencil
|
2150
|
-
};
|
2151
|
-
|
2152
|
-
if ((c.scissorTest.rectangle.width < 0) || (c.scissorTest.rectangle.height < 0)) {
|
2153
|
-
throw new DeveloperError('clearState.scissorTest.rectangle.width and clearState.scissorTest.rectangle.height must be greater than or equal to zero.');
|
2154
|
-
}
|
2155
|
-
|
2156
|
-
return c;
|
2157
|
-
};
|
2158
|
-
|
2159
1806
|
Context.prototype._validateFramebuffer = function(framebuffer) {
|
2160
1807
|
if (this._validateFB) {
|
2161
1808
|
var gl = this._gl;
|
@@ -2184,34 +1831,39 @@ define([
|
|
2184
1831
|
}
|
2185
1832
|
};
|
2186
1833
|
|
1834
|
+
function applyRenderState(context, renderState, passState) {
|
1835
|
+
var previousState = context._currentRenderState;
|
1836
|
+
if (previousState !== renderState) {
|
1837
|
+
context._currentRenderState = renderState;
|
1838
|
+
RenderState.partialApply(context._gl, previousState, renderState, passState);
|
1839
|
+
}
|
1840
|
+
// else same render state as before so state is already applied.
|
1841
|
+
}
|
1842
|
+
|
1843
|
+
var defaultClearCommand = new ClearCommand();
|
1844
|
+
|
2187
1845
|
/**
|
2188
1846
|
* Executes the specified clear command.
|
2189
1847
|
*
|
2190
1848
|
* @memberof Context
|
2191
1849
|
*
|
2192
|
-
* @param {ClearCommand} [clearCommand] The command with which to clear.
|
2193
|
-
*
|
2194
|
-
* @param {Framebuffer} [framebuffer] The framebuffer to clear if one is not specified by the command.
|
1850
|
+
* @param {ClearCommand} [clearCommand] The command with which to clear.
|
1851
|
+
* @param {PassState} [passState] The state for the current rendering pass.
|
2195
1852
|
*
|
2196
1853
|
* @memberof Context
|
2197
1854
|
*
|
2198
|
-
* @see
|
1855
|
+
* @see ClearCommand
|
2199
1856
|
*/
|
2200
|
-
Context.prototype.clear = function(clearCommand,
|
2201
|
-
|
2202
|
-
|
2203
|
-
clearState = clearCommand.clearState;
|
2204
|
-
} else {
|
2205
|
-
clearState = this.createClearState();
|
2206
|
-
}
|
1857
|
+
Context.prototype.clear = function(clearCommand, passState) {
|
1858
|
+
clearCommand = defaultValue(clearCommand, defaultClearCommand);
|
1859
|
+
passState = defaultValue(passState, this._defaultPassState);
|
2207
1860
|
|
2208
1861
|
var gl = this._gl;
|
2209
1862
|
var bitmask = 0;
|
2210
1863
|
|
2211
|
-
|
2212
|
-
var
|
2213
|
-
var
|
2214
|
-
var s = clearState.stencil;
|
1864
|
+
var c = clearCommand.color;
|
1865
|
+
var d = clearCommand.depth;
|
1866
|
+
var s = clearCommand.stencil;
|
2215
1867
|
|
2216
1868
|
if (typeof c !== 'undefined') {
|
2217
1869
|
if (!Color.equals(this._clearColor, c)) {
|
@@ -2237,22 +1889,20 @@ define([
|
|
2237
1889
|
bitmask |= gl.STENCIL_BUFFER_BIT;
|
2238
1890
|
}
|
2239
1891
|
|
2240
|
-
this.
|
2241
|
-
this
|
2242
|
-
this._applyDepthMask(clearState.depthMask);
|
2243
|
-
this._applyStencilMask(clearState.stencilMask);
|
2244
|
-
this._applyDither(clearState.dither);
|
1892
|
+
var rs = defaultValue(clearCommand.renderState, this._defaultRenderState);
|
1893
|
+
applyRenderState(this, rs, passState);
|
2245
1894
|
|
2246
|
-
framebuffer
|
1895
|
+
// The command's framebuffer takes presidence over the pass' framebuffer, e.g., for off-screen rendering.
|
1896
|
+
var framebuffer = defaultValue(clearCommand.framebuffer, passState.framebuffer);
|
2247
1897
|
|
2248
|
-
if (framebuffer) {
|
1898
|
+
if (typeof framebuffer !== 'undefined') {
|
2249
1899
|
framebuffer._bind();
|
2250
1900
|
this._validateFramebuffer(framebuffer);
|
2251
1901
|
}
|
2252
1902
|
|
2253
1903
|
gl.clear(bitmask);
|
2254
1904
|
|
2255
|
-
if (framebuffer) {
|
1905
|
+
if (typeof framebuffer !== 'undefined') {
|
2256
1906
|
framebuffer._unBind();
|
2257
1907
|
}
|
2258
1908
|
};
|
@@ -2263,7 +1913,7 @@ define([
|
|
2263
1913
|
* @memberof Context
|
2264
1914
|
*
|
2265
1915
|
* @param {DrawCommand} drawCommand The command with which to draw.
|
2266
|
-
* @param {
|
1916
|
+
* @param {PassState} [passState] The state for the current rendering pass
|
2267
1917
|
*
|
2268
1918
|
* @memberof Context
|
2269
1919
|
*
|
@@ -2301,8 +1951,9 @@ define([
|
|
2301
1951
|
* @see Context#createFramebuffer
|
2302
1952
|
* @see Context#createRenderState
|
2303
1953
|
*/
|
2304
|
-
Context.prototype.draw = function(drawCommand,
|
2305
|
-
|
1954
|
+
Context.prototype.draw = function(drawCommand, passState) {
|
1955
|
+
passState = defaultValue(passState, this._defaultPassState);
|
1956
|
+
this.beginDraw(drawCommand, passState);
|
2306
1957
|
this.continueDraw(drawCommand);
|
2307
1958
|
this.endDraw();
|
2308
1959
|
};
|
@@ -2312,7 +1963,7 @@ define([
|
|
2312
1963
|
*
|
2313
1964
|
* @memberof Context
|
2314
1965
|
*/
|
2315
|
-
Context.prototype.beginDraw = function(command,
|
1966
|
+
Context.prototype.beginDraw = function(command, passState) {
|
2316
1967
|
if (typeof command === 'undefined') {
|
2317
1968
|
throw new DeveloperError('command is required.');
|
2318
1969
|
}
|
@@ -2321,11 +1972,12 @@ define([
|
|
2321
1972
|
throw new DeveloperError('command.shaderProgram is required.');
|
2322
1973
|
}
|
2323
1974
|
|
2324
|
-
|
1975
|
+
// The command's framebuffer takes presidence over the pass' framebuffer, e.g., for off-screen rendering.
|
1976
|
+
var framebuffer = defaultValue(command.framebuffer, passState.framebuffer);
|
2325
1977
|
var sp = command.shaderProgram;
|
2326
|
-
var rs = command.renderState
|
1978
|
+
var rs = (typeof command.renderState !== 'undefined') ? command.renderState : this._defaultRenderState;
|
2327
1979
|
|
2328
|
-
if (framebuffer && rs.depthTest) {
|
1980
|
+
if ((typeof framebuffer !== 'undefined') && rs.depthTest) {
|
2329
1981
|
if (rs.depthTest.enabled && !framebuffer.hasDepthAttachment()) {
|
2330
1982
|
throw new DeveloperError('The depth test can not be enabled (command.renderState.depthTest.enabled) because the framebuffer (command.framebuffer) does not have a depth or depth-stencil renderbuffer.');
|
2331
1983
|
}
|
@@ -2333,8 +1985,9 @@ define([
|
|
2333
1985
|
|
2334
1986
|
///////////////////////////////////////////////////////////////////////
|
2335
1987
|
|
2336
|
-
this
|
2337
|
-
|
1988
|
+
applyRenderState(this, rs, passState);
|
1989
|
+
|
1990
|
+
if (typeof framebuffer !== 'undefined') {
|
2338
1991
|
framebuffer._bind();
|
2339
1992
|
this._validateFramebuffer(framebuffer);
|
2340
1993
|
}
|
@@ -2408,7 +2061,7 @@ define([
|
|
2408
2061
|
* @memberof Context
|
2409
2062
|
*/
|
2410
2063
|
Context.prototype.endDraw = function() {
|
2411
|
-
if (this._currentFramebuffer) {
|
2064
|
+
if (typeof this._currentFramebuffer !== 'undefined') {
|
2412
2065
|
this._currentFramebuffer._unBind();
|
2413
2066
|
this._currentFramebuffer = undefined;
|
2414
2067
|
}
|
@@ -2576,7 +2229,7 @@ define([
|
|
2576
2229
|
return undefined;
|
2577
2230
|
};
|
2578
2231
|
|
2579
|
-
|
2232
|
+
function createVertexArrayAttributes(context, creationArguments) {
|
2580
2233
|
var ca = creationArguments || {};
|
2581
2234
|
var mesh = ca.mesh || {};
|
2582
2235
|
var attributeIndices = ca.attributeIndices || {};
|
@@ -2590,9 +2243,9 @@ define([
|
|
2590
2243
|
|
2591
2244
|
if (interleave) {
|
2592
2245
|
// Use a single vertex buffer with interleaved vertices.
|
2593
|
-
var interleavedAttributes =
|
2246
|
+
var interleavedAttributes = context._interleaveAttributes(attributes);
|
2594
2247
|
if (interleavedAttributes) {
|
2595
|
-
var vertexBuffer =
|
2248
|
+
var vertexBuffer = context.createVertexBuffer(interleavedAttributes.buffer, bufferUsage);
|
2596
2249
|
var offsetsInBytes = interleavedAttributes.offsetsInBytes;
|
2597
2250
|
var strideInBytes = interleavedAttributes.vertexSizeInBytes;
|
2598
2251
|
|
@@ -2630,7 +2283,7 @@ define([
|
|
2630
2283
|
attribute = attributes[name];
|
2631
2284
|
vaAttributes.push({
|
2632
2285
|
index : attributeIndices[name],
|
2633
|
-
vertexBuffer : attribute.values ?
|
2286
|
+
vertexBuffer : attribute.values ? context.createVertexBuffer(attribute.componentDatatype.toTypedArray(attribute.values), bufferUsage) : undefined,
|
2634
2287
|
value : attribute.value ? attribute.value : undefined,
|
2635
2288
|
componentDatatype : attribute.componentDatatype,
|
2636
2289
|
componentsPerAttribute : attribute.componentsPerAttribute,
|
@@ -2640,8 +2293,8 @@ define([
|
|
2640
2293
|
}
|
2641
2294
|
}
|
2642
2295
|
|
2643
|
-
return
|
2644
|
-
}
|
2296
|
+
return context.createVertexArray(vaAttributes);
|
2297
|
+
}
|
2645
2298
|
|
2646
2299
|
/**
|
2647
2300
|
* Creates a vertex array from a mesh. A mesh contains vertex attributes and optional index data
|
@@ -2715,7 +2368,7 @@ define([
|
|
2715
2368
|
}
|
2716
2369
|
}
|
2717
2370
|
|
2718
|
-
var va = this
|
2371
|
+
var va = createVertexArrayAttributes(this, creationArguments);
|
2719
2372
|
|
2720
2373
|
if (indexLists) {
|
2721
2374
|
va.setIndexBuffer(this.createIndexBuffer(new Uint16Array(indexLists[0].values), bufferUsage, IndexDatatype.UNSIGNED_SHORT));
|
@@ -2736,69 +2389,75 @@ define([
|
|
2736
2389
|
};
|
2737
2390
|
|
2738
2391
|
/**
|
2739
|
-
*
|
2392
|
+
* Gets the object associated with a pick color.
|
2740
2393
|
*
|
2741
2394
|
* @memberof Context
|
2742
2395
|
*
|
2396
|
+
* @param {Color} The pick color.
|
2397
|
+
*
|
2398
|
+
* @returns {Object} The object associated with the pick color, or undefined if no object is associated with that color.
|
2399
|
+
*
|
2400
|
+
* @exception {DeveloperError} pickColor is required.
|
2401
|
+
*
|
2402
|
+
* @example
|
2403
|
+
* var object = context.getObjectByPickColor(pickColor);
|
2404
|
+
*
|
2743
2405
|
* @see Context#createPickId
|
2744
2406
|
*/
|
2745
|
-
Context.prototype.
|
2407
|
+
Context.prototype.getObjectByPickColor = function(pickColor) {
|
2408
|
+
if (typeof pickColor === 'undefined') {
|
2409
|
+
throw new DeveloperError('pickColor is required.');
|
2410
|
+
}
|
2411
|
+
|
2412
|
+
return this._pickObjects[pickColor.toRgba()];
|
2413
|
+
};
|
2414
|
+
|
2415
|
+
function PickId(pickObjects, key, color) {
|
2416
|
+
this._pickObjects = pickObjects;
|
2417
|
+
this.key = key;
|
2418
|
+
this.color = color;
|
2419
|
+
}
|
2420
|
+
|
2421
|
+
PickId.prototype.destroy = function() {
|
2422
|
+
delete this._pickObjects[this.key];
|
2746
2423
|
return undefined;
|
2747
2424
|
};
|
2748
2425
|
|
2749
2426
|
/**
|
2750
|
-
*
|
2427
|
+
* Creates a unique ID associated with the input object for use with color-buffer picking.
|
2428
|
+
* The ID has an RGBA color value unique to this context. You must call destroy()
|
2429
|
+
* on the pick ID when destroying the input object.
|
2751
2430
|
*
|
2752
2431
|
* @memberof Context
|
2753
2432
|
*
|
2754
|
-
* @
|
2433
|
+
* @param {Object} object The object to associate with the pick ID.
|
2434
|
+
*
|
2435
|
+
* @returns {Object} A PickId object with a <code>color</code> property.
|
2436
|
+
*
|
2437
|
+
* @exception {DeveloperError} object is required.
|
2438
|
+
* @exception {RuntimeError} Out of unique Pick IDs.
|
2439
|
+
*
|
2440
|
+
* @see Context#getObjectByPickColor
|
2441
|
+
*
|
2442
|
+
* @example
|
2443
|
+
* this._pickId = context.createPickId(this);
|
2755
2444
|
*/
|
2756
2445
|
Context.prototype.createPickId = function(object) {
|
2757
|
-
|
2758
|
-
|
2759
|
-
|
2760
|
-
function rgbToObjectIndex(unnormalizedRgb) {
|
2761
|
-
// TODO: Use alpha?
|
2762
|
-
var index = 'r' + unnormalizedRgb.red + 'g' + unnormalizedRgb.green + 'b' + unnormalizedRgb.blue;
|
2763
|
-
return index;
|
2446
|
+
if (typeof object === 'undefined') {
|
2447
|
+
throw new DeveloperError('object is required.');
|
2764
2448
|
}
|
2765
2449
|
|
2766
|
-
|
2767
|
-
|
2768
|
-
|
2769
|
-
|
2770
|
-
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
if (++nextRgb.red === 256) {
|
2775
|
-
throw new RuntimeError('Out of unique Rgb colors.');
|
2776
|
-
}
|
2777
|
-
}
|
2778
|
-
}
|
2779
|
-
|
2780
|
-
var pickId = {
|
2781
|
-
unnormalizedRgb : new Color(nextRgb.red, nextRgb.green, nextRgb.blue, 1.0),
|
2782
|
-
normalizedRgba : Color.fromBytes(nextRgb.red, nextRgb.green, nextRgb.blue, 255.0),
|
2783
|
-
destroy : function() {
|
2784
|
-
// TODO: Remove from objects
|
2785
|
-
return null;
|
2786
|
-
}
|
2787
|
-
};
|
2788
|
-
|
2789
|
-
objects[rgbToObjectIndex(pickId.unnormalizedRgb)] = object;
|
2790
|
-
|
2791
|
-
return pickId;
|
2450
|
+
// the increment and assignment have to be separate statements to
|
2451
|
+
// actually detect overflow in the Uint32 value
|
2452
|
+
++this._nextPickColor[0];
|
2453
|
+
var key = this._nextPickColor[0];
|
2454
|
+
if (key === 0) {
|
2455
|
+
// In case of overflow
|
2456
|
+
throw new RuntimeError('Out of unique Pick IDs.');
|
2792
2457
|
}
|
2793
2458
|
|
2794
|
-
|
2795
|
-
|
2796
|
-
}
|
2797
|
-
|
2798
|
-
this.createPickId = _createPickId;
|
2799
|
-
this.getObjectByPickId = _getObjectByPickId;
|
2800
|
-
|
2801
|
-
return _createPickId(object);
|
2459
|
+
this._pickObjects[key] = object;
|
2460
|
+
return new PickId(this._pickObjects, key, Color.fromRgba(key));
|
2802
2461
|
};
|
2803
2462
|
|
2804
2463
|
Context.prototype.isDestroyed = function() {
|