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,49 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['../Core/Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Determines if vertex attributes are interleaved in a single vertex buffer or if each attribute is stored in a separate vertex buffer.
|
|
7
|
+
*
|
|
8
|
+
* @exports VertexLayout
|
|
9
|
+
*
|
|
10
|
+
* @see Context#createVertexArrayFromMesh
|
|
11
|
+
*/
|
|
12
|
+
var VertexLayout = {
|
|
13
|
+
/**
|
|
14
|
+
* Each attribute will be stored in a separate vertex buffer. This can be slightly slower
|
|
15
|
+
* than using a single interleaved vertex buffer, but it is more flexible; more easily allowing
|
|
16
|
+
* the sharing of vertex buffers among vertex arrays. It also requires much less initial CPU
|
|
17
|
+
* processing than interleaving.
|
|
18
|
+
*
|
|
19
|
+
* @constant
|
|
20
|
+
* @type {Enumeration}
|
|
21
|
+
*/
|
|
22
|
+
SEPARATE : new Enumeration(0, 'SEPARATE'),
|
|
23
|
+
/**
|
|
24
|
+
* Each attribute will be interleaved in a single vertex buffer. This can have a slight
|
|
25
|
+
* performance advantage over using a separate vertex buffer per attribute, but it requires
|
|
26
|
+
* extra CPU processing to initially interleave the vertex data. This is recommended for
|
|
27
|
+
* static data that will be rendered over several frames.
|
|
28
|
+
*
|
|
29
|
+
* @constant
|
|
30
|
+
* @type {Enumeration}
|
|
31
|
+
*/
|
|
32
|
+
INTERLEAVED : new Enumeration(1, 'INTERLEAVED'),
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* DOC_TBA
|
|
36
|
+
*
|
|
37
|
+
* @param vertexLayout
|
|
38
|
+
*
|
|
39
|
+
* @returns {Boolean}
|
|
40
|
+
*/
|
|
41
|
+
validate : function(vertexLayout) {
|
|
42
|
+
return ((vertexLayout === VertexLayout.SEPARATE) ||
|
|
43
|
+
(vertexLayout === VertexLayout.INTERLEAVED));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return VertexLayout;
|
|
49
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/DeveloperError',
|
|
5
|
+
'../Core/loadImage',
|
|
6
|
+
'../ThirdParty/when'
|
|
7
|
+
], function(
|
|
8
|
+
defaultValue,
|
|
9
|
+
DeveloperError,
|
|
10
|
+
loadImage,
|
|
11
|
+
when) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Asynchronously loads six images and creates a cube map. Returns a promise that
|
|
16
|
+
* will resolve to a {@link CubeMap} once loaded, or reject if any image fails to load.
|
|
17
|
+
*
|
|
18
|
+
* @exports loadCubeMap
|
|
19
|
+
*
|
|
20
|
+
* @param {Context} context The context to use to create the cube map.
|
|
21
|
+
* @param {Object} urls The source of each image, or a promise for each URL. See the example below.
|
|
22
|
+
* @param {Boolean} [crossOrigin=true] Whether to request images using Cross-Origin
|
|
23
|
+
* Resource Sharing (CORS). Data URIs are never requested using CORS.
|
|
24
|
+
*
|
|
25
|
+
* @returns {Promise} a promise that will resolve to the requested {@link CubeMap} when loaded.
|
|
26
|
+
*
|
|
27
|
+
* @exception {DeveloperError} context is required.
|
|
28
|
+
* @exception {DeveloperError} urls is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* loadCubeMap(context, {
|
|
32
|
+
* positiveX : 'skybox_px.png',
|
|
33
|
+
* negativeX : 'skybox_nx.png',
|
|
34
|
+
* positiveY : 'skybox_py.png',
|
|
35
|
+
* negativeY : 'skybox_ny.png',
|
|
36
|
+
* positiveZ : 'skybox_pz.png',
|
|
37
|
+
* negativeZ : 'skybox_nz.png'
|
|
38
|
+
* }).then(function(cubeMap) {
|
|
39
|
+
* // use the cubemap
|
|
40
|
+
* }, function() {
|
|
41
|
+
* // an error occurred
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
|
45
|
+
* @see <a href='http://wiki.commonjs.org/wiki/Promises/A'>CommonJS Promises/A</a>
|
|
46
|
+
*/
|
|
47
|
+
var loadCubeMap = function(context, urls, crossOrigin) {
|
|
48
|
+
if (typeof context === 'undefined') {
|
|
49
|
+
throw new DeveloperError('context is required.');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if ((typeof urls === 'undefined') ||
|
|
53
|
+
(typeof urls.positiveX === 'undefined') ||
|
|
54
|
+
(typeof urls.negativeX === 'undefined') ||
|
|
55
|
+
(typeof urls.positiveY === 'undefined') ||
|
|
56
|
+
(typeof urls.negativeY === 'undefined') ||
|
|
57
|
+
(typeof urls.positiveZ === 'undefined') ||
|
|
58
|
+
(typeof urls.negativeZ === 'undefined')) {
|
|
59
|
+
throw new DeveloperError('urls is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// PERFORMANCE_IDEA: Given the size of some cube maps, we should consider tiling them, which
|
|
63
|
+
// would prevent hiccups when uploading, for example, six 4096x4096 textures to the GPU.
|
|
64
|
+
//
|
|
65
|
+
// Also, it is perhaps acceptable to use the context here in the callbacks, but
|
|
66
|
+
// ideally, we would do it in the primitive's update function.
|
|
67
|
+
|
|
68
|
+
var facePromises = [
|
|
69
|
+
loadImage(urls.positiveX, crossOrigin),
|
|
70
|
+
loadImage(urls.negativeX, crossOrigin),
|
|
71
|
+
loadImage(urls.positiveY, crossOrigin),
|
|
72
|
+
loadImage(urls.negativeY, crossOrigin),
|
|
73
|
+
loadImage(urls.positiveZ, crossOrigin),
|
|
74
|
+
loadImage(urls.negativeZ, crossOrigin)
|
|
75
|
+
];
|
|
76
|
+
|
|
77
|
+
return when.all(facePromises, function(images) {
|
|
78
|
+
return context.createCubeMap({
|
|
79
|
+
source : {
|
|
80
|
+
positiveX : images[0],
|
|
81
|
+
negativeX : images[1],
|
|
82
|
+
positiveY : images[2],
|
|
83
|
+
negativeY : images[3],
|
|
84
|
+
positiveZ : images[4],
|
|
85
|
+
negativeZ : images[5]
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
return loadCubeMap;
|
|
92
|
+
});
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/clone',
|
|
5
|
+
'../ThirdParty/Tween'
|
|
6
|
+
], function(
|
|
7
|
+
DeveloperError,
|
|
8
|
+
clone,
|
|
9
|
+
Tween) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* DOC_TBA
|
|
14
|
+
*
|
|
15
|
+
* @alias AnimationCollection
|
|
16
|
+
* @constructor
|
|
17
|
+
*/
|
|
18
|
+
var AnimationCollection = function() {
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* DOC_TBA
|
|
23
|
+
* @memberof AnimationCollection
|
|
24
|
+
*
|
|
25
|
+
* @exception {DeveloperError} duration is required.
|
|
26
|
+
*/
|
|
27
|
+
AnimationCollection.prototype.add = function(template) {
|
|
28
|
+
var t = template || {};
|
|
29
|
+
|
|
30
|
+
if (typeof t.duration === 'undefined') {
|
|
31
|
+
throw new DeveloperError('duration is required.');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
|
35
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
|
36
|
+
|
|
37
|
+
var value = clone(t.startValue);
|
|
38
|
+
var tween = new Tween.Tween(value);
|
|
39
|
+
tween.to(t.stopValue, t.duration);
|
|
40
|
+
tween.delay(t.delayDuration);
|
|
41
|
+
tween.easing(t.easingFunction);
|
|
42
|
+
if (t.onUpdate) {
|
|
43
|
+
tween.onUpdate(function() {
|
|
44
|
+
t.onUpdate(value);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
tween.onComplete(t.onComplete || null);
|
|
48
|
+
tween.start();
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
_tween : tween
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* DOC_TBA
|
|
57
|
+
* @memberof AnimationCollection
|
|
58
|
+
*
|
|
59
|
+
* @exception {DeveloperError} material is required.
|
|
60
|
+
* @exception {DeveloperError} material has no properties with alpha components.
|
|
61
|
+
*/
|
|
62
|
+
AnimationCollection.prototype.addAlpha = function(material, start, stop, template) {
|
|
63
|
+
if (typeof material === 'undefined') {
|
|
64
|
+
throw new DeveloperError('material is required.');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var properties = [];
|
|
68
|
+
|
|
69
|
+
for ( var property in material.uniforms) {
|
|
70
|
+
if (material.uniforms.hasOwnProperty(property) &&
|
|
71
|
+
typeof material.uniforms[property] !== 'undefined' &&
|
|
72
|
+
typeof material.uniforms[property].alpha !== 'undefined') {
|
|
73
|
+
properties.push(property);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (properties.length === 0) {
|
|
78
|
+
throw new DeveloperError('material has no properties with alpha components.');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Default to fade in
|
|
82
|
+
start = (typeof start === 'undefined') ? 0.0 : start;
|
|
83
|
+
stop = (typeof stop === 'undefined') ? 1.0 : stop;
|
|
84
|
+
|
|
85
|
+
var t = template || {};
|
|
86
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
|
87
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
|
88
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
|
89
|
+
|
|
90
|
+
var value = {
|
|
91
|
+
alpha : start
|
|
92
|
+
};
|
|
93
|
+
var tween = new Tween.Tween(value);
|
|
94
|
+
tween.to({
|
|
95
|
+
alpha : stop
|
|
96
|
+
}, t.duration);
|
|
97
|
+
tween.delay(t.delayDuration);
|
|
98
|
+
tween.easing(t.easingFunction);
|
|
99
|
+
tween.onUpdate(function() {
|
|
100
|
+
var length = properties.length;
|
|
101
|
+
for ( var i = 0; i < length; ++i) {
|
|
102
|
+
material.uniforms[properties[i]].alpha = value.alpha;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
tween.onComplete(t.onComplete || null);
|
|
106
|
+
tween.start();
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
_tween : tween
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* DOC_TBA
|
|
115
|
+
* @memberof AnimationCollection
|
|
116
|
+
*
|
|
117
|
+
* @exception {DeveloperError} object is required.
|
|
118
|
+
* @exception {DeveloperError} property is required.
|
|
119
|
+
* @exception {DeveloperError} pbject must have the specified property.
|
|
120
|
+
*/
|
|
121
|
+
AnimationCollection.prototype.addProperty = function(object, property, start, stop, template) {
|
|
122
|
+
if (typeof object === 'undefined') {
|
|
123
|
+
throw new DeveloperError('object is required.');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (typeof property === 'undefined') {
|
|
127
|
+
throw new DeveloperError('property is required.');
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (typeof object[property] === 'undefined') {
|
|
131
|
+
throw new DeveloperError('object must have the specified property.');
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
var t = template || {};
|
|
135
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
|
136
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
|
137
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
|
138
|
+
|
|
139
|
+
var value = {
|
|
140
|
+
value : start
|
|
141
|
+
};
|
|
142
|
+
var tween = new Tween.Tween(value);
|
|
143
|
+
tween.to({
|
|
144
|
+
value : stop
|
|
145
|
+
}, t.duration);
|
|
146
|
+
tween.delay(t.delayDuration);
|
|
147
|
+
tween.easing(t.easingFunction);
|
|
148
|
+
tween.onUpdate(function() {
|
|
149
|
+
object[property] = value.value;
|
|
150
|
+
});
|
|
151
|
+
tween.onComplete(t.onComplete || null);
|
|
152
|
+
tween.start();
|
|
153
|
+
|
|
154
|
+
return {
|
|
155
|
+
_tween : tween
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* DOC_TBA
|
|
161
|
+
* @memberof AnimationCollection
|
|
162
|
+
*
|
|
163
|
+
* @exception {DeveloperError} material is required.
|
|
164
|
+
* @exception {DeveloperError} material must have an offset property.
|
|
165
|
+
*/
|
|
166
|
+
AnimationCollection.prototype.addOffsetIncrement = function(material, template) {
|
|
167
|
+
if (typeof material === 'undefined') {
|
|
168
|
+
throw new DeveloperError('material is required.');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (typeof material.uniforms.offset === 'undefined') {
|
|
172
|
+
throw new DeveloperError('material must have an offset property.');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var t = template || {};
|
|
176
|
+
t.duration = (typeof t.duration === 'undefined') ? 3000 : t.duration;
|
|
177
|
+
t.delayDuration = (typeof t.delayDuration === 'undefined') ? 0 : t.delayDuration;
|
|
178
|
+
t.easingFunction = (typeof t.easingFunction === 'undefined') ? Tween.Easing.Linear.None : t.easingFunction;
|
|
179
|
+
|
|
180
|
+
var value = {
|
|
181
|
+
offset : material.uniforms.offset
|
|
182
|
+
};
|
|
183
|
+
var tween = new Tween.Tween(value);
|
|
184
|
+
tween.to({
|
|
185
|
+
offset : material.uniforms.offset + 1.0
|
|
186
|
+
}, t.duration);
|
|
187
|
+
tween.delay(t.delayDuration);
|
|
188
|
+
tween.easing(t.easingFunction);
|
|
189
|
+
tween.onUpdate(function() {
|
|
190
|
+
material.uniforms.offset = value.offset;
|
|
191
|
+
});
|
|
192
|
+
// t.onComplete is ignored.
|
|
193
|
+
tween.onComplete(function() {
|
|
194
|
+
tween.to({
|
|
195
|
+
offset : material.uniforms.offset + 1.0
|
|
196
|
+
}, t.duration);
|
|
197
|
+
tween.start();
|
|
198
|
+
});
|
|
199
|
+
tween.start();
|
|
200
|
+
|
|
201
|
+
return {
|
|
202
|
+
_tween : tween
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* DOC_TBA
|
|
208
|
+
* @memberof AnimationCollection
|
|
209
|
+
*/
|
|
210
|
+
AnimationCollection.prototype.remove = function(animation) {
|
|
211
|
+
if (typeof animation !== 'undefined') {
|
|
212
|
+
var count = Tween.getAll().length;
|
|
213
|
+
Tween.remove(animation._tween);
|
|
214
|
+
|
|
215
|
+
return Tween.getAll().length === (count - 1);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return false;
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* DOC_TBA
|
|
223
|
+
* @memberof AnimationCollection
|
|
224
|
+
*/
|
|
225
|
+
AnimationCollection.prototype.removeAll = function() {
|
|
226
|
+
Tween.removeAll();
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* DOC_TBA
|
|
231
|
+
* @memberof Animationcollection
|
|
232
|
+
*/
|
|
233
|
+
AnimationCollection.prototype.contains = function(animation) {
|
|
234
|
+
if (typeof animation !== 'undefined') {
|
|
235
|
+
return Tween.getAll().indexOf(animation._tween) !== -1;
|
|
236
|
+
}
|
|
237
|
+
return false;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* DOC_TBA
|
|
242
|
+
* @memberof AnimationCollection
|
|
243
|
+
*/
|
|
244
|
+
AnimationCollection.prototype.update = function() {
|
|
245
|
+
Tween.update();
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
return AnimationCollection;
|
|
249
|
+
});
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/jsonp',
|
|
5
|
+
'../Core/writeTextToCanvas',
|
|
6
|
+
'../Core/Cartesian2',
|
|
7
|
+
'../Core/DeveloperError',
|
|
8
|
+
'../Core/Event',
|
|
9
|
+
'../Core/RuntimeError',
|
|
10
|
+
'./DiscardMissingTileImagePolicy',
|
|
11
|
+
'./GeographicTilingScheme',
|
|
12
|
+
'./ImageryProvider',
|
|
13
|
+
'./ImageryProviderError',
|
|
14
|
+
'./WebMercatorTilingScheme',
|
|
15
|
+
'../ThirdParty/when'
|
|
16
|
+
], function(
|
|
17
|
+
defaultValue,
|
|
18
|
+
jsonp,
|
|
19
|
+
writeTextToCanvas,
|
|
20
|
+
Cartesian2,
|
|
21
|
+
DeveloperError,
|
|
22
|
+
Event,
|
|
23
|
+
RuntimeError,
|
|
24
|
+
DiscardMissingTileImagePolicy,
|
|
25
|
+
GeographicTilingScheme,
|
|
26
|
+
ImageryProvider,
|
|
27
|
+
ImageryProviderError,
|
|
28
|
+
WebMercatorTilingScheme,
|
|
29
|
+
when) {
|
|
30
|
+
"use strict";
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Provides tiled imagery hosted by an ArcGIS MapServer. By default, the server's pre-cached tiles are
|
|
34
|
+
* used, if available.
|
|
35
|
+
*
|
|
36
|
+
* @alias ArcGisMapServerImageryProvider
|
|
37
|
+
* @constructor
|
|
38
|
+
*
|
|
39
|
+
* @param {String} description.url The URL of the ArcGIS MapServer service.
|
|
40
|
+
* @param {TileDiscardPolicy} [description.tileDiscardPolicy] The policy that determines if a tile
|
|
41
|
+
* is invalid and should be discarded. If this value is not specified, a default
|
|
42
|
+
* {@link DiscardMissingTileImagePolicy} is used for tiled map servers, and a
|
|
43
|
+
* {@link NeverTileDiscardPolicy} is used for non-tiled map servers. In the former case,
|
|
44
|
+
* we request tile 0,0 at the maximum tile level and check pixels (0,0), (200,20), (20,200),
|
|
45
|
+
* (80,110), and (160, 130). If all of these pixels are transparent, the discard check is
|
|
46
|
+
* disabled and no tiles are discarded. If any of them have a non-transparent color, any
|
|
47
|
+
* tile that has the same values in these pixel locations is discarded. The end result of
|
|
48
|
+
* these defaults should be correct tile discarding for a standard ArcGIS Server. To ensure
|
|
49
|
+
* that no tiles are discarded, construct and pass a {@link NeverTileDiscardPolicy} for this
|
|
50
|
+
* parameter.
|
|
51
|
+
* @param {Proxy} [description.proxy] A proxy to use for requests. This object is
|
|
52
|
+
* expected to have a getURL function which returns the proxied URL, if needed.
|
|
53
|
+
* @param {Boolean} [description.usePreCachedTilesIfAvailable=true] If true, the server's pre-cached
|
|
54
|
+
* tiles are used if they are available. If false, any pre-cached tiles are ignored and the
|
|
55
|
+
* 'export' service is used.
|
|
56
|
+
*
|
|
57
|
+
* @exception {DeveloperError} <code>description.url</code> is required.
|
|
58
|
+
*
|
|
59
|
+
* @see BingMapsImageryProvider
|
|
60
|
+
* @see OpenStreetMapImageryProvider
|
|
61
|
+
* @see SingleTileImageryProvider
|
|
62
|
+
* @see TileMapServiceImageryProvider
|
|
63
|
+
* @see WebMapServiceImageryProvider
|
|
64
|
+
*
|
|
65
|
+
* @see <a href='http://resources.esri.com/help/9.3/arcgisserver/apis/rest/'>ArcGIS Server REST API</a>
|
|
66
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* var esri = new ArcGisMapServerImageryProvider({
|
|
70
|
+
* url: 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
|
|
71
|
+
* });
|
|
72
|
+
*/
|
|
73
|
+
var ArcGisMapServerImageryProvider = function ArcGisMapServerImageryProvider(description) {
|
|
74
|
+
description = defaultValue(description, {});
|
|
75
|
+
|
|
76
|
+
if (typeof description.url === 'undefined') {
|
|
77
|
+
throw new DeveloperError('description.url is required.');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this._url = description.url;
|
|
81
|
+
this._tileDiscardPolicy = description.tileDiscardPolicy;
|
|
82
|
+
this._proxy = description.proxy;
|
|
83
|
+
|
|
84
|
+
this._tileWidth = undefined;
|
|
85
|
+
this._tileHeight = undefined;
|
|
86
|
+
this._maximumLevel = undefined;
|
|
87
|
+
this._tilingScheme = undefined;
|
|
88
|
+
this._logo = undefined;
|
|
89
|
+
this._useTiles = defaultValue(description.usePreCachedTilesIfAvailable, true);
|
|
90
|
+
|
|
91
|
+
this._errorEvent = new Event();
|
|
92
|
+
|
|
93
|
+
this._ready = false;
|
|
94
|
+
|
|
95
|
+
// Grab the details of this MapServer.
|
|
96
|
+
var that = this;
|
|
97
|
+
var metadataError;
|
|
98
|
+
|
|
99
|
+
function metadataSuccess(data) {
|
|
100
|
+
var tileInfo = data.tileInfo;
|
|
101
|
+
if (!that._useTiles || typeof tileInfo === 'undefined') {
|
|
102
|
+
that._tileWidth = 256;
|
|
103
|
+
that._tileHeight = 256;
|
|
104
|
+
that._tilingScheme = new GeographicTilingScheme();
|
|
105
|
+
that._useTiles = false;
|
|
106
|
+
} else {
|
|
107
|
+
that._tileWidth = tileInfo.rows;
|
|
108
|
+
that._tileHeight = tileInfo.cols;
|
|
109
|
+
|
|
110
|
+
if (tileInfo.spatialReference.wkid === 102100) {
|
|
111
|
+
that._tilingScheme = new WebMercatorTilingScheme();
|
|
112
|
+
} else if (data.tileInfo.spatialReference.wkid === 4326) {
|
|
113
|
+
that._tilingScheme = new GeographicTilingScheme();
|
|
114
|
+
} else {
|
|
115
|
+
var message = 'Tile spatial reference WKID ' + data.tileInfo.spatialReference.wkid + ' is not supported.';
|
|
116
|
+
metadataError = ImageryProviderError.handleError(metadataError, that, that._errorEvent, message, undefined, undefined, undefined, requestMetadata);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
that._maximumLevel = data.tileInfo.lods.length - 1;
|
|
120
|
+
|
|
121
|
+
// Install the default tile discard policy if none has been supplied.
|
|
122
|
+
if (typeof that._tileDiscardPolicy === 'undefined') {
|
|
123
|
+
that._tileDiscardPolicy = new DiscardMissingTileImagePolicy({
|
|
124
|
+
missingImageUrl : buildImageUrl(that, 0, 0, that._maximumLevel),
|
|
125
|
+
pixelsToCheck : [new Cartesian2(0, 0), new Cartesian2(200, 20), new Cartesian2(20, 200), new Cartesian2(80, 110), new Cartesian2(160, 130)],
|
|
126
|
+
disableCheckIfAllPixelsAreTransparent : true
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
that._useTiles = true;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (typeof data.copyrightText !== 'undefined' && data.copyrightText.length > 0) {
|
|
134
|
+
that._logo = writeTextToCanvas(data.copyrightText, {
|
|
135
|
+
font : '12px sans-serif'
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
that._ready = true;
|
|
140
|
+
ImageryProviderError.handleSuccess(metadataError);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function metadataFailure(e) {
|
|
144
|
+
var message = 'An error occurred while accessing ' + that._url + '.';
|
|
145
|
+
metadataError = ImageryProviderError.handleError(metadataError, that, that._errorEvent, message, undefined, undefined, undefined, requestMetadata);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function requestMetadata() {
|
|
149
|
+
var metadata = jsonp(that._url, {
|
|
150
|
+
parameters : {
|
|
151
|
+
f : 'json'
|
|
152
|
+
},
|
|
153
|
+
proxy : that._proxy
|
|
154
|
+
});
|
|
155
|
+
when(metadata, metadataSuccess, metadataFailure);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
requestMetadata();
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
function buildImageUrl(imageryProvider, x, y, level) {
|
|
162
|
+
var url;
|
|
163
|
+
if (imageryProvider._useTiles) {
|
|
164
|
+
url = imageryProvider._url + '/tile/' + level + '/' + y + '/' + x;
|
|
165
|
+
} else {
|
|
166
|
+
var nativeExtent = imageryProvider._tilingScheme.tileXYToNativeExtent(x, y, level);
|
|
167
|
+
var bbox = nativeExtent.west + '%2C' + nativeExtent.south + '%2C' + nativeExtent.east + '%2C' + nativeExtent.north;
|
|
168
|
+
|
|
169
|
+
url = imageryProvider._url + '/export?';
|
|
170
|
+
url += 'bbox=' + bbox;
|
|
171
|
+
url += '&bboxSR=4326&size=256%2C256&imageSR=4326&format=png&transparent=true&f=image';
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var proxy = imageryProvider._proxy;
|
|
175
|
+
if (typeof proxy !== 'undefined') {
|
|
176
|
+
url = proxy.getURL(url);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return url;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Gets a value indicating whether this imagery provider is using pre-cached tiles from the
|
|
184
|
+
* ArcGIS MapServer. If the imagery provider is not yet ready ({@link ArcGisMapServerImageryProvider#isReady}), this function
|
|
185
|
+
* will return the value of `description.usePreCachedTilesIfAvailable`, even if the MapServer does
|
|
186
|
+
* not have pre-cached tiles.
|
|
187
|
+
*
|
|
188
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
189
|
+
*
|
|
190
|
+
* @returns {Boolean} true if this imagery provider is using pre-cached tiles from the ArcGIS MapServer;
|
|
191
|
+
* otherwise, false.
|
|
192
|
+
*/
|
|
193
|
+
ArcGisMapServerImageryProvider.prototype.isUsingPrecachedTiles = function() {
|
|
194
|
+
return this._useTiles;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Gets the URL of the ArcGIS MapServer.
|
|
199
|
+
*
|
|
200
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
201
|
+
*
|
|
202
|
+
* @returns {String} The URL.
|
|
203
|
+
*/
|
|
204
|
+
ArcGisMapServerImageryProvider.prototype.getUrl = function() {
|
|
205
|
+
return this._url;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Gets the width of each tile, in pixels. This function should
|
|
210
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
211
|
+
*
|
|
212
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
213
|
+
*
|
|
214
|
+
* @returns {Number} The width.
|
|
215
|
+
*
|
|
216
|
+
* @exception {DeveloperError} <code>getTileWidth</code> must not be called before the imagery provider is ready.
|
|
217
|
+
*/
|
|
218
|
+
ArcGisMapServerImageryProvider.prototype.getTileWidth = function() {
|
|
219
|
+
if (!this._ready) {
|
|
220
|
+
throw new DeveloperError('getTileWidth must not be called before the imagery provider is ready.');
|
|
221
|
+
}
|
|
222
|
+
return this._tileWidth;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Gets the height of each tile, in pixels. This function should
|
|
227
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
228
|
+
*
|
|
229
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
230
|
+
*
|
|
231
|
+
* @returns {Number} The height.
|
|
232
|
+
*
|
|
233
|
+
* @exception {DeveloperError} <code>getTileHeight</code> must not be called before the imagery provider is ready.
|
|
234
|
+
*/
|
|
235
|
+
ArcGisMapServerImageryProvider.prototype.getTileHeight = function() {
|
|
236
|
+
if (!this._ready) {
|
|
237
|
+
throw new DeveloperError('getTileHeight must not be called before the imagery provider is ready.');
|
|
238
|
+
}
|
|
239
|
+
return this._tileHeight;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Gets the maximum level-of-detail that can be requested. This function should
|
|
244
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
245
|
+
*
|
|
246
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
247
|
+
*
|
|
248
|
+
* @returns {Number} The maximum level, or undefined if there is no maximum level.
|
|
249
|
+
*
|
|
250
|
+
* @exception {DeveloperError} <code>getMaximumLevel</code> must not be called before the imagery provider is ready.
|
|
251
|
+
*/
|
|
252
|
+
ArcGisMapServerImageryProvider.prototype.getMaximumLevel = function() {
|
|
253
|
+
if (!this._ready) {
|
|
254
|
+
throw new DeveloperError('getMaximumLevel must not be called before the imagery provider is ready.');
|
|
255
|
+
}
|
|
256
|
+
return this._maximumLevel;
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Gets the tiling scheme used by this provider. This function should
|
|
261
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
262
|
+
*
|
|
263
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
264
|
+
*
|
|
265
|
+
* @returns {TilingScheme} The tiling scheme.
|
|
266
|
+
* @see WebMercatorTilingScheme
|
|
267
|
+
* @see GeographicTilingScheme
|
|
268
|
+
*
|
|
269
|
+
* @exception {DeveloperError} <code>getTilingScheme</code> must not be called before the imagery provider is ready.
|
|
270
|
+
*/
|
|
271
|
+
ArcGisMapServerImageryProvider.prototype.getTilingScheme = function() {
|
|
272
|
+
if (!this._ready) {
|
|
273
|
+
throw new DeveloperError('getTilingScheme must not be called before the imagery provider is ready.');
|
|
274
|
+
}
|
|
275
|
+
return this._tilingScheme;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Gets the extent, in radians, of the imagery provided by this instance. This function should
|
|
280
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
281
|
+
*
|
|
282
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
283
|
+
*
|
|
284
|
+
* @returns {Extent} The extent.
|
|
285
|
+
*
|
|
286
|
+
* @exception {DeveloperError} <code>getExtent</code> must not be called before the imagery provider is ready.
|
|
287
|
+
*/
|
|
288
|
+
ArcGisMapServerImageryProvider.prototype.getExtent = function() {
|
|
289
|
+
if (!this._ready) {
|
|
290
|
+
throw new DeveloperError('getExtent must not be called before the imagery provider is ready.');
|
|
291
|
+
}
|
|
292
|
+
return this._tilingScheme.getExtent();
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Gets the tile discard policy. If not undefined, the discard policy is responsible
|
|
297
|
+
* for filtering out "missing" tiles via its shouldDiscardImage function. If this function
|
|
298
|
+
* returns undefined, no tiles are filtered. This function should
|
|
299
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
300
|
+
*
|
|
301
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
302
|
+
*
|
|
303
|
+
* @returns {TileDiscardPolicy} The discard policy.
|
|
304
|
+
*
|
|
305
|
+
* @see DiscardMissingTileImagePolicy
|
|
306
|
+
* @see NeverTileDiscardPolicy
|
|
307
|
+
*
|
|
308
|
+
* @exception {DeveloperError} <code>getTileDiscardPolicy</code> must not be called before the imagery provider is ready.
|
|
309
|
+
*/
|
|
310
|
+
ArcGisMapServerImageryProvider.prototype.getTileDiscardPolicy = function() {
|
|
311
|
+
if (!this._ready) {
|
|
312
|
+
throw new DeveloperError('getTileDiscardPolicy must not be called before the imagery provider is ready.');
|
|
313
|
+
}
|
|
314
|
+
return this._tileDiscardPolicy;
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing
|
|
319
|
+
* to the event, you will be notified of the error and can potentially recover from it. Event listeners
|
|
320
|
+
* are passed an instance of {@link ImageryProviderError}.
|
|
321
|
+
*
|
|
322
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
323
|
+
*
|
|
324
|
+
* @returns {Event} The event.
|
|
325
|
+
*/
|
|
326
|
+
ArcGisMapServerImageryProvider.prototype.getErrorEvent = function() {
|
|
327
|
+
return this._errorEvent;
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Gets a value indicating whether or not the provider is ready for use.
|
|
332
|
+
*
|
|
333
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
334
|
+
*
|
|
335
|
+
* @returns {Boolean} True if the provider is ready to use; otherwise, false.
|
|
336
|
+
*/
|
|
337
|
+
ArcGisMapServerImageryProvider.prototype.isReady = function() {
|
|
338
|
+
return this._ready;
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Requests the image for a given tile. This function should
|
|
343
|
+
* not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
344
|
+
*
|
|
345
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
346
|
+
*
|
|
347
|
+
* @param {Number} x The tile X coordinate.
|
|
348
|
+
* @param {Number} y The tile Y coordinate.
|
|
349
|
+
* @param {Number} level The tile level.
|
|
350
|
+
*
|
|
351
|
+
* @returns {Promise} A promise for the image that will resolve when the image is available, or
|
|
352
|
+
* undefined if there are too many active requests to the server, and the request
|
|
353
|
+
* should be retried later. The resolved image may be either an
|
|
354
|
+
* Image or a Canvas DOM object.
|
|
355
|
+
*
|
|
356
|
+
* @exception {DeveloperError} <code>requestImage</code> must not be called before the imagery provider is ready.
|
|
357
|
+
*/
|
|
358
|
+
ArcGisMapServerImageryProvider.prototype.requestImage = function(x, y, level) {
|
|
359
|
+
if (!this._ready) {
|
|
360
|
+
throw new DeveloperError('requestImage must not be called before the imagery provider is ready.');
|
|
361
|
+
}
|
|
362
|
+
var url = buildImageUrl(this, x, y, level);
|
|
363
|
+
return ImageryProvider.loadImage(url);
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Gets the logo to display when this imagery provider is active. Typically this is used to credit
|
|
368
|
+
* the source of the imagery. This function should not be called before {@link ArcGisMapServerImageryProvider#isReady} returns true.
|
|
369
|
+
*
|
|
370
|
+
* @memberof ArcGisMapServerImageryProvider
|
|
371
|
+
*
|
|
372
|
+
* @returns {Image|Canvas} A canvas or image containing the log to display, or undefined if there is no logo.
|
|
373
|
+
*
|
|
374
|
+
* @exception {DeveloperError} <code>getLogo</code> must not be called before the imagery provider is ready.
|
|
375
|
+
*/
|
|
376
|
+
ArcGisMapServerImageryProvider.prototype.getLogo = function() {
|
|
377
|
+
if (!this._ready) {
|
|
378
|
+
throw new DeveloperError('getLogo must not be called before the imagery provider is ready.');
|
|
379
|
+
}
|
|
380
|
+
return this._logo;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
return ArcGisMapServerImageryProvider;
|
|
384
|
+
});
|