cesium 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/Cesium.js +7 -7
- data/app/assets/javascripts/Core/BoundingRectangle.js +1 -1
- data/app/assets/javascripts/Core/BoundingSphere.js +12 -5
- data/app/assets/javascripts/Core/BoxTessellator.js +11 -8
- data/app/assets/javascripts/Core/CatmullRomSpline.js +23 -21
- data/app/assets/javascripts/Core/Clock.js +1 -1
- data/app/assets/javascripts/Core/Color.js +51 -0
- data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +3 -1
- data/app/assets/javascripts/Core/EarthOrientationParameters.js +1 -1
- data/app/assets/javascripts/Core/EllipsoidalOccluder.js +15 -12
- data/app/assets/javascripts/Core/Extent.js +37 -0
- data/app/assets/javascripts/Core/ExtentTessellator.js +33 -25
- data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +18 -19
- data/app/assets/javascripts/Core/HermiteSpline.js +49 -49
- data/app/assets/javascripts/Core/Iau2006XysData.js +4 -5
- data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +10 -20
- data/app/assets/javascripts/Core/LinearApproximation.js +19 -23
- data/app/assets/javascripts/Core/Math.js +15 -3
- data/app/assets/javascripts/Core/Matrix4.js +186 -2
- data/app/assets/javascripts/Core/MeshFilters.js +13 -13
- data/app/assets/javascripts/Core/OrientationInterpolator.js +19 -19
- data/app/assets/javascripts/Core/PlaneTessellator.js +8 -6
- data/app/assets/javascripts/Core/PolygonPipeline.js +21 -21
- data/app/assets/javascripts/Core/PolylinePipeline.js +17 -25
- data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +187 -185
- data/app/assets/javascripts/Core/Shapes.js +8 -4
- data/app/assets/javascripts/Core/Simon1994PlanetaryPositions.js +521 -0
- data/app/assets/javascripts/Core/Spherical.js +36 -9
- data/app/assets/javascripts/Core/TaskProcessor.js +42 -5
- data/app/assets/javascripts/Core/TimeIntervalCollection.js +5 -5
- data/app/assets/javascripts/Core/Tipsify.js +21 -16
- data/app/assets/javascripts/Core/Transforms.js +11 -11
- data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +4 -4
- data/app/assets/javascripts/Core/clone.js +25 -8
- data/app/assets/javascripts/Core/defaultValue.js +10 -1
- data/app/assets/javascripts/Core/isCrossOriginUrl.js +32 -0
- data/app/assets/javascripts/Core/jsonp.js +2 -2
- data/app/assets/javascripts/Core/loadImage.js +13 -6
- data/app/assets/javascripts/Core/loadJson.js +4 -1
- data/app/assets/javascripts/Core/pointInsideTriangle2D.js +1 -1
- data/app/assets/javascripts/Core/writeTextToCanvas.js +1 -3
- data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +7 -4
- data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlColor.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +6 -5
- data/app/assets/javascripts/DynamicScene/CzmlImage.js +8 -3
- data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +6 -5
- data/app/assets/javascripts/DynamicScene/CzmlNumber.js +6 -4
- data/app/assets/javascripts/DynamicScene/CzmlPosition.js +166 -0
- data/app/assets/javascripts/DynamicScene/CzmlString.js +6 -4
- data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +1 -1
- data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +6 -5
- data/app/assets/javascripts/DynamicScene/DynamicGridMaterial.js +202 -0
- data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +5 -3
- data/app/assets/javascripts/DynamicScene/DynamicObject.js +1 -2
- data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +19 -15
- data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +12 -10
- data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +17 -10
- data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +39 -90
- data/app/assets/javascripts/DynamicScene/DynamicProperty.js +19 -6
- data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +6 -4
- data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +10 -11
- data/app/assets/javascripts/Renderer/ClearCommand.js +60 -9
- data/app/assets/javascripts/Renderer/Context.js +234 -575
- data/app/assets/javascripts/Renderer/DrawCommand.js +15 -3
- data/app/assets/javascripts/Renderer/PassState.js +55 -0
- data/app/assets/javascripts/Renderer/PickFramebuffer.js +47 -77
- data/app/assets/javascripts/Renderer/RenderState.js +541 -0
- data/app/assets/javascripts/Renderer/ShaderCache.js +34 -1
- data/app/assets/javascripts/Renderer/ShaderProgram.js +112 -6
- data/app/assets/javascripts/Renderer/TextureAtlas.js +63 -67
- data/app/assets/javascripts/Renderer/UniformState.js +59 -30
- data/app/assets/javascripts/Renderer/VertexArray.js +9 -7
- data/app/assets/javascripts/Renderer/VertexArrayFacade.js +28 -27
- data/app/assets/javascripts/Renderer/createPickFragmentShaderSource.js +53 -0
- data/app/assets/javascripts/Renderer/loadCubeMap.js +10 -11
- data/app/assets/javascripts/Scene/AnimationCollection.js +48 -44
- data/app/assets/javascripts/Scene/Billboard.js +8 -2
- data/app/assets/javascripts/Scene/BillboardCollection.js +66 -62
- data/app/assets/javascripts/Scene/Camera.js +3 -0
- data/app/assets/javascripts/Scene/CameraController.js +3 -3
- data/app/assets/javascripts/Scene/CameraFlightPath.js +9 -6
- data/app/assets/javascripts/Scene/CentralBody.js +47 -65
- data/app/assets/javascripts/Scene/CentralBodySurface.js +9 -6
- data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +5 -9
- data/app/assets/javascripts/Scene/CompositePrimitive.js +8 -8
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +66 -55
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +26 -27
- data/app/assets/javascripts/Scene/FrameState.js +15 -4
- data/app/assets/javascripts/Scene/GridImageryProvider.js +266 -0
- data/app/assets/javascripts/Scene/ImageryLayer.js +44 -19
- data/app/assets/javascripts/Scene/ImageryLayerCollection.js +3 -0
- data/app/assets/javascripts/Scene/ImageryProvider.js +3 -0
- data/app/assets/javascripts/Scene/Label.js +4 -4
- data/app/assets/javascripts/Scene/LabelCollection.js +2 -9
- data/app/assets/javascripts/Scene/Material.js +97 -8
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +2 -2
- data/app/assets/javascripts/Scene/PerformanceDisplay.js +17 -10
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +2 -2
- data/app/assets/javascripts/Scene/Polygon.js +30 -56
- data/app/assets/javascripts/Scene/Polyline.js +93 -227
- data/app/assets/javascripts/Scene/PolylineCollection.js +685 -757
- data/app/assets/javascripts/Scene/Projections.js +2 -2
- data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +21 -16
- data/app/assets/javascripts/Scene/Scene.js +40 -32
- data/app/assets/javascripts/Scene/SceneTransitioner.js +8 -56
- data/app/assets/javascripts/Scene/SensorVolumeCollection.js +6 -20
- data/app/assets/javascripts/Scene/SkyAtmosphere.js +0 -11
- data/app/assets/javascripts/Scene/SkyBox.js +0 -11
- data/app/assets/javascripts/Scene/VRTheWorldTerrainProvider.js +3 -2
- data/app/assets/javascripts/Scene/ViewportQuad.js +8 -8
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +0 -2
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +0 -2
- data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +517 -3
- data/app/assets/javascripts/Shaders/BuiltinFunctions.js +535 -4
- data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +11 -24
- data/app/assets/javascripts/Shaders/CentralBodyFS.js +11 -24
- data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +1 -3
- data/app/assets/javascripts/Shaders/CentralBodyVS.js +1 -3
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +14 -33
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +14 -33
- data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +0 -1
- data/app/assets/javascripts/Shaders/EllipsoidFS.js +0 -1
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +1 -11
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +1 -11
- data/app/assets/javascripts/Shaders/Materials/FadeMaterial.glsl +36 -0
- data/app/assets/javascripts/Shaders/Materials/FadeMaterial.js +42 -0
- data/app/assets/javascripts/Shaders/Materials/GridMaterial.glsl +9 -1
- data/app/assets/javascripts/Shaders/Materials/GridMaterial.js +9 -1
- data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.glsl +60 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineArrowMaterial.js +66 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineGlowMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineGlowMaterial.js +23 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineOutlineMaterial.glsl +28 -0
- data/app/assets/javascripts/Shaders/Materials/PolylineOutlineMaterial.js +34 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +4 -10
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +4 -10
- data/app/assets/javascripts/Shaders/PolygonFS.glsl +0 -3
- data/app/assets/javascripts/Shaders/PolygonFS.js +1 -4
- data/app/assets/javascripts/Shaders/PolygonVS.glsl +3 -4
- data/app/assets/javascripts/Shaders/PolygonVS.js +3 -4
- data/app/assets/javascripts/Shaders/PolylineFS.glsl +9 -2
- data/app/assets/javascripts/Shaders/PolylineFS.js +9 -2
- data/app/assets/javascripts/Shaders/PolylineVS.glsl +131 -14
- data/app/assets/javascripts/Shaders/PolylineVS.js +131 -14
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +1 -19
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +1 -19
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +9 -1
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +9 -1
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +1 -3
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +1 -3
- data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +1 -2
- data/app/assets/javascripts/Shaders/SkyBoxFS.js +1 -2
- data/app/assets/javascripts/Widgets/Animation/Animation.js +8 -5
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +19 -1
- data/app/assets/javascripts/Widgets/Timeline/Timeline.js +19 -2
- data/lib/cesium/version.rb +1 -1
- data/test/dummy/app/assets/javascripts/application.js.coffee +10 -10
- data/test/dummy/log/development.log +28285 -0
- data/test/dummy/tmp/cache/assets/BAF/370/sprockets%2F799a74598087f7719313562f44828061 +0 -0
- data/test/dummy/tmp/cache/assets/BF8/BC0/sprockets%2F1982805b53487d15554f20955019b8c4 +0 -0
- data/test/dummy/tmp/cache/assets/C12/030/sprockets%2Fbd84b00d783150a219825433401a7946 +0 -0
- data/test/dummy/tmp/cache/assets/C1F/BE0/sprockets%2F9ff195723d3a539023420682a372f561 +0 -0
- data/test/dummy/tmp/cache/assets/C23/060/sprockets%2F0844038b70e644bef4539389305680a3 +0 -0
- data/test/dummy/tmp/cache/assets/C27/DA0/sprockets%2Fe49200d07769d24f54f721d890142818 +0 -0
- data/test/dummy/tmp/cache/assets/C37/EB0/sprockets%2F410166e528f769c35999d061f6552d57 +0 -0
- data/test/dummy/tmp/cache/assets/C38/870/sprockets%2F3c244a5393086f3b95954f4675f29458 +0 -0
- data/test/dummy/tmp/cache/assets/C44/870/sprockets%2Fc7607e52811e723312c83d096c611c32 +0 -0
- data/test/dummy/tmp/cache/assets/C46/770/sprockets%2F9b6c82d0454ab5ba8727173860060324 +0 -0
- data/test/dummy/tmp/cache/assets/C46/E60/sprockets%2F151028e967f13248ca6121c9407242cf +0 -0
- data/test/dummy/tmp/cache/assets/C48/360/sprockets%2Fc966013651008025255f5b53b1d63f9e +0 -0
- data/test/dummy/tmp/cache/assets/C49/6B0/sprockets%2Ff15d3a84028c48073d820c51575157a4 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/020/sprockets%2F162d504e77459f0304b964139300cfe3 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/2B0/sprockets%2F821c1d08482a9b936b661a56444551b3 +0 -0
- data/test/dummy/tmp/cache/assets/C4F/630/sprockets%2F8935f51ad832c341c838751031a827f2 +0 -0
- data/test/dummy/tmp/cache/assets/C51/170/sprockets%2F7121148c53e447e867b886592e11ad00 +0 -0
- data/test/dummy/tmp/cache/assets/C53/040/sprockets%2F52411d26c4863636c7ae5b5090690f94 +0 -0
- data/test/dummy/tmp/cache/assets/C57/D10/sprockets%2F784e21cb5b634a598629115ef4685213 +0 -0
- data/test/dummy/tmp/cache/assets/C59/810/sprockets%2Fc37183f61d9511d324983656cd9375a1 +0 -0
- data/test/dummy/tmp/cache/assets/C61/2F0/sprockets%2Fe7f511982b4799474ab391f714d39630 +0 -0
- data/test/dummy/tmp/cache/assets/C64/730/sprockets%2F78fd706ba991f21a399070866616c297 +0 -0
- data/test/dummy/tmp/cache/assets/C65/0E0/sprockets%2F8303e4555c14f5f62cd2979665f50578 +0 -0
- data/test/dummy/tmp/cache/assets/C6C/C90/sprockets%2Fad7947b2492467a62388859219a92de9 +0 -0
- data/test/dummy/tmp/cache/assets/C70/900/sprockets%2F8dc34820f1167ed79c121111a0696c03 +0 -0
- data/test/dummy/tmp/cache/assets/C72/450/sprockets%2F12725ceae78656537003a1240f640ed4 +0 -0
- data/test/dummy/tmp/cache/assets/C73/0F0/sprockets%2F8a6a50d9b866140c720b6a48307c4116 +0 -0
- data/test/dummy/tmp/cache/assets/C75/F50/sprockets%2F52991c5c131fb0049279124ef17047ba +0 -0
- data/test/dummy/tmp/cache/assets/C76/F10/sprockets%2F536e031c5d9a257b602d38f8711480a2 +0 -0
- data/test/dummy/tmp/cache/assets/C7E/EA0/sprockets%2F2504a119ab66f79d8d296032e957a023 +0 -0
- data/test/dummy/tmp/cache/assets/C7F/860/sprockets%2F7646acf5464f211440d12d09847e7c43 +0 -0
- data/test/dummy/tmp/cache/assets/C80/150/sprockets%2F0d3881005b0646df783d5c24683d34f5 +0 -0
- data/test/dummy/tmp/cache/assets/C80/780/sprockets%2F49930c35001a30c38745b89a6a86cf74 +0 -0
- data/test/dummy/tmp/cache/assets/C82/060/sprockets%2Fb043f48276a50489714f9ec04525e26a +0 -0
- data/test/dummy/tmp/cache/assets/C82/580/sprockets%2F8118f4526088ba8fd441f20317475d6b +0 -0
- data/test/dummy/tmp/cache/assets/C82/AA0/sprockets%2Fd83006c52345d7fe51216f1e577a8185 +0 -0
- data/test/dummy/tmp/cache/assets/C83/A50/sprockets%2F26b151f7490286ff7059ff9a411e1027 +0 -0
- data/test/dummy/tmp/cache/assets/C84/E00/sprockets%2F49d13d786c17ba7650b374646455a6b3 +0 -0
- data/test/dummy/tmp/cache/assets/C85/310/sprockets%2Fc638d86c720815e5b635e0a3646e2186 +0 -0
- data/test/dummy/tmp/cache/assets/C87/1B0/sprockets%2F58524f16545fa54ea39c3c1270d06799 +0 -0
- data/test/dummy/tmp/cache/assets/C88/960/sprockets%2F50655bc2c86c7c3007756af818375e64 +0 -0
- data/test/dummy/tmp/cache/assets/C89/9E0/sprockets%2Fbc5d891273e7d61e56762000337868bf +0 -0
- data/test/dummy/tmp/cache/assets/C8A/680/sprockets%2F401d94c3b6643cb7764590d5765197ea +0 -0
- data/test/dummy/tmp/cache/assets/C8B/0F0/sprockets%2F3317c35ce7597681091ac91985d08bb5 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/A30/sprockets%2Fe20153c26552232703d0f4a5a60b10ed +0 -0
- data/test/dummy/tmp/cache/assets/C8D/FC0/sprockets%2Fab1b1b654d968822069892e844f5244f +0 -0
- data/test/dummy/tmp/cache/assets/C8E/1A0/sprockets%2F7937090f77385164f68c0ee252b26be5 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/1B0/sprockets%2F3309cd849788a2b736f12369ad4e4851 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/D50/sprockets%2F687d2438d13763a733287fc4a2e5f746 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/E40/sprockets%2F96aaf9af5e7906347880902610773bc5 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/370/sprockets%2Ff794170ec844d49b57216a088c0297d7 +0 -0
- data/test/dummy/tmp/cache/assets/C91/F00/sprockets%2F0f611f4f95811990472ff1b6f95383d5 +0 -0
- data/test/dummy/tmp/cache/assets/C98/D30/sprockets%2F3f2411651caa9b4fd0833085b001f490 +0 -0
- data/test/dummy/tmp/cache/assets/CA9/5A0/sprockets%2F8282351dd11504a68cbc8500b7786cf2 +0 -0
- data/test/dummy/tmp/cache/assets/CA9/E20/sprockets%2F1ca84c82be52603a0c947256a38a0598 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/3C0/sprockets%2F75ce813900f222ce7892711f61db04d3 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/400/sprockets%2F5c330e413aa8e6769050215b5366c7ef +0 -0
- data/test/dummy/tmp/cache/assets/CAA/A60/sprockets%2F76b467bc7a2344e208653c4261f8ab15 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/D90/sprockets%2Fd477a5c2046351a0c462bb945e3954e5 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/670/sprockets%2F678e67cae28828b42b010381be1f1247 +0 -0
- data/test/dummy/tmp/cache/assets/CAC/000/sprockets%2F39720f0080e70a954d9956acd571d0b2 +0 -0
- data/test/dummy/tmp/cache/assets/CAC/220/sprockets%2Fe9d921c5251a11d0a6296974975dbb20 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/B20/sprockets%2F4c087829240d4b69e0a47e39bb8124d0 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/CF0/sprockets%2F25811882cd57a31606348eb7b16f4f0d +0 -0
- data/test/dummy/tmp/cache/assets/CAE/0D0/sprockets%2F02345f5b06f3a25b588ed66b8e167034 +0 -0
- data/test/dummy/tmp/cache/assets/CAF/AD0/sprockets%2Fec228a94364d0d686876d02550ed15c1 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/D20/sprockets%2F94c251de5c21293f227709479c4f32be +0 -0
- data/test/dummy/tmp/cache/assets/CB5/4C0/sprockets%2F446522846ac4ed6619268b3e00fd497a +0 -0
- data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2F62d364e38ba9b500f8b1633367f782b9 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/180/sprockets%2Fe66eae8997e04c4bf70531e166511662 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/E20/sprockets%2Fcb0a5df9573576546972b95a14d8f112 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/EA0/sprockets%2F9e63d365e2159c725d111698cc04a7e7 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/680/sprockets%2F9bad6dc04875e04891351521b9795f5a +0 -0
- data/test/dummy/tmp/cache/assets/CBA/250/sprockets%2F39bb3860405888c9f3b4b35c738b940c +0 -0
- data/test/dummy/tmp/cache/assets/CBB/E80/sprockets%2F43b17645e39f018bc195bc9828f4b357 +0 -0
- data/test/dummy/tmp/cache/assets/CBC/6C0/sprockets%2F6f494cff47ee245d30168217542c66d6 +0 -0
- data/test/dummy/tmp/cache/assets/CBE/6B0/sprockets%2F285b1ec717d1c4c725758951c8785b2f +0 -0
- data/test/dummy/tmp/cache/assets/CBE/F20/sprockets%2F7610efc00f29935606275944978fbabf +0 -0
- data/test/dummy/tmp/cache/assets/CBF/3A0/sprockets%2Fc7b6a2891626c77607ea2881dc84d475 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/8B0/sprockets%2F5c98534d57c1e7f7d2926173d27e4d14 +0 -0
- data/test/dummy/tmp/cache/assets/CC0/E60/sprockets%2F9731b0739ec7356b2e484cb427d6955f +0 -0
- data/test/dummy/tmp/cache/assets/CC1/600/sprockets%2F322629f082c9e743f47a32edd58874b8 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/950/sprockets%2F697670d712a9a24f564f9e62b5ed1389 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/B10/sprockets%2F55b1a4137e59cad5520e1f012eb29021 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/B80/sprockets%2F5b090557c9468f93cc1ab77898ba2629 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/0B0/sprockets%2Fa26009e31f9e68672f4fc7f873909a64 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/D20/sprockets%2F372172a3ef18b8cac40a5c410f748021 +0 -0
- data/test/dummy/tmp/cache/assets/CCD/9B0/sprockets%2F0b3845e705c1a2c20c80b56c9c8a2246 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/7E0/sprockets%2F3d478e2550d0140a8da13a229735bcd7 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/990/sprockets%2F3027964ce732931bb70c158aa61ab08d +0 -0
- data/test/dummy/tmp/cache/assets/CD1/590/sprockets%2F2f99067423113c4aebb30a4dd3643b85 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/250/sprockets%2F9982c13eacaf46622739beab50120614 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/DB0/sprockets%2F38ec8b4912b23f2b31322570d56c9c2b +0 -0
- data/test/dummy/tmp/cache/assets/CD8/5E0/sprockets%2Ffd127b418d9dc4cc3d196672811a6112 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/D40/sprockets%2F73570572f17300ebf2dda1ef2635149e +0 -0
- data/test/dummy/tmp/cache/assets/CD9/B20/sprockets%2F65698070c3bce81f5ee4eb101722b741 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/D90/sprockets%2F87979893cfde1b28afc60797a9948345 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/DA0/sprockets%2F13e6789dd595b2b5033b335bbd1472f2 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/4D0/sprockets%2Ffb9182b4d13b796b245db8153324f4d2 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/630/sprockets%2Fc48aca3d09504ff1811d9234c8267f50 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/B50/sprockets%2F0f1e213595a02089df9735ec41c3ee80 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/380/sprockets%2F39695e0a1726566c80281aab8d9a51cc +0 -0
- data/test/dummy/tmp/cache/assets/CDF/710/sprockets%2F16d775d6707a066df80d10cd1528ff33 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/CA0/sprockets%2F3d5b2c400b7877c15ec29575d95b613b +0 -0
- data/test/dummy/tmp/cache/assets/CE0/420/sprockets%2F5b3a1508216cb6b968313beae256f788 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/A00/sprockets%2F168b4bf7364dfd883a5930302e0f554c +0 -0
- data/test/dummy/tmp/cache/assets/CE4/F60/sprockets%2Fbc3490162e3489bf88aab055d19397f0 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/F10/sprockets%2Fe9cf045465025d8527c83c3b93625fca +0 -0
- data/test/dummy/tmp/cache/assets/CE5/F90/sprockets%2F31557450886bf9c124f2fdb42704ce8e +0 -0
- data/test/dummy/tmp/cache/assets/CE5/FE0/sprockets%2F627e4127557531a3f8471cfbc718ed2f +0 -0
- data/test/dummy/tmp/cache/assets/CE6/4A0/sprockets%2F9c04b8b8df7217a708732da4982a5f61 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/650/sprockets%2F834b60044436456eefb9ce5cf7144d38 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/A40/sprockets%2F2974c4aef7a04f06738c8f6a2066e292 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/C70/sprockets%2F8627e999f207ce7214e0ab06afe86412 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/AA0/sprockets%2Fd569f5f91016b77401782ef3b42de6a6 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/DC0/sprockets%2F49324064376deb60c942b7d85a3e7d9b +0 -0
- data/test/dummy/tmp/cache/assets/CEA/6D0/sprockets%2F1da842257a051a9e871c739d29b7d77f +0 -0
- data/test/dummy/tmp/cache/assets/CEA/E10/sprockets%2F888c18a6b36ca5e51363b7b21c29f877 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/520/sprockets%2Fe99130a4204fac5e0b886885339af7c8 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/C10/sprockets%2F6cadb28080126992d76e5e35ba79088e +0 -0
- data/test/dummy/tmp/cache/assets/CEC/2B0/sprockets%2F917af8a56c884b3d5c6a03593d95a365 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/7A0/sprockets%2F1ccee406d881875c559b82932a25e7d4 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/920/sprockets%2F97c97b08d42738b583ed92b55c540a4f +0 -0
- data/test/dummy/tmp/cache/assets/CEF/F00/sprockets%2F8ac77338a1dc57bb32999653c561e74e +0 -0
- data/test/dummy/tmp/cache/assets/CF0/950/sprockets%2Fd08f99c34c161881adb05d342e8984f9 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/000/sprockets%2Fa779ae7d9f80d3098529264b91dd405d +0 -0
- data/test/dummy/tmp/cache/assets/CF1/5B0/sprockets%2F46e4886602bb924fc5c638865b6bf4f2 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/2E0/sprockets%2F14513ab2f3a0311abd083e70c99bd293 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/5C0/sprockets%2F64a4190014fe00d17e708fc02dfc2a32 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/4E0/sprockets%2Ff9c27df89c8173d41850b9c40e766a85 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/710/sprockets%2Fe53fe9369ad5f26285ab27754a943c88 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/B70/sprockets%2F8144ebf49f85b18c46d90b897239b56e +0 -0
- data/test/dummy/tmp/cache/assets/CFB/540/sprockets%2Fc40fe1438edc416788894df8b834f944 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/7F0/sprockets%2F6158d3ff6993e4c114a894dd371999ec +0 -0
- data/test/dummy/tmp/cache/assets/CFD/EA0/sprockets%2Fe43051fb1f2752c010e292ccbc53399b +0 -0
- data/test/dummy/tmp/cache/assets/CFD/F60/sprockets%2Fb5776671dd7cf557332f7720f49c9c9f +0 -0
- data/test/dummy/tmp/cache/assets/CFD/F80/sprockets%2Fe2b02979764013ad04e2f2b23d28e2ca +0 -0
- data/test/dummy/tmp/cache/assets/D00/690/sprockets%2F488324fb426a1e3cb3ca16488caf4004 +0 -0
- data/test/dummy/tmp/cache/assets/D01/A00/sprockets%2F5704bfb588da51f6053f30abd310b458 +0 -0
- data/test/dummy/tmp/cache/assets/D02/4C0/sprockets%2F6386d72b2c51c911a7fd84ba612430cc +0 -0
- data/test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F886e897f07ee48ec4e9f640643440dd9 +0 -0
- data/test/dummy/tmp/cache/assets/D03/EF0/sprockets%2F4799db40f9cc57f50689f6da487464f5 +0 -0
- data/test/dummy/tmp/cache/assets/D04/530/sprockets%2Fc14ce481964a025c2501a5c907c65fce +0 -0
- data/test/dummy/tmp/cache/assets/D06/590/sprockets%2F19c899c20cf5d9b8629878e3add89708 +0 -0
- data/test/dummy/tmp/cache/assets/D06/A70/sprockets%2Ff5da4e04222a35db9d267255424bf5c6 +0 -0
- data/test/dummy/tmp/cache/assets/D07/330/sprockets%2F3b24c0c589b1004b399d108ae5d6ef81 +0 -0
- data/test/dummy/tmp/cache/assets/D07/7F0/sprockets%2F3fb0ed6b32aa83a6878d12a209c38824 +0 -0
- data/test/dummy/tmp/cache/assets/D08/530/sprockets%2F311d9ba15b34718d1e60ddc95a84194d +0 -0
- data/test/dummy/tmp/cache/assets/D08/D80/sprockets%2F388df4f82d11657bb0b4024448b6af2b +0 -0
- data/test/dummy/tmp/cache/assets/D09/7F0/sprockets%2Fa2d67c31222348f16a9812df26da3e8d +0 -0
- data/test/dummy/tmp/cache/assets/D09/E40/sprockets%2Fc2693927bc52084b4d2b89373aaa0ac9 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/830/sprockets%2F3155dcf93a62cf601a0d48b2806b599b +0 -0
- data/test/dummy/tmp/cache/assets/D0A/830/sprockets%2F830cdfb33202453675d55d8de703fa2f +0 -0
- data/test/dummy/tmp/cache/assets/D0B/3E0/sprockets%2F66c11f02337c8851bfab67bbb3b94916 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/2E0/sprockets%2Fecb35ec370e250a63784c2f508b76a38 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/010/sprockets%2F797b9e08c55a2106f8e2dace455710d0 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/180/sprockets%2F045e183281dfc37485db513d585c5bdb +0 -0
- data/test/dummy/tmp/cache/assets/D0E/EA0/sprockets%2F1d36a1420cf4558fb3c793316ae89ca7 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/7E0/sprockets%2F45f0d1bae6783a949cd01767d4c7e212 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/9E0/sprockets%2F1536c04e487ca1a768d90a68513c3cff +0 -0
- data/test/dummy/tmp/cache/assets/D10/750/sprockets%2F4c4a696e3e0b905d75ed60f9042cd227 +0 -0
- data/test/dummy/tmp/cache/assets/D11/FC0/sprockets%2F9bd6c83d367423fe05ef6c3338143aa6 +0 -0
- data/test/dummy/tmp/cache/assets/D11/FD0/sprockets%2Fa7872e06fd015c19f48f4c350d63cc19 +0 -0
- data/test/dummy/tmp/cache/assets/D12/1C0/sprockets%2F5901cb9faf1725dd2e472ca2965b4287 +0 -0
- data/test/dummy/tmp/cache/assets/D12/BE0/sprockets%2Ff01aaa83ff0f19584cb671837a7d7444 +0 -0
- data/test/dummy/tmp/cache/assets/D13/6B0/sprockets%2F0975ed2a9d299bf1c719b3b1137e581b +0 -0
- data/test/dummy/tmp/cache/assets/D14/340/sprockets%2F4d057c80e80694c2c4d637ecd538bc08 +0 -0
- data/test/dummy/tmp/cache/assets/D14/BD0/sprockets%2Ffc2255112852fb55d96d41a92f8fb6b6 +0 -0
- data/test/dummy/tmp/cache/assets/D14/DA0/sprockets%2F54a7d7c2a544df07d57173cda79e9700 +0 -0
- data/test/dummy/tmp/cache/assets/D15/A20/sprockets%2F46b5881e463b09c7f61736e5ec2aeb16 +0 -0
- data/test/dummy/tmp/cache/assets/D15/A20/sprockets%2F9e52b9b230f4aa1d0e1a74699d82e983 +0 -0
- data/test/dummy/tmp/cache/assets/D16/2A0/sprockets%2F3739709cf73c9a32b521b45677cd4bde +0 -0
- data/test/dummy/tmp/cache/assets/D17/6C0/sprockets%2F69144d8b21e495ac17e4994fdfa3a803 +0 -0
- data/test/dummy/tmp/cache/assets/D19/680/sprockets%2Fcd3a545b89d274cfd328f4d341f96272 +0 -0
- data/test/dummy/tmp/cache/assets/D19/E90/sprockets%2F16cd7e58935dd8d1d376f10be6b50368 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/0C0/sprockets%2Fa606399c0ce2e298b58fec46777024ad +0 -0
- data/test/dummy/tmp/cache/assets/D1B/C80/sprockets%2F835147dfca8c918a99182e9e2e600f1c +0 -0
- data/test/dummy/tmp/cache/assets/D1C/070/sprockets%2F19aa6be16056890e435d65d4c84cf69e +0 -0
- data/test/dummy/tmp/cache/assets/D1D/700/sprockets%2F72d9824da671eff2338d52de93b83a56 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/C60/sprockets%2F54364ea078190fbd4168336feef963fc +0 -0
- data/test/dummy/tmp/cache/assets/D1F/5F0/sprockets%2Ff8cb248d9fc90758124cd284e17e3b66 +0 -0
- data/test/dummy/tmp/cache/assets/D21/EF0/sprockets%2F935d9ee3ec37515493a293c3785dadc8 +0 -0
- data/test/dummy/tmp/cache/assets/D22/0B0/sprockets%2F9dfda36b032e59892637b875d7af392b +0 -0
- data/test/dummy/tmp/cache/assets/D22/2C0/sprockets%2Fe42d5d90d467a803999bdec116955f8b +0 -0
- data/test/dummy/tmp/cache/assets/D23/610/sprockets%2F0e51cca080cc65e62e080941b232a1ed +0 -0
- data/test/dummy/tmp/cache/assets/D23/EB0/sprockets%2Fe26ee953fe7e3172d737e6e67a96332a +0 -0
- data/test/dummy/tmp/cache/assets/D25/C00/sprockets%2Ff63d097054df34bc660bdf98f7661b99 +0 -0
- data/test/dummy/tmp/cache/assets/D26/470/sprockets%2F1e9b32c11057bc537b0021de4f1f1fc6 +0 -0
- data/test/dummy/tmp/cache/assets/D29/910/sprockets%2Fe51f36e9fde73e3928070a96fcf77571 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/E10/sprockets%2F2d2a1cfcc28a38330d30434fd8c1077c +0 -0
- data/test/dummy/tmp/cache/assets/D2B/210/sprockets%2F67aaa6c903e6b15c74de39af0002a451 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/CF0/sprockets%2F70b2adc5e73b271342371aaad257b76d +0 -0
- data/test/dummy/tmp/cache/assets/D2D/E40/sprockets%2Faf21fa3d26ad3f68a23532178e20fb15 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/100/sprockets%2F8c0286ee70744ca12c7c12a563de4b2a +0 -0
- data/test/dummy/tmp/cache/assets/D32/3E0/sprockets%2Fc9f2c6b93b29fa3b0d5420b751903eb1 +0 -0
- data/test/dummy/tmp/cache/assets/D32/6E0/sprockets%2Fb4f78f31b9aab6dbd2911b07076d4601 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A80/sprockets%2Fb12fb26042f73cf3b2796abc2836ee20 +0 -0
- data/test/dummy/tmp/cache/assets/D36/7F0/sprockets%2F78e0c63f0043ae6e6536ec504cc23a9b +0 -0
- data/test/dummy/tmp/cache/assets/D36/E70/sprockets%2F69b00a4118d012bf6d7cf293b5f316ff +0 -0
- data/test/dummy/tmp/cache/assets/D37/070/sprockets%2F59e3be9a13634f3b3d0cab4ad0889063 +0 -0
- data/test/dummy/tmp/cache/assets/D39/740/sprockets%2Fd4834d921f293e5dcc04bea2b3917d51 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/520/sprockets%2F7193d867aa217d4a306848dbcc1d9c0b +0 -0
- data/test/dummy/tmp/cache/assets/D3A/670/sprockets%2F0db6624d07920a5f4decb479718da33c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/690/sprockets%2Fb5058a82d02b84df6210af598cfa644c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/A00/sprockets%2F1077cd94fef55fbb01ce529612180bd5 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/ED0/sprockets%2F5ae1cf0266d63b8eb0647535ca93b63d +0 -0
- data/test/dummy/tmp/cache/assets/D3C/640/sprockets%2F42e7a70bb8be9398385afb3c4742aa04 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/E40/sprockets%2Fba57600a2dd2f6da96613de37f27930f +0 -0
- data/test/dummy/tmp/cache/assets/D3D/4E0/sprockets%2F7d37b8c27a3f3b1a02c4fe17643de865 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/940/sprockets%2F5ed82a03c1de5c34135b67ff053787ec +0 -0
- data/test/dummy/tmp/cache/assets/D3E/F80/sprockets%2Fa146a4bfc3b8cb08334b9b14fe379756 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/050/sprockets%2Fab4aa96dbce1e6b359f2658118291d90 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/590/sprockets%2F13a259ba93c919fa5a47ba9cf10569f1 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/E10/sprockets%2Ff8492202733ea4a4f67065c95eec1beb +0 -0
- data/test/dummy/tmp/cache/assets/D40/6C0/sprockets%2Fafe496eaca27b82020893b81383e8b6b +0 -0
- data/test/dummy/tmp/cache/assets/D40/D10/sprockets%2F7af151c9b6080d9285fe058ae6d40c4d +0 -0
- data/test/dummy/tmp/cache/assets/D40/E50/sprockets%2F278df3df34e9573cbd9a402e42d1193b +0 -0
- data/test/dummy/tmp/cache/assets/D41/220/sprockets%2Fafb511e47c76bf448b6f7072c8d3118c +0 -0
- data/test/dummy/tmp/cache/assets/D41/770/sprockets%2F271c5f12457864bbb0c6646c9ebf1f3f +0 -0
- data/test/dummy/tmp/cache/assets/D41/8A0/sprockets%2Fbc7ce77806517ea173350e6a4d8c55db +0 -0
- data/test/dummy/tmp/cache/assets/D41/D70/sprockets%2F48b33bbf96854b502b0eaf902e69d55c +0 -0
- data/test/dummy/tmp/cache/assets/D41/FE0/sprockets%2F2901ba969f333cc19393afd2f0fc7c64 +0 -0
- data/test/dummy/tmp/cache/assets/D42/970/sprockets%2Fe27c8084b9cf2eaa063f585e92064c5a +0 -0
- data/test/dummy/tmp/cache/assets/D43/F70/sprockets%2F2c844357dd8de7db147f80c3539b0ee0 +0 -0
- data/test/dummy/tmp/cache/assets/D44/6D0/sprockets%2F4d7032af47bfce2d4a8564830f8a6a96 +0 -0
- data/test/dummy/tmp/cache/assets/D45/1C0/sprockets%2F7e052d17bd4b749ba373bea97380c8f6 +0 -0
- data/test/dummy/tmp/cache/assets/D45/3B0/sprockets%2Fd26b5a0d570ef57d06df6f032e9b8980 +0 -0
- data/test/dummy/tmp/cache/assets/D46/770/sprockets%2F96355435f9ab8090c2d3e4f0ddd9b7c3 +0 -0
- data/test/dummy/tmp/cache/assets/D46/8E0/sprockets%2F1a4f07bd2741629bdd572848dccf773e +0 -0
- data/test/dummy/tmp/cache/assets/D47/2B0/sprockets%2Ff3d8c4ca1a44044d98395b36b770fcf9 +0 -0
- data/test/dummy/tmp/cache/assets/D47/8F0/sprockets%2F1cc6e49382be4f74cbb97821ae1928c4 +0 -0
- data/test/dummy/tmp/cache/assets/D47/AC0/sprockets%2Fcb9189183de4d74faa04d6ad1347964f +0 -0
- data/test/dummy/tmp/cache/assets/D48/1D0/sprockets%2Fbff4201c0944eaf31a2f6a0110cbd224 +0 -0
- data/test/dummy/tmp/cache/assets/D48/2F0/sprockets%2F6b79e4839df89b4abb51c2c6105d15e8 +0 -0
- data/test/dummy/tmp/cache/assets/D48/960/sprockets%2F90e2c11ff8fd31e591b9fd39932631bf +0 -0
- data/test/dummy/tmp/cache/assets/D4A/C80/sprockets%2F0289519826ada458af4b9a728fdfcf31 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/C20/sprockets%2Fc28f3c4d6cd98dbb784830d7c6214d65 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/E90/sprockets%2F51d49f9bc2549684e6da91a4e0bc379b +0 -0
- data/test/dummy/tmp/cache/assets/D4C/490/sprockets%2F7e207e1654e5343a964fd6cf3fefb447 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/BD0/sprockets%2F4ac9d1aa903d4731edf18fe2b9589829 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/640/sprockets%2Fdaab3d2130266b5b7a2f1d04b8c4322e +0 -0
- data/test/dummy/tmp/cache/assets/D4E/6C0/sprockets%2Fedd9cf282af0f00637e5273c8c3888b9 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/D00/sprockets%2F1a6846f0a837ae2524e2f9ec89e6ef43 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/410/sprockets%2F1377bb2e86073ae3a688e5a6c499a9df +0 -0
- data/test/dummy/tmp/cache/assets/D50/E10/sprockets%2F28698bc0c536fe5e97a2935e3bb929bb +0 -0
- data/test/dummy/tmp/cache/assets/D51/230/sprockets%2F742ba6ca9f84d98ffc38ca5687c05155 +0 -0
- data/test/dummy/tmp/cache/assets/D53/440/sprockets%2F2def445147b9f5d6363f6f6d497d2f0e +0 -0
- data/test/dummy/tmp/cache/assets/D53/DE0/sprockets%2F7736b51cb3bf8679b8bdc8ab9d184954 +0 -0
- data/test/dummy/tmp/cache/assets/D54/0D0/sprockets%2F448752db3a53dd453db1b01de121ebd2 +0 -0
- data/test/dummy/tmp/cache/assets/D56/1F0/sprockets%2F291fcb7a26ff3aac6bc1404e0a247242 +0 -0
- data/test/dummy/tmp/cache/assets/D57/DF0/sprockets%2F8d06b94587d49e037e77f8afcb6802cf +0 -0
- data/test/dummy/tmp/cache/assets/D59/070/sprockets%2F822cd47e69d40ba87f95181fdd698ed5 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/070/sprockets%2Fe7159b621a21a7a0ebd81a32912e8faa +0 -0
- data/test/dummy/tmp/cache/assets/D5A/D80/sprockets%2F28dc9152e2ead49ae414a5b82d04a1a2 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/660/sprockets%2F5baf6a64b3151ae6bf40155e90db6e03 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/E00/sprockets%2F92930d4e993eb8bd3498b699dccf9a33 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/3D0/sprockets%2F5f786d832b4e0ba05f6abc3ea314901a +0 -0
- data/test/dummy/tmp/cache/assets/D5F/7F0/sprockets%2Fabbcc55042a82b42c900c09d59de4c29 +0 -0
- data/test/dummy/tmp/cache/assets/D60/2A0/sprockets%2Fcd5c12269b6c414bf722c6c2dc0e18c4 +0 -0
- data/test/dummy/tmp/cache/assets/D62/140/sprockets%2F7e5a724c4c00951a0da7ec767ce19aa1 +0 -0
- data/test/dummy/tmp/cache/assets/D62/2E0/sprockets%2F51a06ddef9bd05b405fd605d37be3154 +0 -0
- data/test/dummy/tmp/cache/assets/D63/B00/sprockets%2F2672399dfcdd2b6b61536cab3d800bc1 +0 -0
- data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2Ff791df22a3d7e2f4ef01ad0742f370c1 +0 -0
- data/test/dummy/tmp/cache/assets/D63/DC0/sprockets%2Fc298c2b66150c7f11d95cecf450bb14a +0 -0
- data/test/dummy/tmp/cache/assets/D63/DE0/sprockets%2F73c9e04acfc930681ab170b3e4bfc453 +0 -0
- data/test/dummy/tmp/cache/assets/D64/670/sprockets%2F7dc8c0ad36d436eb56a0824a46e0eb08 +0 -0
- data/test/dummy/tmp/cache/assets/D64/B50/sprockets%2F7ac06eacb363b85744337c0ea88e2b0c +0 -0
- data/test/dummy/tmp/cache/assets/D65/990/sprockets%2Fa2965ca374a00aaceb747e60b654e2f8 +0 -0
- data/test/dummy/tmp/cache/assets/D66/360/sprockets%2Fc94d86aa0bc1a44817a1fd3db0873a87 +0 -0
- data/test/dummy/tmp/cache/assets/D66/6C0/sprockets%2F1b63a7f0e3fb2a7f3124f198d0ff462b +0 -0
- data/test/dummy/tmp/cache/assets/D67/8E0/sprockets%2Ffd0eaaf36da9805e6c4ec303534162f5 +0 -0
- data/test/dummy/tmp/cache/assets/D67/C10/sprockets%2Ffb4b4451c110f07957c2ecacf854c5d4 +0 -0
- data/test/dummy/tmp/cache/assets/D68/000/sprockets%2F39c01fa5c01830f3558eb1c97c4dfb6b +0 -0
- data/test/dummy/tmp/cache/assets/D68/0C0/sprockets%2F6c628ddf1ba5c680e04ad54a476f163b +0 -0
- data/test/dummy/tmp/cache/assets/D68/210/sprockets%2Fdc284967860db06c2cb2e1da78bab156 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/2E0/sprockets%2Fc3a3a8e66c9b58b52b1db3ad754c9423 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/BA0/sprockets%2F8293eb343aead8dda54496532fb24fa1 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/AD0/sprockets%2Fdabce05f6e4419832e20d6b7420fe9a7 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/080/sprockets%2F3cc7b7355591babda1661e6c5e9f8c20 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/690/sprockets%2Fd288d7215df092fdc70b3b8216dce2f3 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/7A0/sprockets%2Fff4be901f55528b85b2b1fc73ebc4352 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/E80/sprockets%2F9ef00ee94e3b0eed7c4e45b342085d51 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/940/sprockets%2Fb19f43bd8383eeb5e26a4d2b79f1240e +0 -0
- data/test/dummy/tmp/cache/assets/D6E/9F0/sprockets%2F15f61ad82d9ca6cce6a0e42b7249662f +0 -0
- data/test/dummy/tmp/cache/assets/D6E/AD0/sprockets%2F4441be9946083b61e75f7bf1a1cca5cf +0 -0
- data/test/dummy/tmp/cache/assets/D73/3F0/sprockets%2F09b4a9c1131740eba5d85fcf9c86b97a +0 -0
- data/test/dummy/tmp/cache/assets/D76/030/sprockets%2F7e8689ec6a9f3754a4aa660e303cbf4a +0 -0
- data/test/dummy/tmp/cache/assets/D76/C80/sprockets%2F952307811ad5e9e8b540cf5e9cf08cea +0 -0
- data/test/dummy/tmp/cache/assets/D76/CA0/sprockets%2F797920cdabaf2f8431968a34c2cbae79 +0 -0
- data/test/dummy/tmp/cache/assets/D77/B70/sprockets%2Fa02f64f352cfa69d33983fd15e8ea3d7 +0 -0
- data/test/dummy/tmp/cache/assets/D77/FF0/sprockets%2F126c2e2ca6f5e8477c9525f46cdba7d5 +0 -0
- data/test/dummy/tmp/cache/assets/D79/2F0/sprockets%2F4b9fd617fe0d6c7e5eb934a139507e3d +0 -0
- data/test/dummy/tmp/cache/assets/D79/E80/sprockets%2F7d329345d1b9f914c87fc5e07ea9ab4b +0 -0
- data/test/dummy/tmp/cache/assets/D7A/5C0/sprockets%2F6e2b202ee971a68c1e78eddf5658e53a +0 -0
- data/test/dummy/tmp/cache/assets/D7A/8C0/sprockets%2Fc477a2d0aa5d658fd7294d6f6c5a484e +0 -0
- data/test/dummy/tmp/cache/assets/D7C/160/sprockets%2F6847e66cdafb094701f479a515ede5dd +0 -0
- data/test/dummy/tmp/cache/assets/D7C/750/sprockets%2F1f76d236fdf42a817bd84da719fde069 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/B90/sprockets%2Fc89b5af12387ee80ca80e3f2ac776c79 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/2A0/sprockets%2F1ce479f9423e748690a75abbabf8af84 +0 -0
- data/test/dummy/tmp/cache/assets/D7F/A60/sprockets%2F5c683951503f673cceffa6ba76f38b8d +0 -0
- data/test/dummy/tmp/cache/assets/D81/120/sprockets%2F75c7f18e61fa042b776ce2e5c3ff786f +0 -0
- data/test/dummy/tmp/cache/assets/D82/560/sprockets%2Fcb5875caef3f569f08878b13cdd991a2 +0 -0
- data/test/dummy/tmp/cache/assets/D84/0A0/sprockets%2F07fc0bfe2237a171b813aa147f3ced1a +0 -0
- data/test/dummy/tmp/cache/assets/D85/050/sprockets%2Fa9b35663e7dc78eacde8d84ae3599163 +0 -0
- data/test/dummy/tmp/cache/assets/D85/5A0/sprockets%2Fc2cbee1b5160e0e8b022933feb36ea30 +0 -0
- data/test/dummy/tmp/cache/assets/D87/6D0/sprockets%2F51df69aad9a6f892254deb9d4c1992f8 +0 -0
- data/test/dummy/tmp/cache/assets/D88/1B0/sprockets%2Fb5bb04fc812b607ce046a4b702be4c4f +0 -0
- data/test/dummy/tmp/cache/assets/D88/7E0/sprockets%2Fe9fedb2c5be893a15939dc65f684196b +0 -0
- data/test/dummy/tmp/cache/assets/D8A/2C0/sprockets%2F6ec8da0142f240ce8a7e0b46aea363c1 +0 -0
- data/test/dummy/tmp/cache/assets/D8A/370/sprockets%2Fb4600d72a29aba7a39c2ec58aa04f18b +0 -0
- data/test/dummy/tmp/cache/assets/D8A/B90/sprockets%2F7506f75d60f93f9e8405ffb9cf85ddb2 +0 -0
- data/test/dummy/tmp/cache/assets/D8A/BF0/sprockets%2F1967ce66d464496a6fab44ff8be55ef6 +0 -0
- data/test/dummy/tmp/cache/assets/D8C/9C0/sprockets%2F2e7c2cd86215800a37c4d4b1bf0bea5f +0 -0
- data/test/dummy/tmp/cache/assets/D8E/910/sprockets%2Fbbf8e4c05ca721c1cd18c17902256ade +0 -0
- data/test/dummy/tmp/cache/assets/D8F/C40/sprockets%2Fa76260381aff4aa0c8beea0404e95de2 +0 -0
- data/test/dummy/tmp/cache/assets/D93/3B0/sprockets%2Fd0fb3bdcf317425a433a125c986b3dff +0 -0
- data/test/dummy/tmp/cache/assets/D94/1A0/sprockets%2Fb4748c092e8a4c127bcfacb06cdc2735 +0 -0
- data/test/dummy/tmp/cache/assets/D94/AD0/sprockets%2Fa1ac4bf342006e1f98def10cf9d7d234 +0 -0
- data/test/dummy/tmp/cache/assets/D95/430/sprockets%2Fcf054ac65aa2c4b72d661fc32c898aa5 +0 -0
- data/test/dummy/tmp/cache/assets/D96/C10/sprockets%2F620f6865aeb0de3c5cf8b305b13c7cb7 +0 -0
- data/test/dummy/tmp/cache/assets/D97/2B0/sprockets%2F16a899a4b20af5f53cdd2870e1b0aed8 +0 -0
- data/test/dummy/tmp/cache/assets/D97/4C0/sprockets%2F4d4aea86610bc9652c70455a6beafc4d +0 -0
- data/test/dummy/tmp/cache/assets/D99/330/sprockets%2Ff01679ca9c88dd0a3eb6922b0b8f3bc0 +0 -0
- data/test/dummy/tmp/cache/assets/D99/B10/sprockets%2F4aa8fece5b18d820a44dc266a89d50e0 +0 -0
- data/test/dummy/tmp/cache/assets/D99/CD0/sprockets%2Ffe0c5f4b8b52baa0f91870da12599a6d +0 -0
- data/test/dummy/tmp/cache/assets/D9D/170/sprockets%2F37f702f1f3ad35b9022fc87fdce7de02 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/C90/sprockets%2F9cd75b38f1c1f85bbdac2576ca9106b5 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/6F0/sprockets%2Fff261c15e6b97bf57e372f0de1ad571a +0 -0
- data/test/dummy/tmp/cache/assets/D9F/800/sprockets%2F5c722d8150c68e6eacad70fb64e5e1f5 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/1B0/sprockets%2F71e2cd8803aac9fb0bb4c47593cf17e8 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/530/sprockets%2F88a8bb9debb752ba06f07909db83e02d +0 -0
- data/test/dummy/tmp/cache/assets/DA3/9F0/sprockets%2F5122955dfe6694bdc6b69cbea09d2cd1 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/450/sprockets%2F6f2bd50f9f1551ed8e00fd8b84f37c2c +0 -0
- data/test/dummy/tmp/cache/assets/DA5/0E0/sprockets%2Fe61590dc98f1e532ea20e296c5fce7bd +0 -0
- data/test/dummy/tmp/cache/assets/DA6/FC0/sprockets%2F900ed66847c0ec1eff94ad75fc26f11e +0 -0
- data/test/dummy/tmp/cache/assets/DAB/B00/sprockets%2F5286678a74e7bcc66e0d3c7c7d2db5fb +0 -0
- data/test/dummy/tmp/cache/assets/DAD/810/sprockets%2Fcfb7db145b0d0a3010f5d0cd7a08fb15 +0 -0
- data/test/dummy/tmp/cache/assets/DAE/A40/sprockets%2F7fefa2cd6e72f17c926159c9b7c3a95a +0 -0
- data/test/dummy/tmp/cache/assets/DB0/BF0/sprockets%2F52e4cdf37aa489ff6c138dedf036588d +0 -0
- data/test/dummy/tmp/cache/assets/DB1/C80/sprockets%2Fa2d1a10a3cc780fd30127b2be96ddfa2 +0 -0
- data/test/dummy/tmp/cache/assets/DB2/850/sprockets%2F9d6e12a0e28cc9ded4e859613cf75f6e +0 -0
- data/test/dummy/tmp/cache/assets/DB6/710/sprockets%2Ff53e9d96ae4808ad0f9e09ab4ef78f80 +0 -0
- data/test/dummy/tmp/cache/assets/DBA/7F0/sprockets%2F4f7fd7b68b8bc29c67fa996e37eaf512 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/080/sprockets%2F039ace5986a3cbf4cca0b0a753bc71a6 +0 -0
- data/test/dummy/tmp/cache/assets/DBE/210/sprockets%2Fa12ca5480c3e2b9cf44ab4ef32e813ec +0 -0
- data/test/dummy/tmp/cache/assets/DBE/DF0/sprockets%2F6d1f018e11ee2240a8dd1df920c6cddd +0 -0
- data/test/dummy/tmp/cache/assets/DC0/760/sprockets%2Fb7e4cf2efcf48d0dcc420131fd30d454 +0 -0
- data/test/dummy/tmp/cache/assets/DC1/C20/sprockets%2Fb60b7b3aeb56bd55b67183b6f151ecca +0 -0
- data/test/dummy/tmp/cache/assets/DC5/5F0/sprockets%2F9d4cc0ae7ac214bb22c7cf455d06b9c9 +0 -0
- data/test/dummy/tmp/cache/assets/DC5/660/sprockets%2F637431e1c8fffeaafc23f021bd49fa06 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/7C0/sprockets%2Fb408df7a822c70a0924e0cdf6c8fe2ca +0 -0
- data/test/dummy/tmp/cache/assets/DC8/2F0/sprockets%2F15c5ad9491aa5ef9fe4aef6333fa12c0 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/C70/sprockets%2Fbb5351434afe5616cbe7e4a6cea95a6b +0 -0
- data/test/dummy/tmp/cache/assets/DCC/F40/sprockets%2Fdc3342c548fc7d3c4f4e27732b5acfea +0 -0
- data/test/dummy/tmp/cache/assets/DCD/390/sprockets%2Fdcd461b67aec99b76eea270a9ad2c046 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/730/sprockets%2Fe577d2f2df0ce1516b2bdfa9fe0909e0 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/8D0/sprockets%2Fbf36f09be83b4d0986ad23ea4d1f32df +0 -0
- data/test/dummy/tmp/cache/assets/DCE/1C0/sprockets%2F58cc5eb1cb2a47c8067c940caecf449d +0 -0
- data/test/dummy/tmp/cache/assets/DCE/BA0/sprockets%2F57c5ecddc82aa706b1e64691a8a5bcc9 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/4A0/sprockets%2F3efd01a56bae3ae99fd13085f75b9e0d +0 -0
- data/test/dummy/tmp/cache/assets/DD1/4A0/sprockets%2Fd1fd81d46b69d255ebc7ab7f3f96a03a +0 -0
- data/test/dummy/tmp/cache/assets/DD2/380/sprockets%2F7972dab64d4a2a8007c3ecfd887ace4e +0 -0
- data/test/dummy/tmp/cache/assets/DD2/D90/sprockets%2Facc08ab37871b8576bfcb992aedaf228 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/FE0/sprockets%2Fd19b0f09a29f8558a8d1f5cfc02acec9 +0 -0
- data/test/dummy/tmp/cache/assets/DD8/5C0/sprockets%2F9dd7bcb46a4b58ee446353a9cdaf93f2 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/AA0/sprockets%2Ff96cdb075b4fc5b6eabb92832f6ad758 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/F90/sprockets%2Ff09bdb745c8fa4987aa1ffcd6370c94b +0 -0
- data/test/dummy/tmp/cache/assets/DDB/140/sprockets%2F7815fdf1a6a74db4fca71ff6537ced67 +0 -0
- data/test/dummy/tmp/cache/assets/DDD/E10/sprockets%2Fd7292f5eb3a7b1f583efbf05aef567d9 +0 -0
- data/test/dummy/tmp/cache/assets/DDE/C00/sprockets%2Ffb5947d8ea5a7d6c08c71b3c9d7a88cb +0 -0
- data/test/dummy/tmp/cache/assets/DE7/3B0/sprockets%2F55fc91edc7ee6e5f818993cbddb6b707 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/550/sprockets%2Ffff04b0980f1fbe9ece54cd8ca779867 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/980/sprockets%2Fea9daa72d1acd0886cc064d0ea6c4a30 +0 -0
- data/test/dummy/tmp/cache/assets/DEF/140/sprockets%2F0182a5cba9d2df2eabb3783cf53a1ea9 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/0C0/sprockets%2Faf8105cfdb7ceae04b099c4a2f654ce1 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/4D0/sprockets%2Fa1a06ee61db75c3c0bed4caad288789b +0 -0
- data/test/dummy/tmp/cache/assets/DF7/110/sprockets%2F0654cdd8dfa5adb61e2029fefe5f50c0 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/D40/sprockets%2F38cdcfc274accc45023affa7be98350c +0 -0
- data/test/dummy/tmp/cache/assets/DF8/570/sprockets%2Fd956ef1a15caba08edb2fc63c569f20d +0 -0
- data/test/dummy/tmp/cache/assets/DFB/E90/sprockets%2Ff7bd5fbb19ef32fc5a396d8012fac3f0 +0 -0
- data/test/dummy/tmp/cache/assets/DFC/9D0/sprockets%2F38fd8e0a2fde3b853f2a24571cd2dfdd +0 -0
- data/test/dummy/tmp/cache/assets/DFE/3C0/sprockets%2Fe7c824dbbee345aa5a66a56ebe82a29e +0 -0
- data/test/dummy/tmp/cache/assets/DFF/560/sprockets%2F5c1cedb5538de9d0c4dc9fdb62554fa1 +0 -0
- data/test/dummy/tmp/cache/assets/E02/B00/sprockets%2F723ccdfbeacf6c4176de34f371c91af9 +0 -0
- data/test/dummy/tmp/cache/assets/E02/DA0/sprockets%2F9829dec75de6c2a52fdc20d428d2edae +0 -0
- data/test/dummy/tmp/cache/assets/E04/860/sprockets%2F972757dbdbdfabfeac8ecb8a15520793 +0 -0
- data/test/dummy/tmp/cache/assets/E05/A70/sprockets%2F7a4daf48a8b7fba4f7bd770048b37fbf +0 -0
- data/test/dummy/tmp/cache/assets/E07/5B0/sprockets%2F75fdbfc0584a9cb9dda6428a66dec4b5 +0 -0
- data/test/dummy/tmp/cache/assets/E0C/810/sprockets%2Fe74897a12cedd8efea5a559354bd5bfc +0 -0
- data/test/dummy/tmp/cache/assets/E0F/B40/sprockets%2Ff5dfabed7f563e53d4735ef9c4b7a0e9 +0 -0
- data/test/dummy/tmp/cache/assets/E11/400/sprockets%2Ff6a9c23ee9f2ed728efa077ea66dfb55 +0 -0
- data/test/dummy/tmp/cache/assets/E11/4E0/sprockets%2F86e145a39f85cceeaffdff91ebb61449 +0 -0
- data/test/dummy/tmp/cache/assets/E11/C70/sprockets%2Fe5ad970d57c66489f9eebacb8e3a5ae5 +0 -0
- data/test/dummy/tmp/cache/assets/E13/B10/sprockets%2Fafbb0a11dcbf1c86ee74a1f22f2c173a +0 -0
- data/test/dummy/tmp/cache/assets/E14/0B0/sprockets%2F8bffda6f68fc139ee329bc86f6b7d2f1 +0 -0
- data/test/dummy/tmp/cache/assets/E1E/DE0/sprockets%2F84b3baefc2c0a8c2c9c0a92eacc3557b +0 -0
- data/test/dummy/tmp/cache/assets/E1F/5E0/sprockets%2Fedacf71afed14b1da329d30fcaf84091 +0 -0
- data/test/dummy/tmp/cache/assets/E21/330/sprockets%2F816aead61cd3e240f2bbe1e78da1fdb7 +0 -0
- data/test/dummy/tmp/cache/assets/E27/540/sprockets%2F3507970b2c1ccbf7b6bc37d61efadfeb +0 -0
- data/test/dummy/tmp/cache/assets/E2A/030/sprockets%2Fc8ab33fc707f5fb9b8befd27b142b3cb +0 -0
- data/test/dummy/tmp/cache/assets/E2C/EA0/sprockets%2Fcb15d5ff97502cc7dfe8a2e06ab16efb +0 -0
- data/test/dummy/tmp/cache/assets/E2F/3D0/sprockets%2Ff740ae8eecbaedadc3c664c62b83e925 +0 -0
- data/test/dummy/tmp/cache/assets/E30/C50/sprockets%2Fdaad6c4c7b1429f8de49d81fac6ad18b +0 -0
- data/test/dummy/tmp/cache/assets/E32/FD0/sprockets%2Fce7d29b07b2f0d14ef1add992dfafa89 +0 -0
- data/test/dummy/tmp/cache/assets/E36/230/sprockets%2F56aec75c7f17ef3509d4cadcf2e6fc3d +0 -0
- data/test/dummy/tmp/cache/assets/E37/6B0/sprockets%2Fce49aa1fbe8185b07e78cf9b9eee22ab +0 -0
- data/test/dummy/tmp/cache/assets/E3B/DD0/sprockets%2F8cb9fef1ee4f6bcbb80758f5c675db1a +0 -0
- data/test/dummy/tmp/cache/assets/E3C/680/sprockets%2Fd057ba99f8cc7b032da8ed9e8c0dff7c +0 -0
- data/test/dummy/tmp/cache/assets/E3E/270/sprockets%2F426e7ee1f8aeb990a55fdf8d6eefbd04 +0 -0
- data/test/dummy/tmp/cache/assets/E54/0F0/sprockets%2Fddbe86c2b19c9b2c5d0bca8e248a1fcb +0 -0
- data/test/dummy/tmp/cache/assets/E83/3A0/sprockets%2Ffdb5f7dc3aba4ce1edb8fd4bd1b42923 +0 -0
- data/test/dummy/tmp/cache/assets/E89/BE0/sprockets%2F9bfc41fee1adbc5e0ab3e58eafb550f9 +0 -0
- data/test/dummy/tmp/cache/assets/E93/2E0/sprockets%2Fba1eb3cc84f5e1fd789bf5f61a8ecdbc +0 -0
- metadata +90 -24
- data/app/assets/javascripts/Core/computeSunPosition.js +0 -116
- data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +0 -125
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +0 -350
- data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +0 -511
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +0 -448
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +0 -19
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +0 -886
- data/app/assets/javascripts/Shaders/Noise.glsl +0 -453
- data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +0 -6
- data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +0 -30
- data/app/assets/javascripts/Shaders/Ray.glsl +0 -532
- data/app/assets/javascripts/Widgets/Animation/darker.css +0 -69
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +0 -4
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +0 -348
- data/app/assets/javascripts/Widgets/Fullscreen/darker.css +0 -14
- data/app/assets/javascripts/Widgets/Images/enterFullscreen-darker.svg +0 -18
- data/app/assets/javascripts/Widgets/Images/exitFullscreen-darker.svg +0 -18
- data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
- data/app/assets/javascripts/Widgets/Timeline/darker.css +0 -20
- data/app/assets/javascripts/Workers/package.json +0 -6
@@ -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() {
|