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,38 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define(['./Enumeration'], function(Enumeration) {
|
3
|
+
"use strict";
|
4
|
+
|
5
|
+
/**
|
6
|
+
* This enumerated type is for representing keyboard modifiers. These are keys
|
7
|
+
* that are held down in addition to other event types.
|
8
|
+
*
|
9
|
+
* @exports KeyboardEventModifier
|
10
|
+
*/
|
11
|
+
var KeyboardEventModifier = {
|
12
|
+
/**
|
13
|
+
* Represents the shift key being held down.
|
14
|
+
*
|
15
|
+
* @constant
|
16
|
+
* @type {Enumeration}
|
17
|
+
*/
|
18
|
+
SHIFT : new Enumeration(0, 'SHIFT'),
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Represents the control key being held down.
|
22
|
+
*
|
23
|
+
* @constant
|
24
|
+
* @type {Enumeration}
|
25
|
+
*/
|
26
|
+
CTRL : new Enumeration(1, 'CTRL'),
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Represents the alt key being held down.
|
30
|
+
*
|
31
|
+
* @constant
|
32
|
+
* @type {Enumeration}
|
33
|
+
*/
|
34
|
+
ALT : new Enumeration(2, 'ALT')
|
35
|
+
};
|
36
|
+
|
37
|
+
return KeyboardEventModifier;
|
38
|
+
});
|
@@ -0,0 +1,96 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define(function() {
|
3
|
+
"use strict";
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Functions for performing Lagrange interpolation.
|
7
|
+
* @exports LagrangePolynomialApproximation
|
8
|
+
*
|
9
|
+
* @see LinearApproximation
|
10
|
+
* @see HermitePolynomialApproximation
|
11
|
+
*/
|
12
|
+
var LagrangePolynomialApproximation = {
|
13
|
+
type : 'Lagrange'
|
14
|
+
};
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Given the desired degree, returns the number of data points required for interpolation.
|
18
|
+
*
|
19
|
+
* @memberof LagrangePolynomialApproximation
|
20
|
+
*
|
21
|
+
* @param degree The desired degree of interpolation.
|
22
|
+
*
|
23
|
+
* @returns The number of required data points needed for the desired degree of interpolation.
|
24
|
+
*/
|
25
|
+
LagrangePolynomialApproximation.getRequiredDataPoints = function(degree) {
|
26
|
+
return Math.max(degree + 1.0, 2);
|
27
|
+
};
|
28
|
+
|
29
|
+
/**
|
30
|
+
* <p>
|
31
|
+
* Interpolates values using the supplied interpolation algorithm. The appropriate subset of input
|
32
|
+
* values to use for the interpolation is determined automatically from an interpolation given
|
33
|
+
* degree.
|
34
|
+
* </p>
|
35
|
+
* <p>
|
36
|
+
* The xTable array can contain any number of elements, and the appropriate subset will be
|
37
|
+
* selected according to the degree of interpolation requested. For example, if degree is 5,
|
38
|
+
* the 6 elements surrounding x will be used for interpolation. When using
|
39
|
+
* {@link LinearApproximation} the degree should be 1 since it always deals with only 2 elements
|
40
|
+
* surrounding x. The yTable array should contain a number of elements equal to:
|
41
|
+
* <code>xTable.length * yStride</code>. If insufficient elements are provided
|
42
|
+
* to perform the requested degree of interpolation, the highest possible degree of interpolation
|
43
|
+
* will be performed.
|
44
|
+
* </p>
|
45
|
+
*
|
46
|
+
* @param {Number} x The independent variable for which the dependent variables will be interpolated.
|
47
|
+
*
|
48
|
+
* @param {Array} xTable The array of independent variables to use to interpolate. The values
|
49
|
+
* in this array must be in increasing order and the same value must not occur twice in the array.
|
50
|
+
*
|
51
|
+
* @param {Array} yTable The array of dependent variables to use to interpolate. For a set of three
|
52
|
+
* dependent values (p,q,w) and their derivatives (dp, dq, dw) at time 1 and time 2 this should be
|
53
|
+
* as follows: {p1, q1, w1, dp1, dq1, dw1, p2, q2, w2, dp2, dq2, dw2}.
|
54
|
+
*
|
55
|
+
* @param {Number} yStride The number of dependent variable values in yTable corresponding to
|
56
|
+
* each independent variable value in xTable.
|
57
|
+
*
|
58
|
+
* @returns An array of interpolated values. The array contains at least yStride elements, each
|
59
|
+
* of which is an interpolated dependent variable value.
|
60
|
+
*
|
61
|
+
* @see LinearApproximation
|
62
|
+
* @see HermitePolynomialApproximation
|
63
|
+
*
|
64
|
+
* @memberof LagrangePolynomialApproximation
|
65
|
+
*
|
66
|
+
*/
|
67
|
+
LagrangePolynomialApproximation.interpolateOrderZero = function(x, xTable, yTable, yStride) {
|
68
|
+
var i;
|
69
|
+
var j;
|
70
|
+
var length = xTable.length;
|
71
|
+
var result = new Array(yStride);
|
72
|
+
|
73
|
+
for (i = 0; i < yStride; i++) {
|
74
|
+
result[i] = 0;
|
75
|
+
}
|
76
|
+
|
77
|
+
for (i = 0; i < length; i++) {
|
78
|
+
var coefficient = 1;
|
79
|
+
|
80
|
+
for (j = 0; j < length; j++) {
|
81
|
+
if (j !== i) {
|
82
|
+
var diffX = xTable[i] - xTable[j];
|
83
|
+
coefficient *= (x - xTable[j]) / diffX;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
for (j = 0; j < yStride; j++) {
|
88
|
+
result[j] += coefficient * yTable[i * yStride + j];
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
return result;
|
93
|
+
};
|
94
|
+
|
95
|
+
return LagrangePolynomialApproximation;
|
96
|
+
});
|
@@ -0,0 +1,158 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'./DeveloperError'
|
4
|
+
], function(
|
5
|
+
DeveloperError) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Describes a single leap second, which is constructed from a {@link JulianDate} and a
|
10
|
+
* numerical offset representing the number of seconds TAI is ahead of the UTC time standard.
|
11
|
+
*
|
12
|
+
* @alias LeapSecond
|
13
|
+
* @constructor
|
14
|
+
*
|
15
|
+
* @param {JulianDate} date A Julian date representing the time of the leap second.
|
16
|
+
* @param {Number} offset The cumulative number of seconds, that TAI is ahead of UTC at provided date.
|
17
|
+
*
|
18
|
+
* @exception {DeveloperError} <code>date</code> is required.
|
19
|
+
* @exception {DeveloperError} <code>offset</code> is required.
|
20
|
+
*
|
21
|
+
* @see JulianDate
|
22
|
+
* @see TimeStandard
|
23
|
+
*
|
24
|
+
* @example
|
25
|
+
* // Example 1. Construct a LeapSecond using a JulianDate
|
26
|
+
* var date = new Date('January 1, 1990 00:00:00 UTC');
|
27
|
+
* var leapSecond = new LeapSecond(JulianDate.fromDate(date), 25.0);
|
28
|
+
* var offset = leapSecond.offset; // 25.0
|
29
|
+
*
|
30
|
+
* //////////////////////////////////////////////////////////////////
|
31
|
+
*
|
32
|
+
* // Example 2. Construct a LeapSecond using a date string
|
33
|
+
* var date = 'January 1, 1990 00:00:00 UTC';
|
34
|
+
* var leapSecond = new LeapSecond(date, 25.0);
|
35
|
+
*/
|
36
|
+
var LeapSecond = function(date, offset) {
|
37
|
+
if (typeof date === 'undefined') {
|
38
|
+
throw new DeveloperError('date is required.');
|
39
|
+
}
|
40
|
+
|
41
|
+
if (offset === null || isNaN(offset)) {
|
42
|
+
throw new DeveloperError('offset is required and must be a number.');
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* The Julian date at which this leap second occurs.
|
47
|
+
*
|
48
|
+
* @type {JulianDate}
|
49
|
+
*/
|
50
|
+
this.julianDate = date;
|
51
|
+
|
52
|
+
/**
|
53
|
+
* The cumulative number of seconds between the UTC and TAI time standards at the time
|
54
|
+
* of this leap second.
|
55
|
+
*
|
56
|
+
* @type {Number}
|
57
|
+
*/
|
58
|
+
this.offset = offset;
|
59
|
+
};
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Sets the list of leap seconds used throughout Cesium.
|
63
|
+
*
|
64
|
+
* @memberof LeapSecond
|
65
|
+
*
|
66
|
+
* @param {Array} leapSeconds An array of {@link LeapSecond} objects.
|
67
|
+
* @exception {DeveloperErrpr} leapSeconds is required and must be an array.
|
68
|
+
*
|
69
|
+
* @see LeapSecond.setLeapSeconds
|
70
|
+
*
|
71
|
+
* @example
|
72
|
+
* LeapSecond.setLeapSeconds([
|
73
|
+
* new LeapSecond(new JulianDate(2453736, 43233.0, TimeStandard.TAI), 33), // January 1, 2006 00:00:00 UTC
|
74
|
+
* new LeapSecond(new JulianDate(2454832, 43234.0, TimeStandard.TAI), 34), // January 1, 2009 00:00:00 UTC
|
75
|
+
* new LeapSecond(new JulianDate(2456109, 43235.0, TimeStandard.TAI), 35) // July 1, 2012 00:00:00 UTC
|
76
|
+
* ]);
|
77
|
+
*/
|
78
|
+
LeapSecond.setLeapSeconds = function(leapSeconds) {
|
79
|
+
if (!Array.isArray(leapSeconds)) {
|
80
|
+
throw new DeveloperError("leapSeconds is required and must be an array.");
|
81
|
+
}
|
82
|
+
LeapSecond._leapSeconds = leapSeconds;
|
83
|
+
LeapSecond._leapSeconds.sort(LeapSecond.compareLeapSecondDate);
|
84
|
+
};
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Returns a copy of the array of leap seconds used throughout Cesium. By default, this is the
|
88
|
+
* official list of leap seconds that was available when Cesium was released.
|
89
|
+
*
|
90
|
+
* @memberof LeapSecond
|
91
|
+
*
|
92
|
+
* @return {Array} A list of {@link LeapSecond} objects.
|
93
|
+
*
|
94
|
+
* @see LeapSecond.setLeapSeconds
|
95
|
+
*/
|
96
|
+
LeapSecond.getLeapSeconds = function() {
|
97
|
+
return LeapSecond._leapSeconds;
|
98
|
+
};
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Checks whether two leap seconds are equivalent to each other.
|
102
|
+
*
|
103
|
+
* @memberof LeapSecond
|
104
|
+
*
|
105
|
+
* @param {LeapSecond} other The leap second to compare against.
|
106
|
+
*
|
107
|
+
* @return {Boolean} <code>true</code> if the leap seconds are equal; otherwise, <code>false</code>.
|
108
|
+
*
|
109
|
+
* @example
|
110
|
+
* var date = new Date('January 1, 1990 00:00:00 UTC');
|
111
|
+
* var leapSecond1 = new LeapSecond(JulianDate.fromDate(date), 25.0);
|
112
|
+
* var leapSecond2 = new LeapSecond(JulianDate.fromDate(date), 25.0);
|
113
|
+
* leapSecond1.equals(leapSecond2); // true
|
114
|
+
*/
|
115
|
+
LeapSecond.prototype.equals = function(other) {
|
116
|
+
return this.julianDate.equals(other.julianDate) && (this.offset === other.offset);
|
117
|
+
};
|
118
|
+
|
119
|
+
/**
|
120
|
+
* Given two leap seconds, determines which comes before the other by comparing
|
121
|
+
* their respective Julian dates.
|
122
|
+
*
|
123
|
+
* @memberof LeapSecond
|
124
|
+
*
|
125
|
+
* @param {LeapSecond} leapSecond1 The first leap second to be compared.
|
126
|
+
* @param {LeapSecond} leapSecond2 The second leap second to be compared.
|
127
|
+
*
|
128
|
+
* @return {Number} A negative value if the first leap second is earlier than the second,
|
129
|
+
* a positive value if the first leap second is later than the second, or
|
130
|
+
* zero if the two leap seconds are equal (ignoring their offsets).
|
131
|
+
*
|
132
|
+
* @see JulianDate#lessThan
|
133
|
+
* @see JulianDate#isAfter
|
134
|
+
*
|
135
|
+
* @example
|
136
|
+
* var date = new Date('January 1, 2006 00:00:00 UTC');
|
137
|
+
* var leapSecond1 = new LeapSecond(JulianDate.fromDate(date), 33.0);
|
138
|
+
* var leapSecond2 = new LeapSecond(JulianDate.fromDate(date), 34.0);
|
139
|
+
* LeapSecond.compareLeapSecondDate(leapSecond1, leapSecond2); // returns 0
|
140
|
+
*/
|
141
|
+
LeapSecond.compareLeapSecondDate = function(leapSecond1, leapSecond2) {
|
142
|
+
var julianDayNum1 = leapSecond1.julianDate.getJulianDayNumber();
|
143
|
+
var julianDayNum2 = leapSecond2.julianDate.getJulianDayNumber();
|
144
|
+
if (julianDayNum1 !== julianDayNum2) {
|
145
|
+
return julianDayNum1 < julianDayNum2 ? -1 : 1;
|
146
|
+
}
|
147
|
+
var secondsOfDay1 = leapSecond1.julianDate.getSecondsOfDay();
|
148
|
+
var secondsOfDay2 = leapSecond2.julianDate.getSecondsOfDay();
|
149
|
+
if (secondsOfDay1 !== secondsOfDay2) {
|
150
|
+
return secondsOfDay1 < secondsOfDay2 ? -1 : 1;
|
151
|
+
}
|
152
|
+
return 0;
|
153
|
+
};
|
154
|
+
|
155
|
+
LeapSecond._leapSeconds = [];
|
156
|
+
|
157
|
+
return LeapSecond;
|
158
|
+
});
|
@@ -0,0 +1,98 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'./DeveloperError'
|
4
|
+
],function(
|
5
|
+
DeveloperError) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Functions for performing linear interpolation.
|
11
|
+
* @exports LinearApproximation
|
12
|
+
*
|
13
|
+
* @see LagrangePolynomialApproximation
|
14
|
+
* @see HermitePolynomialApproximation
|
15
|
+
*/
|
16
|
+
var LinearApproximation = {
|
17
|
+
type : 'Linear'
|
18
|
+
};
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Given the desired degree, returns the number of data points required for interpolation.
|
22
|
+
*
|
23
|
+
* @memberof LinearApproximation
|
24
|
+
*
|
25
|
+
* @param degree The desired degree of interpolation.
|
26
|
+
*
|
27
|
+
* @exception {DeveloperError} Linear interpolation can only generate a first degree polynomial.
|
28
|
+
*
|
29
|
+
* @returns The number of required data points needed for the desired degree of interpolation.
|
30
|
+
*/
|
31
|
+
LinearApproximation.getRequiredDataPoints = function(degree) {
|
32
|
+
if (degree !== 1) {
|
33
|
+
throw new DeveloperError('Linear interpolation can only generate a first degree polynomial.');
|
34
|
+
}
|
35
|
+
return 2;
|
36
|
+
};
|
37
|
+
|
38
|
+
/**
|
39
|
+
* <p>
|
40
|
+
* Interpolates values using the supplied interpolation algorithm. The appropriate subset of input
|
41
|
+
* values to use for the interpolation is determined automatically from an interpolation given
|
42
|
+
* degree.
|
43
|
+
* </p>
|
44
|
+
* <p>
|
45
|
+
* The xTable array can contain any number of elements, and the appropriate subset will be
|
46
|
+
* selected according to the degree of interpolation requested. For example, if degree is 5,
|
47
|
+
* the 6 elements surrounding x will be used for interpolation. When using
|
48
|
+
* {@link LinearApproximation} the degree should be 1 since it always deals with only 2 elements
|
49
|
+
* surrounding x. The yTable array should contain a number of elements equal to:
|
50
|
+
* <code>xTable.length * yStride</code>. If insufficient elements are provided
|
51
|
+
* to perform the requested degree of interpolation, the highest possible degree of interpolation
|
52
|
+
* will be performed.
|
53
|
+
* </p>
|
54
|
+
*
|
55
|
+
* @param {Number} x The independent variable for which the dependent variables will be interpolated.
|
56
|
+
*
|
57
|
+
* @param {Array} xTable The array of independent variables to use to interpolate. The values
|
58
|
+
* in this array must be in increasing order and the same value must not occur twice in the array.
|
59
|
+
*
|
60
|
+
* @param {Array} yTable The array of dependent variables to use to interpolate. For a set of three
|
61
|
+
* dependent values (p,q,w) and their derivatives (dp, dq, dw) at time 1 and time 2 this should be
|
62
|
+
* as follows: {p1, q1, w1, dp1, dq1, dw1, p2, q2, w2, dp2, dq2, dw2}.
|
63
|
+
*
|
64
|
+
* @param {Number} yStride The number of dependent variable values in yTable corresponding to
|
65
|
+
* each independent variable value in xTable.
|
66
|
+
*
|
67
|
+
* @returns An array of interpolated values. The array contains at least yStride elements, each
|
68
|
+
* of which is an interpolated dependent variable value.
|
69
|
+
*
|
70
|
+
* @see LagrangePolynomialApproximation
|
71
|
+
* @see HermitePolynomialApproximation
|
72
|
+
*
|
73
|
+
*
|
74
|
+
* @memberof LinearApproximation
|
75
|
+
*/
|
76
|
+
LinearApproximation.interpolateOrderZero = function(x, xTable, yTable, yStride) {
|
77
|
+
if (xTable.length !== 2) {
|
78
|
+
throw new DeveloperError('The xTable provided to the linear interpolator must have exactly two elements.');
|
79
|
+
} else if (yStride <= 0) {
|
80
|
+
throw new DeveloperError('There must be at least 1 dependent variable for each independent variable.');
|
81
|
+
}
|
82
|
+
|
83
|
+
var result = new Array(yStride), x0 = xTable[0], x1 = xTable[1], i, y0, y1;
|
84
|
+
|
85
|
+
for (i = 0; i < yStride; i++) {
|
86
|
+
//calculates the interpolated values
|
87
|
+
|
88
|
+
y0 = yTable[i];
|
89
|
+
y1 = yTable[i + yStride];
|
90
|
+
|
91
|
+
result[i] = (((y1 - y0) * x) + (x1 * y0) - (x0 * y1)) / (x1 - x0);
|
92
|
+
}
|
93
|
+
|
94
|
+
return result;
|
95
|
+
};
|
96
|
+
|
97
|
+
return LinearApproximation;
|
98
|
+
});
|
@@ -0,0 +1,532 @@
|
|
1
|
+
/*global define*/
|
2
|
+
define([
|
3
|
+
'./defaultValue',
|
4
|
+
'./DeveloperError'
|
5
|
+
], function(
|
6
|
+
defaultValue,
|
7
|
+
DeveloperError) {
|
8
|
+
"use strict";
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Math functions.
|
12
|
+
* @exports CesiumMath
|
13
|
+
*/
|
14
|
+
var CesiumMath = {};
|
15
|
+
|
16
|
+
/**
|
17
|
+
* 0.1
|
18
|
+
* @constant
|
19
|
+
* @type Number
|
20
|
+
*/
|
21
|
+
CesiumMath.EPSILON1 = 0.1;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* 0.01
|
25
|
+
* @constant
|
26
|
+
* @type Number
|
27
|
+
*/
|
28
|
+
CesiumMath.EPSILON2 = 0.01;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* 0.001
|
32
|
+
* @constant
|
33
|
+
* @type Number
|
34
|
+
*/
|
35
|
+
CesiumMath.EPSILON3 = 0.001;
|
36
|
+
|
37
|
+
/**
|
38
|
+
* 0.0001
|
39
|
+
* @constant
|
40
|
+
* @type Number
|
41
|
+
*/
|
42
|
+
CesiumMath.EPSILON4 = 0.0001;
|
43
|
+
|
44
|
+
/**
|
45
|
+
* 0.00001
|
46
|
+
* @constant
|
47
|
+
* @type Number
|
48
|
+
*/
|
49
|
+
CesiumMath.EPSILON5 = 0.00001;
|
50
|
+
|
51
|
+
/**
|
52
|
+
* 0.000001
|
53
|
+
* @constant
|
54
|
+
* @type Number
|
55
|
+
*/
|
56
|
+
CesiumMath.EPSILON6 = 0.000001;
|
57
|
+
|
58
|
+
/**
|
59
|
+
* 0.0000001
|
60
|
+
* @constant
|
61
|
+
* @type Number
|
62
|
+
*/
|
63
|
+
CesiumMath.EPSILON7 = 0.0000001;
|
64
|
+
|
65
|
+
/**
|
66
|
+
* 0.00000001
|
67
|
+
* @constant
|
68
|
+
* @type Number
|
69
|
+
*/
|
70
|
+
CesiumMath.EPSILON8 = 0.00000001;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* 0.000000001
|
74
|
+
* @constant
|
75
|
+
* @type Number
|
76
|
+
*/
|
77
|
+
CesiumMath.EPSILON9 = 0.000000001;
|
78
|
+
|
79
|
+
/**
|
80
|
+
* 0.0000000001
|
81
|
+
* @constant
|
82
|
+
* @type Number
|
83
|
+
*/
|
84
|
+
CesiumMath.EPSILON10 = 0.0000000001;
|
85
|
+
|
86
|
+
/**
|
87
|
+
* 0.00000000001
|
88
|
+
* @constant
|
89
|
+
* @type Number
|
90
|
+
*/
|
91
|
+
CesiumMath.EPSILON11 = 0.00000000001;
|
92
|
+
|
93
|
+
/**
|
94
|
+
* 0.000000000001
|
95
|
+
* @constant
|
96
|
+
* @type Number
|
97
|
+
*/
|
98
|
+
CesiumMath.EPSILON12 = 0.000000000001;
|
99
|
+
|
100
|
+
/**
|
101
|
+
* 0.0000000000001
|
102
|
+
* @constant
|
103
|
+
* @type Number
|
104
|
+
*/
|
105
|
+
CesiumMath.EPSILON13 = 0.0000000000001;
|
106
|
+
|
107
|
+
/**
|
108
|
+
* 0.00000000000001
|
109
|
+
* @constant
|
110
|
+
* @type Number
|
111
|
+
*/
|
112
|
+
CesiumMath.EPSILON14 = 0.00000000000001;
|
113
|
+
|
114
|
+
/**
|
115
|
+
* 0.000000000000001
|
116
|
+
* @constant
|
117
|
+
* @type Number
|
118
|
+
*/
|
119
|
+
CesiumMath.EPSILON15 = 0.000000000000001;
|
120
|
+
|
121
|
+
/**
|
122
|
+
* 0.0000000000000001
|
123
|
+
* @constant
|
124
|
+
* @type Number
|
125
|
+
*/
|
126
|
+
CesiumMath.EPSILON16 = 0.0000000000000001;
|
127
|
+
|
128
|
+
/**
|
129
|
+
* 0.00000000000000001
|
130
|
+
* @constant
|
131
|
+
* @type Number
|
132
|
+
*/
|
133
|
+
CesiumMath.EPSILON17 = 0.00000000000000001;
|
134
|
+
|
135
|
+
/**
|
136
|
+
* 0.000000000000000001
|
137
|
+
* @constant
|
138
|
+
* @type Number
|
139
|
+
*/
|
140
|
+
CesiumMath.EPSILON18 = 0.000000000000000001;
|
141
|
+
|
142
|
+
/**
|
143
|
+
* 0.0000000000000000001
|
144
|
+
* @constant
|
145
|
+
* @type Number
|
146
|
+
*/
|
147
|
+
CesiumMath.EPSILON19 = 0.0000000000000000001;
|
148
|
+
|
149
|
+
/**
|
150
|
+
* 0.00000000000000000001
|
151
|
+
* @constant
|
152
|
+
* @type Number
|
153
|
+
*/
|
154
|
+
CesiumMath.EPSILON20 = 0.00000000000000000001;
|
155
|
+
|
156
|
+
/**
|
157
|
+
* 3.986004418e14
|
158
|
+
* @constant
|
159
|
+
* @type Number
|
160
|
+
*/
|
161
|
+
CesiumMath.GRAVITATIONALPARAMETER = 3.986004418e14;
|
162
|
+
|
163
|
+
/**
|
164
|
+
* Returns the sign of the value; 1 if the value is positive, -1 if the value is
|
165
|
+
* negative, or 0 if the value is 0.
|
166
|
+
*
|
167
|
+
* @param {Number} value The value to return the sign of.
|
168
|
+
*
|
169
|
+
* @return {Number} The sign of value.
|
170
|
+
*/
|
171
|
+
CesiumMath.sign = function(value) {
|
172
|
+
if (value > 0) {
|
173
|
+
return 1;
|
174
|
+
}
|
175
|
+
if (value < 0) {
|
176
|
+
return -1;
|
177
|
+
}
|
178
|
+
|
179
|
+
return 0;
|
180
|
+
};
|
181
|
+
|
182
|
+
/**
|
183
|
+
* Returns the hyperbolic sine of a {@code Number}.
|
184
|
+
* The hyperbolic sine of <em>value</em> is defined to be
|
185
|
+
* (<em>e<sup>x</sup> - e<sup>-x</sup></em>)/2.0
|
186
|
+
* where <i>e</i> is Euler's number, approximately 2.71828183.
|
187
|
+
*
|
188
|
+
* <p>Special cases:
|
189
|
+
* <ul>
|
190
|
+
* <li>If the argument is NaN, then the result is NaN.</li>
|
191
|
+
*
|
192
|
+
* <li>If the argument is infinite, then the result is an infinity
|
193
|
+
* with the same sign as the argument.</li>
|
194
|
+
*
|
195
|
+
* <li>If the argument is zero, then the result is a zero with the
|
196
|
+
* same sign as the argument.</li>
|
197
|
+
* </ul>
|
198
|
+
*</p>
|
199
|
+
*
|
200
|
+
* @param value The number whose hyperbolic sine is to be returned.
|
201
|
+
*
|
202
|
+
* @return The hyperbolic sine of {@code value}.
|
203
|
+
*
|
204
|
+
*/
|
205
|
+
CesiumMath.sinh = function(value) {
|
206
|
+
var part1 = Math.pow(Math.E, value);
|
207
|
+
var part2 = Math.pow(Math.E, -1.0 * value);
|
208
|
+
|
209
|
+
return (part1 - part2) * 0.5;
|
210
|
+
};
|
211
|
+
|
212
|
+
/**
|
213
|
+
* Returns the hyperbolic cosine of a {@code Number}.
|
214
|
+
* The hyperbolic cosine of <strong>value</strong> is defined to be
|
215
|
+
* (<em>e<sup>x</sup> + e<sup>-x</sup></em>)/2.0
|
216
|
+
* where <i>e</i> is Euler's number, approximately 2.71828183.
|
217
|
+
*
|
218
|
+
* <p>Special cases:
|
219
|
+
* <ul>
|
220
|
+
* <li>If the argument is NaN, then the result is NaN.</li>
|
221
|
+
*
|
222
|
+
* <li>If the argument is infinite, then the result is positive infinity.</li>
|
223
|
+
*
|
224
|
+
* <li>If the argument is zero, then the result is {@code 1.0}.</li>
|
225
|
+
* </ul>
|
226
|
+
*</p>
|
227
|
+
*
|
228
|
+
* @param value The number whose hyperbolic cosine is to be returned.
|
229
|
+
*
|
230
|
+
* @return The hyperbolic cosine of {@code value}.
|
231
|
+
*/
|
232
|
+
CesiumMath.cosh = function(value) {
|
233
|
+
var part1 = Math.pow(Math.E, value);
|
234
|
+
var part2 = Math.pow(Math.E, -1.0 * value);
|
235
|
+
|
236
|
+
return (part1 + part2) * 0.5;
|
237
|
+
};
|
238
|
+
|
239
|
+
/**
|
240
|
+
* DOC_TBA
|
241
|
+
*/
|
242
|
+
CesiumMath.lerp = function(p, q, time) {
|
243
|
+
return ((1.0 - time) * p) + (time * q);
|
244
|
+
};
|
245
|
+
|
246
|
+
/**
|
247
|
+
* 1/pi
|
248
|
+
*
|
249
|
+
* @constant
|
250
|
+
* @type {Number}
|
251
|
+
* @see czm_pi
|
252
|
+
*/
|
253
|
+
CesiumMath.PI = Math.PI;
|
254
|
+
|
255
|
+
/**
|
256
|
+
* 1/pi
|
257
|
+
*
|
258
|
+
* @constant
|
259
|
+
* @type {Number}
|
260
|
+
* @see czm_oneOverPi
|
261
|
+
*/
|
262
|
+
CesiumMath.ONE_OVER_PI = 1.0 / Math.PI;
|
263
|
+
|
264
|
+
/**
|
265
|
+
* pi/2
|
266
|
+
*
|
267
|
+
* @constant
|
268
|
+
* @type {Number}
|
269
|
+
* @see czm_piOverTwo
|
270
|
+
*/
|
271
|
+
CesiumMath.PI_OVER_TWO = Math.PI * 0.5;
|
272
|
+
|
273
|
+
/**
|
274
|
+
* pi/3
|
275
|
+
* <br /><br />
|
276
|
+
*
|
277
|
+
* @constant
|
278
|
+
* @type {Number}
|
279
|
+
* @see czm_piOverThree
|
280
|
+
*/
|
281
|
+
CesiumMath.PI_OVER_THREE = Math.PI / 3.0;
|
282
|
+
|
283
|
+
/**
|
284
|
+
* pi/4
|
285
|
+
*
|
286
|
+
* @constant
|
287
|
+
* @type {Number}
|
288
|
+
* @see czm_piOverFour
|
289
|
+
*/
|
290
|
+
CesiumMath.PI_OVER_FOUR = Math.PI / 4.0;
|
291
|
+
|
292
|
+
/**
|
293
|
+
* pi/6
|
294
|
+
*
|
295
|
+
* @constant
|
296
|
+
* @type {Number}
|
297
|
+
* @see czm_piOverSix
|
298
|
+
*/
|
299
|
+
CesiumMath.PI_OVER_SIX = Math.PI / 6.0;
|
300
|
+
|
301
|
+
/**
|
302
|
+
* 3pi/2
|
303
|
+
*
|
304
|
+
* @constant
|
305
|
+
* @type {Number}
|
306
|
+
* @see czm_threePiOver2
|
307
|
+
*/
|
308
|
+
CesiumMath.THREE_PI_OVER_TWO = (3.0 * Math.PI) * 0.5;
|
309
|
+
|
310
|
+
/**
|
311
|
+
* 2pi
|
312
|
+
*
|
313
|
+
* @constant
|
314
|
+
* @type {Number}
|
315
|
+
* @see czm_twoPi
|
316
|
+
*/
|
317
|
+
CesiumMath.TWO_PI = 2.0 * Math.PI;
|
318
|
+
|
319
|
+
/**
|
320
|
+
* 1/2pi
|
321
|
+
*
|
322
|
+
* @constant
|
323
|
+
* @type {Number}
|
324
|
+
* @see czm_oneOverTwoPi
|
325
|
+
*/
|
326
|
+
CesiumMath.ONE_OVER_TWO_PI = 1.0 / (2.0 * Math.PI);
|
327
|
+
|
328
|
+
/**
|
329
|
+
* The number of radians in a degree.
|
330
|
+
*
|
331
|
+
* @constant
|
332
|
+
* @type {Number}
|
333
|
+
* @see czm_radiansPerDegree
|
334
|
+
*/
|
335
|
+
CesiumMath.RADIANS_PER_DEGREE = Math.PI / 180.0;
|
336
|
+
|
337
|
+
/**
|
338
|
+
* The number of degrees in a radian.
|
339
|
+
*
|
340
|
+
* @constant
|
341
|
+
* @type {Number}
|
342
|
+
* @see czm_degreesPerRadian
|
343
|
+
*/
|
344
|
+
CesiumMath.DEGREES_PER_RADIAN = 180.0 / Math.PI;
|
345
|
+
|
346
|
+
/**
|
347
|
+
* The number of radians in an arc second.
|
348
|
+
*
|
349
|
+
* @constant
|
350
|
+
* @type {Number}
|
351
|
+
* @see czm_radiansPerArcSecond
|
352
|
+
*/
|
353
|
+
CesiumMath.RADIANS_PER_ARCSECOND = CesiumMath.RADIANS_PER_DEGREE / 3600.0;
|
354
|
+
|
355
|
+
/**
|
356
|
+
* Converts degrees to radians.
|
357
|
+
* @param {Number} degrees The angle to convert in degrees.
|
358
|
+
* @return {Number} The corresponding angle in radians.
|
359
|
+
*/
|
360
|
+
CesiumMath.toRadians = function(degrees) {
|
361
|
+
return degrees * CesiumMath.RADIANS_PER_DEGREE;
|
362
|
+
};
|
363
|
+
|
364
|
+
/**
|
365
|
+
* Converts radians to degrees.
|
366
|
+
* @param {Number} radians The angle to convert in radians.
|
367
|
+
* @return {Number} The corresponding angle in degrees.
|
368
|
+
*/
|
369
|
+
CesiumMath.toDegrees = function(radians) {
|
370
|
+
return radians * CesiumMath.DEGREES_PER_RADIAN;
|
371
|
+
};
|
372
|
+
|
373
|
+
/**
|
374
|
+
* Converts a longitude value, in radians, to the range [<code>-Math.PI</code>, <code>Math.PI</code>).
|
375
|
+
*
|
376
|
+
* @param {Number} angle The longitude value, in radians, to convert to the range [<code>-Math.PI</code>, <code>Math.PI</code>).
|
377
|
+
*
|
378
|
+
* @return {Number} The equivalent longitude value in the range [<code>-Math.PI</code>, <code>Math.PI</code>).
|
379
|
+
*
|
380
|
+
* @example
|
381
|
+
* // Convert 270 degrees to -90 degrees longitude
|
382
|
+
* var longitude = CesiumMath.convertLongitudeRange(CesiumMath.toRadians(270.0));
|
383
|
+
*/
|
384
|
+
CesiumMath.convertLongitudeRange = function(angle) {
|
385
|
+
var twoPi = CesiumMath.TWO_PI;
|
386
|
+
|
387
|
+
var simplified = angle - Math.floor(angle / twoPi) * twoPi;
|
388
|
+
|
389
|
+
if (simplified < -Math.PI) {
|
390
|
+
return simplified + twoPi;
|
391
|
+
}
|
392
|
+
if (simplified >= Math.PI) {
|
393
|
+
return simplified - twoPi;
|
394
|
+
}
|
395
|
+
|
396
|
+
return simplified;
|
397
|
+
};
|
398
|
+
|
399
|
+
/**
|
400
|
+
* Alters the value of input x such that <code>-CesiumMath.PI</code> <= x <= <code>CesiumMath.PI</code>
|
401
|
+
* @param {Number} angle in radians
|
402
|
+
* @return {Number} The angle in the range ()<code>-CesiumMath.PI</code>, <code>CesiumMath.PI</code>).
|
403
|
+
*/
|
404
|
+
CesiumMath.negativePiToPi = function(x) {
|
405
|
+
var epsilon10 = CesiumMath.EPSILON10;
|
406
|
+
var pi = CesiumMath.PI;
|
407
|
+
var two_pi = CesiumMath.TWO_PI;
|
408
|
+
while (x < -(pi + epsilon10)) {
|
409
|
+
x += two_pi;
|
410
|
+
}
|
411
|
+
if (x < -pi) {
|
412
|
+
return -pi;
|
413
|
+
}
|
414
|
+
while (x > pi + epsilon10) {
|
415
|
+
x -= two_pi;
|
416
|
+
}
|
417
|
+
return x > pi ? pi : x;
|
418
|
+
};
|
419
|
+
|
420
|
+
/**
|
421
|
+
* DOC_TBA
|
422
|
+
*/
|
423
|
+
CesiumMath.equalsEpsilon = function(left, right, epsilon) {
|
424
|
+
epsilon = epsilon || 0.0;
|
425
|
+
return Math.abs(left - right) <= epsilon;
|
426
|
+
};
|
427
|
+
|
428
|
+
var factorials = [1];
|
429
|
+
|
430
|
+
/**
|
431
|
+
* Computes the factorial of the provided number.
|
432
|
+
*
|
433
|
+
* @memberof CesiumMath
|
434
|
+
*
|
435
|
+
* @param {Number} n The number whose factorial is to be computed.
|
436
|
+
*
|
437
|
+
* @return {Number} The factorial of the provided number or undefined if the number is less than 0.
|
438
|
+
*
|
439
|
+
* @see <a href='http://en.wikipedia.org/wiki/Factorial'>Factorial on Wikipedia</a>.
|
440
|
+
*
|
441
|
+
* @example
|
442
|
+
* //Compute 7!, which is equal to 5040
|
443
|
+
* var computedFactorial = CesiumMath.factorial(7);
|
444
|
+
*
|
445
|
+
* @exception {DeveloperError} A number greater than or equal to 0 is required.
|
446
|
+
*/
|
447
|
+
CesiumMath.factorial = function(n) {
|
448
|
+
if (typeof n !== 'number' || n < 0) {
|
449
|
+
throw new DeveloperError('A number greater than or equal to 0 is required.');
|
450
|
+
}
|
451
|
+
|
452
|
+
var length = factorials.length;
|
453
|
+
if (n >= length) {
|
454
|
+
var sum = factorials[length - 1];
|
455
|
+
for ( var i = length; i <= n; i++) {
|
456
|
+
factorials.push(sum * i);
|
457
|
+
}
|
458
|
+
}
|
459
|
+
return factorials[n];
|
460
|
+
};
|
461
|
+
|
462
|
+
/**
|
463
|
+
* Increments a number with a wrapping to a minimum value if the number exceeds the maximum value.
|
464
|
+
*
|
465
|
+
* @memberof CesiumMath
|
466
|
+
*
|
467
|
+
* @param {Number} [n] The number to be incremented.
|
468
|
+
* @param {Number} [maximumValue] The maximum incremented value before rolling over to the minimum value.
|
469
|
+
* @param {Number} [minimumValue=0.0] The number reset to after the maximum value has been exceeded.
|
470
|
+
*
|
471
|
+
* @return {Number} The incremented number.
|
472
|
+
*
|
473
|
+
* @example
|
474
|
+
* var n = CesiumMath.incrementWrap(5, 10, 0); // returns 6
|
475
|
+
* var n = CesiumMath.incrementWrap(10, 10, 0); // returns 0
|
476
|
+
*
|
477
|
+
* @exception {DeveloperError} Maximum value must be greater than minimum value.
|
478
|
+
*/
|
479
|
+
CesiumMath.incrementWrap = function(n, maximumValue, minimumValue) {
|
480
|
+
minimumValue = defaultValue(minimumValue, 0.0);
|
481
|
+
|
482
|
+
if (maximumValue <= minimumValue) {
|
483
|
+
throw new DeveloperError('Maximum value must be greater than minimum value.');
|
484
|
+
}
|
485
|
+
|
486
|
+
++n;
|
487
|
+
if (n > maximumValue) {
|
488
|
+
n = minimumValue;
|
489
|
+
}
|
490
|
+
return n;
|
491
|
+
};
|
492
|
+
|
493
|
+
/**
|
494
|
+
* Determines if a positive integer is a power of two.
|
495
|
+
*
|
496
|
+
* @memberof CesiumMath
|
497
|
+
*
|
498
|
+
* @param {Number} n The positive integer to test.
|
499
|
+
*
|
500
|
+
* @return {Boolean} <code>true</code> if the number if a power of two; otherwise, <code>false</code>.
|
501
|
+
*
|
502
|
+
* @example
|
503
|
+
* var t = CesiumMath.isPowerOfTwo(16); // true
|
504
|
+
* var f = CesiumMath.isPowerOfTwo(20); // false
|
505
|
+
*
|
506
|
+
* @exception {DeveloperError} A number greater than or equal to 0 is required.
|
507
|
+
*/
|
508
|
+
CesiumMath.isPowerOfTwo = function(n) {
|
509
|
+
if (typeof n !== 'number' || n < 0) {
|
510
|
+
throw new DeveloperError('A number greater than or equal to 0 is required.');
|
511
|
+
}
|
512
|
+
|
513
|
+
var m = n | 0;
|
514
|
+
return (m !== 0) && ((m & (m - 1)) === 0);
|
515
|
+
};
|
516
|
+
|
517
|
+
/**
|
518
|
+
* Constraint a value to lie between two values.
|
519
|
+
*
|
520
|
+
* @memberof CesiumMath
|
521
|
+
*
|
522
|
+
* @param {Number} value The value to constrain.
|
523
|
+
* @param {Number} min The minimum value.
|
524
|
+
* @param {Number} max The maximum value.
|
525
|
+
* @returns The value clamped so that min <= value <= max.
|
526
|
+
*/
|
527
|
+
CesiumMath.clamp = function(value, min, max) {
|
528
|
+
return value < min ? min : value > max ? max : value;
|
529
|
+
};
|
530
|
+
|
531
|
+
return CesiumMath;
|
532
|
+
});
|