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,74 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'../ThirdParty/when'
|
|
5
|
+
], function(
|
|
6
|
+
defaultValue,
|
|
7
|
+
when) {
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
var maximumRequestsPerServer = 6;
|
|
11
|
+
var activeRequests = {};
|
|
12
|
+
var anchor;
|
|
13
|
+
|
|
14
|
+
function getServer(url) {
|
|
15
|
+
if (typeof anchor === 'undefined') {
|
|
16
|
+
anchor = document.createElement('a');
|
|
17
|
+
}
|
|
18
|
+
anchor.href = url;
|
|
19
|
+
return anchor.hostname + '%' + anchor.port;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Because browsers throttle the number of parallel requests allowed to each server,
|
|
24
|
+
* this function tracks the number of active requests that have been made, and
|
|
25
|
+
* returns undefined immediately if the request would exceed the maximum, allowing
|
|
26
|
+
* the caller to retry later.
|
|
27
|
+
*
|
|
28
|
+
* @exports throttleRequestByServer
|
|
29
|
+
*
|
|
30
|
+
* @param {String} url The URL to request.
|
|
31
|
+
* @param {Function} requestFunction The actual function that makes the request.
|
|
32
|
+
* This function is expected to return a Promise for the requested data.
|
|
33
|
+
*
|
|
34
|
+
* @return {Promise} Either undefined, meaning the request would exceed the maximum
|
|
35
|
+
* number of parallel requests, or a Promise that returns the requested data.
|
|
36
|
+
*
|
|
37
|
+
* @see <a href='http://wiki.commonjs.org/wiki/Promises/A'>CommonJS Promises/A</a>
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // throttle requests for an image
|
|
41
|
+
* var promise = throttleRequestsByServer(
|
|
42
|
+
* 'http://madeupserver.agi.com/myImage.png',
|
|
43
|
+
* function(url) {
|
|
44
|
+
* return loadImage(url);
|
|
45
|
+
* });
|
|
46
|
+
* if (typeof promise === 'undefined') {
|
|
47
|
+
* // too many active requests, try again later.
|
|
48
|
+
* } else {
|
|
49
|
+
* when(promise, function(image) {
|
|
50
|
+
* // handle loaded image
|
|
51
|
+
* });
|
|
52
|
+
* }
|
|
53
|
+
*/
|
|
54
|
+
function throttleRequestByServer(url, requestFunction) {
|
|
55
|
+
var server = getServer(url);
|
|
56
|
+
|
|
57
|
+
var activeRequestsForServer = defaultValue(activeRequests[server], 0);
|
|
58
|
+
if (activeRequestsForServer > maximumRequestsPerServer) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
activeRequests[server] = activeRequestsForServer + 1;
|
|
63
|
+
|
|
64
|
+
return when(requestFunction(url), function(result) {
|
|
65
|
+
activeRequests[server]--;
|
|
66
|
+
return result;
|
|
67
|
+
}, function(error) {
|
|
68
|
+
activeRequests[server]--;
|
|
69
|
+
return when.reject(error);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return throttleRequestByServer;
|
|
74
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./DeveloperError',
|
|
5
|
+
'./Color',
|
|
6
|
+
'../ThirdParty/measureText'
|
|
7
|
+
], function(
|
|
8
|
+
defaultValue,
|
|
9
|
+
DeveloperError,
|
|
10
|
+
Color,
|
|
11
|
+
measureText) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
var EMPTY_OBJECT = {};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Writes the given text into a new canvas. The canvas will be sized to fit the text.
|
|
18
|
+
* If text is blank, returns undefined.
|
|
19
|
+
*
|
|
20
|
+
* @param {String} text The text to write.
|
|
21
|
+
* @param {String} [description.font='10px sans-serif'] The CSS font to use.
|
|
22
|
+
* @param {String} [description.textBaseline='bottom'] The baseline of the text.
|
|
23
|
+
* @param {Boolean} [description.fill=true] Whether to fill the text.
|
|
24
|
+
* @param {Boolean} [description.stroke=false] Whether to stroke the text.
|
|
25
|
+
* @param {Color} [description.fillColor=Color.WHITE] The fill color.
|
|
26
|
+
* @param {Color} [description.strokeColor=Color.BLACK] The stroke color.
|
|
27
|
+
*
|
|
28
|
+
* @returns {Canvas} A new canvas with the given text drawn into it. The dimensions object
|
|
29
|
+
* from measureText will also be added to the returned canvas. If text is
|
|
30
|
+
* blank, returns undefined.
|
|
31
|
+
*/
|
|
32
|
+
var writeTextToCanvas = function(text, description) {
|
|
33
|
+
if (typeof text === 'undefined') {
|
|
34
|
+
throw new DeveloperError('text is required.');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (text === '') {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
description = defaultValue(description, EMPTY_OBJECT);
|
|
42
|
+
var font = defaultValue(description.font, '10px sans-serif');
|
|
43
|
+
|
|
44
|
+
var canvas = document.createElement('canvas');
|
|
45
|
+
canvas.width = canvas.height = 1;
|
|
46
|
+
canvas.style.font = font;
|
|
47
|
+
|
|
48
|
+
var context2D = canvas.getContext('2d');
|
|
49
|
+
context2D.font = font;
|
|
50
|
+
|
|
51
|
+
// textBaseline needs to be set before the measureText call. It won't work otherwise.
|
|
52
|
+
// It's magic.
|
|
53
|
+
context2D.textBaseline = defaultValue(description.textBaseline, 'bottom');
|
|
54
|
+
|
|
55
|
+
// in order for measureText to calculate style, the canvas has to be
|
|
56
|
+
// (temporarily) added to the DOM.
|
|
57
|
+
canvas.style.visibility = 'hidden';
|
|
58
|
+
document.body.appendChild(canvas);
|
|
59
|
+
|
|
60
|
+
var dimensions = measureText(context2D, text);
|
|
61
|
+
canvas.dimensions = dimensions;
|
|
62
|
+
|
|
63
|
+
document.body.removeChild(canvas);
|
|
64
|
+
canvas.style.visibility = undefined;
|
|
65
|
+
|
|
66
|
+
var baseline = dimensions.height - dimensions.ascent;
|
|
67
|
+
canvas.width = dimensions.width;
|
|
68
|
+
canvas.height = dimensions.height;
|
|
69
|
+
var y = canvas.height - baseline;
|
|
70
|
+
|
|
71
|
+
// font must be explicitly set again after changing width and height
|
|
72
|
+
context2D.font = font;
|
|
73
|
+
|
|
74
|
+
var fill = defaultValue(description.fill, true);
|
|
75
|
+
if (fill) {
|
|
76
|
+
var fillColor = defaultValue(description.fillColor, Color.WHITE);
|
|
77
|
+
context2D.fillStyle = fillColor.toCssColorString();
|
|
78
|
+
context2D.fillText(text, 0, y);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var stroke = defaultValue(description.stroke, false);
|
|
82
|
+
if (stroke) {
|
|
83
|
+
var strokeColor = defaultValue(description.strokeColor, Color.BLACK);
|
|
84
|
+
context2D.strokeStyle = strokeColor.toCssColorString();
|
|
85
|
+
context2D.strokeText(text, 0, y);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return canvas;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
return writeTextToCanvas;
|
|
92
|
+
});
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/Event',
|
|
4
|
+
'../Core/Iso8601',
|
|
5
|
+
'../Core/TimeInterval',
|
|
6
|
+
'../Core/DeveloperError',
|
|
7
|
+
'./DynamicObject',
|
|
8
|
+
'./DynamicObjectCollection',
|
|
9
|
+
'./CzmlDefaults'
|
|
10
|
+
], function(
|
|
11
|
+
Event,
|
|
12
|
+
Iso8601,
|
|
13
|
+
TimeInterval,
|
|
14
|
+
DeveloperError,
|
|
15
|
+
DynamicObject,
|
|
16
|
+
DynamicObjectCollection,
|
|
17
|
+
CzmlDefaults) {
|
|
18
|
+
"use strict";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Non-destructively composites multiple DynamicObjectCollection instances into a single collection.
|
|
22
|
+
* If a DynamicObject with the same ID exists in multiple collections, it is non-destructively
|
|
23
|
+
* merged into a single new object instance. If an object has the same property in multiple
|
|
24
|
+
* collections, the property of the DynamicObject in the last collection of the list it
|
|
25
|
+
* belongs to is used. CompositeDynamicObjectCollection can be used almost anywhere that a
|
|
26
|
+
* DynamicObjectCollection is used.
|
|
27
|
+
*
|
|
28
|
+
* @alias CompositeDynamicObjectCollection
|
|
29
|
+
* @constructor
|
|
30
|
+
*
|
|
31
|
+
* @param {Array} [collections] The initial list of DynamicObjectCollection instances to merge.
|
|
32
|
+
* @param {Array} [mergeFunctions] The list of CZML merge functions.
|
|
33
|
+
* @param {Array} [cleanFunctions] The list of CZML clean functions.
|
|
34
|
+
*
|
|
35
|
+
* @see DynamicObjectCollection
|
|
36
|
+
* @see DynamicObject
|
|
37
|
+
* @see CzmlDefaults
|
|
38
|
+
*/
|
|
39
|
+
var CompositeDynamicObjectCollection = function(collections, mergeFunctions, cleanFunctions) {
|
|
40
|
+
this._hash = {};
|
|
41
|
+
this._array = [];
|
|
42
|
+
this._collections = [];
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The array of functions which merge DynamicObject instances together.
|
|
46
|
+
*/
|
|
47
|
+
this.mergeFunctions = typeof mergeFunctions === 'undefined' ? CzmlDefaults.mergers : mergeFunctions;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The array of functions which remove data from a DynamicObject instance.
|
|
51
|
+
*/
|
|
52
|
+
this.cleanFunctions = typeof cleanFunctions === 'undefined' ? CzmlDefaults.cleaners : cleanFunctions;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* An {@link Event} that is fired whenever DynamicObjects in the collection have properties added.
|
|
56
|
+
*/
|
|
57
|
+
this.objectPropertiesChanged = new Event();
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* An {@link Event} that is fired whenever DynamicObjects are removed from the collection.
|
|
61
|
+
*/
|
|
62
|
+
this.objectsRemoved = new Event();
|
|
63
|
+
|
|
64
|
+
this.setCollections(collections);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Computes the maximum availability of the DynamicObjects in the collection.
|
|
69
|
+
* If the collection contains a mix of infinitely available data and non-infinite data,
|
|
70
|
+
* It will return the interval pertaining to the non-infinite data only. If all
|
|
71
|
+
* data is infinite, an infinite interval will be returned.
|
|
72
|
+
* @memberof CompositeDynamicObjectCollection
|
|
73
|
+
*
|
|
74
|
+
* @returns {TimeInterval} The availability of DynamicObjects in the collection.
|
|
75
|
+
*/
|
|
76
|
+
CompositeDynamicObjectCollection.prototype.computeAvailability = function() {
|
|
77
|
+
var startTime = Iso8601.MAXIMUM_VALUE;
|
|
78
|
+
var stopTime = Iso8601.MINIMUM_VALUE;
|
|
79
|
+
var i;
|
|
80
|
+
var len;
|
|
81
|
+
var collection;
|
|
82
|
+
var collections = this._collections;
|
|
83
|
+
for (i = 0, len = collections.length; i < len; i++) {
|
|
84
|
+
collection = collections[i];
|
|
85
|
+
var availability = collection.computeAvailability();
|
|
86
|
+
var start = availability.start;
|
|
87
|
+
var stop = availability.stop;
|
|
88
|
+
if (start.lessThan(startTime) && !start.equals(Iso8601.MINIMUM_VALUE)) {
|
|
89
|
+
startTime = availability.start;
|
|
90
|
+
}
|
|
91
|
+
if (stop.greaterThan(stopTime) && !stop.equals(Iso8601.MAXIMUM_VALUE)) {
|
|
92
|
+
stopTime = availability.stop;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (startTime === Iso8601.MAXIMUM_VALUE) {
|
|
97
|
+
startTime = Iso8601.MINIMUM_VALUE;
|
|
98
|
+
}
|
|
99
|
+
if (stopTime === Iso8601.MINIMUM_VALUE) {
|
|
100
|
+
stopTime = Iso8601.MAXIMUM_VALUE;
|
|
101
|
+
}
|
|
102
|
+
return new TimeInterval(startTime, stopTime, true, true);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Returns a copy of the current array of collections being composited. Changes to this
|
|
107
|
+
* array will have no affect, to change which collections are being used, call setCollections.
|
|
108
|
+
* @memberof CompositeDynamicObjectCollection
|
|
109
|
+
*
|
|
110
|
+
* @see CompositeDynamicObjectCollection#setCollections
|
|
111
|
+
*/
|
|
112
|
+
CompositeDynamicObjectCollection.prototype.getCollections = function() {
|
|
113
|
+
return this._collections.slice(0);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Sets the array of collections to be composited. Collections are composited
|
|
118
|
+
* last to first, so higher indices into the array take precedence over lower indices.
|
|
119
|
+
* @memberof CompositeDynamicObjectCollection
|
|
120
|
+
*
|
|
121
|
+
* @param {Array} collections The collections to be composited.
|
|
122
|
+
*/
|
|
123
|
+
CompositeDynamicObjectCollection.prototype.setCollections = function(collections) {
|
|
124
|
+
collections = typeof collections !== 'undefined' ? collections : [];
|
|
125
|
+
|
|
126
|
+
var thisCollections = this._collections;
|
|
127
|
+
if (collections !== thisCollections) {
|
|
128
|
+
var collection;
|
|
129
|
+
var iCollection;
|
|
130
|
+
|
|
131
|
+
//Unsubscribe from old collections.
|
|
132
|
+
for (iCollection = thisCollections.length - 1; iCollection > -1; iCollection--) {
|
|
133
|
+
collection = thisCollections[iCollection];
|
|
134
|
+
collection.compositeCollection = undefined;
|
|
135
|
+
collection.objectPropertiesChanged.removeEventListener(CompositeDynamicObjectCollection.prototype._onObjectPropertiesChanged);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//Make a copy of the new collections.
|
|
139
|
+
thisCollections = this._collections = collections;
|
|
140
|
+
|
|
141
|
+
//Clear all existing objects and rebuild the colleciton.
|
|
142
|
+
this._clearObjects();
|
|
143
|
+
var thisMergeFunctions = this.mergeFunctions;
|
|
144
|
+
for (iCollection = thisCollections.length - 1; iCollection > -1; iCollection--) {
|
|
145
|
+
collection = thisCollections[iCollection];
|
|
146
|
+
|
|
147
|
+
//Subscribe to the new collection.
|
|
148
|
+
collection.compositeCollection = this;
|
|
149
|
+
collection.objectPropertiesChanged.addEventListener(CompositeDynamicObjectCollection.prototype._onObjectPropertiesChanged, this);
|
|
150
|
+
|
|
151
|
+
//Merge all of the existing objects.
|
|
152
|
+
var objects = collection.getObjects();
|
|
153
|
+
for ( var iObjects = objects.length - 1; iObjects > -1; iObjects--) {
|
|
154
|
+
var object = objects[iObjects];
|
|
155
|
+
var compositeObject = this._getOrCreateObject(object.id);
|
|
156
|
+
for ( var iMergeFuncs = thisMergeFunctions.length - 1; iMergeFuncs > -1; iMergeFuncs--) {
|
|
157
|
+
var mergeFunc = thisMergeFunctions[iMergeFuncs];
|
|
158
|
+
mergeFunc(compositeObject, object);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Gets an object with the specified id.
|
|
167
|
+
* @memberof CompositeDynamicObjectCollection
|
|
168
|
+
*
|
|
169
|
+
* @param {Object} id The id of the object to retrieve.
|
|
170
|
+
* @returns The DynamicObject with the provided id, or undefined if no such object exists.
|
|
171
|
+
*
|
|
172
|
+
* @exception {DeveloperError} id is required.
|
|
173
|
+
*/
|
|
174
|
+
CompositeDynamicObjectCollection.prototype.getObject = function(id) {
|
|
175
|
+
if (typeof id === 'undefined') {
|
|
176
|
+
throw new DeveloperError('id is required.');
|
|
177
|
+
}
|
|
178
|
+
return this._hash[id];
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Gets the array of DynamicObject instances in this composite collection.
|
|
183
|
+
* @memberof CompositeDynamicObjectCollection
|
|
184
|
+
*
|
|
185
|
+
* @returns {Array} the array of DynamicObject instances in this composite collection.
|
|
186
|
+
*/
|
|
187
|
+
CompositeDynamicObjectCollection.prototype.getObjects = function() {
|
|
188
|
+
return this._array;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Clears all collections and DynamicObjects from this collection.
|
|
193
|
+
* @memberof CompositeDynamicObjectCollection
|
|
194
|
+
*/
|
|
195
|
+
CompositeDynamicObjectCollection.prototype.clear = function() {
|
|
196
|
+
this.setCollections([]);
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
CompositeDynamicObjectCollection.prototype._getOrCreateObject = function(id) {
|
|
200
|
+
var obj = this._hash[id];
|
|
201
|
+
if (!obj) {
|
|
202
|
+
obj = new DynamicObject(id);
|
|
203
|
+
this._hash[id] = obj;
|
|
204
|
+
this._array.push(obj);
|
|
205
|
+
}
|
|
206
|
+
return obj;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
CompositeDynamicObjectCollection.prototype._clearObjects = function() {
|
|
210
|
+
var removedObjects = this._array;
|
|
211
|
+
this._hash = {};
|
|
212
|
+
this._array = [];
|
|
213
|
+
if (removedObjects.length > 0) {
|
|
214
|
+
this.objectsRemoved.raiseEvent(this, removedObjects);
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
CompositeDynamicObjectCollection.prototype._onObjectPropertiesChanged = function(dynamicObjectCollection, updatedObjects) {
|
|
219
|
+
var thisMergeFunctions = this.mergeFunctions;
|
|
220
|
+
var thisCleanFunctions = this.cleanFunctions;
|
|
221
|
+
var thisCollections = this._collections;
|
|
222
|
+
|
|
223
|
+
var updatedObject, compositeObject, compositeObjects = [];
|
|
224
|
+
for ( var i = updatedObjects.length - 1; i > -1; i--) {
|
|
225
|
+
updatedObject = updatedObjects[i];
|
|
226
|
+
compositeObject = this.getObject(updatedObject.id);
|
|
227
|
+
if (typeof compositeObject !== 'undefined') {
|
|
228
|
+
for ( var iDeleteFuncs = thisCleanFunctions.length - 1; iDeleteFuncs > -1; iDeleteFuncs--) {
|
|
229
|
+
var deleteFunc = thisCleanFunctions[iDeleteFuncs];
|
|
230
|
+
deleteFunc(compositeObject);
|
|
231
|
+
}
|
|
232
|
+
} else {
|
|
233
|
+
compositeObject = this._getOrCreateObject(updatedObject.id);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
compositeObjects.push(compositeObject);
|
|
237
|
+
for ( var iCollection = thisCollections.length - 1; iCollection > -1; iCollection--) {
|
|
238
|
+
var currentCollection = thisCollections[iCollection];
|
|
239
|
+
var objectToUpdate = currentCollection.getObject(updatedObject.id);
|
|
240
|
+
if (typeof objectToUpdate !== 'undefined') {
|
|
241
|
+
for ( var iMergeFuncs = thisMergeFunctions.length - 1; iMergeFuncs > -1; iMergeFuncs--) {
|
|
242
|
+
var mergeFunc = thisMergeFunctions[iMergeFuncs];
|
|
243
|
+
mergeFunc(compositeObject, objectToUpdate);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (compositeObjects.length > 0) {
|
|
249
|
+
this.objectPropertiesChanged.raiseEvent(this, compositeObjects);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
return CompositeDynamicObjectCollection;
|
|
254
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Provides methods for working with a boolean defined in CZML.
|
|
7
|
+
*
|
|
8
|
+
* @exports CzmlBoolean
|
|
9
|
+
*
|
|
10
|
+
* @see DynamicProperty
|
|
11
|
+
* @see CzmlCartesian2
|
|
12
|
+
* @see CzmlCartesian3
|
|
13
|
+
* @see CzmlCartographic
|
|
14
|
+
* @see CzmlColor
|
|
15
|
+
* @see CzmlHorizontalOrigin
|
|
16
|
+
* @see CzmlLabelStyle
|
|
17
|
+
* @see CzmlNumber
|
|
18
|
+
* @see CzmlString
|
|
19
|
+
* @see CzmlUnitCartesian3
|
|
20
|
+
* @see CzmlUnitQuaternion
|
|
21
|
+
* @see CzmlUnitSpherical
|
|
22
|
+
* @see CzmlVerticalOrigin
|
|
23
|
+
*/
|
|
24
|
+
var CzmlBoolean = {
|
|
25
|
+
/**
|
|
26
|
+
* Returns the packed boolean representation contained within the provided CZML interval
|
|
27
|
+
* or undefined if the interval does not contain boolean data.
|
|
28
|
+
*
|
|
29
|
+
* @param {Object} czmlInterval The CZML interval to unwrap.
|
|
30
|
+
*/
|
|
31
|
+
unwrapInterval : function(czmlInterval) {
|
|
32
|
+
/*jshint sub:true*/
|
|
33
|
+
var result = czmlInterval['boolean']; // boolean is a JS reserved word
|
|
34
|
+
return typeof result === 'undefined' ? czmlInterval : result;
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Since CZML booleans can not be sampled, this method always returns false.
|
|
39
|
+
*/
|
|
40
|
+
isSampled : function() {
|
|
41
|
+
return false;
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns the boolean value contained within the unwrappedInterval. For booleans
|
|
46
|
+
* this is the unwrappedInterval itself.
|
|
47
|
+
*
|
|
48
|
+
* @param {Object} unwrappedInterval The result of CzmlBoolean.unwrapInterval.
|
|
49
|
+
* @returns The boolean value.
|
|
50
|
+
*/
|
|
51
|
+
getValue : function(unwrappedInterval) {
|
|
52
|
+
return unwrappedInterval;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return CzmlBoolean;
|
|
57
|
+
});
|