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,352 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/JulianDate',
|
|
5
|
+
'../Core/TimeInterval',
|
|
6
|
+
'../Core/TimeIntervalCollection',
|
|
7
|
+
'../Core/Iso8601',
|
|
8
|
+
'../Core/binarySearch',
|
|
9
|
+
'../Core/HermitePolynomialApproximation',
|
|
10
|
+
'../Core/LinearApproximation',
|
|
11
|
+
'../Core/LagrangePolynomialApproximation'
|
|
12
|
+
], function(
|
|
13
|
+
DeveloperError,
|
|
14
|
+
JulianDate,
|
|
15
|
+
TimeInterval,
|
|
16
|
+
TimeIntervalCollection,
|
|
17
|
+
Iso8601,
|
|
18
|
+
binarySearch,
|
|
19
|
+
HermitePolynomialApproximation,
|
|
20
|
+
LinearApproximation,
|
|
21
|
+
LagrangePolynomialApproximation) {
|
|
22
|
+
"use strict";
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
//CZML_TODO This is more of an idea than a to-do, but currently DynamicProperty requires
|
|
26
|
+
//you know the type of data being loaded up-front by passing valueType. We could take
|
|
27
|
+
//a similar approach to DynamicMaterialProperty and have a list of potential valueTypes
|
|
28
|
+
//that we check for when we encounter data. This would make it possible to support
|
|
29
|
+
//properties that are defined in a CZML document but not part of the official spec. This
|
|
30
|
+
//would be helpful in cases where a CZML document has $ or # links to other properties,
|
|
31
|
+
//but that property itself is not part of another to-spec CZML object. We could still
|
|
32
|
+
//allow the user to pass a default valueType if they want to make sure the data
|
|
33
|
+
//being processed is only the data of the expected type.
|
|
34
|
+
|
|
35
|
+
//Map CZML interval types to their implementation.
|
|
36
|
+
var interpolators = {
|
|
37
|
+
HERMITE : HermitePolynomialApproximation,
|
|
38
|
+
LAGRANGE : LagrangePolynomialApproximation,
|
|
39
|
+
LINEAR : LinearApproximation
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
//The data associated with each DynamicProperty interval.
|
|
43
|
+
function IntervalData() {
|
|
44
|
+
this.interpolationAlgorithm = LinearApproximation;
|
|
45
|
+
this.numberOfPoints = LinearApproximation.getRequiredDataPoints(1);
|
|
46
|
+
this.interpolationDegree = 1;
|
|
47
|
+
this.times = undefined;
|
|
48
|
+
this.values = undefined;
|
|
49
|
+
this.isSampled = false;
|
|
50
|
+
this.xTable = undefined;
|
|
51
|
+
this.yTable = undefined;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//Converts a CZML defined data into a JulianDate, regardless of whether it was
|
|
55
|
+
//specified in epoch seconds or as an ISO8601 string.
|
|
56
|
+
function czmlDateToJulianDate(date, epoch) {
|
|
57
|
+
if (typeof date === 'string') {
|
|
58
|
+
return JulianDate.fromIso8601(date);
|
|
59
|
+
}
|
|
60
|
+
return epoch.addSeconds(date);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* <p>
|
|
65
|
+
* DynamicProperty represents a single value that changes over time.
|
|
66
|
+
* Rather than creating instances of this object directly, it's typically
|
|
67
|
+
* created and managed via loading CZML data into a DynamicObjectCollection.
|
|
68
|
+
* Instances of this type are exposed via DynamicObject and it's sub-objects
|
|
69
|
+
* and are responsible for interpreting and interpolating the data for visualization.
|
|
70
|
+
* </p>
|
|
71
|
+
* <p>
|
|
72
|
+
* The type of value exposed by this property must be provided during construction
|
|
73
|
+
* by passing in an object which performs all the necessary operations needed to
|
|
74
|
+
* properly store, retrieve, and interpolate the data. For more specialized needs
|
|
75
|
+
* other types of dynamic properties exist, such as DynamicMaterialProperty,
|
|
76
|
+
* which as the name implies, handles materials.
|
|
77
|
+
* </p>
|
|
78
|
+
*
|
|
79
|
+
* @alias DynamicProperty
|
|
80
|
+
* @constructor
|
|
81
|
+
*
|
|
82
|
+
* @param {Object} valueType A CZML type object which contains the methods needed to interpret and interpolate CZML data of the same type.
|
|
83
|
+
*
|
|
84
|
+
* @see CzmlBoolean
|
|
85
|
+
* @see CzmlCartesian2
|
|
86
|
+
* @see CzmlCartesian3
|
|
87
|
+
* @see CzmlCartographic
|
|
88
|
+
* @see CzmlColor
|
|
89
|
+
* @see CzmlHorizontalOrigin
|
|
90
|
+
* @see CzmlLabelStyle
|
|
91
|
+
* @see CzmlNumber
|
|
92
|
+
* @see CzmlString
|
|
93
|
+
* @see CzmlUnitCartesian3
|
|
94
|
+
* @see CzmlUnitQuaternion
|
|
95
|
+
* @see CzmlUnitSpherical
|
|
96
|
+
* @see CzmlVerticalOrigin
|
|
97
|
+
* @see DynamicObject
|
|
98
|
+
* @see ReferenceProperty
|
|
99
|
+
* @see DynamicMaterialProperty
|
|
100
|
+
* @see DynamicPositionProperty
|
|
101
|
+
* @see DynamicDirectionsProperty
|
|
102
|
+
* @see DynamicVertexPositionsProperty
|
|
103
|
+
*/
|
|
104
|
+
var DynamicProperty = function(valueType) {
|
|
105
|
+
if (typeof valueType === 'undefined') {
|
|
106
|
+
throw new DeveloperError('valueType is required.');
|
|
107
|
+
}
|
|
108
|
+
this.valueType = valueType;
|
|
109
|
+
this._intervals = new TimeIntervalCollection();
|
|
110
|
+
this._cachedDate = undefined;
|
|
111
|
+
this._cachedInterval = undefined;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Processes the provided CZML interval or intervals into this property.
|
|
116
|
+
*
|
|
117
|
+
* @memberof DynamicProperty
|
|
118
|
+
*
|
|
119
|
+
* @param {Object} czmlIntervals The CZML data to process.
|
|
120
|
+
* @param {TimeInterval} [constrainedInterval] Constrains the processing so that any times outside of this interval are ignored.
|
|
121
|
+
* @param {String} [sourceUri] The originating url of the CZML being processed.
|
|
122
|
+
*/
|
|
123
|
+
DynamicProperty.prototype.processCzmlIntervals = function(czmlIntervals, constrainedInterval, sourceUri) {
|
|
124
|
+
if (Array.isArray(czmlIntervals)) {
|
|
125
|
+
for ( var i = 0, len = czmlIntervals.length; i < len; i++) {
|
|
126
|
+
this._addCzmlInterval(czmlIntervals[i], constrainedInterval, sourceUri);
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
this._addCzmlInterval(czmlIntervals, constrainedInterval, sourceUri);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Returns the value of the property at the specified time.
|
|
135
|
+
* @memberof DynamicProperty
|
|
136
|
+
*
|
|
137
|
+
* @param {JulianDate} time The time for which to retrieve the value.
|
|
138
|
+
* @param {Object} [result] The object to store the value into, if omitted, a new instance is created and returned.
|
|
139
|
+
* @returns The modified result parameter or a new instance if the result parameter was not supplied.
|
|
140
|
+
*/
|
|
141
|
+
DynamicProperty.prototype.getValue = function(time, result) {
|
|
142
|
+
var interval = this._cachedInterval;
|
|
143
|
+
var thisValueType = this.valueType;
|
|
144
|
+
var doublesPerValue = thisValueType.doublesPerValue;
|
|
145
|
+
|
|
146
|
+
if (this._cachedDate !== time) {
|
|
147
|
+
this._cachedDate = time;
|
|
148
|
+
if (typeof interval === 'undefined' || !interval.contains(time)) {
|
|
149
|
+
interval = this._intervals.findIntervalContainingDate(time);
|
|
150
|
+
this._cachedInterval = interval;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (typeof interval === 'undefined') {
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
var intervalData = interval.data;
|
|
159
|
+
var times = intervalData.times;
|
|
160
|
+
var values = intervalData.values;
|
|
161
|
+
if (intervalData.isSampled && times.length >= 0 && values.length > 0) {
|
|
162
|
+
var index = binarySearch(times, time, JulianDate.compare);
|
|
163
|
+
if (index < 0) {
|
|
164
|
+
if (intervalData.numberOfPoints < 2) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
index = ~index;
|
|
168
|
+
|
|
169
|
+
if (index >= times.length) {
|
|
170
|
+
index = times.length - 1;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
var firstIndex = 0;
|
|
174
|
+
var lastIndex = times.length - 1;
|
|
175
|
+
|
|
176
|
+
var degree = intervalData.numberOfPoints - 1;
|
|
177
|
+
var pointsInCollection = lastIndex - firstIndex + 1;
|
|
178
|
+
|
|
179
|
+
if (pointsInCollection < degree + 1) {
|
|
180
|
+
// Use the entire range.
|
|
181
|
+
} else {
|
|
182
|
+
var computedFirstIndex = index - ((degree / 2) | 0) - 1;
|
|
183
|
+
if (computedFirstIndex < firstIndex) {
|
|
184
|
+
computedFirstIndex = firstIndex;
|
|
185
|
+
}
|
|
186
|
+
var computedLastIndex = computedFirstIndex + degree;
|
|
187
|
+
if (computedLastIndex > lastIndex) {
|
|
188
|
+
computedLastIndex = lastIndex;
|
|
189
|
+
computedFirstIndex = computedLastIndex - degree;
|
|
190
|
+
if (computedFirstIndex < firstIndex) {
|
|
191
|
+
computedFirstIndex = firstIndex;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
firstIndex = computedFirstIndex;
|
|
196
|
+
lastIndex = computedLastIndex;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
var length = lastIndex - firstIndex + 1;
|
|
200
|
+
|
|
201
|
+
var doublesPerInterpolationValue = thisValueType.doublesPerInterpolationValue;
|
|
202
|
+
var xTable = intervalData.xTable;
|
|
203
|
+
var yTable = intervalData.yTable;
|
|
204
|
+
|
|
205
|
+
if (typeof xTable === 'undefined') {
|
|
206
|
+
xTable = intervalData.xTable = new Array(intervalData.numberOfPoints);
|
|
207
|
+
yTable = intervalData.yTable = new Array(intervalData.numberOfPoints * doublesPerInterpolationValue);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Build the tables
|
|
211
|
+
for ( var i = 0; i < length; ++i) {
|
|
212
|
+
xTable[i] = times[lastIndex].getSecondsDifference(times[firstIndex + i]);
|
|
213
|
+
}
|
|
214
|
+
var specializedPackFunction = thisValueType.packValuesForInterpolation;
|
|
215
|
+
if (typeof specializedPackFunction === 'undefined') {
|
|
216
|
+
var destinationIndex = 0;
|
|
217
|
+
var sourceIndex = firstIndex * doublesPerValue;
|
|
218
|
+
var stop = (lastIndex + 1) * doublesPerValue;
|
|
219
|
+
|
|
220
|
+
while (sourceIndex < stop) {
|
|
221
|
+
yTable[destinationIndex] = values[sourceIndex];
|
|
222
|
+
sourceIndex++;
|
|
223
|
+
destinationIndex++;
|
|
224
|
+
}
|
|
225
|
+
} else {
|
|
226
|
+
specializedPackFunction(values, yTable, firstIndex, lastIndex);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Interpolate!
|
|
230
|
+
var x = times[lastIndex].getSecondsDifference(time);
|
|
231
|
+
var interpolationResult = intervalData.interpolationAlgorithm.interpolateOrderZero(x, xTable, yTable, doublesPerInterpolationValue);
|
|
232
|
+
|
|
233
|
+
var specializedGetFunction = thisValueType.getValueFromInterpolationResult;
|
|
234
|
+
if (typeof specializedGetFunction === 'undefined') {
|
|
235
|
+
return thisValueType.getValueFromArray(interpolationResult, 0, result);
|
|
236
|
+
}
|
|
237
|
+
return specializedGetFunction(interpolationResult, result, values, firstIndex, lastIndex);
|
|
238
|
+
}
|
|
239
|
+
return thisValueType.getValueFromArray(intervalData.values, index * doublesPerValue, result);
|
|
240
|
+
}
|
|
241
|
+
return thisValueType.getValue(intervalData.values, result);
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
DynamicProperty._mergeNewSamples = function(epoch, times, values, newData, doublesPerValue, valueType) {
|
|
245
|
+
var newDataIndex = 0, i, prevItem, timesInsertionPoint, valuesInsertionPoint, timesSpliceArgs, valuesSpliceArgs, currentTime, nextTime;
|
|
246
|
+
while (newDataIndex < newData.length) {
|
|
247
|
+
currentTime = czmlDateToJulianDate(newData[newDataIndex], epoch);
|
|
248
|
+
timesInsertionPoint = binarySearch(times, currentTime, JulianDate.compare);
|
|
249
|
+
|
|
250
|
+
if (timesInsertionPoint < 0) {
|
|
251
|
+
//Doesn't exist, insert as many additional values as we can.
|
|
252
|
+
timesInsertionPoint = ~timesInsertionPoint;
|
|
253
|
+
timesSpliceArgs = [timesInsertionPoint, 0];
|
|
254
|
+
|
|
255
|
+
valuesInsertionPoint = timesInsertionPoint * doublesPerValue;
|
|
256
|
+
valuesSpliceArgs = [valuesInsertionPoint, 0];
|
|
257
|
+
prevItem = undefined;
|
|
258
|
+
nextTime = times[timesInsertionPoint + 1];
|
|
259
|
+
while (newDataIndex < newData.length) {
|
|
260
|
+
currentTime = czmlDateToJulianDate(newData[newDataIndex], epoch);
|
|
261
|
+
if ((typeof prevItem !== 'undefined' && JulianDate.compare(prevItem, currentTime) >= 0) ||
|
|
262
|
+
(typeof nextTime !== 'undefined' && JulianDate.compare(currentTime, nextTime) >= 0)) {
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
timesSpliceArgs.push(currentTime);
|
|
266
|
+
newDataIndex = newDataIndex + 1;
|
|
267
|
+
for (i = 0; i < doublesPerValue; i++) {
|
|
268
|
+
valuesSpliceArgs.push(newData[newDataIndex]);
|
|
269
|
+
newDataIndex = newDataIndex + 1;
|
|
270
|
+
}
|
|
271
|
+
prevItem = currentTime;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
Array.prototype.splice.apply(values, valuesSpliceArgs);
|
|
275
|
+
Array.prototype.splice.apply(times, timesSpliceArgs);
|
|
276
|
+
} else {
|
|
277
|
+
//Found an exact match
|
|
278
|
+
for (i = 0; i < doublesPerValue; i++) {
|
|
279
|
+
newDataIndex++;
|
|
280
|
+
values[(timesInsertionPoint * doublesPerValue) + i] = newData[newDataIndex];
|
|
281
|
+
}
|
|
282
|
+
newDataIndex++;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
DynamicProperty.prototype._addCzmlInterval = function(czmlInterval, constrainedInterval, sourceUri) {
|
|
288
|
+
var iso8601Interval = czmlInterval.interval;
|
|
289
|
+
if (typeof iso8601Interval === 'undefined') {
|
|
290
|
+
iso8601Interval = Iso8601.MAXIMUM_INTERVAL;
|
|
291
|
+
} else {
|
|
292
|
+
iso8601Interval = TimeInterval.fromIso8601(iso8601Interval);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (typeof constrainedInterval !== 'undefined') {
|
|
296
|
+
iso8601Interval = iso8601Interval.intersect(constrainedInterval);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
var unwrappedInterval = this.valueType.unwrapInterval(czmlInterval, sourceUri);
|
|
300
|
+
if (typeof unwrappedInterval !== 'undefined') {
|
|
301
|
+
this._addCzmlIntervalUnwrapped(iso8601Interval.start, iso8601Interval.stop, unwrappedInterval, czmlInterval.epoch, czmlInterval.interpolationAlgorithm, czmlInterval.interpolationDegree);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
DynamicProperty.prototype._addCzmlIntervalUnwrapped = function(start, stop, unwrappedInterval, epoch, interpolationAlgorithmType, interpolationDegree) {
|
|
306
|
+
var thisIntervals = this._intervals;
|
|
307
|
+
var existingInterval = thisIntervals.findInterval(start, stop);
|
|
308
|
+
this._cachedDate = undefined;
|
|
309
|
+
this._cachedInterval = undefined;
|
|
310
|
+
|
|
311
|
+
var intervalData;
|
|
312
|
+
if (typeof existingInterval === 'undefined') {
|
|
313
|
+
intervalData = new IntervalData();
|
|
314
|
+
existingInterval = new TimeInterval(start, stop, true, true, intervalData);
|
|
315
|
+
thisIntervals.addInterval(existingInterval);
|
|
316
|
+
} else {
|
|
317
|
+
intervalData = existingInterval.data;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
var thisValueType = this.valueType;
|
|
321
|
+
if (thisValueType.isSampled(unwrappedInterval)) {
|
|
322
|
+
var interpolationAlgorithm;
|
|
323
|
+
if (typeof interpolationAlgorithmType !== 'undefined') {
|
|
324
|
+
interpolationAlgorithm = interpolators[interpolationAlgorithmType];
|
|
325
|
+
intervalData.interpolationAlgorithm = interpolationAlgorithm;
|
|
326
|
+
}
|
|
327
|
+
if (typeof interpolationAlgorithm !== 'undefined' && typeof interpolationDegree !== 'undefined') {
|
|
328
|
+
intervalData.interpolationDegree = interpolationDegree;
|
|
329
|
+
intervalData.xTable = undefined;
|
|
330
|
+
intervalData.yTable = undefined;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (!intervalData.isSampled) {
|
|
334
|
+
intervalData.times = [];
|
|
335
|
+
intervalData.values = [];
|
|
336
|
+
intervalData.isSampled = true;
|
|
337
|
+
}
|
|
338
|
+
if (typeof epoch !== 'undefined') {
|
|
339
|
+
epoch = JulianDate.fromIso8601(epoch);
|
|
340
|
+
}
|
|
341
|
+
DynamicProperty._mergeNewSamples(epoch, intervalData.times, intervalData.values, unwrappedInterval, thisValueType.doublesPerValue, thisValueType);
|
|
342
|
+
intervalData.numberOfPoints = Math.min(intervalData.interpolationAlgorithm.getRequiredDataPoints(intervalData.interpolationDegree), intervalData.times.length);
|
|
343
|
+
} else {
|
|
344
|
+
//Packet itself is a constant value
|
|
345
|
+
intervalData.times = undefined;
|
|
346
|
+
intervalData.values = unwrappedInterval;
|
|
347
|
+
intervalData.isSampled = false;
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
return DynamicProperty;
|
|
352
|
+
});
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/TimeInterval',
|
|
4
|
+
'../Core/defaultValue',
|
|
5
|
+
'./CzmlBoolean',
|
|
6
|
+
'./CzmlNumber',
|
|
7
|
+
'./CzmlColor',
|
|
8
|
+
'./DynamicProperty',
|
|
9
|
+
'./DynamicDirectionsProperty',
|
|
10
|
+
'./DynamicMaterialProperty'
|
|
11
|
+
], function(
|
|
12
|
+
TimeInterval,
|
|
13
|
+
defaultValue,
|
|
14
|
+
CzmlBoolean,
|
|
15
|
+
CzmlNumber,
|
|
16
|
+
CzmlColor,
|
|
17
|
+
DynamicProperty,
|
|
18
|
+
DynamicDirectionsProperty,
|
|
19
|
+
DynamicMaterialProperty) {
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Represents a time-dynamic pyramid, typically used in conjunction with DynamicPyramidVisualizer and
|
|
24
|
+
* DynamicObjectCollection to visualize CZML.
|
|
25
|
+
*
|
|
26
|
+
* @alias DynamicPyramid
|
|
27
|
+
* @constructor
|
|
28
|
+
*
|
|
29
|
+
* @see DynamicObject
|
|
30
|
+
* @see DynamicProperty
|
|
31
|
+
* @see DynamicObjectCollection
|
|
32
|
+
* @see DynamicPyramidVisualizer
|
|
33
|
+
* @see VisualizerCollection
|
|
34
|
+
* @see CustomSensor
|
|
35
|
+
* @see CzmlDefaults
|
|
36
|
+
*/
|
|
37
|
+
var DynamicPyramid = function() {
|
|
38
|
+
/**
|
|
39
|
+
* A DynamicProperty of type CzmlBoolean which determines the pyramid's visibility.
|
|
40
|
+
* @type DynamicProperty
|
|
41
|
+
*/
|
|
42
|
+
this.show = undefined;
|
|
43
|
+
/**
|
|
44
|
+
* A DynamicDirectionsProperty which determines the projection of the pyramid.
|
|
45
|
+
* @type DynamicDirectionsProperty
|
|
46
|
+
*/
|
|
47
|
+
this.directions = undefined;
|
|
48
|
+
/**
|
|
49
|
+
* A DynamicProperty of type CzmlNumber which determines the pyramid's radius.
|
|
50
|
+
* @type DynamicProperty
|
|
51
|
+
*/
|
|
52
|
+
this.radius = undefined;
|
|
53
|
+
/**
|
|
54
|
+
* A DynamicProperty of type CzmlBoolean which determines the pyramid's intersection visibility.
|
|
55
|
+
* @type DynamicProperty
|
|
56
|
+
*/
|
|
57
|
+
this.showIntersection = undefined;
|
|
58
|
+
/**
|
|
59
|
+
* A DynamicProperty of type CzmlColor which determines the color of the line formed by the intersection of the pyramid and other central bodies.
|
|
60
|
+
* @type DynamicProperty
|
|
61
|
+
*/
|
|
62
|
+
this.intersectionColor = undefined;
|
|
63
|
+
/**
|
|
64
|
+
* A DynamicMaterialProperty which determines the material.
|
|
65
|
+
* @type DynamicMaterialProperty
|
|
66
|
+
*/
|
|
67
|
+
this.material = undefined;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Processes a single CZML packet and merges its data into the provided DynamicObject's pyramid.
|
|
72
|
+
* If the DynamicObject does not have a pyramid, one is created. This method is not
|
|
73
|
+
* normally called directly, but is part of the array of CZML processing functions that is
|
|
74
|
+
* passed into the DynamicObjectCollection constructor.
|
|
75
|
+
*
|
|
76
|
+
* @param {DynamicObject} dynamicObject The DynamicObject which will contain the pyramid data.
|
|
77
|
+
* @param {Object} packet The CZML packet to process.
|
|
78
|
+
* @param {DynamicObject} dynamicObjectCollection The DynamicObjectCollection to which the DynamicObject belongs.
|
|
79
|
+
*
|
|
80
|
+
* @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
|
|
81
|
+
*
|
|
82
|
+
* @see DynamicObject
|
|
83
|
+
* @see DynamicProperty
|
|
84
|
+
* @see DynamicObjectCollection
|
|
85
|
+
* @see CzmlDefaults#updaters
|
|
86
|
+
*/
|
|
87
|
+
DynamicPyramid.processCzmlPacket = function(dynamicObject, packet, dynamicObjectCollection) {
|
|
88
|
+
var pyramidData = packet.pyramid;
|
|
89
|
+
if (typeof pyramidData === 'undefined') {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var pyramidUpdated = false;
|
|
94
|
+
var pyramid = dynamicObject.pyramid;
|
|
95
|
+
pyramidUpdated = typeof pyramid === 'undefined';
|
|
96
|
+
if (pyramidUpdated) {
|
|
97
|
+
dynamicObject.pyramid = pyramid = new DynamicPyramid();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var interval = pyramidData.interval;
|
|
101
|
+
if (typeof interval !== 'undefined') {
|
|
102
|
+
interval = TimeInterval.fromIso8601(interval);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (typeof pyramidData.show !== 'undefined') {
|
|
106
|
+
var show = pyramid.show;
|
|
107
|
+
if (typeof show === 'undefined') {
|
|
108
|
+
pyramid.show = show = new DynamicProperty(CzmlBoolean);
|
|
109
|
+
pyramidUpdated = true;
|
|
110
|
+
}
|
|
111
|
+
show.processCzmlIntervals(pyramidData.show, interval);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (typeof pyramidData.radius !== 'undefined') {
|
|
115
|
+
var radius = pyramid.radius;
|
|
116
|
+
if (typeof radius === 'undefined') {
|
|
117
|
+
pyramid.radius = radius = new DynamicProperty(CzmlNumber);
|
|
118
|
+
pyramidUpdated = true;
|
|
119
|
+
}
|
|
120
|
+
radius.processCzmlIntervals(pyramidData.radius, interval);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (typeof pyramidData.showIntersection !== 'undefined') {
|
|
124
|
+
var showIntersection = pyramid.showIntersection;
|
|
125
|
+
if (typeof showIntersection === 'undefined') {
|
|
126
|
+
pyramid.showIntersection = showIntersection = new DynamicProperty(CzmlBoolean);
|
|
127
|
+
pyramidUpdated = true;
|
|
128
|
+
}
|
|
129
|
+
showIntersection.processCzmlIntervals(pyramidData.showIntersection, interval);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (typeof pyramidData.intersectionColor !== 'undefined') {
|
|
133
|
+
var intersectionColor = pyramid.intersectionColor;
|
|
134
|
+
if (typeof intersectionColor === 'undefined') {
|
|
135
|
+
pyramid.intersectionColor = intersectionColor = new DynamicProperty(CzmlColor);
|
|
136
|
+
pyramidUpdated = true;
|
|
137
|
+
}
|
|
138
|
+
intersectionColor.processCzmlIntervals(pyramidData.intersectionColor, interval);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (typeof pyramidData.material !== 'undefined') {
|
|
142
|
+
var material = pyramid.material;
|
|
143
|
+
if (typeof material === 'undefined') {
|
|
144
|
+
pyramid.material = material = new DynamicMaterialProperty();
|
|
145
|
+
pyramidUpdated = true;
|
|
146
|
+
}
|
|
147
|
+
material.processCzmlIntervals(pyramidData.material, interval);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (typeof pyramidData.directions !== 'undefined') {
|
|
151
|
+
var directions = pyramid.directions;
|
|
152
|
+
if (typeof directions === 'undefined') {
|
|
153
|
+
pyramid.directions = directions = new DynamicDirectionsProperty();
|
|
154
|
+
pyramidUpdated = true;
|
|
155
|
+
}
|
|
156
|
+
directions.processCzmlIntervals(pyramidData.directions, interval);
|
|
157
|
+
}
|
|
158
|
+
return pyramidUpdated;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Given two DynamicObjects, takes the pyramid properties from the second
|
|
163
|
+
* and assigns them to the first, assuming such a property did not already exist.
|
|
164
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
165
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
166
|
+
*
|
|
167
|
+
* @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
|
|
168
|
+
* @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
|
|
169
|
+
*
|
|
170
|
+
* @see CzmlDefaults
|
|
171
|
+
*/
|
|
172
|
+
DynamicPyramid.mergeProperties = function(targetObject, objectToMerge) {
|
|
173
|
+
var pyramidToMerge = objectToMerge.pyramid;
|
|
174
|
+
if (typeof pyramidToMerge !== 'undefined') {
|
|
175
|
+
|
|
176
|
+
var targetPyramid = targetObject.pyramid;
|
|
177
|
+
if (typeof targetPyramid === 'undefined') {
|
|
178
|
+
targetObject.pyramid = targetPyramid = new DynamicPyramid();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
targetPyramid.show = defaultValue(targetPyramid.show, pyramidToMerge.show);
|
|
182
|
+
targetPyramid.directions = defaultValue(targetPyramid.directions, pyramidToMerge.directions);
|
|
183
|
+
targetPyramid.radius = defaultValue(targetPyramid.radius, pyramidToMerge.radius);
|
|
184
|
+
targetPyramid.showIntersection = defaultValue(targetPyramid.showIntersection, pyramidToMerge.showIntersection);
|
|
185
|
+
targetPyramid.intersectionColor = defaultValue(targetPyramid.intersectionColor, pyramidToMerge.intersectionColor);
|
|
186
|
+
targetPyramid.material = defaultValue(targetPyramid.material, pyramidToMerge.material);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Given a DynamicObject, undefines the pyramid associated with it.
|
|
192
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
193
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
194
|
+
*
|
|
195
|
+
* @param {DynamicObject} dynamicObject The DynamicObject to remove the pyramid from.
|
|
196
|
+
*
|
|
197
|
+
* @see CzmlDefaults
|
|
198
|
+
*/
|
|
199
|
+
DynamicPyramid.undefineProperties = function(dynamicObject) {
|
|
200
|
+
dynamicObject.pyramid = undefined;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
return DynamicPyramid;
|
|
204
|
+
});
|