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,30 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A simple proxy that appends the desired resource as the sole query parameter
|
|
7
|
+
* to the given proxy URL.
|
|
8
|
+
*
|
|
9
|
+
* @alias DefaultProxy
|
|
10
|
+
* @constructor
|
|
11
|
+
*
|
|
12
|
+
* @param {String} proxy The proxy URL that will be used to requests all resources.
|
|
13
|
+
*/
|
|
14
|
+
var DefaultProxy = function(proxy) {
|
|
15
|
+
this.proxy = proxy;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Get the final URL to use to request a given resource.
|
|
20
|
+
*
|
|
21
|
+
* @memberof DefaultProxy
|
|
22
|
+
*
|
|
23
|
+
* @param {String} resource The resource to request.
|
|
24
|
+
*/
|
|
25
|
+
DefaultProxy.prototype.getURL = function(resource) {
|
|
26
|
+
return this.proxy + '?' + encodeURIComponent(resource);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return DefaultProxy;
|
|
30
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Constructs an exception object that is thrown due to a developer error, e.g., invalid argument,
|
|
7
|
+
* argument out of range, etc. This exception should only be thrown during development;
|
|
8
|
+
* it usually indicates a bug in the calling code. This exception should never be
|
|
9
|
+
* caught; instead the calling code should strive not to generate it.
|
|
10
|
+
* <br /><br />
|
|
11
|
+
* On the other hand, a {@link RuntimeError} indicates an exception that may
|
|
12
|
+
* be thrown at runtime, e.g., out of memory, that the calling code should be prepared
|
|
13
|
+
* to catch.
|
|
14
|
+
*
|
|
15
|
+
* @alias DeveloperError
|
|
16
|
+
*
|
|
17
|
+
* @param {String} [message=undefined] The error message for this exception.
|
|
18
|
+
*
|
|
19
|
+
* @see RuntimeError
|
|
20
|
+
* @constructor
|
|
21
|
+
*/
|
|
22
|
+
var DeveloperError = function(message) {
|
|
23
|
+
/**
|
|
24
|
+
* 'DeveloperError' indicating that this exception was thrown due to a developer error.
|
|
25
|
+
* @type String
|
|
26
|
+
* @constant
|
|
27
|
+
*/
|
|
28
|
+
this.name = 'DeveloperError';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The explanation for why this exception was thrown.
|
|
32
|
+
* @type String
|
|
33
|
+
* @constant
|
|
34
|
+
*/
|
|
35
|
+
this.message = message;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The Error object containing the stack trace.
|
|
39
|
+
* @type Error
|
|
40
|
+
* @constant
|
|
41
|
+
*
|
|
42
|
+
* @see <a href='https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error'>Error object on Mozilla Developer Network</a>.
|
|
43
|
+
*/
|
|
44
|
+
this.error = new Error();
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
DeveloperError.prototype.toString = function () {
|
|
48
|
+
var str = this.name + ': ' + this.message;
|
|
49
|
+
if (typeof this.error !== 'undefined') {
|
|
50
|
+
if (typeof this.error.stack !== 'undefined') {
|
|
51
|
+
str += '\n' + this.error.stack.toString();
|
|
52
|
+
} else {
|
|
53
|
+
str += '\n' + this.error.toString();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return str;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return DeveloperError;
|
|
60
|
+
});
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./binarySearch',
|
|
4
|
+
'./defaultValue',
|
|
5
|
+
'./freezeObject',
|
|
6
|
+
'./loadJson',
|
|
7
|
+
'./EarthOrientationParametersSample',
|
|
8
|
+
'./JulianDate',
|
|
9
|
+
'./LeapSecond',
|
|
10
|
+
'./RuntimeError',
|
|
11
|
+
'./TimeConstants',
|
|
12
|
+
'./TimeStandard',
|
|
13
|
+
'../ThirdParty/when'
|
|
14
|
+
],
|
|
15
|
+
function(
|
|
16
|
+
binarySearch,
|
|
17
|
+
defaultValue,
|
|
18
|
+
freezeObject,
|
|
19
|
+
loadJson,
|
|
20
|
+
EarthOrientationParametersSample,
|
|
21
|
+
JulianDate,
|
|
22
|
+
LeapSecond,
|
|
23
|
+
RuntimeError,
|
|
24
|
+
TimeConstants,
|
|
25
|
+
TimeStandard,
|
|
26
|
+
when) {
|
|
27
|
+
"use strict";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Specifies Earth polar motion coordinates and the difference between UT1 and UTC.
|
|
31
|
+
* These Earth Orientation Parameters (EOP) are primarily used in the transformation from
|
|
32
|
+
* the International Celestial Reference Frame (ITRF) to the International Terrestrial
|
|
33
|
+
* Reference Frame (ITRF).
|
|
34
|
+
*
|
|
35
|
+
* @alias EarthOrientationParameters
|
|
36
|
+
* @constructor
|
|
37
|
+
*
|
|
38
|
+
* @param {String} [description.url] The URL from which to obtain EOP data. If neither this
|
|
39
|
+
* parameter nor description.data is specified, all EOP values are assumed
|
|
40
|
+
* to be 0.0. If description.data is specified, this parameter is
|
|
41
|
+
* ignored.
|
|
42
|
+
* @param {Object} [description.data] The actual EOP data. If neither this
|
|
43
|
+
* parameter nor description.data is specified, all EOP values are assumed
|
|
44
|
+
* to be 0.0.
|
|
45
|
+
* @param {Boolean} [description.addNewLeapSeconds=true] True if leap seconds that
|
|
46
|
+
* are specified in the EOP data but not in {@link LeapSecond#getLeapSeconds}
|
|
47
|
+
* should be added to {@link LeapSecond#getLeapSeconds}. False if
|
|
48
|
+
* new leap seconds should be handled correctly in the context
|
|
49
|
+
* of the EOP data but otherwise ignored.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* // An example EOP data file, EOP.json:
|
|
53
|
+
* {
|
|
54
|
+
* "columnNames" : ["dateIso8601","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],
|
|
55
|
+
* "samples" : [
|
|
56
|
+
* "2011-07-01T00:00:00Z",2.117957047295119e-7,2.111518721609984e-6,-0.2908948,-2.956e-4,3.393695767766752e-11,3.3452143996557983e-10,34.0,
|
|
57
|
+
* "2011-07-02T00:00:00Z",2.193297093339541e-7,2.115460256837405e-6,-0.29065,-1.824e-4,-8.241832578862112e-11,5.623838700870617e-10,34.0,
|
|
58
|
+
* "2011-07-03T00:00:00Z",2.262286080161428e-7,2.1191157519929706e-6,-0.2905572,1.9e-6,-3.490658503988659e-10,6.981317007977318e-10,34.0
|
|
59
|
+
* ]
|
|
60
|
+
* }
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* // Loading the EOP data
|
|
64
|
+
* var eop = new EarthOrientationParameters({ url : 'Data/EOP.json' });
|
|
65
|
+
* Transforms.earthOrientationParameters = eop;
|
|
66
|
+
*/
|
|
67
|
+
var EarthOrientationParameters = function EarthOrientationParameters(description) {
|
|
68
|
+
description = defaultValue(description, {});
|
|
69
|
+
|
|
70
|
+
this._dates = undefined;
|
|
71
|
+
this._samples = undefined;
|
|
72
|
+
|
|
73
|
+
this._dateColumn = -1;
|
|
74
|
+
this._xPoleWanderRadiansColumn = -1;
|
|
75
|
+
this._yPoleWanderRadiansColumn = -1;
|
|
76
|
+
this._ut1MinusUtcSecondsColumn = -1;
|
|
77
|
+
this._xCelestialPoleOffsetRadiansColumn = -1;
|
|
78
|
+
this._yCelestialPoleOffsetRadiansColumn = -1;
|
|
79
|
+
this._taiMinusUtcSecondsColumn = -1;
|
|
80
|
+
|
|
81
|
+
this._columnCount = 0;
|
|
82
|
+
this._lastIndex = -1;
|
|
83
|
+
|
|
84
|
+
this._downloadPromise = undefined;
|
|
85
|
+
this._dataError = undefined;
|
|
86
|
+
|
|
87
|
+
this._addNewLeapSeconds = defaultValue(description.addNewLeapSeconds, true);
|
|
88
|
+
|
|
89
|
+
if (typeof description.data !== 'undefined') {
|
|
90
|
+
// Use supplied EOP data.
|
|
91
|
+
onDataReady(this, description.data);
|
|
92
|
+
} else if (typeof description.url !== 'undefined') {
|
|
93
|
+
// Download EOP data.
|
|
94
|
+
var that = this;
|
|
95
|
+
this._downloadPromise = when(loadJson(description.url), function(eopData) {
|
|
96
|
+
onDataReady(that, eopData);
|
|
97
|
+
}, function() {
|
|
98
|
+
that._dataError = 'An error occurred while retrieving the EOP data from the URL ' + description.url + '.';
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
// Use all zeros for EOP data.
|
|
102
|
+
onDataReady(this, {
|
|
103
|
+
'columnNames' : ['dateIso8601', 'modifiedJulianDateUtc', 'xPoleWanderRadians', 'yPoleWanderRadians', 'ut1MinusUtcSeconds', 'lengthOfDayCorrectionSeconds', 'xCelestialPoleOffsetRadians', 'yCelestialPoleOffsetRadians', 'taiMinusUtcSeconds'],
|
|
104
|
+
'samples' : []
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* A default {@link EarthOrientationParameters} instance that returns zero for all EOP values.
|
|
111
|
+
*/
|
|
112
|
+
EarthOrientationParameters.NONE = freezeObject({
|
|
113
|
+
getPromiseToLoad : function() {
|
|
114
|
+
return when();
|
|
115
|
+
},
|
|
116
|
+
compute : function(date, result) {
|
|
117
|
+
if (typeof result === 'undefined') {
|
|
118
|
+
result = new EarthOrientationParametersSample(0.0, 0.0, 0.0, 0.0, 0.0);
|
|
119
|
+
} else {
|
|
120
|
+
result.xPoleWander = 0.0;
|
|
121
|
+
result.yPoleWander = 0.0;
|
|
122
|
+
result.xPoleOffset = 0.0;
|
|
123
|
+
result.yPoleOffset = 0.0;
|
|
124
|
+
result.ut1MinusUtc = 0.0;
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Gets a promise that, when resolved, indicates that the EOP data has been loaded and is
|
|
132
|
+
* ready to use.
|
|
133
|
+
*
|
|
134
|
+
* @memberof EarthOrientationParameters
|
|
135
|
+
*
|
|
136
|
+
* @returns {Promise} The promise.
|
|
137
|
+
*
|
|
138
|
+
* @see when
|
|
139
|
+
*/
|
|
140
|
+
EarthOrientationParameters.prototype.getPromiseToLoad = function() {
|
|
141
|
+
return when(this._downloadPromise);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Computes the Earth Orientation Parameters (EOP) for a given date by interpolating.
|
|
146
|
+
* If the EOP data has not yet been download, this method returns undefined.
|
|
147
|
+
*
|
|
148
|
+
* @memberof EarthOrientationParameters
|
|
149
|
+
*
|
|
150
|
+
* @param {JulianDate} date The date for each to evaluate the EOP.
|
|
151
|
+
* @param {EarthOrientationParametersSample} [result] The instance to which to copy the result.
|
|
152
|
+
* If this parameter is undefined, a new instance is created and returned.
|
|
153
|
+
* @returns {EarthOrientationParametersSample} The EOP evaluated at the given date, or
|
|
154
|
+
* undefined if the data necessary to evaluate EOP at the date has not yet been
|
|
155
|
+
* downloaded.
|
|
156
|
+
*
|
|
157
|
+
* @exception {RuntimeError} The loaded EOP data has an error and cannot be used.
|
|
158
|
+
*
|
|
159
|
+
* @see EarthOrientationParameters#getPromiseToLoad
|
|
160
|
+
*/
|
|
161
|
+
EarthOrientationParameters.prototype.compute = function(date, result) {
|
|
162
|
+
// We cannot compute until the samples are available.
|
|
163
|
+
if (typeof this._samples === 'undefined') {
|
|
164
|
+
if (typeof this._dataError !== 'undefined') {
|
|
165
|
+
throw new RuntimeError(this._dataError);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (typeof result === 'undefined') {
|
|
172
|
+
result = new EarthOrientationParametersSample(0.0, 0.0, 0.0, 0.0, 0.0);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (this._samples.length === 0) {
|
|
176
|
+
result.xPoleWander = 0.0;
|
|
177
|
+
result.yPoleWander = 0.0;
|
|
178
|
+
result.xPoleOffset = 0.0;
|
|
179
|
+
result.yPoleOffset = 0.0;
|
|
180
|
+
result.ut1MinusUtc = 0.0;
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var dates = this._dates;
|
|
185
|
+
var lastIndex = this._lastIndex;
|
|
186
|
+
|
|
187
|
+
var before = 0;
|
|
188
|
+
var after = 0;
|
|
189
|
+
if (typeof lastIndex !== 'undefined') {
|
|
190
|
+
var previousIndexDate = dates[lastIndex];
|
|
191
|
+
var nextIndexDate = dates[lastIndex + 1];
|
|
192
|
+
var isAfterPrevious = previousIndexDate.lessThanOrEquals(date);
|
|
193
|
+
var isAfterLastSample = typeof nextIndexDate === 'undefined';
|
|
194
|
+
var isBeforeNext = isAfterLastSample || nextIndexDate.greaterThanOrEquals(date);
|
|
195
|
+
|
|
196
|
+
if (isAfterPrevious && isBeforeNext) {
|
|
197
|
+
before = lastIndex;
|
|
198
|
+
|
|
199
|
+
if (!isAfterLastSample && nextIndexDate.equals(date)) {
|
|
200
|
+
++before;
|
|
201
|
+
}
|
|
202
|
+
after = before + 1;
|
|
203
|
+
|
|
204
|
+
interpolate(this, dates, this._samples, date, before, after, result);
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
var index = binarySearch(dates, date, JulianDate.compare, this._dateColumn);
|
|
210
|
+
if (index >= 0) {
|
|
211
|
+
// If the next entry is the same date, use the later entry. This way, if two entries
|
|
212
|
+
// describe the same moment, one before a leap second and the other after, then we will use
|
|
213
|
+
// the post-leap second data.
|
|
214
|
+
if (index < dates.length - 1 && dates[index + 1].equals(date)) {
|
|
215
|
+
++index;
|
|
216
|
+
}
|
|
217
|
+
before = index;
|
|
218
|
+
after = index;
|
|
219
|
+
} else {
|
|
220
|
+
after = ~index;
|
|
221
|
+
before = after - 1;
|
|
222
|
+
|
|
223
|
+
// Use the first entry if the date requested is before the beginning of the data.
|
|
224
|
+
if (before < 0) {
|
|
225
|
+
before = 0;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
this._lastIndex = before;
|
|
230
|
+
|
|
231
|
+
interpolate(this, dates, this._samples, date, before, after, result);
|
|
232
|
+
return result;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
function compareLeapSecondDates(leapSecond, dateToFind) {
|
|
236
|
+
return JulianDate.compare(leapSecond.julianDate, dateToFind);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function onDataReady(eop, eopData) {
|
|
240
|
+
if (typeof eopData.columnNames === 'undefined') {
|
|
241
|
+
eop._dataError = 'Error in loaded EOP data: The columnNames property is required.';
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (typeof eopData.samples === 'undefined') {
|
|
246
|
+
eop._dataError = 'Error in loaded EOP data: The samples property is required.';
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
var dateColumn = eopData.columnNames.indexOf('modifiedJulianDateUtc');
|
|
251
|
+
var xPoleWanderRadiansColumn = eopData.columnNames.indexOf('xPoleWanderRadians');
|
|
252
|
+
var yPoleWanderRadiansColumn = eopData.columnNames.indexOf('yPoleWanderRadians');
|
|
253
|
+
var ut1MinusUtcSecondsColumn = eopData.columnNames.indexOf('ut1MinusUtcSeconds');
|
|
254
|
+
var xCelestialPoleOffsetRadiansColumn = eopData.columnNames.indexOf('xCelestialPoleOffsetRadians');
|
|
255
|
+
var yCelestialPoleOffsetRadiansColumn = eopData.columnNames.indexOf('yCelestialPoleOffsetRadians');
|
|
256
|
+
var taiMinusUtcSecondsColumn = eopData.columnNames.indexOf('taiMinusUtcSeconds');
|
|
257
|
+
|
|
258
|
+
if (dateColumn < 0 || xPoleWanderRadiansColumn < 0 || yPoleWanderRadiansColumn < 0 || ut1MinusUtcSecondsColumn < 0 || xCelestialPoleOffsetRadiansColumn < 0 || yCelestialPoleOffsetRadiansColumn < 0 || taiMinusUtcSecondsColumn < 0) {
|
|
259
|
+
eop._dataError = 'Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns';
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
var samples = eop._samples = eopData.samples;
|
|
264
|
+
var dates = eop._dates = [];
|
|
265
|
+
|
|
266
|
+
eop._dateColumn = dateColumn;
|
|
267
|
+
eop._xPoleWanderRadiansColumn = xPoleWanderRadiansColumn;
|
|
268
|
+
eop._yPoleWanderRadiansColumn = yPoleWanderRadiansColumn;
|
|
269
|
+
eop._ut1MinusUtcSecondsColumn = ut1MinusUtcSecondsColumn;
|
|
270
|
+
eop._xCelestialPoleOffsetRadiansColumn = xCelestialPoleOffsetRadiansColumn;
|
|
271
|
+
eop._yCelestialPoleOffsetRadiansColumn = yCelestialPoleOffsetRadiansColumn;
|
|
272
|
+
eop._taiMinusUtcSecondsColumn = taiMinusUtcSecondsColumn;
|
|
273
|
+
|
|
274
|
+
eop._columnCount = eopData.columnNames.length;
|
|
275
|
+
eop._lastIndex = undefined;
|
|
276
|
+
|
|
277
|
+
var lastTaiMinusUtc;
|
|
278
|
+
|
|
279
|
+
var addNewLeapSeconds = eop._addNewLeapSeconds;
|
|
280
|
+
|
|
281
|
+
// Convert the ISO8601 dates to JulianDates.
|
|
282
|
+
for (var i = 0, len = samples.length; i < len; i += eop._columnCount) {
|
|
283
|
+
var mjd = samples[i + dateColumn];
|
|
284
|
+
var taiMinusUtc = samples[i + taiMinusUtcSecondsColumn];
|
|
285
|
+
var day = mjd + TimeConstants.MODIFIED_JULIAN_DATE_DIFFERENCE;
|
|
286
|
+
var date = new JulianDate(day, taiMinusUtc, TimeStandard.TAI);
|
|
287
|
+
dates.push(date);
|
|
288
|
+
|
|
289
|
+
if (addNewLeapSeconds) {
|
|
290
|
+
if (taiMinusUtc !== lastTaiMinusUtc && typeof lastTaiMinusUtc !== 'undefined') {
|
|
291
|
+
// We crossed a leap second boundary, so add the leap second
|
|
292
|
+
// if it does not already exist.
|
|
293
|
+
var leapSeconds = LeapSecond.getLeapSeconds();
|
|
294
|
+
var leapSecondIndex = binarySearch(leapSeconds, date, compareLeapSecondDates);
|
|
295
|
+
if (leapSecondIndex < 0) {
|
|
296
|
+
var leapSecond = new LeapSecond(date, taiMinusUtc);
|
|
297
|
+
leapSeconds.splice(~leapSecondIndex, 0, leapSecond);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
lastTaiMinusUtc = taiMinusUtc;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function fillResultFromIndex(eop, samples, index, columnCount, result) {
|
|
306
|
+
var start = index * columnCount;
|
|
307
|
+
result.xPoleWander = samples[start + eop._xPoleWanderRadiansColumn];
|
|
308
|
+
result.yPoleWander = samples[start + eop._yPoleWanderRadiansColumn];
|
|
309
|
+
result.xPoleOffset = samples[start + eop._xCelestialPoleOffsetRadiansColumn];
|
|
310
|
+
result.yPoleOffset = samples[start + eop._yCelestialPoleOffsetRadiansColumn];
|
|
311
|
+
result.ut1MinusUtc = samples[start + eop._ut1MinusUtcSecondsColumn];
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
function linearInterp(dx, y1, y2) {
|
|
315
|
+
return y1 + dx * (y2 - y1);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function interpolate(eop, dates, samples, date, before, after, result) {
|
|
319
|
+
var columnCount = eop._columnCount;
|
|
320
|
+
|
|
321
|
+
// First check the bounds on the EOP data
|
|
322
|
+
// If we are after the bounds of the data, return zeros.
|
|
323
|
+
// The 'before' index should never be less than zero.
|
|
324
|
+
if (after > dates.length - 1) {
|
|
325
|
+
result.xPoleWander = 0;
|
|
326
|
+
result.yPoleWander = 0;
|
|
327
|
+
result.xPoleOffset = 0;
|
|
328
|
+
result.yPoleOffset = 0;
|
|
329
|
+
result.ut1MinusUtc = 0;
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
var beforeDate = dates[before];
|
|
334
|
+
var afterDate = dates[after];
|
|
335
|
+
if (beforeDate.equals(afterDate) || date.equals(beforeDate)) {
|
|
336
|
+
fillResultFromIndex(eop, samples, before, columnCount, result);
|
|
337
|
+
return result;
|
|
338
|
+
} else if (date.equals(afterDate)) {
|
|
339
|
+
fillResultFromIndex(eop, samples, after, columnCount, result);
|
|
340
|
+
return result;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
var factor = beforeDate.getSecondsDifference(date) / beforeDate.getSecondsDifference(afterDate);
|
|
344
|
+
|
|
345
|
+
var startBefore = before * columnCount;
|
|
346
|
+
var startAfter = after * columnCount;
|
|
347
|
+
|
|
348
|
+
// Handle UT1 leap second edge case
|
|
349
|
+
var beforeUt1MinusUtc = samples[startBefore + eop._ut1MinusUtcSecondsColumn];
|
|
350
|
+
var afterUt1MinusUtc = samples[startAfter + eop._ut1MinusUtcSecondsColumn];
|
|
351
|
+
|
|
352
|
+
var offsetDifference = afterUt1MinusUtc - beforeUt1MinusUtc;
|
|
353
|
+
if (offsetDifference > 0.5 || offsetDifference < -0.5) {
|
|
354
|
+
// The absolute difference between the values is more than 0.5, so we may have
|
|
355
|
+
// crossed a leap second. Check if this is the case and, if so, adjust the
|
|
356
|
+
// afterValue to account for the leap second. This way, our interpolation will
|
|
357
|
+
// produce reasonable results.
|
|
358
|
+
var beforeTaiMinusUtc = samples[startBefore + eop._taiMinusUtcSecondsColumn];
|
|
359
|
+
var afterTaiMinusUtc = samples[startAfter + eop._taiMinusUtcSecondsColumn];
|
|
360
|
+
if (beforeTaiMinusUtc !== afterTaiMinusUtc) {
|
|
361
|
+
if (afterDate.equals(date)) {
|
|
362
|
+
// If we are at the end of the leap second interval, take the second value
|
|
363
|
+
// Otherwise, the interpolation below will yield the wrong side of the
|
|
364
|
+
// discontinuity
|
|
365
|
+
// At the end of the leap second, we need to start accounting for the jump
|
|
366
|
+
beforeUt1MinusUtc = afterUt1MinusUtc;
|
|
367
|
+
} else {
|
|
368
|
+
// Otherwise, remove the leap second so that the interpolation is correct
|
|
369
|
+
afterUt1MinusUtc -= afterTaiMinusUtc - beforeTaiMinusUtc;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
result.xPoleWander = linearInterp(factor, samples[startBefore + eop._xPoleWanderRadiansColumn], samples[startAfter + eop._xPoleWanderRadiansColumn]);
|
|
375
|
+
result.yPoleWander = linearInterp(factor, samples[startBefore + eop._yPoleWanderRadiansColumn], samples[startAfter + eop._yPoleWanderRadiansColumn]);
|
|
376
|
+
result.xPoleOffset = linearInterp(factor, samples[startBefore + eop._xCelestialPoleOffsetRadiansColumn], samples[startAfter + eop._xCelestialPoleOffsetRadiansColumn]);
|
|
377
|
+
result.yPoleOffset = linearInterp(factor, samples[startBefore + eop._yCelestialPoleOffsetRadiansColumn], samples[startAfter + eop._yCelestialPoleOffsetRadiansColumn]);
|
|
378
|
+
result.ut1MinusUtc = linearInterp(factor, beforeUt1MinusUtc, afterUt1MinusUtc);
|
|
379
|
+
return result;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
return EarthOrientationParameters;
|
|
383
|
+
});
|