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,131 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'require',
|
|
4
|
+
'./buildModuleUrl',
|
|
5
|
+
'./defaultValue',
|
|
6
|
+
'../ThirdParty/when'
|
|
7
|
+
], function(
|
|
8
|
+
require,
|
|
9
|
+
buildModuleUrl,
|
|
10
|
+
defaultValue,
|
|
11
|
+
when) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
function completeTask(processor, event) {
|
|
15
|
+
--processor._activeTasks;
|
|
16
|
+
|
|
17
|
+
var data = event.data;
|
|
18
|
+
var id = data.id;
|
|
19
|
+
var result = data.result;
|
|
20
|
+
|
|
21
|
+
var deferreds = processor._deferreds;
|
|
22
|
+
var deferred = deferreds[id];
|
|
23
|
+
|
|
24
|
+
deferred.resolve(result);
|
|
25
|
+
|
|
26
|
+
delete deferreds[id];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var bootstrapperUrl = buildModuleUrl('Workers/cesiumWorkerBootstrapper.js');
|
|
30
|
+
|
|
31
|
+
function createWorker(processor) {
|
|
32
|
+
var worker = new Worker(bootstrapperUrl);
|
|
33
|
+
worker.postMessage = defaultValue(worker.webkitPostMessage, worker.postMessage);
|
|
34
|
+
|
|
35
|
+
//bootstrap
|
|
36
|
+
var bootstrapMessage = {
|
|
37
|
+
loaderConfig : {},
|
|
38
|
+
workerModule : 'Workers/' + processor._workerName
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (typeof require.toUrl !== 'undefined') {
|
|
42
|
+
bootstrapMessage.loaderConfig.baseUrl = '..';
|
|
43
|
+
} else {
|
|
44
|
+
bootstrapMessage.loaderConfig.paths = {
|
|
45
|
+
'Workers' : '.'
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
worker.postMessage(bootstrapMessage);
|
|
50
|
+
|
|
51
|
+
worker.onmessage = function(event) {
|
|
52
|
+
completeTask(processor, event);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
processor._worker = worker;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* A wrapper around a web worker that allows scheduling tasks for a given worker,
|
|
60
|
+
* returning results asynchronously via a promise.
|
|
61
|
+
*
|
|
62
|
+
* The Worker is not constructed until a task is scheduled.
|
|
63
|
+
*
|
|
64
|
+
* @alias TaskProcessor
|
|
65
|
+
* @constructor
|
|
66
|
+
*
|
|
67
|
+
* @param {String} workerName The name of the worker. This is expected to be a script
|
|
68
|
+
* in the Workers folder.
|
|
69
|
+
* @param {Number} [maximumActiveTasks=5] The maximum number of active tasks. Once exceeded,
|
|
70
|
+
* scheduleTask will not queue any more tasks, allowing
|
|
71
|
+
* work to be rescheduled in future frames.
|
|
72
|
+
*/
|
|
73
|
+
var TaskProcessor = function(workerName, maximumActiveTasks) {
|
|
74
|
+
this._workerName = workerName;
|
|
75
|
+
this._maximumActiveTasks = defaultValue(maximumActiveTasks, 5);
|
|
76
|
+
this._activeTasks = 0;
|
|
77
|
+
this._deferreds = {};
|
|
78
|
+
this._nextID = 0;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Schedule a task to be processed by the web worker asynchronously. If there are currently more
|
|
83
|
+
* tasks active than the maximum set by the constructor, will immediately return undefined.
|
|
84
|
+
* Otherwise, returns a promise that will resolve to the result posted back by the worker when
|
|
85
|
+
* finished.
|
|
86
|
+
*
|
|
87
|
+
* @param {*} parameters Any input data that will be posted to the worker.
|
|
88
|
+
* @param {Array} [transferableObjects] An array of objects contained in parameters that should be
|
|
89
|
+
* transferred to the worker instead of copied.
|
|
90
|
+
* @returns {Promise} Either a promise that will resolve to the result when available, or undefined
|
|
91
|
+
* if there are too many active tasks,
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* var taskProcessor = new TaskProcessor('myWorkerName');
|
|
95
|
+
* var promise = taskProcessor.scheduleTask({
|
|
96
|
+
* someParameter : true,
|
|
97
|
+
* another : 'hello'
|
|
98
|
+
* });
|
|
99
|
+
* if (typeof promise === 'undefined') {
|
|
100
|
+
* // too many active tasks - try again later
|
|
101
|
+
* } else {
|
|
102
|
+
* when(promise, function(result) {
|
|
103
|
+
* // use the result of the task
|
|
104
|
+
* });
|
|
105
|
+
* }
|
|
106
|
+
*/
|
|
107
|
+
TaskProcessor.prototype.scheduleTask = function(parameters, transferableObjects) {
|
|
108
|
+
if (typeof this._worker === 'undefined') {
|
|
109
|
+
createWorker(this);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (this._activeTasks >= this._maximumActiveTasks) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
++this._activeTasks;
|
|
117
|
+
|
|
118
|
+
var id = this._nextID++;
|
|
119
|
+
var deferred = when.defer();
|
|
120
|
+
this._deferreds[id] = deferred;
|
|
121
|
+
|
|
122
|
+
this._worker.postMessage({
|
|
123
|
+
id : id,
|
|
124
|
+
parameters : parameters
|
|
125
|
+
}, transferableObjects);
|
|
126
|
+
|
|
127
|
+
return deferred.promise;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
return TaskProcessor;
|
|
131
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Constants for time conversions like those done by {@link JulianDate}.
|
|
7
|
+
*
|
|
8
|
+
* @exports TimeConstants
|
|
9
|
+
*
|
|
10
|
+
* @see JulianDate
|
|
11
|
+
*/
|
|
12
|
+
var TimeConstants = {
|
|
13
|
+
/**
|
|
14
|
+
* The number of seconds in one millisecond: <code>0.001</code>
|
|
15
|
+
* @constant
|
|
16
|
+
* @type {Number}
|
|
17
|
+
*/
|
|
18
|
+
SECONDS_PER_MILLISECOND : 0.001,
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The number of seconds in one minute: <code>60</code>.
|
|
22
|
+
* @constant
|
|
23
|
+
* @type {Number}
|
|
24
|
+
*/
|
|
25
|
+
SECONDS_PER_MINUTE : 60.0,
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The number of minutes in one hour: <code>60</code>.
|
|
29
|
+
* @constant
|
|
30
|
+
* @type {Number}
|
|
31
|
+
*/
|
|
32
|
+
MINUTES_PER_HOUR : 60.0,
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The number of hours in one day: <code>24</code>.
|
|
36
|
+
* @constant
|
|
37
|
+
* @type {Number}
|
|
38
|
+
*/
|
|
39
|
+
HOURS_PER_DAY : 24.0,
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The number of seconds in one hour: <code>3600</code>.
|
|
43
|
+
* @constant
|
|
44
|
+
* @type {Number}
|
|
45
|
+
*/
|
|
46
|
+
SECONDS_PER_HOUR : 3600.0,
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The number of minutes in one day: <code>1440</code>.
|
|
50
|
+
* @constant
|
|
51
|
+
* @type {Number}
|
|
52
|
+
*/
|
|
53
|
+
MINUTES_PER_DAY : 1440.0,
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The number of seconds in one day, ignoring leap seconds: <code>86400</code>.
|
|
57
|
+
* @constant
|
|
58
|
+
* @type {Number}
|
|
59
|
+
*/
|
|
60
|
+
SECONDS_PER_DAY : 86400.0,
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The number of days in one Julian century: <code>36525</code>.
|
|
64
|
+
* @constant
|
|
65
|
+
* @type {Number}
|
|
66
|
+
*/
|
|
67
|
+
DAYS_PER_JULIAN_CENTURY : 36525.0,
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* One trillionth of a second.
|
|
71
|
+
* @constant
|
|
72
|
+
* @type {Number}
|
|
73
|
+
*/
|
|
74
|
+
PICOSECOND : 0.000000001,
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* DOC_TBA
|
|
78
|
+
* @constant
|
|
79
|
+
* @type {Number}
|
|
80
|
+
*/
|
|
81
|
+
MODIFIED_JULIAN_DATE_DIFFERENCE : 2400000.5
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return TimeConstants;
|
|
85
|
+
});
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DeveloperError',
|
|
4
|
+
'./freezeObject',
|
|
5
|
+
'./JulianDate',
|
|
6
|
+
'./TimeStandard'
|
|
7
|
+
], function(
|
|
8
|
+
DeveloperError,
|
|
9
|
+
freezeObject,
|
|
10
|
+
JulianDate,
|
|
11
|
+
TimeStandard) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* An interval defined by a start date and a stop date. The end points are optionally included
|
|
16
|
+
* in the interval. The interval should be treated as immutable.
|
|
17
|
+
*
|
|
18
|
+
* @alias TimeInterval
|
|
19
|
+
* @constructor
|
|
20
|
+
*
|
|
21
|
+
* @param {JulianDate} start The start date of the interval.
|
|
22
|
+
* @param {JulianDate} stop The stop date of the interval.
|
|
23
|
+
* @param {Boolean} [isStartIncluded=true] <code>true</code> if the start date is included in the interval, <code>false</code> otherwise.
|
|
24
|
+
* @param {Boolean} [isStopIncluded=true] <code>true</code> if the stop date is included in the interval, <code>false</code> otherwise.
|
|
25
|
+
* @param {Object} [data The data associated with this interval.
|
|
26
|
+
*
|
|
27
|
+
* @exception {DeveloperError} start must be specified.
|
|
28
|
+
* @exception {DeveloperError} stop must be specified.
|
|
29
|
+
*
|
|
30
|
+
* @see TimeInterval.fromIso8601
|
|
31
|
+
* @see TimeIntervalCollection
|
|
32
|
+
* @see JulianDate
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // Construct an Timeinterval closed on one end with a Color payload.
|
|
36
|
+
* var interval = new TimeInterval(JulianDate.fromTotalDays(1000), JulianDate.fromTotalDays(1001), true, false, Color.WHITE);
|
|
37
|
+
*/
|
|
38
|
+
var TimeInterval = function(start, stop, isStartIncluded, isStopIncluded, data) {
|
|
39
|
+
if (typeof start === 'undefined') {
|
|
40
|
+
throw new DeveloperError('start must be specified.');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (typeof stop === 'undefined') {
|
|
44
|
+
throw new DeveloperError('stop must be specified.');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (typeof isStartIncluded === 'undefined') {
|
|
48
|
+
isStartIncluded = true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (typeof isStopIncluded === 'undefined') {
|
|
52
|
+
isStopIncluded = true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var stopComparedToStart = JulianDate.compare(stop, start);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The start time of the interval.
|
|
59
|
+
*/
|
|
60
|
+
this.start = start;
|
|
61
|
+
/**
|
|
62
|
+
* The stop time of the interval.
|
|
63
|
+
*/
|
|
64
|
+
this.stop = stop;
|
|
65
|
+
/**
|
|
66
|
+
* The data associated with this interval.
|
|
67
|
+
*/
|
|
68
|
+
this.data = data;
|
|
69
|
+
/**
|
|
70
|
+
* Indicates if <code>start</code> is included in the interval or not.
|
|
71
|
+
*/
|
|
72
|
+
this.isStartIncluded = isStartIncluded;
|
|
73
|
+
/**
|
|
74
|
+
* Indicates if <code>stop</code> is included in the interval or not.
|
|
75
|
+
*/
|
|
76
|
+
this.isStopIncluded = isStopIncluded;
|
|
77
|
+
/**
|
|
78
|
+
* Indicates if the interval is empty.
|
|
79
|
+
*/
|
|
80
|
+
this.isEmpty = stopComparedToStart < 0 || (stopComparedToStart === 0 && (!isStartIncluded || !isStopIncluded));
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Creates an immutable TimeInterval from an ISO 8601 interval string.
|
|
85
|
+
*
|
|
86
|
+
* @memberof TimeInterval
|
|
87
|
+
*
|
|
88
|
+
* @param {String} iso8601String A valid ISO8601 interval.
|
|
89
|
+
* @param {Boolean} [isStartIncluded=true] <code>true</code> if the start date is included in the interval, <code>false</code> otherwise.
|
|
90
|
+
* @param {Boolean} [isStopIncluded=true] <code>true</code> if the stop date is included in the interval, <code>false</code> otherwise.
|
|
91
|
+
* @param {Object} [data] The data associated with this interval.
|
|
92
|
+
*
|
|
93
|
+
* @return {TimeInterval} The new {@Link TimeInterval} instance or <code>undefined</code> if an invalid ISO8601 string is provided.
|
|
94
|
+
*
|
|
95
|
+
* @see TimeInterval
|
|
96
|
+
* @see TimeIntervalCollection
|
|
97
|
+
* @see JulianDate
|
|
98
|
+
* @see <a href='http://en.wikipedia.org/wiki/ISO_8601'>ISO 8601 on Wikipedia</a>.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* // Construct an open Timeinterval with a Cartesian data payload.
|
|
102
|
+
* var interval = TimeInterval.fromIso8601('2012-03-15T11:02:24.55Z/2012-03-15T12:28:24.03Z', false, false, new Cartesian3(1,2,3));
|
|
103
|
+
*/
|
|
104
|
+
TimeInterval.fromIso8601 = function(iso8601String, isStartIncluded, isStopIncluded, data) {
|
|
105
|
+
var iso8601Interval = iso8601String.split('/');
|
|
106
|
+
var intervalStart = JulianDate.fromIso8601(iso8601Interval[0]);
|
|
107
|
+
var intervalStop = JulianDate.fromIso8601(iso8601Interval[1]);
|
|
108
|
+
return new TimeInterval(intervalStart, intervalStop, isStartIncluded, isStopIncluded, data);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Compares the provided TimeIntervals componentwise and returns
|
|
113
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
114
|
+
* @memberof TimeInterval
|
|
115
|
+
*
|
|
116
|
+
* @param {TimeInterval} [left] The first Cartesian.
|
|
117
|
+
* @param {TimeInterval} [right] The second Cartesian.
|
|
118
|
+
* @return {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
|
|
119
|
+
*/
|
|
120
|
+
TimeInterval.equals = function(left, right) {
|
|
121
|
+
return left === right ||
|
|
122
|
+
typeof left !== 'undefined' &&
|
|
123
|
+
typeof right !== 'undefined' &&
|
|
124
|
+
(left.isEmpty && right.isEmpty ||
|
|
125
|
+
left.isStartIncluded === right.isStartIncluded &&
|
|
126
|
+
left.isStopIncluded === right.isStopIncluded &&
|
|
127
|
+
left.start.equals(right.start) &&
|
|
128
|
+
left.stop.equals(right.stop));
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Compares the provided TimeIntervals componentwise and returns
|
|
133
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
134
|
+
* <code>false</code> otherwise.
|
|
135
|
+
* @memberof TimeInterval
|
|
136
|
+
*
|
|
137
|
+
* @param {TimeInterval} [left] The first TimeInterval.
|
|
138
|
+
* @param {TimeInterval} [right] The second TimeInterval.
|
|
139
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
140
|
+
*
|
|
141
|
+
* @return {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
|
|
142
|
+
*
|
|
143
|
+
* @exception {DeveloperError} epsilon is required and must be number.
|
|
144
|
+
*/
|
|
145
|
+
TimeInterval.equalsEpsilon = function(left, right, epsilon) {
|
|
146
|
+
if (typeof epsilon !== 'number') {
|
|
147
|
+
throw new DeveloperError('epsilon is required and must be a number.');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return left === right ||
|
|
151
|
+
typeof left !== 'undefined' &&
|
|
152
|
+
typeof right !== 'undefined' &&
|
|
153
|
+
(left.isEmpty && right.isEmpty ||
|
|
154
|
+
left.isStartIncluded === right.isStartIncluded &&
|
|
155
|
+
left.isStopIncluded === right.isStopIncluded &&
|
|
156
|
+
left.start.equalsEpsilon(right.start, epsilon) &&
|
|
157
|
+
left.stop.equalsEpsilon(right.stop, epsilon));
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Creates a copy of this TimeInterval.
|
|
162
|
+
*
|
|
163
|
+
* @returns A new TimeInterval that is equal to this interval.
|
|
164
|
+
*
|
|
165
|
+
* @memberof TimeInterval
|
|
166
|
+
*/
|
|
167
|
+
TimeInterval.prototype.clone = function() {
|
|
168
|
+
return new TimeInterval(this.start, this.stop, this.isStartIncluded, this.isStopIncluded, this.data);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* An empty interval.
|
|
173
|
+
*
|
|
174
|
+
* @memberof TimeInterval
|
|
175
|
+
*/
|
|
176
|
+
TimeInterval.EMPTY = freezeObject(new TimeInterval(new JulianDate(0, 0, TimeStandard.TAI), new JulianDate(0, 0, TimeStandard.TAI), false, false));
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Computes an interval which is the intersection of this interval with another while
|
|
180
|
+
* also providing a means to merge the data of the two intervals.
|
|
181
|
+
*
|
|
182
|
+
* @param {TimeInterval} other The interval to intersect with this interval.
|
|
183
|
+
* @param {Function} [mergeCallback] A callback which takes the data property from
|
|
184
|
+
* both intervals as input and merges it into a single new value. If the callback is undefined,
|
|
185
|
+
* this will intersect the two intervals and return the new interval with the data from this
|
|
186
|
+
* interval.
|
|
187
|
+
*
|
|
188
|
+
* @return {TimeInterval} The new {@Link TimeInterval} that is the intersection of the two intervals,
|
|
189
|
+
* with its data representing the merge of the data in the two existing intervals.
|
|
190
|
+
*/
|
|
191
|
+
TimeInterval.prototype.intersect = function(other, mergeCallback) {
|
|
192
|
+
if (typeof other === 'undefined') {
|
|
193
|
+
return TimeInterval.EMPTY;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
var otherStart = other.start;
|
|
197
|
+
var otherStop = other.stop;
|
|
198
|
+
var otherIsStartIncluded = other.isStartIncluded;
|
|
199
|
+
var otherIsStopIncluded = other.isStopIncluded;
|
|
200
|
+
|
|
201
|
+
var thisStart = this.start;
|
|
202
|
+
var thisStop = this.stop;
|
|
203
|
+
var thisIsStartIncluded = this.isStartIncluded;
|
|
204
|
+
var thisIsStopIncluded = this.isStopIncluded;
|
|
205
|
+
|
|
206
|
+
var outputData;
|
|
207
|
+
var isStartIncluded;
|
|
208
|
+
var isStopIncluded;
|
|
209
|
+
|
|
210
|
+
if (otherStart.greaterThanOrEquals(thisStart) && thisStop.greaterThanOrEquals(otherStart)) {
|
|
211
|
+
|
|
212
|
+
isStartIncluded = (!otherStart.equals(thisStart) && otherIsStartIncluded) || (thisIsStartIncluded && otherIsStartIncluded);
|
|
213
|
+
|
|
214
|
+
isStopIncluded = thisIsStopIncluded && otherIsStopIncluded;
|
|
215
|
+
|
|
216
|
+
outputData = typeof mergeCallback !== 'undefined' ? mergeCallback(this.data, other.data) : this.data;
|
|
217
|
+
|
|
218
|
+
if (thisStop.greaterThanOrEquals(otherStop)) {
|
|
219
|
+
isStopIncluded = isStopIncluded || (!otherStop.equals(thisStop) && otherIsStopIncluded);
|
|
220
|
+
return new TimeInterval(otherStart, otherStop, isStartIncluded, isStopIncluded, outputData);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
isStopIncluded = isStopIncluded || thisIsStopIncluded;
|
|
224
|
+
return new TimeInterval(otherStart, thisStop, isStartIncluded, isStopIncluded, outputData);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if (otherStart.lessThanOrEquals(thisStart) && thisStart.lessThanOrEquals(otherStop)) {
|
|
228
|
+
|
|
229
|
+
isStartIncluded = (otherStart.equals(thisStart) === false && thisIsStartIncluded) || (thisIsStartIncluded && otherIsStartIncluded);
|
|
230
|
+
|
|
231
|
+
isStopIncluded = thisIsStopIncluded && otherIsStopIncluded;
|
|
232
|
+
|
|
233
|
+
outputData = typeof mergeCallback !== 'undefined' ? mergeCallback(this.data, other.data) : this.data;
|
|
234
|
+
if (thisStop.greaterThanOrEquals(otherStop)) {
|
|
235
|
+
isStopIncluded = isStopIncluded || (otherStop.equals(thisStop) === false && otherIsStopIncluded);
|
|
236
|
+
return new TimeInterval(thisStart, otherStop, isStartIncluded, isStopIncluded, outputData);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
isStopIncluded = isStopIncluded || thisIsStopIncluded;
|
|
240
|
+
return new TimeInterval(thisStart, thisStop, isStartIncluded, isStopIncluded, outputData);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return TimeInterval.EMPTY;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Returns <code>true</code> if this interval contains the specified date.
|
|
248
|
+
*
|
|
249
|
+
* @memberof TimeInterval
|
|
250
|
+
*
|
|
251
|
+
* @param {JulianDate} date The date to check for.
|
|
252
|
+
*
|
|
253
|
+
* @return {Boolean} <code>true</code> if the TimeInterval contains the specified date, <code>false</code> otherwise.
|
|
254
|
+
*/
|
|
255
|
+
TimeInterval.prototype.contains = function(date) {
|
|
256
|
+
if (this.isEmpty) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
var startComparedToDate = JulianDate.compare(this.start, date);
|
|
261
|
+
// if (start == date)
|
|
262
|
+
if (startComparedToDate === 0) {
|
|
263
|
+
return this.isStartIncluded;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
var dateComparedToStop = JulianDate.compare(date, this.stop);
|
|
267
|
+
// if (date == stop)
|
|
268
|
+
if (dateComparedToStop === 0) {
|
|
269
|
+
return this.isStopIncluded;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// return start < date && date < stop
|
|
273
|
+
return startComparedToDate < 0 && dateComparedToStop < 0;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Compares this TimeInterval against the provided TimeInterval componentwise and returns
|
|
278
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
279
|
+
* @memberof TimeInterval
|
|
280
|
+
*
|
|
281
|
+
* @param {TimeInterval} [right] The right hand side Cartesian.
|
|
282
|
+
* @return {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
283
|
+
*/
|
|
284
|
+
TimeInterval.prototype.equals = function(other) {
|
|
285
|
+
return TimeInterval.equals(this, other);
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Compares this TimeInterval against the provided TimeInterval componentwise and returns
|
|
290
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
291
|
+
* <code>false</code> otherwise.
|
|
292
|
+
* @memberof TimeInterval
|
|
293
|
+
*
|
|
294
|
+
* @param {TimeInterval} [right] The right hand side Cartesian.
|
|
295
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
296
|
+
* @return {Boolean} <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
|
|
297
|
+
*
|
|
298
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
299
|
+
*/
|
|
300
|
+
TimeInterval.prototype.equalsEpsilon = function(other, epsilon) {
|
|
301
|
+
return TimeInterval.equalsEpsilon(this, other, epsilon);
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
return TimeInterval;
|
|
305
|
+
});
|