cesium 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.md +259 -0
- data/README.rdoc +90 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/Assets/Assets.profile.js +8 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- data/app/assets/javascripts/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- data/app/assets/javascripts/Assets/Textures/waterNormals.jpg +0 -0
- data/app/assets/javascripts/Assets/package.json +6 -0
- data/app/assets/javascripts/Cesium.js +320 -0
- data/app/assets/javascripts/Core/AnimationController.js +148 -0
- data/app/assets/javascripts/Core/AxisAlignedBoundingBox.js +243 -0
- data/app/assets/javascripts/Core/BoundingRectangle.js +364 -0
- data/app/assets/javascripts/Core/BoundingSphere.js +819 -0
- data/app/assets/javascripts/Core/BoxTessellator.js +93 -0
- data/app/assets/javascripts/Core/Cartesian2.js +762 -0
- data/app/assets/javascripts/Core/Cartesian3.js +861 -0
- data/app/assets/javascripts/Core/Cartesian4.js +762 -0
- data/app/assets/javascripts/Core/Cartographic.js +211 -0
- data/app/assets/javascripts/Core/CatmullRomSpline.js +232 -0
- data/app/assets/javascripts/Core/Clock.js +195 -0
- data/app/assets/javascripts/Core/ClockRange.js +37 -0
- data/app/assets/javascripts/Core/ClockStep.js +32 -0
- data/app/assets/javascripts/Core/Color.js +1629 -0
- data/app/assets/javascripts/Core/ComponentDatatype.js +119 -0
- data/app/assets/javascripts/Core/Core.profile.js +8 -0
- data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +198 -0
- data/app/assets/javascripts/Core/CubicRealPolynomial.js +251 -0
- data/app/assets/javascripts/Core/DefaultProxy.js +30 -0
- data/app/assets/javascripts/Core/DeveloperError.js +60 -0
- data/app/assets/javascripts/Core/EarthOrientationParameters.js +383 -0
- data/app/assets/javascripts/Core/EarthOrientationParametersSample.js +50 -0
- data/app/assets/javascripts/Core/Ellipsoid.js +539 -0
- data/app/assets/javascripts/Core/EllipsoidTangentPlane.js +207 -0
- data/app/assets/javascripts/Core/EllipsoidalOccluder.js +151 -0
- data/app/assets/javascripts/Core/EncodedCartesian3.js +197 -0
- data/app/assets/javascripts/Core/Enumeration.js +67 -0
- data/app/assets/javascripts/Core/Event.js +122 -0
- data/app/assets/javascripts/Core/Extent.js +383 -0
- data/app/assets/javascripts/Core/ExtentTessellator.js +384 -0
- data/app/assets/javascripts/Core/FAR.js +13 -0
- data/app/assets/javascripts/Core/FeatureDetection.js +126 -0
- data/app/assets/javascripts/Core/Fullscreen.js +235 -0
- data/app/assets/javascripts/Core/GeographicProjection.js +107 -0
- data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +176 -0
- data/app/assets/javascripts/Core/HermiteSpline.js +234 -0
- data/app/assets/javascripts/Core/Iau2006XysData.js +259 -0
- data/app/assets/javascripts/Core/Iau2006XysSample.js +36 -0
- data/app/assets/javascripts/Core/IndexDatatype.js +28 -0
- data/app/assets/javascripts/Core/Intersect.js +40 -0
- data/app/assets/javascripts/Core/IntersectionTests.js +359 -0
- data/app/assets/javascripts/Core/Interval.js +27 -0
- data/app/assets/javascripts/Core/Iso8601.js +46 -0
- data/app/assets/javascripts/Core/JulianDate.js +1228 -0
- data/app/assets/javascripts/Core/KeyboardEventModifier.js +38 -0
- data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +96 -0
- data/app/assets/javascripts/Core/LeapSecond.js +158 -0
- data/app/assets/javascripts/Core/LinearApproximation.js +98 -0
- data/app/assets/javascripts/Core/Math.js +532 -0
- data/app/assets/javascripts/Core/Matrix2.js +833 -0
- data/app/assets/javascripts/Core/Matrix3.js +1099 -0
- data/app/assets/javascripts/Core/Matrix4.js +2164 -0
- data/app/assets/javascripts/Core/MeshFilters.js +568 -0
- data/app/assets/javascripts/Core/Occluder.js +474 -0
- data/app/assets/javascripts/Core/OrientationInterpolator.js +109 -0
- data/app/assets/javascripts/Core/PlaneTessellator.js +74 -0
- data/app/assets/javascripts/Core/PolygonPipeline.js +792 -0
- data/app/assets/javascripts/Core/PolylinePipeline.js +90 -0
- data/app/assets/javascripts/Core/PrimitiveType.js +80 -0
- data/app/assets/javascripts/Core/QuadraticRealPolynomial.js +146 -0
- data/app/assets/javascripts/Core/QuarticRealPolynomial.js +339 -0
- data/app/assets/javascripts/Core/Quaternion.js +947 -0
- data/app/assets/javascripts/Core/Queue.js +95 -0
- data/app/assets/javascripts/Core/Ray.js +64 -0
- data/app/assets/javascripts/Core/ReferenceFrame.js +25 -0
- data/app/assets/javascripts/Core/RequestErrorEvent.js +35 -0
- data/app/assets/javascripts/Core/RuntimeError.js +59 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +658 -0
- data/app/assets/javascripts/Core/ScreenSpaceEventType.js +149 -0
- data/app/assets/javascripts/Core/Shapes.js +230 -0
- data/app/assets/javascripts/Core/Spherical.js +192 -0
- data/app/assets/javascripts/Core/TaskProcessor.js +131 -0
- data/app/assets/javascripts/Core/TimeConstants.js +85 -0
- data/app/assets/javascripts/Core/TimeInterval.js +305 -0
- data/app/assets/javascripts/Core/TimeIntervalCollection.js +543 -0
- data/app/assets/javascripts/Core/TimeStandard.js +31 -0
- data/app/assets/javascripts/Core/Tipsify.js +285 -0
- data/app/assets/javascripts/Core/Transforms.js +614 -0
- data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +102 -0
- data/app/assets/javascripts/Core/Visibility.js +38 -0
- data/app/assets/javascripts/Core/WebMercatorProjection.js +154 -0
- data/app/assets/javascripts/Core/WindingOrder.js +40 -0
- data/app/assets/javascripts/Core/binarySearch.js +69 -0
- data/app/assets/javascripts/Core/buildModuleUrl.js +77 -0
- data/app/assets/javascripts/Core/clone.js +21 -0
- data/app/assets/javascripts/Core/combine.js +81 -0
- data/app/assets/javascripts/Core/computeSunPosition.js +116 -0
- data/app/assets/javascripts/Core/createGuid.js +25 -0
- data/app/assets/javascripts/Core/defaultValue.js +22 -0
- data/app/assets/javascripts/Core/destroyObject.js +61 -0
- data/app/assets/javascripts/Core/freezeObject.js +20 -0
- data/app/assets/javascripts/Core/getImagePixels.js +46 -0
- data/app/assets/javascripts/Core/isLeapYear.js +30 -0
- data/app/assets/javascripts/Core/jsonp.js +116 -0
- data/app/assets/javascripts/Core/loadArrayBuffer.js +76 -0
- data/app/assets/javascripts/Core/loadImage.js +85 -0
- data/app/assets/javascripts/Core/loadJson.js +54 -0
- data/app/assets/javascripts/Core/loadText.js +78 -0
- data/app/assets/javascripts/Core/loadXML.js +76 -0
- data/app/assets/javascripts/Core/package.json +6 -0
- data/app/assets/javascripts/Core/pointInsideTriangle2D.js +41 -0
- data/app/assets/javascripts/Core/requestAnimationFrame.js +61 -0
- data/app/assets/javascripts/Core/throttleRequestByServer.js +74 -0
- data/app/assets/javascripts/Core/writeTextToCanvas.js +92 -0
- data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +254 -0
- data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +57 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +96 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +125 -0
- data/app/assets/javascripts/DynamicScene/CzmlColor.js +127 -0
- data/app/assets/javascripts/DynamicScene/CzmlDefaults.js +135 -0
- data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlImage.js +61 -0
- data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +59 -0
- data/app/assets/javascripts/DynamicScene/CzmlNumber.js +82 -0
- data/app/assets/javascripts/DynamicScene/CzmlString.js +56 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +99 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +172 -0
- data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +98 -0
- data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +59 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboard.js +245 -0
- data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +347 -0
- data/app/assets/javascripts/DynamicScene/DynamicColorMaterial.js +78 -0
- data/app/assets/javascripts/DynamicScene/DynamicCone.js +291 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +350 -0
- data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +389 -0
- data/app/assets/javascripts/DynamicScene/DynamicDirectionsProperty.js +163 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoid.js +158 -0
- data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +277 -0
- data/app/assets/javascripts/DynamicScene/DynamicImageMaterial.js +136 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabel.js +286 -0
- data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +341 -0
- data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +125 -0
- data/app/assets/javascripts/DynamicScene/DynamicObject.js +364 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectCollection.js +137 -0
- data/app/assets/javascripts/DynamicScene/DynamicObjectView.js +299 -0
- data/app/assets/javascripts/DynamicScene/DynamicPath.js +214 -0
- data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +402 -0
- data/app/assets/javascripts/DynamicScene/DynamicPoint.js +184 -0
- data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +323 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygon.js +138 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +251 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolyline.js +183 -0
- data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +268 -0
- data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +525 -0
- data/app/assets/javascripts/DynamicScene/DynamicProperty.js +352 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramid.js +204 -0
- data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +302 -0
- data/app/assets/javascripts/DynamicScene/DynamicScene.profile.js +8 -0
- data/app/assets/javascripts/DynamicScene/DynamicVertexPositionsProperty.js +199 -0
- data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +155 -0
- data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +181 -0
- data/app/assets/javascripts/DynamicScene/package.json +6 -0
- data/app/assets/javascripts/DynamicScene/processCzml.js +77 -0
- data/app/assets/javascripts/Renderer/BlendEquation.js +52 -0
- data/app/assets/javascripts/Renderer/BlendFunction.js +158 -0
- data/app/assets/javascripts/Renderer/BlendingState.js +64 -0
- data/app/assets/javascripts/Renderer/Buffer.js +141 -0
- data/app/assets/javascripts/Renderer/BufferUsage.js +48 -0
- data/app/assets/javascripts/Renderer/ClearCommand.js +40 -0
- data/app/assets/javascripts/Renderer/CommandLists.js +42 -0
- data/app/assets/javascripts/Renderer/Context.js +2805 -0
- data/app/assets/javascripts/Renderer/CubeMap.js +358 -0
- data/app/assets/javascripts/Renderer/CubeMapFace.js +202 -0
- data/app/assets/javascripts/Renderer/CullFace.js +50 -0
- data/app/assets/javascripts/Renderer/DepthFunction.js +95 -0
- data/app/assets/javascripts/Renderer/DrawCommand.js +96 -0
- data/app/assets/javascripts/Renderer/Framebuffer.js +435 -0
- data/app/assets/javascripts/Renderer/MipmapHint.js +50 -0
- data/app/assets/javascripts/Renderer/PickFramebuffer.js +178 -0
- data/app/assets/javascripts/Renderer/PixelDatatype.js +86 -0
- data/app/assets/javascripts/Renderer/PixelFormat.js +113 -0
- data/app/assets/javascripts/Renderer/Renderbuffer.js +102 -0
- data/app/assets/javascripts/Renderer/RenderbufferFormat.js +77 -0
- data/app/assets/javascripts/Renderer/Renderer.profile.js +8 -0
- data/app/assets/javascripts/Renderer/ShaderCache.js +121 -0
- data/app/assets/javascripts/Renderer/ShaderProgram.js +2402 -0
- data/app/assets/javascripts/Renderer/StencilFunction.js +95 -0
- data/app/assets/javascripts/Renderer/StencilOperation.js +95 -0
- data/app/assets/javascripts/Renderer/Texture.js +395 -0
- data/app/assets/javascripts/Renderer/TextureAtlas.js +472 -0
- data/app/assets/javascripts/Renderer/TextureAtlasBuilder.js +133 -0
- data/app/assets/javascripts/Renderer/TextureMagnificationFilter.js +41 -0
- data/app/assets/javascripts/Renderer/TextureMinificationFilter.js +77 -0
- data/app/assets/javascripts/Renderer/TextureWrap.js +50 -0
- data/app/assets/javascripts/Renderer/UniformDatatype.js +218 -0
- data/app/assets/javascripts/Renderer/UniformState.js +799 -0
- data/app/assets/javascripts/Renderer/VertexArray.js +365 -0
- data/app/assets/javascripts/Renderer/VertexArrayFacade.js +574 -0
- data/app/assets/javascripts/Renderer/VertexLayout.js +49 -0
- data/app/assets/javascripts/Renderer/loadCubeMap.js +92 -0
- data/app/assets/javascripts/Renderer/package.json +6 -0
- data/app/assets/javascripts/Scene/AnimationCollection.js +249 -0
- data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +384 -0
- data/app/assets/javascripts/Scene/Billboard.js +680 -0
- data/app/assets/javascripts/Scene/BillboardCollection.js +1209 -0
- data/app/assets/javascripts/Scene/BingMapsImageryProvider.js +460 -0
- data/app/assets/javascripts/Scene/BingMapsStyle.js +55 -0
- data/app/assets/javascripts/Scene/Camera.js +358 -0
- data/app/assets/javascripts/Scene/CameraColumbusViewMode.js +30 -0
- data/app/assets/javascripts/Scene/CameraController.js +1258 -0
- data/app/assets/javascripts/Scene/CameraEventAggregator.js +270 -0
- data/app/assets/javascripts/Scene/CameraEventType.js +53 -0
- data/app/assets/javascripts/Scene/CameraFlightPath.js +495 -0
- data/app/assets/javascripts/Scene/CentralBody.js +817 -0
- data/app/assets/javascripts/Scene/CentralBodySurface.js +1120 -0
- data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +107 -0
- data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +511 -0
- data/app/assets/javascripts/Scene/CompositePrimitive.js +454 -0
- data/app/assets/javascripts/Scene/CullingVolume.js +59 -0
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +440 -0
- data/app/assets/javascripts/Scene/DiscardMissingTileImagePolicy.js +134 -0
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +412 -0
- data/app/assets/javascripts/Scene/EllipsoidTerrainProvider.js +182 -0
- data/app/assets/javascripts/Scene/FrameState.js +86 -0
- data/app/assets/javascripts/Scene/FrustumCommands.js +32 -0
- data/app/assets/javascripts/Scene/GeographicTilingScheme.js +265 -0
- data/app/assets/javascripts/Scene/HorizontalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/Imagery.js +85 -0
- data/app/assets/javascripts/Scene/ImageryLayer.js +876 -0
- data/app/assets/javascripts/Scene/ImageryLayerCollection.js +403 -0
- data/app/assets/javascripts/Scene/ImageryProvider.js +185 -0
- data/app/assets/javascripts/Scene/ImageryProviderError.js +149 -0
- data/app/assets/javascripts/Scene/ImageryState.js +20 -0
- data/app/assets/javascripts/Scene/Label.js +706 -0
- data/app/assets/javascripts/Scene/LabelCollection.js +697 -0
- data/app/assets/javascripts/Scene/LabelStyle.js +39 -0
- data/app/assets/javascripts/Scene/Material.js +1177 -0
- data/app/assets/javascripts/Scene/NeverTileDiscardPolicy.js +38 -0
- data/app/assets/javascripts/Scene/OpenStreetMapImageryProvider.js +282 -0
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +345 -0
- data/app/assets/javascripts/Scene/PerformanceDisplay.js +183 -0
- data/app/assets/javascripts/Scene/PerspectiveFrustum.js +239 -0
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +394 -0
- data/app/assets/javascripts/Scene/Polygon.js +886 -0
- data/app/assets/javascripts/Scene/Polyline.js +441 -0
- data/app/assets/javascripts/Scene/PolylineCollection.js +1532 -0
- data/app/assets/javascripts/Scene/Projections.js +93 -0
- data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +224 -0
- data/app/assets/javascripts/Scene/Scene.js +632 -0
- data/app/assets/javascripts/Scene/Scene.profile.js +8 -0
- data/app/assets/javascripts/Scene/SceneMode.js +51 -0
- data/app/assets/javascripts/Scene/SceneTransitioner.js +776 -0
- data/app/assets/javascripts/Scene/ScreenSpaceCameraController.js +1063 -0
- data/app/assets/javascripts/Scene/SensorVolumeCollection.js +192 -0
- data/app/assets/javascripts/Scene/SingleTileImageryProvider.js +295 -0
- data/app/assets/javascripts/Scene/SkyAtmosphere.js +239 -0
- data/app/assets/javascripts/Scene/SkyBox.js +231 -0
- data/app/assets/javascripts/Scene/TerrainProvider.js +229 -0
- data/app/assets/javascripts/Scene/TexturePool.js +154 -0
- data/app/assets/javascripts/Scene/Tile.js +322 -0
- data/app/assets/javascripts/Scene/TileDiscardPolicy.js +42 -0
- data/app/assets/javascripts/Scene/TileImagery.js +36 -0
- data/app/assets/javascripts/Scene/TileLoadQueue.js +123 -0
- data/app/assets/javascripts/Scene/TileMapServiceImageryProvider.js +337 -0
- data/app/assets/javascripts/Scene/TileReplacementQueue.js +139 -0
- data/app/assets/javascripts/Scene/TileState.js +19 -0
- data/app/assets/javascripts/Scene/TilingScheme.js +213 -0
- data/app/assets/javascripts/Scene/VerticalOrigin.js +39 -0
- data/app/assets/javascripts/Scene/ViewportQuad.js +256 -0
- data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +374 -0
- data/app/assets/javascripts/Scene/WebMercatorTilingScheme.js +291 -0
- data/app/assets/javascripts/Scene/package.json +6 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.glsl +30 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionFS.js +31 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +68 -0
- data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +54 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +927 -0
- data/app/assets/javascripts/Shaders/BuiltinFunctions.js +322 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +106 -0
- data/app/assets/javascripts/Shaders/CentralBodyFS.js +82 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.glsl +20 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSDepth.js +22 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.glsl +29 -0
- data/app/assets/javascripts/Shaders/CentralBodyFSPole.js +28 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +88 -0
- data/app/assets/javascripts/Shaders/CentralBodyVS.js +69 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.glsl +9 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSDepth.js +13 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.glsl +12 -0
- data/app/assets/javascripts/Shaders/CentralBodyVSPole.js +15 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +448 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +361 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +19 -0
- data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +20 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +886 -0
- data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +586 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +126 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +95 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.glsl +14 -0
- data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.js +18 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +40 -0
- data/app/assets/javascripts/Shaders/EllipsoidFS.js +38 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.glsl +26 -0
- data/app/assets/javascripts/Shaders/EllipsoidVS.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.glsl +25 -0
- data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.js +23 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/BlobMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl +42 -0
- data/app/assets/javascripts/Shaders/Materials/BrickMaterial.js +36 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.js +27 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/CementMaterial.js +20 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +38 -0
- data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +32 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/DotMaterial.js +18 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.glsl +23 -0
- data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.js +24 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/FacetMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.glsl +12 -0
- data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.js +15 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.glsl +28 -0
- data/app/assets/javascripts/Shaders/Materials/GrassMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.glsl +19 -0
- data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.js +21 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.glsl +13 -0
- data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.js +16 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.glsl +14 -0
- data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.js +17 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.glsl +18 -0
- data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +29 -0
- data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +26 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.glsl +17 -0
- data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.js +19 -0
- data/app/assets/javascripts/Shaders/Materials/Water.glsl +91 -0
- data/app/assets/javascripts/Shaders/Materials/Water.js +60 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.glsl +36 -0
- data/app/assets/javascripts/Shaders/Materials/WoodMaterial.js +31 -0
- data/app/assets/javascripts/Shaders/Noise.glsl +453 -0
- data/app/assets/javascripts/Shaders/Noise.js +242 -0
- data/app/assets/javascripts/Shaders/PolygonFS.glsl +27 -0
- data/app/assets/javascripts/Shaders/PolygonFS.js +23 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolygonFSPick.js +11 -0
- data/app/assets/javascripts/Shaders/PolygonVS.glsl +38 -0
- data/app/assets/javascripts/Shaders/PolygonVS.js +39 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +30 -0
- data/app/assets/javascripts/Shaders/PolygonVSPick.js +32 -0
- data/app/assets/javascripts/Shaders/PolylineFS.glsl +6 -0
- data/app/assets/javascripts/Shaders/PolylineFS.js +11 -0
- data/app/assets/javascripts/Shaders/PolylineVS.glsl +34 -0
- data/app/assets/javascripts/Shaders/PolylineVS.js +35 -0
- data/app/assets/javascripts/Shaders/Ray.glsl +532 -0
- data/app/assets/javascripts/Shaders/Ray.js +357 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +26 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +22 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +11 -0
- data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +14 -0
- data/app/assets/javascripts/Shaders/SensorVolume.glsl +43 -0
- data/app/assets/javascripts/Shaders/SensorVolume.js +31 -0
- data/app/assets/javascripts/Shaders/Shaders.profile.js +8 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +70 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +62 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.glsl +131 -0
- data/app/assets/javascripts/Shaders/SkyAtmosphereVS.js +115 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxFS.js +14 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/SkyBoxVS.js +14 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.glsl +16 -0
- data/app/assets/javascripts/Shaders/ViewportQuadFS.js +17 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.glsl +10 -0
- data/app/assets/javascripts/Shaders/ViewportQuadVS.js +14 -0
- data/app/assets/javascripts/Shaders/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/ThirdParty.profile.js +8 -0
- data/app/assets/javascripts/ThirdParty/Tween.js +678 -0
- data/app/assets/javascripts/ThirdParty/Uri.js +277 -0
- data/app/assets/javascripts/ThirdParty/measureText.js +197 -0
- data/app/assets/javascripts/ThirdParty/package.json +6 -0
- data/app/assets/javascripts/ThirdParty/sprintf.js +319 -0
- data/app/assets/javascripts/ThirdParty/when.js +748 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +175 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +52 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +1237 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +4 -0
- data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +349 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.css +1 -0
- data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.js +47 -0
- data/app/assets/javascripts/Widgets/Dojo/checkForChromeFrame.js +71 -0
- data/app/assets/javascripts/Widgets/Images/Bing_Logo_51x19_White.png +0 -0
- data/app/assets/javascripts/Widgets/Images/Cesium_Logo_overlay.png +0 -0
- data/app/assets/javascripts/Widgets/Images/TimelineIcons.png +0 -0
- data/app/assets/javascripts/Widgets/Images/ajax-loader.gif +0 -0
- data/app/assets/javascripts/Widgets/Images/animationBar.png +0 -0
- data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
- data/app/assets/javascripts/Widgets/Timeline.css +113 -0
- data/app/assets/javascripts/Widgets/Timeline.js +629 -0
- data/app/assets/javascripts/Widgets/TimelineHighlightRange.js +51 -0
- data/app/assets/javascripts/Widgets/TimelineTrack.js +54 -0
- data/app/assets/javascripts/Widgets/Widgets.profile.js +8 -0
- data/app/assets/javascripts/Widgets/package.json +6 -0
- data/app/assets/javascripts/Workers/Workers.profile.js +8 -0
- data/app/assets/javascripts/Workers/cesiumWorkerBootstrapper.js +2015 -0
- data/app/assets/javascripts/Workers/createTaskProcessorWorker.js +55 -0
- data/app/assets/javascripts/Workers/createVerticesFromExtent.js +24 -0
- data/app/assets/javascripts/Workers/package.json +6 -0
- data/app/assets/javascripts/copyrightHeader.js +22 -0
- data/app/assets/javascripts/main.js +10 -0
- data/app/assets/stylesheets/cesium.css +4 -0
- data/app/controllers/cesium_controller.rb +4 -0
- data/app/helpers/cesium_helper.rb +2 -0
- data/app/views/cesium/index.html.erb +3 -0
- data/config/routes.rb +3 -0
- data/lib/cesium.rb +4 -0
- data/lib/cesium/engine.rb +4 -0
- data/lib/cesium/version.rb +3 -0
- data/lib/tasks/cesium_tasks.rake +4 -0
- data/test/cesium_test.rb +7 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/adapters/jquery-adapter.js.coffee +4 -0
- data/test/dummy/app/assets/javascripts/app.js.coffee +11 -0
- data/test/dummy/app/assets/javascripts/application.js.coffee +73 -0
- data/test/dummy/app/assets/stylesheets/application.css +12 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +21 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/requirejs.yml +10 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/functional/cesium_controller_test.rb +9 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/helpers/cesium_helper_test.rb +4 -0
- metadata +641 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError'
|
|
4
|
+
], function(
|
|
5
|
+
DeveloperError) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A policy for discarding tile images according to some criteria. This type describes an
|
|
10
|
+
* interface and is not intended to be instantiated directly.
|
|
11
|
+
*
|
|
12
|
+
* @alias TileDiscardPolicy
|
|
13
|
+
* @constructor
|
|
14
|
+
*
|
|
15
|
+
* @see DiscardMissingTileImagePolicy
|
|
16
|
+
* @see NeverTileDiscardPolicy
|
|
17
|
+
*/
|
|
18
|
+
var TileDiscardPolicy = function(description) {
|
|
19
|
+
throw new DeveloperError('This type should not be instantiated directly.');
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Determines if the discard policy is ready to process images.
|
|
24
|
+
* @returns {Boolean} True if the discard policy is ready to process images; otherwise, false.
|
|
25
|
+
*/
|
|
26
|
+
TileDiscardPolicy.prototype.isReady = function() {
|
|
27
|
+
throw new DeveloperError('This type should not be instantiated directly.');
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Given a tile image, decide whether to discard that image.
|
|
32
|
+
*
|
|
33
|
+
* @param {Image|Promise} image An image, or a promise that will resolve to an image.
|
|
34
|
+
*
|
|
35
|
+
* @returns {Boolean} A promise that will resolve to true if the tile should be discarded.
|
|
36
|
+
*/
|
|
37
|
+
TileDiscardPolicy.prototype.shouldDiscardImage = function(image) {
|
|
38
|
+
throw new DeveloperError('This type should not be instantiated directly.');
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return TileDiscardPolicy;
|
|
42
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The assocation between a terrain tile and an imagery tile.
|
|
7
|
+
*
|
|
8
|
+
* @alias TileImagery
|
|
9
|
+
* @private
|
|
10
|
+
*
|
|
11
|
+
* @param {Imagery} imagery The imagery tile.
|
|
12
|
+
* @param {Cartesian4} textureCoordinateExtent The texture extent extent of the tile that is covered
|
|
13
|
+
* by the imagery, where X=west, Y=south, Z=east, W=north.
|
|
14
|
+
*/
|
|
15
|
+
var TileImagery = function(imagery, textureCoordinateExtent) {
|
|
16
|
+
this.imagery = imagery;
|
|
17
|
+
this.textureCoordinateExtent = textureCoordinateExtent;
|
|
18
|
+
this.originalImagery = undefined;
|
|
19
|
+
this.textureTranslationAndScale = undefined;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Frees the resources held by this instance.
|
|
24
|
+
*
|
|
25
|
+
* @memberof TileImagery
|
|
26
|
+
*/
|
|
27
|
+
TileImagery.prototype.freeResources = function() {
|
|
28
|
+
this.imagery.releaseReference();
|
|
29
|
+
|
|
30
|
+
if (typeof this.originalImagery !== 'undefined') {
|
|
31
|
+
this.originalImagery.releaseReference();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return TileImagery;
|
|
36
|
+
});
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A priority queue of tiles to be loaded, implemented as a linked list.
|
|
7
|
+
*
|
|
8
|
+
* @alias TileLoadQueue
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
var TileLoadQueue = function TileLoadQueue() {
|
|
12
|
+
this.head = undefined;
|
|
13
|
+
this.tail = undefined;
|
|
14
|
+
this._insertionPoint = undefined;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Removes a tile from the load queue.
|
|
19
|
+
*
|
|
20
|
+
* @memberof TileLoadQueue
|
|
21
|
+
*
|
|
22
|
+
* @param {Tile} item The tile to remove from the load queue.
|
|
23
|
+
*/
|
|
24
|
+
TileLoadQueue.prototype.remove = function(item) {
|
|
25
|
+
var previous = item.loadPrevious;
|
|
26
|
+
var next = item.loadNext;
|
|
27
|
+
|
|
28
|
+
if (item === this.head) {
|
|
29
|
+
this.head = next;
|
|
30
|
+
} else {
|
|
31
|
+
previous.loadNext = next;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (item === this.tail) {
|
|
35
|
+
this.tail = previous;
|
|
36
|
+
} else {
|
|
37
|
+
next.loadPrevious = previous;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
item.loadPrevious = undefined;
|
|
41
|
+
item.loadNext = undefined;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Marks the point at which new tiles will be inserted into the queue, which is initially the
|
|
46
|
+
* head of the queue. As each new tile is added to or repositioned in the queue, the insertion
|
|
47
|
+
* point represents the first tile that was not added or repositioned this frame.
|
|
48
|
+
*
|
|
49
|
+
* @memberof TileLoadQueue
|
|
50
|
+
*/
|
|
51
|
+
TileLoadQueue.prototype.markInsertionPoint = function() {
|
|
52
|
+
this._insertionPoint = this.head;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Inserts (or repositions) a tile to place it just before the insertion point.
|
|
57
|
+
*
|
|
58
|
+
* @memberof TileLoadQueue
|
|
59
|
+
*
|
|
60
|
+
* @param {Tile} item The tile to insert or reposition.
|
|
61
|
+
*/
|
|
62
|
+
TileLoadQueue.prototype.insertBeforeInsertionPoint = function(item) {
|
|
63
|
+
var insertionPoint = this._insertionPoint;
|
|
64
|
+
if (insertionPoint === item) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (typeof this.head === 'undefined') {
|
|
69
|
+
// no other tiles in the list
|
|
70
|
+
item.loadPrevious = undefined;
|
|
71
|
+
item.loadNext = undefined;
|
|
72
|
+
this.head = item;
|
|
73
|
+
this.tail = item;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (typeof item.loadPrevious !== 'undefined' || typeof item.loadNext !== 'undefined') {
|
|
78
|
+
// tile already in the list, remove from its current location
|
|
79
|
+
this.remove(item);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (typeof insertionPoint === 'undefined') {
|
|
83
|
+
item.loadPrevious = this.tail;
|
|
84
|
+
item.loadNext = undefined;
|
|
85
|
+
this.tail.loadNext = item;
|
|
86
|
+
this.tail = item;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
var insertAfter = insertionPoint.loadPrevious;
|
|
91
|
+
item.loadPrevious = insertAfter;
|
|
92
|
+
if (typeof insertAfter !== 'undefined') {
|
|
93
|
+
insertAfter.loadNext = item;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
item.loadNext = insertionPoint;
|
|
97
|
+
insertionPoint.loadPrevious = item;
|
|
98
|
+
|
|
99
|
+
if (insertionPoint === this.head) {
|
|
100
|
+
this.head = item;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Clears the queue, removing all tiles.
|
|
106
|
+
*
|
|
107
|
+
* @memberof TileLoadQueue
|
|
108
|
+
*/
|
|
109
|
+
TileLoadQueue.prototype.clear = function() {
|
|
110
|
+
var item = this.head;
|
|
111
|
+
while (typeof item !== 'undefined') {
|
|
112
|
+
var next = item.loadNext;
|
|
113
|
+
item.loadNext = undefined;
|
|
114
|
+
item.loadPrevious = undefined;
|
|
115
|
+
item = next;
|
|
116
|
+
}
|
|
117
|
+
this.head = undefined;
|
|
118
|
+
this.tail = undefined;
|
|
119
|
+
this._insertionPoint = undefined;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
return TileLoadQueue;
|
|
123
|
+
});
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/Cartographic',
|
|
5
|
+
'../Core/DeveloperError',
|
|
6
|
+
'../Core/Event',
|
|
7
|
+
'../Core/loadXML',
|
|
8
|
+
'../Core/writeTextToCanvas',
|
|
9
|
+
'../Core/Extent',
|
|
10
|
+
'./ImageryProvider',
|
|
11
|
+
'./WebMercatorTilingScheme',
|
|
12
|
+
'./GeographicTilingScheme'
|
|
13
|
+
], function(
|
|
14
|
+
defaultValue,
|
|
15
|
+
Cartographic,
|
|
16
|
+
DeveloperError,
|
|
17
|
+
Event,
|
|
18
|
+
loadXML,
|
|
19
|
+
writeTextToCanvas,
|
|
20
|
+
Extent,
|
|
21
|
+
ImageryProvider,
|
|
22
|
+
WebMercatorTilingScheme,
|
|
23
|
+
GeographicTilingScheme) {
|
|
24
|
+
"use strict";
|
|
25
|
+
|
|
26
|
+
var trailingSlashRegex = /\/$/;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Provides tiled imagery as generated by <a href='http://www.maptiler.org/'>MapTiler</a> / <a href='http://www.klokan.cz/projects/gdal2tiles/'>GDDAL2Tiles</a> etc.
|
|
30
|
+
*
|
|
31
|
+
* @alias TileMapServiceImageryProvider
|
|
32
|
+
* @constructor
|
|
33
|
+
*
|
|
34
|
+
* @param {String} [description.url='.'] Path to image tiles on server.
|
|
35
|
+
* @param {String} [description.fileExtension='png'] The file extension for images on the server.
|
|
36
|
+
* @param {Object} [description.proxy] A proxy to use for requests. This object is expected to have a getURL function which returns the proxied URL.
|
|
37
|
+
* @param {String} [description.credit=''] A string crediting the data source, which is displayed on the canvas.
|
|
38
|
+
* @param {Number} [description.maximumLevel=18] The maximum level-of-detail supported by the imagery provider.
|
|
39
|
+
* @param {Extent} [description.extent=Extent.MAX_VALUE] The extent, in radians, covered by the image.
|
|
40
|
+
* @param {TilingScheme} [description.tilingScheme] The tiling scheme specifying how the ellipsoidal
|
|
41
|
+
* surface is broken into tiles. If this parameter is not provided, a {@link WebMercatorTilingScheme}
|
|
42
|
+
* is used.
|
|
43
|
+
* @param {Number} [description.tileWidth=256] Pixel width of image tiles.
|
|
44
|
+
* @param {Number} [description.tileHeight=256] Pixel height of image tiles.
|
|
45
|
+
*
|
|
46
|
+
* @see ArcGisMapServerImageryProvider
|
|
47
|
+
* @see BingMapsImageryProvider
|
|
48
|
+
* @see OpenStreetMapImageryProvider
|
|
49
|
+
* @see SingleTileImageryProvider
|
|
50
|
+
* @see WebMapServiceImageryProvider
|
|
51
|
+
*
|
|
52
|
+
* @see <a href='http://www.maptiler.org/'>MapTiler</a>
|
|
53
|
+
* @see <a href='http://www.klokan.cz/projects/gdal2tiles/'>GDDAL2Tiles</a>
|
|
54
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* // TileMapService tile provider
|
|
58
|
+
* var tms = new TileMapServiceImageryProvider({
|
|
59
|
+
* url : '../images/cesium_maptiler/Cesium_Logo_Color',
|
|
60
|
+
* fileExtension: 'png',
|
|
61
|
+
* maximumLevel: 4,
|
|
62
|
+
* extent: new Cesium.Extent(
|
|
63
|
+
* Cesium.Math.toRadians(-120.0),
|
|
64
|
+
* Cesium.Math.toRadians(20.0),
|
|
65
|
+
* Cesium.Math.toRadians(-60.0),
|
|
66
|
+
* Cesium.Math.toRadians(40.0))
|
|
67
|
+
* });
|
|
68
|
+
*/
|
|
69
|
+
var TileMapServiceImageryProvider = function TileMapServiceImageryProvider(description) {
|
|
70
|
+
description = defaultValue(description, {});
|
|
71
|
+
|
|
72
|
+
if (typeof description.url === 'undefined') {
|
|
73
|
+
throw new DeveloperError('description.url is required.');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
var url = description.url;
|
|
77
|
+
|
|
78
|
+
if (!trailingSlashRegex.test(url)) {
|
|
79
|
+
url = url + '/';
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
this._url = url;
|
|
83
|
+
this._ready = false;
|
|
84
|
+
|
|
85
|
+
this._proxy = description.proxy;
|
|
86
|
+
this._tileDiscardPolicy = description.tileDiscardPolicy;
|
|
87
|
+
|
|
88
|
+
this._errorEvent = new Event();
|
|
89
|
+
|
|
90
|
+
var credit = description.credit;
|
|
91
|
+
if (typeof credit !== 'undefined') {
|
|
92
|
+
this._logo = writeTextToCanvas(credit, {
|
|
93
|
+
font : '12px sans-serif'
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var that = this;
|
|
98
|
+
|
|
99
|
+
// Try to load remaing parameters from XML
|
|
100
|
+
loadXML(url + 'tilemapresource.xml').then(function(xml) {
|
|
101
|
+
// Allowing description properties to override XML values
|
|
102
|
+
var format = xml.getElementsByTagName('TileFormat')[0];
|
|
103
|
+
that._fileExtension = defaultValue(description.fileExtension, format.getAttribute('extension'));
|
|
104
|
+
that._tileWidth = defaultValue(description.tileWidth, parseInt(format.getAttribute('width'), 10));
|
|
105
|
+
that._tileHeight = defaultValue(description.tileHeight, parseInt(format.getAttribute('height'), 10));
|
|
106
|
+
var tilesets = xml.getElementsByTagName('TileSet');
|
|
107
|
+
that._maximumLevel = defaultValue(description.maximumLevel, parseInt(tilesets[tilesets.length - 1].getAttribute('order'), 10));
|
|
108
|
+
|
|
109
|
+
// extent handling
|
|
110
|
+
that._extent = description.extent;
|
|
111
|
+
if (typeof that._extent === 'undefined') {
|
|
112
|
+
var bbox = xml.getElementsByTagName('BoundingBox')[0];
|
|
113
|
+
var sw = Cartographic.fromDegrees(parseFloat(bbox.getAttribute('miny')), parseFloat(bbox.getAttribute('minx')));
|
|
114
|
+
var ne = Cartographic.fromDegrees(parseFloat(bbox.getAttribute('maxy')), parseFloat(bbox.getAttribute('maxx')));
|
|
115
|
+
that._extent = new Extent(sw.longitude, sw.latitude, ne.longitude, ne.latitude);
|
|
116
|
+
} else {
|
|
117
|
+
that._extent = that._extent.clone();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// tiling scheme handling
|
|
121
|
+
var tilingScheme = description.tilingScheme;
|
|
122
|
+
if (typeof tilingScheme === 'undefined') {
|
|
123
|
+
var tilingSchemeName = xml.getElementsByTagName('TileSets')[0].getAttribute('profile');
|
|
124
|
+
tilingScheme = tilingSchemeName === 'geodetic' ? new GeographicTilingScheme() : new WebMercatorTilingScheme();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// The extent must not be outside the bounds allowed by the tiling scheme.
|
|
128
|
+
if (that._extent.west < tilingScheme.getExtent().west) {
|
|
129
|
+
that._extent.west = tilingScheme.getExtent().west;
|
|
130
|
+
}
|
|
131
|
+
if (that._extent.east > tilingScheme.getExtent().east) {
|
|
132
|
+
that._extent.east = tilingScheme.getExtent().east;
|
|
133
|
+
}
|
|
134
|
+
if (that._extent.south < tilingScheme.getExtent().south) {
|
|
135
|
+
that._extent.south = tilingScheme.getExtent().south;
|
|
136
|
+
}
|
|
137
|
+
if (that._extent.north > tilingScheme.getExtent().north) {
|
|
138
|
+
that._extent.north = tilingScheme.getExtent().north;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
that._tilingScheme = tilingScheme;
|
|
142
|
+
that._ready = true;
|
|
143
|
+
}, function(error) {
|
|
144
|
+
// Can't load XML, still allow description and defaults
|
|
145
|
+
that._fileExtension = defaultValue(description.fileExtension, 'png');
|
|
146
|
+
that._tileWidth = defaultValue(description.tileWidth, 256);
|
|
147
|
+
that._tileHeight = defaultValue(description.tileHeight, 256);
|
|
148
|
+
that._minimumLevel = defaultValue(description.minimumLevel, 0);
|
|
149
|
+
that._maximumLevel = defaultValue(description.maximumLevel, 18);
|
|
150
|
+
that._tilingScheme = defaultValue(description.tilingScheme, new WebMercatorTilingScheme());
|
|
151
|
+
that._extent = defaultValue(description.extent, that._tilingScheme.getExtent());
|
|
152
|
+
that._ready = true;
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
function buildImageUrl(imageryProvider, x, y, level) {
|
|
158
|
+
var yTiles = imageryProvider._tilingScheme.getNumberOfYTilesAtLevel(level);
|
|
159
|
+
var url = imageryProvider._url + level + '/' + x + '/' + (yTiles - y - 1) + '.' + imageryProvider._fileExtension;
|
|
160
|
+
|
|
161
|
+
var proxy = imageryProvider._proxy;
|
|
162
|
+
if (typeof proxy !== 'undefined') {
|
|
163
|
+
url = proxy.getURL(url);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return url;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Gets the URL of the service hosting the imagery.
|
|
171
|
+
*
|
|
172
|
+
* @memberof TileMapServiceImageryProvider
|
|
173
|
+
*
|
|
174
|
+
* @returns {String} The URL.
|
|
175
|
+
*/
|
|
176
|
+
TileMapServiceImageryProvider.prototype.getUrl = function() {
|
|
177
|
+
return this._url;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Gets the width of each tile, in pixels. This function should
|
|
182
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
183
|
+
*
|
|
184
|
+
* @memberof TileMapServiceImageryProvider
|
|
185
|
+
*
|
|
186
|
+
* @returns {Number} The width.
|
|
187
|
+
*/
|
|
188
|
+
TileMapServiceImageryProvider.prototype.getTileWidth = function() {
|
|
189
|
+
if (!this._ready) {
|
|
190
|
+
throw new DeveloperError('getTileWidth must not be called before the imagery provider is ready.');
|
|
191
|
+
}
|
|
192
|
+
return this._tileWidth;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Gets the height of each tile, in pixels. This function should
|
|
197
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
198
|
+
*
|
|
199
|
+
* @memberof TileMapServiceImageryProvider
|
|
200
|
+
*
|
|
201
|
+
* @returns {Number} The height.
|
|
202
|
+
*/
|
|
203
|
+
TileMapServiceImageryProvider.prototype.getTileHeight = function() {
|
|
204
|
+
if (!this._ready) {
|
|
205
|
+
throw new DeveloperError('getTileHeight must not be called before the imagery provider is ready.');
|
|
206
|
+
}
|
|
207
|
+
return this._tileHeight;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Gets the maximum level-of-detail that can be requested. This function should
|
|
212
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
213
|
+
*
|
|
214
|
+
* @memberof TileMapServiceImageryProvider
|
|
215
|
+
*
|
|
216
|
+
* @returns {Number} The maximum level.
|
|
217
|
+
*/
|
|
218
|
+
TileMapServiceImageryProvider.prototype.getMaximumLevel = function() {
|
|
219
|
+
if (!this._ready) {
|
|
220
|
+
throw new DeveloperError('getMaximumLevel must not be called before the imagery provider is ready.');
|
|
221
|
+
}
|
|
222
|
+
return this._maximumLevel;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Gets the tiling scheme used by this provider. This function should
|
|
227
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
228
|
+
*
|
|
229
|
+
* @memberof TileMapServiceImageryProvider
|
|
230
|
+
*
|
|
231
|
+
* @returns {TilingScheme} The tiling scheme.
|
|
232
|
+
* @see WebMercatorTilingScheme
|
|
233
|
+
* @see GeographicTilingScheme
|
|
234
|
+
*/
|
|
235
|
+
TileMapServiceImageryProvider.prototype.getTilingScheme = function() {
|
|
236
|
+
if (!this._ready) {
|
|
237
|
+
throw new DeveloperError('getTilingScheme must not be called before the imagery provider is ready.');
|
|
238
|
+
}
|
|
239
|
+
return this._tilingScheme;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Gets the extent, in radians, of the imagery provided by this instance. This function should
|
|
244
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
245
|
+
*
|
|
246
|
+
* @memberof TileMapServiceImageryProvider
|
|
247
|
+
*
|
|
248
|
+
* @returns {Extent} The extent.
|
|
249
|
+
*/
|
|
250
|
+
TileMapServiceImageryProvider.prototype.getExtent = function() {
|
|
251
|
+
if (!this._ready) {
|
|
252
|
+
throw new DeveloperError('getExtent must not be called before the imagery provider is ready.');
|
|
253
|
+
}
|
|
254
|
+
return this._extent;
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Gets the tile discard policy. If not undefined, the discard policy is responsible
|
|
259
|
+
* for filtering out "missing" tiles via its shouldDiscardImage function. If this function
|
|
260
|
+
* returns undefined, no tiles are filtered. This function should
|
|
261
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
262
|
+
*
|
|
263
|
+
* @memberof TileMapServiceImageryProvider
|
|
264
|
+
*
|
|
265
|
+
* @returns {TileDiscardPolicy} The discard policy.
|
|
266
|
+
*
|
|
267
|
+
* @see DiscardMissingTileImagePolicy
|
|
268
|
+
* @see NeverTileDiscardPolicy
|
|
269
|
+
*/
|
|
270
|
+
TileMapServiceImageryProvider.prototype.getTileDiscardPolicy = function() {
|
|
271
|
+
if (!this._ready) {
|
|
272
|
+
throw new DeveloperError('getTileDiscardPolicy must not be called before the imagery provider is ready.');
|
|
273
|
+
}
|
|
274
|
+
return this._tileDiscardPolicy;
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing
|
|
279
|
+
* to the event, you will be notified of the error and can potentially recover from it. Event listeners
|
|
280
|
+
* are passed an instance of {@link ImageryProviderError}.
|
|
281
|
+
*
|
|
282
|
+
* @memberof TileMapServiceImageryProvider
|
|
283
|
+
*
|
|
284
|
+
* @returns {Event} The event.
|
|
285
|
+
*/
|
|
286
|
+
TileMapServiceImageryProvider.prototype.getErrorEvent = function() {
|
|
287
|
+
return this._errorEvent;
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Gets a value indicating whether or not the provider is ready for use.
|
|
292
|
+
*
|
|
293
|
+
* @memberof TileMapServiceImageryProvider
|
|
294
|
+
*
|
|
295
|
+
* @returns {Boolean} True if the provider is ready to use; otherwise, false.
|
|
296
|
+
*/
|
|
297
|
+
TileMapServiceImageryProvider.prototype.isReady = function() {
|
|
298
|
+
return this._ready;
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Requests the image for a given tile. This function should
|
|
303
|
+
* not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
304
|
+
*
|
|
305
|
+
* @memberof TileMapServiceImageryProvider
|
|
306
|
+
*
|
|
307
|
+
* @param {Number} x The tile X coordinate.
|
|
308
|
+
* @param {Number} y The tile Y coordinate.
|
|
309
|
+
* @param {Number} level The tile level.
|
|
310
|
+
*
|
|
311
|
+
* @returns {Promise} A promise for the image that will resolve when the image is available, or
|
|
312
|
+
* undefined if there are too many active requests to the server, and the request
|
|
313
|
+
* should be retried later. The resolved image may be either an
|
|
314
|
+
* Image or a Canvas DOM object.
|
|
315
|
+
*/
|
|
316
|
+
TileMapServiceImageryProvider.prototype.requestImage = function(x, y, level) {
|
|
317
|
+
if (!this._ready) {
|
|
318
|
+
throw new DeveloperError('requestImage must not be called before the imagery provider is ready.');
|
|
319
|
+
}
|
|
320
|
+
var url = buildImageUrl(this, x, y, level);
|
|
321
|
+
return ImageryProvider.loadImage(url);
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Gets the logo to display when this imagery provider is active. Typically this is used to credit
|
|
326
|
+
* the source of the imagery. This function should not be called before {@link TileMapServiceImageryProvider#isReady} returns true.
|
|
327
|
+
*
|
|
328
|
+
* @memberof TileMapServiceImageryProvider
|
|
329
|
+
*
|
|
330
|
+
* @returns {Image|Canvas} A canvas or image containing the log to display, or undefined if there is no logo.
|
|
331
|
+
*/
|
|
332
|
+
TileMapServiceImageryProvider.prototype.getLogo = function() {
|
|
333
|
+
return this._logo;
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
return TileMapServiceImageryProvider;
|
|
337
|
+
});
|