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,102 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['./DeveloperError'], function(DeveloperError) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Uses the Tridiagonal Matrix Algorithm, also known as the Thomas Algorithm, to solve
|
|
7
|
+
* a system of linear equations where the coefficient matrix is a tridiagonal matrix.
|
|
8
|
+
*
|
|
9
|
+
* @exports TridiagonalSystemSolver
|
|
10
|
+
*/
|
|
11
|
+
var TridiagonalSystemSolver = {};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Solves a tridiagonal system of linear equations.
|
|
15
|
+
*
|
|
16
|
+
* @param {Array} diagonal An array with length <code>n</code> that contains the diagonal of the coefficient matrix.
|
|
17
|
+
* @param {Array} lower An array with length <code>n - 1</code> that contains the lower diagonal of the coefficient matrix.
|
|
18
|
+
* @param {Array} upper An array with length <code>n - 1</code> that contains the upper diagonal of the coefficient matrix.
|
|
19
|
+
* @param {Array} right An array of Cartesians with length <code>n</code> that is the right side of the system of equations.
|
|
20
|
+
*
|
|
21
|
+
* @exception {DeveloperError} The array lower is required.
|
|
22
|
+
* @exception {DeveloperError} The array diagonal is required.
|
|
23
|
+
* @exception {DeveloperError} The array upper is required.
|
|
24
|
+
* @exception {DeveloperError} The array right is required.
|
|
25
|
+
* @exception {DeveloperError} diagonal and right must have the same lengths.
|
|
26
|
+
* @exception {DeveloperError} lower and upper must have the same lengths.
|
|
27
|
+
* @exception {DeveloperError} lower and upper must be one less than the length of diagonal.
|
|
28
|
+
*
|
|
29
|
+
* @returns {Array} An array of Cartesians with length <code>n</code> that is the solution to the tridiagonal system of equations.
|
|
30
|
+
*
|
|
31
|
+
* @performance Linear time.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* var lowerDiagonal = [1.0, 1.0, 1.0, 1.0];
|
|
35
|
+
* var diagonal = [2.0, 4.0, 4.0, 4.0, 2.0];
|
|
36
|
+
* var upperDiagonal = [1.0, 1.0, 1.0, 1.0];
|
|
37
|
+
* var rightHandSide = [
|
|
38
|
+
* new Cartesian3(410757.0, -1595711.0, 1375302.0),
|
|
39
|
+
* new Cartesian3(-5986705.0, -2190640.0, 1099600.0),
|
|
40
|
+
* new Cartesian3(-12593180.0, 288588.0, -1755549.0),
|
|
41
|
+
* new Cartesian3(-5349898.0, 2457005.0, -2685438.0),
|
|
42
|
+
* new Cartesian3(845820.0, 1573488.0, -1205591.0)
|
|
43
|
+
* ];
|
|
44
|
+
*
|
|
45
|
+
* var solution = TridiagonalSystemSolver.solve(lowerDiagonal, diagonal, upperDiagonal, rightHandSide);
|
|
46
|
+
*/
|
|
47
|
+
TridiagonalSystemSolver.solve = function(lower, diagonal, upper, right) {
|
|
48
|
+
if (!lower || !(lower instanceof Array)) {
|
|
49
|
+
throw new DeveloperError('The array lower is required.');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!diagonal || !(diagonal instanceof Array)) {
|
|
53
|
+
throw new DeveloperError('The array diagonal is required.');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!upper || !(upper instanceof Array)) {
|
|
57
|
+
throw new DeveloperError('The array upper is required.');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!right || !(right instanceof Array)) {
|
|
61
|
+
throw new DeveloperError('The array right is required.');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (diagonal.length !== right.length) {
|
|
65
|
+
throw new DeveloperError('diagonal and right must have the same lengths.');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (lower.length !== upper.length) {
|
|
69
|
+
throw new DeveloperError('lower and upper must have the same lengths.');
|
|
70
|
+
} else if (lower.length !== diagonal.length - 1) {
|
|
71
|
+
throw new DeveloperError('lower and upper must be one less than the length of diagonal.');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var c = [], d = [], x = [];
|
|
75
|
+
c.length = upper.length;
|
|
76
|
+
d.length = x.length = right.length;
|
|
77
|
+
|
|
78
|
+
c[0] = upper[0] / diagonal[0];
|
|
79
|
+
d[0] = right[0].multiplyByScalar(1.0 / diagonal[0]);
|
|
80
|
+
|
|
81
|
+
var scalar, i = 1;
|
|
82
|
+
for (; i < c.length; ++i) {
|
|
83
|
+
scalar = 1.0 / (diagonal[i] - c[i - 1] * lower[i - 1]);
|
|
84
|
+
c[i] = upper[i] * scalar;
|
|
85
|
+
d[i] = right[i].subtract(d[i - 1].multiplyByScalar(lower[i - 1]));
|
|
86
|
+
d[i] = d[i].multiplyByScalar(scalar);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
scalar = 1.0 / (diagonal[i] - c[i - 1] * lower[i - 1]);
|
|
90
|
+
d[i] = right[i].subtract(d[i - 1].multiplyByScalar(lower[i - 1]));
|
|
91
|
+
d[i] = d[i].multiplyByScalar(scalar);
|
|
92
|
+
|
|
93
|
+
x[x.length - 1] = d[d.length - 1];
|
|
94
|
+
for (i = x.length - 2; i >= 0; --i) {
|
|
95
|
+
x[i] = d[i].subtract(x[i + 1].multiplyByScalar(c[i]));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return x;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
return TridiagonalSystemSolver;
|
|
102
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['./Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This enumerated type is used in determining to what extent an object, the occludee,
|
|
7
|
+
* is visible during horizon culling. An occluder may fully block an occludee, in which case
|
|
8
|
+
* it has no visibility, may partially block an occludee from view, or may not block it at all,
|
|
9
|
+
* leading to full visibility.
|
|
10
|
+
*
|
|
11
|
+
* @exports Visibility
|
|
12
|
+
*/
|
|
13
|
+
var Visibility = {
|
|
14
|
+
/**
|
|
15
|
+
* Represents that no part of an object is visible.
|
|
16
|
+
*
|
|
17
|
+
* @constant
|
|
18
|
+
* @type {Enumeration}
|
|
19
|
+
*/
|
|
20
|
+
NONE : new Enumeration(-1, 'NONE'),
|
|
21
|
+
/**
|
|
22
|
+
* Represents that part, but not all, of an object is visible
|
|
23
|
+
*
|
|
24
|
+
* @constant
|
|
25
|
+
* @type {Enumeration}
|
|
26
|
+
*/
|
|
27
|
+
PARTIAL : new Enumeration(0, 'PARTIAL'),
|
|
28
|
+
/**
|
|
29
|
+
* Represents that an object is visible in its entirety.
|
|
30
|
+
*
|
|
31
|
+
* @constant
|
|
32
|
+
* @type {Enumeration}
|
|
33
|
+
*/
|
|
34
|
+
FULL : new Enumeration(1, 'FULL')
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return Visibility;
|
|
38
|
+
});
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./Cartesian3',
|
|
5
|
+
'./Cartographic',
|
|
6
|
+
'./Math',
|
|
7
|
+
'./Ellipsoid'
|
|
8
|
+
], function(
|
|
9
|
+
defaultValue,
|
|
10
|
+
Cartesian3,
|
|
11
|
+
Cartographic,
|
|
12
|
+
CesiumMath,
|
|
13
|
+
Ellipsoid) {
|
|
14
|
+
"use strict";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The map projection used by Google Maps, Bing Maps, and most of ArcGIS Online, EPSG:3857. This
|
|
18
|
+
* projection use longitude and latitude expressed with the WGS84 and transforms them to Mercator using
|
|
19
|
+
* the spherical (rather than ellipsoidal) equations.
|
|
20
|
+
*
|
|
21
|
+
* @alias WebMercatorProjection
|
|
22
|
+
* @constructor
|
|
23
|
+
* @immutable
|
|
24
|
+
*
|
|
25
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid.
|
|
26
|
+
*
|
|
27
|
+
* @see GeographicProjection
|
|
28
|
+
*/
|
|
29
|
+
var WebMercatorProjection = function(ellipsoid) {
|
|
30
|
+
this._ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
|
|
31
|
+
this._semimajorAxis = this._ellipsoid.getMaximumRadius();
|
|
32
|
+
this._oneOverSemimajorAxis = 1.0 / this._semimajorAxis;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Converts a Mercator angle, in the range -PI to PI, to a geodetic latitude
|
|
37
|
+
* in the range -PI/2 to PI/2.
|
|
38
|
+
*
|
|
39
|
+
* @memberof WebMercatorProjection
|
|
40
|
+
*
|
|
41
|
+
* @param {Number} mercatorAngle The angle to convert.
|
|
42
|
+
* @returns {Number} The geodetic latitude in radians.
|
|
43
|
+
*/
|
|
44
|
+
WebMercatorProjection.mercatorAngleToGeodeticLatitude = function(mercatorAngle) {
|
|
45
|
+
return CesiumMath.PI_OVER_TWO - (2.0 * Math.atan(Math.exp(-mercatorAngle)));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Converts a geodetic latitude in radians, in the range -PI/2 to PI/2, to a Mercator
|
|
50
|
+
* angle in the range -PI to PI.
|
|
51
|
+
*
|
|
52
|
+
* @memberof WebMercatorProjection
|
|
53
|
+
*
|
|
54
|
+
* @param {Number} latitude The geodetic latitude in radians.
|
|
55
|
+
* @returns {Number} The Mercator angle.
|
|
56
|
+
*/
|
|
57
|
+
WebMercatorProjection.geodeticLatitudeToMercatorAngle = function(latitude) {
|
|
58
|
+
// Clamp the latitude coordinate to the valid Mercator bounds.
|
|
59
|
+
if (latitude > WebMercatorProjection.MaximumLatitude) {
|
|
60
|
+
latitude = WebMercatorProjection.MaximumLatitude;
|
|
61
|
+
} else if (latitude < -WebMercatorProjection.MaximumLatitude) {
|
|
62
|
+
latitude = -WebMercatorProjection.MaximumLatitude;
|
|
63
|
+
}
|
|
64
|
+
var sinLatitude = Math.sin(latitude);
|
|
65
|
+
return 0.5 * Math.log((1.0 + sinLatitude) / (1.0 - sinLatitude));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The maximum latitude (both North and South) supported by a Web Mercator
|
|
70
|
+
* (EPSG:3857) projection. Technically, the Mercator projection is defined
|
|
71
|
+
* for any latitude up to (but not including) 90 degrees, but it makes sense
|
|
72
|
+
* to cut it off sooner because it grows exponentially with increasing latitude.
|
|
73
|
+
* The logic behind this particular cutoff value, which is the one used by
|
|
74
|
+
* Google Maps, Bing Maps, and Esri, is that it makes the projection
|
|
75
|
+
* square. That is, the extent is equal in the X and Y directions.
|
|
76
|
+
*
|
|
77
|
+
* The constant value is computed by calling:
|
|
78
|
+
* WebMercatorProjection.mercatorAngleToGeodeticLatitude(Math.PI)
|
|
79
|
+
*
|
|
80
|
+
* @memberof WebMercatorProjection
|
|
81
|
+
*
|
|
82
|
+
* @type {Number}
|
|
83
|
+
*/
|
|
84
|
+
WebMercatorProjection.MaximumLatitude = WebMercatorProjection.mercatorAngleToGeodeticLatitude(Math.PI);
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Gets the {@link Ellipsoid}.
|
|
88
|
+
*
|
|
89
|
+
* @memberof WebMercatorProjection
|
|
90
|
+
*
|
|
91
|
+
* @returns {Ellipsoid} The ellipsoid.
|
|
92
|
+
*/
|
|
93
|
+
WebMercatorProjection.prototype.getEllipsoid = function() {
|
|
94
|
+
return this._ellipsoid;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Converts geodetic ellipsoid coordinates, in radians, to the equivalent Web Mercator
|
|
99
|
+
* X, Y, Z coordinates expressed in meters and returned in a {@link Cartesian3}. The height
|
|
100
|
+
* is copied unmodified to the Z coordinate.
|
|
101
|
+
*
|
|
102
|
+
* @memberof WebMercatorProjection
|
|
103
|
+
*
|
|
104
|
+
* @param {Cartographic} cartographic The cartographic coordinates in radians.
|
|
105
|
+
* @param {Cartesian3} [result] The instance to which to copy the result, or undefined if a
|
|
106
|
+
* new instance should be created.
|
|
107
|
+
* @returns {Cartesian3} The equivalent web mercator X, Y, Z coordinates, in meters.
|
|
108
|
+
*/
|
|
109
|
+
WebMercatorProjection.prototype.project = function(cartographic, result) {
|
|
110
|
+
var semimajorAxis = this._semimajorAxis;
|
|
111
|
+
var x = cartographic.longitude * semimajorAxis;
|
|
112
|
+
var y = WebMercatorProjection.geodeticLatitudeToMercatorAngle(cartographic.latitude) * semimajorAxis;
|
|
113
|
+
var z = cartographic.height;
|
|
114
|
+
|
|
115
|
+
if (typeof result === 'undefined') {
|
|
116
|
+
return new Cartesian3(x, y, z);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
result.x = x;
|
|
120
|
+
result.y = y;
|
|
121
|
+
result.z = z;
|
|
122
|
+
return result;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Converts Web Mercator X, Y coordinates, expressed in meters, to a {@link Cartographic}
|
|
127
|
+
* containing geodetic ellipsoid coordinates. The Z coordinate is copied unmodified to the
|
|
128
|
+
* height.
|
|
129
|
+
*
|
|
130
|
+
* @memberof WebMercatorProjection
|
|
131
|
+
*
|
|
132
|
+
* @param {Cartesian2} cartesian The web mercator coordinates in meters.
|
|
133
|
+
* @param {Cartographic} [result] The instance to which to copy the result, or undefined if a
|
|
134
|
+
* new instance should be created.
|
|
135
|
+
* @returns {Cartographic} The equivalent cartographic coordinates.
|
|
136
|
+
*/
|
|
137
|
+
WebMercatorProjection.prototype.unproject = function(cartesian, result) {
|
|
138
|
+
var oneOverEarthSemimajorAxis = this._oneOverSemimajorAxis;
|
|
139
|
+
var longitude = cartesian.x * oneOverEarthSemimajorAxis;
|
|
140
|
+
var latitude = WebMercatorProjection.mercatorAngleToGeodeticLatitude(cartesian.y * oneOverEarthSemimajorAxis);
|
|
141
|
+
var height = cartesian.z;
|
|
142
|
+
|
|
143
|
+
if (typeof result === 'undefined') {
|
|
144
|
+
return new Cartographic(longitude, latitude, height);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
result.longitude = longitude;
|
|
148
|
+
result.latitude = latitude;
|
|
149
|
+
result.height = height;
|
|
150
|
+
return result;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
return WebMercatorProjection;
|
|
154
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['./Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* DOC_TBA
|
|
7
|
+
*
|
|
8
|
+
* @exports WindingOrder
|
|
9
|
+
*/
|
|
10
|
+
var WindingOrder = {
|
|
11
|
+
/**
|
|
12
|
+
* DOC_TBA
|
|
13
|
+
*
|
|
14
|
+
* @constant
|
|
15
|
+
* @type {Enumeration}
|
|
16
|
+
*/
|
|
17
|
+
CLOCKWISE : new Enumeration(0x0900, 'CLOCKWISE'), // WebGL: CW
|
|
18
|
+
/**
|
|
19
|
+
* DOC_TBA
|
|
20
|
+
*
|
|
21
|
+
* @constant
|
|
22
|
+
* @type {Enumeration}
|
|
23
|
+
*/
|
|
24
|
+
COUNTER_CLOCKWISE : new Enumeration(0x0901, 'COUNTER_CLOCKWISE'), // WebGL CCW
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* DOC_TBA
|
|
28
|
+
*
|
|
29
|
+
* @param windingOrder
|
|
30
|
+
*
|
|
31
|
+
* @returns {Boolean}
|
|
32
|
+
*/
|
|
33
|
+
validate : function(windingOrder) {
|
|
34
|
+
return ((windingOrder === WindingOrder.CLOCKWISE) ||
|
|
35
|
+
(windingOrder === WindingOrder.COUNTER_CLOCKWISE));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return WindingOrder;
|
|
40
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['./DeveloperError'], function(DeveloperError) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Finds an item in a sorted array.
|
|
7
|
+
*
|
|
8
|
+
* @exports binarySearch
|
|
9
|
+
*
|
|
10
|
+
* @param {Array} array The sorted array to search.
|
|
11
|
+
* @param {Object} itemToFind The item to find in the array.
|
|
12
|
+
*
|
|
13
|
+
* @param {Function} comparator The function to use to compare the item to elements in the array.
|
|
14
|
+
* The first parameter passed to the comparator function is an item in the array, the
|
|
15
|
+
* second is <code>itemToFind</code>. If the array item is less than <code>itemToFind</code>,
|
|
16
|
+
* the function should return a negative value. If it is greater, the function should return
|
|
17
|
+
* a positive value. If the items are equal, it should return 0.
|
|
18
|
+
*
|
|
19
|
+
* @return {Number} The index of <code>itemToFind</code> in the array, if it exists. If <code>itemToFind</code>
|
|
20
|
+
* does not exist, the return value is a negative number which is the bitwise complement (~)
|
|
21
|
+
* of the index before which the itemToFind should be inserted in order to maintain the
|
|
22
|
+
* sorted order of the array.
|
|
23
|
+
*
|
|
24
|
+
* @exception {DeveloperError} <code>array</code> is required.
|
|
25
|
+
* @exception {DeveloperError} <code>toFind</code> is required.
|
|
26
|
+
* @exception {DeveloperError} <code>comparator</code> is required.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Create a comparator function to search through an array of numbers.
|
|
30
|
+
* var comparator = function (a, b) {
|
|
31
|
+
* return a - b;
|
|
32
|
+
* };
|
|
33
|
+
* var numbers = [0, 2, 4, 6, 8];
|
|
34
|
+
* var index = binarySearch(numbers, 6, comparator); // 3
|
|
35
|
+
*/
|
|
36
|
+
var binarySearch = function(array, itemToFind, comparator) {
|
|
37
|
+
if (!array) {
|
|
38
|
+
throw new DeveloperError('array is required.');
|
|
39
|
+
}
|
|
40
|
+
if (!itemToFind) {
|
|
41
|
+
throw new DeveloperError('itemToFind is required.');
|
|
42
|
+
}
|
|
43
|
+
if (!comparator) {
|
|
44
|
+
throw new DeveloperError('comparator is required.');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var low = 0;
|
|
48
|
+
var high = array.length - 1;
|
|
49
|
+
var i;
|
|
50
|
+
var comparison;
|
|
51
|
+
|
|
52
|
+
while (low <= high) {
|
|
53
|
+
i = ~~((low + high) / 2);
|
|
54
|
+
comparison = comparator(array[i], itemToFind);
|
|
55
|
+
if (comparison < 0) {
|
|
56
|
+
low = i + 1;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (comparison > 0) {
|
|
60
|
+
high = i - 1;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
return i;
|
|
64
|
+
}
|
|
65
|
+
return ~(high + 1);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
return binarySearch;
|
|
69
|
+
});
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'require',
|
|
4
|
+
'./DeveloperError'
|
|
5
|
+
], function(
|
|
6
|
+
require,
|
|
7
|
+
DeveloperError) {
|
|
8
|
+
"use strict";
|
|
9
|
+
/*global CESIUM_BASE_URL*/
|
|
10
|
+
|
|
11
|
+
var baseUrl;
|
|
12
|
+
function getCesiumBaseUrl() {
|
|
13
|
+
if (typeof baseUrl !== 'undefined') {
|
|
14
|
+
return baseUrl;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (typeof CESIUM_BASE_URL !== 'undefined') {
|
|
18
|
+
baseUrl = CESIUM_BASE_URL;
|
|
19
|
+
} else {
|
|
20
|
+
var cesiumScriptRegex = /(.*?)Cesium\w*\.js(?:\W|$)/i;
|
|
21
|
+
var scripts = document.getElementsByTagName('script');
|
|
22
|
+
for ( var i = 0, len = scripts.length; i < len; ++i) {
|
|
23
|
+
var src = scripts[i].getAttribute('src');
|
|
24
|
+
var result = cesiumScriptRegex.exec(src);
|
|
25
|
+
if (result !== null) {
|
|
26
|
+
baseUrl = result[1];
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (typeof baseUrl === 'undefined') {
|
|
33
|
+
throw new DeveloperError('Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!/\/$/.test(baseUrl)) {
|
|
37
|
+
baseUrl += '/';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return baseUrl;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function buildModuleUrlFromRequireToUrl(moduleID) {
|
|
44
|
+
//moduleID will be non-relative, so require it relative to this module, in Core.
|
|
45
|
+
return require.toUrl('../' + moduleID);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function buildModuleUrlFromBaseUrl(moduleID) {
|
|
49
|
+
return getCesiumBaseUrl() + moduleID;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
var implementation;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Given a non-relative moduleID, returns a URL to the file represented by that module ID,
|
|
56
|
+
* using, in order of preference, require.toUrl, the value of a global CESIUM_BASE_URL, or
|
|
57
|
+
* the base URL of the Cesium.js script.
|
|
58
|
+
*
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
var buildModuleUrl = function(moduleID) {
|
|
62
|
+
if (typeof implementation !== 'undefined') {
|
|
63
|
+
return implementation(moduleID);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//select implementation
|
|
67
|
+
if (typeof require.toUrl !== 'undefined') {
|
|
68
|
+
implementation = buildModuleUrlFromRequireToUrl;
|
|
69
|
+
} else {
|
|
70
|
+
implementation = buildModuleUrlFromBaseUrl;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return implementation(moduleID);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
return buildModuleUrl;
|
|
77
|
+
});
|