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,525 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/Ellipsoid',
|
|
5
|
+
'../Core/JulianDate',
|
|
6
|
+
'../Core/TimeInterval',
|
|
7
|
+
'../Core/TimeIntervalCollection',
|
|
8
|
+
'../Core/Iso8601',
|
|
9
|
+
'../Core/Cartesian3',
|
|
10
|
+
'../Core/Cartographic',
|
|
11
|
+
'../Core/Matrix3',
|
|
12
|
+
'../Core/ReferenceFrame',
|
|
13
|
+
'../Core/Transforms',
|
|
14
|
+
'./CzmlCartesian3',
|
|
15
|
+
'./CzmlCartographic',
|
|
16
|
+
'./DynamicProperty'
|
|
17
|
+
], function(
|
|
18
|
+
DeveloperError,
|
|
19
|
+
Ellipsoid,
|
|
20
|
+
JulianDate,
|
|
21
|
+
TimeInterval,
|
|
22
|
+
TimeIntervalCollection,
|
|
23
|
+
Iso8601,
|
|
24
|
+
Cartesian3,
|
|
25
|
+
Cartographic,
|
|
26
|
+
Matrix3,
|
|
27
|
+
ReferenceFrame,
|
|
28
|
+
Transforms,
|
|
29
|
+
CzmlCartesian3,
|
|
30
|
+
CzmlCartographic,
|
|
31
|
+
DynamicProperty) {
|
|
32
|
+
"use strict";
|
|
33
|
+
|
|
34
|
+
var scratchMatrix3 = new Matrix3();
|
|
35
|
+
var wgs84 = Ellipsoid.WGS84;
|
|
36
|
+
var potentialTypes = [CzmlCartesian3, CzmlCartographic];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A dynamic property which stores both Cartesian and Cartographic data
|
|
40
|
+
* and can convert and return the desired type of data for a desired time.
|
|
41
|
+
* Rather than creating instances of this object directly, it's typically
|
|
42
|
+
* created and managed via loading CZML data into a DynamicObjectCollection.
|
|
43
|
+
* Instances of this type are exposed via DynamicObject and it's sub-objects
|
|
44
|
+
* and are responsible for interpreting and interpolating the data for visualization.
|
|
45
|
+
*
|
|
46
|
+
* @alias DynamicPositionProperty
|
|
47
|
+
* @constructor
|
|
48
|
+
*
|
|
49
|
+
* @see DynamicObject
|
|
50
|
+
* @see DynamicProperty
|
|
51
|
+
* @see ReferenceProperty
|
|
52
|
+
* @see DynamicMaterialProperty
|
|
53
|
+
* @see DynamicDirectionsProperty
|
|
54
|
+
* @see DynamicVertexPositionsProperty
|
|
55
|
+
*/
|
|
56
|
+
var DynamicPositionProperty = function() {
|
|
57
|
+
this._dynamicProperties = [];
|
|
58
|
+
this._propertyIntervals = new TimeIntervalCollection();
|
|
59
|
+
this._cachedTime = undefined;
|
|
60
|
+
this._cachedInterval = undefined;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Processes the provided CZML interval or intervals into this property.
|
|
65
|
+
*
|
|
66
|
+
* @memberof DynamicPositionProperty
|
|
67
|
+
*
|
|
68
|
+
* @param {Object} czmlIntervals The CZML data to process.
|
|
69
|
+
* @param {TimeInterval} [constrainedInterval] Constrains the processing so that any times outside of this interval are ignored.
|
|
70
|
+
*/
|
|
71
|
+
DynamicPositionProperty.prototype.processCzmlIntervals = function(czmlIntervals, constrainedInterval) {
|
|
72
|
+
if (Array.isArray(czmlIntervals)) {
|
|
73
|
+
for ( var i = 0, len = czmlIntervals.length; i < len; i++) {
|
|
74
|
+
this._addCzmlInterval(czmlIntervals[i], constrainedInterval);
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
this._addCzmlInterval(czmlIntervals, constrainedInterval);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Retrieves the value of the object at the supplied time as a Cartographic.
|
|
83
|
+
* @memberof DynamicPositionProperty
|
|
84
|
+
*
|
|
85
|
+
* @param {JulianDate} time The time for which to retrieve the value.
|
|
86
|
+
* @param {Cartographic} [result] The object to store the result onto, if undefined a new instance will be created.
|
|
87
|
+
* @returns The modified result property, or a new instance if result was undefined.
|
|
88
|
+
*/
|
|
89
|
+
DynamicPositionProperty.prototype.getValueCartographic = function(time, result) {
|
|
90
|
+
if (typeof time === 'undefined') {
|
|
91
|
+
throw new DeveloperError('time is required.');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var interval = this._cachedInterval;
|
|
95
|
+
if (this._cachedTime !== time) {
|
|
96
|
+
this._cachedTime = time;
|
|
97
|
+
if (typeof interval === 'undefined' || !interval.contains(time)) {
|
|
98
|
+
interval = this._propertyIntervals.findIntervalContainingDate(time);
|
|
99
|
+
this._cachedInterval = interval;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (typeof interval === 'undefined') {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
var property = interval.data;
|
|
107
|
+
var valueType = property.valueType;
|
|
108
|
+
if (valueType === CzmlCartographic) {
|
|
109
|
+
return property.getValue(time, result);
|
|
110
|
+
}
|
|
111
|
+
result = interval.cachedValue = property.getValue(time, interval.cachedValue);
|
|
112
|
+
if (typeof result !== 'undefined') {
|
|
113
|
+
if (interval.referenceFrame === ReferenceFrame.INERTIAL) {
|
|
114
|
+
var icrfToFixed = Transforms.computeIcrfToFixedMatrix(time, scratchMatrix3);
|
|
115
|
+
if (typeof icrfToFixed === 'undefined') {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
result = icrfToFixed.multiplyByVector(result, result);
|
|
119
|
+
}
|
|
120
|
+
result = wgs84.cartesianToCartographic(result);
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Retrieves the value of the object at the supplied time as a Cartesian3.
|
|
127
|
+
* @memberof DynamicPositionProperty
|
|
128
|
+
*
|
|
129
|
+
* @param {JulianDate} time The time for which to retrieve the value.
|
|
130
|
+
* @param {Cartesian3} [result] The object to store the result onto, if undefined a new instance will be created.
|
|
131
|
+
* @returns The modified result property, or a new instance if result was undefined.
|
|
132
|
+
*/
|
|
133
|
+
DynamicPositionProperty.prototype.getValueCartesian = function(time, result) {
|
|
134
|
+
if (typeof time === 'undefined') {
|
|
135
|
+
throw new DeveloperError('time is required.');
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var interval = this._cachedInterval;
|
|
139
|
+
if (this._cachedTime !== time) {
|
|
140
|
+
this._cachedTime = time;
|
|
141
|
+
if (typeof interval === 'undefined' || !interval.contains(time)) {
|
|
142
|
+
interval = this._propertyIntervals.findIntervalContainingDate(time);
|
|
143
|
+
this._cachedInterval = interval;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (typeof interval === 'undefined') {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
var property = interval.data;
|
|
151
|
+
var valueType = property.valueType;
|
|
152
|
+
if (valueType === CzmlCartesian3) {
|
|
153
|
+
result = property.getValue(time, result);
|
|
154
|
+
if (interval.referenceFrame === ReferenceFrame.INERTIAL) {
|
|
155
|
+
var icrfToFixed = Transforms.computeIcrfToFixedMatrix(time, scratchMatrix3);
|
|
156
|
+
if (typeof icrfToFixed === 'undefined') {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
return icrfToFixed.multiplyByVector(result, result);
|
|
160
|
+
}
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
result = interval.cachedValue = property.getValue(time, interval.cachedValue);
|
|
164
|
+
if (typeof result !== 'undefined') {
|
|
165
|
+
result = wgs84.cartographicToCartesian(result);
|
|
166
|
+
}
|
|
167
|
+
return result;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Retrieves all values in the provided time range. Rather than sampling, this
|
|
172
|
+
* method returns the actual data points used in the source data, with the exception
|
|
173
|
+
* of start, stop and currentTime parameters, which will be sampled.
|
|
174
|
+
*
|
|
175
|
+
* @param {JulianDate} start The first time to retrieve values for.
|
|
176
|
+
* @param {JulianDate} stop The last time to retrieve values for .
|
|
177
|
+
* @param {JulianDate} [currentTime] If provided, causes the algorithm to always sample the provided time, assuming it is between start and stop.
|
|
178
|
+
* @param {Array} [result] The array into which to store the result.
|
|
179
|
+
* @returns The modified result array or a new instance if one was not provided.
|
|
180
|
+
*/
|
|
181
|
+
DynamicPositionProperty.prototype.getValueRangeCartesian = function(start, stop, currentTime, result) {
|
|
182
|
+
if (typeof start === 'undefined') {
|
|
183
|
+
throw new DeveloperError('start is required');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (typeof stop === 'undefined') {
|
|
187
|
+
throw new DeveloperError('stop is required');
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (typeof result === 'undefined') {
|
|
191
|
+
result = [];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var propertyIntervals = this._propertyIntervals;
|
|
195
|
+
|
|
196
|
+
var startIndex = typeof start === 'undefined' ? 0 : propertyIntervals.indexOf(start);
|
|
197
|
+
var stopIndex = typeof stop === 'undefined' ? propertyIntervals.length - 1 : propertyIntervals.indexOf(stop);
|
|
198
|
+
if (startIndex < 0) {
|
|
199
|
+
startIndex = ~startIndex;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (startIndex === propertyIntervals.getLength()) {
|
|
203
|
+
result.length = 0;
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (stopIndex < 0) {
|
|
208
|
+
stopIndex = ~stopIndex;
|
|
209
|
+
if (stopIndex !== propertyIntervals.getLength()) {
|
|
210
|
+
result.length = 0;
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
stopIndex -= 1;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
var r = 0;
|
|
217
|
+
//Always step exactly on start (but only use it if it exists.)
|
|
218
|
+
var tmp;
|
|
219
|
+
tmp = this.getValueCartesian(start, result[r]);
|
|
220
|
+
if (typeof tmp !== 'undefined') {
|
|
221
|
+
result[r++] = tmp;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
var scratchCartographic;
|
|
225
|
+
var steppedOnNow = typeof currentTime === 'undefined' || currentTime.lessThan(start) || currentTime.greaterThan(stop);
|
|
226
|
+
for ( var i = startIndex; i < stopIndex + 1; i++) {
|
|
227
|
+
var current;
|
|
228
|
+
var interval = propertyIntervals.get(i);
|
|
229
|
+
var nextInterval = propertyIntervals.get(i + 1);
|
|
230
|
+
var loopStop = stop;
|
|
231
|
+
if (typeof nextInterval !== 'undefined' && stop.greaterThan(nextInterval.start)) {
|
|
232
|
+
loopStop = nextInterval.start;
|
|
233
|
+
}
|
|
234
|
+
var property = interval.data;
|
|
235
|
+
var valueType = property.valueType;
|
|
236
|
+
var currentInterval = property._intervals.get(0);
|
|
237
|
+
var times = currentInterval.data.times;
|
|
238
|
+
if (typeof times !== 'undefined') {
|
|
239
|
+
//Iterate over all interval times and add the ones that fall in our
|
|
240
|
+
//time range. Note that times can contain data outside of
|
|
241
|
+
//the intervals range. This is by design for use with interpolation.
|
|
242
|
+
var t;
|
|
243
|
+
if (valueType === CzmlCartesian3) {
|
|
244
|
+
for (t = 0; t < times.length; t++) {
|
|
245
|
+
current = times[t];
|
|
246
|
+
if (!steppedOnNow && current.greaterThanOrEquals(currentTime)) {
|
|
247
|
+
tmp = property.getValue(currentTime, result[r]);
|
|
248
|
+
if (typeof tmp !== 'undefined') {
|
|
249
|
+
result[r++] = tmp;
|
|
250
|
+
}
|
|
251
|
+
steppedOnNow = true;
|
|
252
|
+
}
|
|
253
|
+
if (current.greaterThan(start) && current.lessThan(loopStop)) {
|
|
254
|
+
tmp = property.getValue(current, result[r]);
|
|
255
|
+
if (typeof tmp !== 'undefined') {
|
|
256
|
+
result[r++] = tmp;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
for (t = 0; t < times.length; t++) {
|
|
262
|
+
current = times[t];
|
|
263
|
+
if (!steppedOnNow && current.greaterThanOrEquals(currentTime)) {
|
|
264
|
+
scratchCartographic = property.getValue(currentTime, scratchCartographic);
|
|
265
|
+
result[r++] = wgs84.cartographicToCartesian(scratchCartographic);
|
|
266
|
+
steppedOnNow = true;
|
|
267
|
+
}
|
|
268
|
+
if (current.greaterThan(start) && current.lessThan(loopStop)) {
|
|
269
|
+
scratchCartographic = property.getValue(current, scratchCartographic);
|
|
270
|
+
result[r++] = wgs84.cartographicToCartesian(scratchCartographic);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
//If times is undefined, it's because the interval contains a single position
|
|
276
|
+
//at which it stays for the duration of the interval.
|
|
277
|
+
current = interval.start;
|
|
278
|
+
|
|
279
|
+
//We don't need to actually step on now in this case, since the next value
|
|
280
|
+
//will be the same; but we do still need to check for it.
|
|
281
|
+
steppedOnNow = steppedOnNow || current.greaterThanOrEquals(currentTime);
|
|
282
|
+
|
|
283
|
+
//Finally, get the value at this non-sampled interval.
|
|
284
|
+
if (current.lessThan(loopStop)) {
|
|
285
|
+
if (valueType === CzmlCartesian3) {
|
|
286
|
+
tmp = property.getValue(current, result[r]);
|
|
287
|
+
if (typeof tmp !== 'undefined') {
|
|
288
|
+
result[r++] = tmp;
|
|
289
|
+
}
|
|
290
|
+
} else {
|
|
291
|
+
scratchCartographic = property.getValue(current, scratchCartographic);
|
|
292
|
+
result[r++] = wgs84.cartographicToCartesian(scratchCartographic);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
//Always step exactly on stop (but only use it if it exists.)
|
|
299
|
+
tmp = this.getValueCartesian(stop, result[r]);
|
|
300
|
+
if (typeof tmp !== 'undefined') {
|
|
301
|
+
result[r++] = tmp;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
result.length = r;
|
|
305
|
+
return result;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
DynamicPositionProperty.prototype._addCzmlInterval = function(czmlInterval, constrainedInterval) {
|
|
309
|
+
this._cachedTime = undefined;
|
|
310
|
+
this._cachedInterval = undefined;
|
|
311
|
+
|
|
312
|
+
var iso8601Interval = czmlInterval.interval, property, valueType, unwrappedInterval;
|
|
313
|
+
if (typeof iso8601Interval === 'undefined') {
|
|
314
|
+
iso8601Interval = Iso8601.MAXIMUM_INTERVAL.clone();
|
|
315
|
+
} else {
|
|
316
|
+
iso8601Interval = TimeInterval.fromIso8601(iso8601Interval);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
if (typeof constrainedInterval !== 'undefined') {
|
|
320
|
+
iso8601Interval = iso8601Interval.intersect(constrainedInterval);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
//See if we already have data at that interval.
|
|
324
|
+
var thisIntervals = this._propertyIntervals;
|
|
325
|
+
var existingInterval = thisIntervals.findInterval(iso8601Interval.start, iso8601Interval.stop);
|
|
326
|
+
|
|
327
|
+
if (typeof existingInterval !== 'undefined') {
|
|
328
|
+
//If so, see if the new data is the same type.
|
|
329
|
+
property = existingInterval.data;
|
|
330
|
+
if (typeof property !== 'undefined') {
|
|
331
|
+
valueType = property.valueType;
|
|
332
|
+
unwrappedInterval = valueType.unwrapInterval(czmlInterval);
|
|
333
|
+
}
|
|
334
|
+
} else {
|
|
335
|
+
//If not, create it.
|
|
336
|
+
existingInterval = iso8601Interval;
|
|
337
|
+
existingInterval.referenceFrame = ReferenceFrame.FIXED;
|
|
338
|
+
thisIntervals.addInterval(existingInterval);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
//If the new data was a different type, unwrapping fails, look for a valueType for this type.
|
|
342
|
+
if (typeof unwrappedInterval === 'undefined') {
|
|
343
|
+
for ( var i = 0, len = potentialTypes.length; i < len; i++) {
|
|
344
|
+
valueType = potentialTypes[i];
|
|
345
|
+
unwrappedInterval = valueType.unwrapInterval(czmlInterval);
|
|
346
|
+
if (typeof unwrappedInterval !== 'undefined') {
|
|
347
|
+
property = new DynamicProperty(valueType);
|
|
348
|
+
this._dynamicProperties.push(property);
|
|
349
|
+
existingInterval.data = property;
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
//We could handle the data, add it to the property.
|
|
356
|
+
if (typeof unwrappedInterval !== 'undefined') {
|
|
357
|
+
if (typeof czmlInterval.referenceFrame !== 'undefined') {
|
|
358
|
+
existingInterval.referenceFrame = ReferenceFrame[czmlInterval.referenceFrame];
|
|
359
|
+
}
|
|
360
|
+
property._addCzmlIntervalUnwrapped(iso8601Interval.start, iso8601Interval.stop, unwrappedInterval, czmlInterval.epoch, czmlInterval.interpolationAlgorithm, czmlInterval.interpolationDegree);
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
DynamicPositionProperty.prototype._getReferenceFrame = function() {
|
|
365
|
+
var propertyIntervals = this._propertyIntervals;
|
|
366
|
+
if (propertyIntervals.getLength() > 0) {
|
|
367
|
+
return propertyIntervals.get(0).referenceFrame;
|
|
368
|
+
}
|
|
369
|
+
return undefined;
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
DynamicPositionProperty.prototype._getValueInReferenceFrame = function(time, referenceFrame, result) {
|
|
373
|
+
if (typeof time === 'undefined') {
|
|
374
|
+
throw new DeveloperError('time is required.');
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
var interval = this._cachedInterval;
|
|
378
|
+
if (this._cachedTime !== time) {
|
|
379
|
+
this._cachedTime = time;
|
|
380
|
+
if (typeof interval === 'undefined' || !interval.contains(time)) {
|
|
381
|
+
interval = this._propertyIntervals.findIntervalContainingDate(time);
|
|
382
|
+
this._cachedInterval = interval;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
if (typeof interval === 'undefined') {
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
var property = interval.data;
|
|
390
|
+
var valueType = property.valueType;
|
|
391
|
+
if (valueType === CzmlCartesian3) {
|
|
392
|
+
result = property.getValue(time, result);
|
|
393
|
+
} else {
|
|
394
|
+
result = interval.cachedValue = property.getValue(time, interval.cachedValue);
|
|
395
|
+
if (typeof result !== 'undefined') {
|
|
396
|
+
result = wgs84.cartographicToCartesian(result);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
if (interval.referenceFrame !== referenceFrame) {
|
|
401
|
+
if (referenceFrame === ReferenceFrame.FIXED) {
|
|
402
|
+
var icrfToFixed = Transforms.computeIcrfToFixedMatrix(time, scratchMatrix3);
|
|
403
|
+
if (typeof icrfToFixed === 'undefined') {
|
|
404
|
+
return undefined;
|
|
405
|
+
}
|
|
406
|
+
return icrfToFixed.multiplyByVector(result, result);
|
|
407
|
+
}
|
|
408
|
+
if (referenceFrame === ReferenceFrame.INERTIAL) {
|
|
409
|
+
var fixedToIcrf = Transforms.computeFixedToIcrfMatrix(time, scratchMatrix3);
|
|
410
|
+
if (typeof fixedToIcrf === 'undefined') {
|
|
411
|
+
return undefined;
|
|
412
|
+
}
|
|
413
|
+
return fixedToIcrf.multiplyByVector(result, result);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
return result;
|
|
417
|
+
};
|
|
418
|
+
|
|
419
|
+
DynamicPositionProperty.prototype._getValueRangeInReferenceFrame = function(start, stop, currentTime, referenceFrame, result) {
|
|
420
|
+
if (typeof start === 'undefined') {
|
|
421
|
+
throw new DeveloperError('start is required');
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
if (typeof stop === 'undefined') {
|
|
425
|
+
throw new DeveloperError('stop is required');
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
if (typeof result === 'undefined') {
|
|
429
|
+
result = [];
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
var propertyIntervals = this._propertyIntervals;
|
|
433
|
+
|
|
434
|
+
var startIndex = typeof start === 'undefined' ? 0 : propertyIntervals.indexOf(start);
|
|
435
|
+
var stopIndex = typeof stop === 'undefined' ? propertyIntervals.length - 1 : propertyIntervals.indexOf(stop);
|
|
436
|
+
if (startIndex < 0) {
|
|
437
|
+
startIndex = ~startIndex;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
if (startIndex === propertyIntervals.getLength()) {
|
|
441
|
+
result.length = 0;
|
|
442
|
+
return result;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
if (stopIndex < 0) {
|
|
446
|
+
stopIndex = ~stopIndex;
|
|
447
|
+
if (stopIndex !== propertyIntervals.getLength()) {
|
|
448
|
+
result.length = 0;
|
|
449
|
+
return result;
|
|
450
|
+
}
|
|
451
|
+
stopIndex -= 1;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
var r = 0;
|
|
455
|
+
//Always step exactly on start (but only use it if it exists.)
|
|
456
|
+
var tmp;
|
|
457
|
+
tmp = this._getValueInReferenceFrame(start, referenceFrame, result[r]);
|
|
458
|
+
if (typeof tmp !== 'undefined') {
|
|
459
|
+
result[r++] = tmp;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
var steppedOnNow = typeof currentTime === 'undefined' || currentTime.lessThan(start) || currentTime.greaterThan(stop);
|
|
463
|
+
for ( var i = startIndex; i < stopIndex + 1; i++) {
|
|
464
|
+
var current;
|
|
465
|
+
var interval = propertyIntervals.get(i);
|
|
466
|
+
var nextInterval = propertyIntervals.get(i + 1);
|
|
467
|
+
var loopStop = stop;
|
|
468
|
+
if (typeof nextInterval !== 'undefined' && stop.greaterThan(nextInterval.start)) {
|
|
469
|
+
loopStop = nextInterval.start;
|
|
470
|
+
}
|
|
471
|
+
var property = interval.data;
|
|
472
|
+
var currentInterval = property._intervals.get(0);
|
|
473
|
+
var times = currentInterval.data.times;
|
|
474
|
+
if (typeof times !== 'undefined') {
|
|
475
|
+
//Iterate over all interval times and add the ones that fall in our
|
|
476
|
+
//time range. Note that times can contain data outside of
|
|
477
|
+
//the intervals range. This is by design for use with interpolation.
|
|
478
|
+
var t;
|
|
479
|
+
for (t = 0; t < times.length; t++) {
|
|
480
|
+
current = times[t];
|
|
481
|
+
if (!steppedOnNow && current.greaterThanOrEquals(currentTime)) {
|
|
482
|
+
tmp = this._getValueInReferenceFrame(currentTime, referenceFrame, result[r]);
|
|
483
|
+
if (typeof tmp !== 'undefined') {
|
|
484
|
+
result[r++] = tmp;
|
|
485
|
+
}
|
|
486
|
+
steppedOnNow = true;
|
|
487
|
+
}
|
|
488
|
+
if (current.greaterThan(start) && current.lessThan(loopStop)) {
|
|
489
|
+
tmp = this._getValueInReferenceFrame(current, referenceFrame, result[r]);
|
|
490
|
+
if (typeof tmp !== 'undefined') {
|
|
491
|
+
result[r++] = tmp;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
} else {
|
|
496
|
+
//If times is undefined, it's because the interval contains a single position
|
|
497
|
+
//at which it stays for the duration of the interval.
|
|
498
|
+
current = interval.start;
|
|
499
|
+
|
|
500
|
+
//We don't need to actually step on now in this case, since the next value
|
|
501
|
+
//will be the same; but we do still need to check for it.
|
|
502
|
+
steppedOnNow = steppedOnNow || current.greaterThanOrEquals(currentTime);
|
|
503
|
+
|
|
504
|
+
//Finally, get the value at this non-sampled interval.
|
|
505
|
+
if (current.lessThan(loopStop)) {
|
|
506
|
+
tmp = this._getValueInReferenceFrame(current, referenceFrame, result[r]);
|
|
507
|
+
if (typeof tmp !== 'undefined') {
|
|
508
|
+
result[r++] = tmp;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
//Always step exactly on stop (but only use it if it exists.)
|
|
515
|
+
tmp = this._getValueInReferenceFrame(stop, referenceFrame, result[r]);
|
|
516
|
+
if (typeof tmp !== 'undefined') {
|
|
517
|
+
result[r++] = tmp;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
result.length = r;
|
|
521
|
+
return result;
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
return DynamicPositionProperty;
|
|
525
|
+
});
|