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,99 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/Cartesian3'
|
|
4
|
+
], function(
|
|
5
|
+
Cartesian3) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var doublesPerValue = 3;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Provides methods for working with a unit Cartesian3 defined in CZML.
|
|
12
|
+
*
|
|
13
|
+
* @exports CzmlUnitCartesian3
|
|
14
|
+
*
|
|
15
|
+
* @see Cartesian3
|
|
16
|
+
* @see DynamicProperty
|
|
17
|
+
* @see DynamicPositionProperty
|
|
18
|
+
* @see CzmlBoolean
|
|
19
|
+
* @see CzmlCartesian2
|
|
20
|
+
* @see CzmlCartesian3
|
|
21
|
+
* @see CzmlCartographic
|
|
22
|
+
* @see CzmlColor
|
|
23
|
+
* @see CzmlHorizontalOrigin
|
|
24
|
+
* @see CzmlLabelStyle
|
|
25
|
+
* @see CzmlNumber
|
|
26
|
+
* @see CzmlString
|
|
27
|
+
* @see CzmlUnitQuaternion
|
|
28
|
+
* @see CzmlUnitSpherical
|
|
29
|
+
* @see CzmlVerticalOrigin
|
|
30
|
+
*/
|
|
31
|
+
var CzmlUnitCartesian3 = {
|
|
32
|
+
/**
|
|
33
|
+
* The number of doubles per packed Cartesian3 value.
|
|
34
|
+
*/
|
|
35
|
+
doublesPerValue : doublesPerValue,
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The number of doubles per packed value used for interpolation.
|
|
39
|
+
*/
|
|
40
|
+
doublesPerInterpolationValue : doublesPerValue,
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Returns the packed Cartesian3 representation contained within the provided CZML interval
|
|
44
|
+
* or undefined if the interval does not contain Cartesian3 data.
|
|
45
|
+
*
|
|
46
|
+
* @param {Object} czmlInterval The CZML interval to unwrap.
|
|
47
|
+
*/
|
|
48
|
+
unwrapInterval : function(czmlInterval) {
|
|
49
|
+
return czmlInterval.unitCartesian;
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns true if this interval represents data that should be interpolated by the client
|
|
54
|
+
* or false if it's a single value.
|
|
55
|
+
*
|
|
56
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitCartesian3.unwrapInterval.
|
|
57
|
+
*/
|
|
58
|
+
isSampled : function(unwrappedInterval) {
|
|
59
|
+
return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerValue;
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Given a non-sampled unwrapped interval, returns a Cartesian3 instance of the data.
|
|
64
|
+
*
|
|
65
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitCartesian3.unwrapInterval.
|
|
66
|
+
* @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
|
|
67
|
+
* @returns The modified result parameter or a new Cartesian3 instance if result was not defined.
|
|
68
|
+
*/
|
|
69
|
+
getValue : function(unwrappedInterval, result) {
|
|
70
|
+
if (typeof result === 'undefined') {
|
|
71
|
+
result = new Cartesian3();
|
|
72
|
+
}
|
|
73
|
+
result.x = unwrappedInterval[0];
|
|
74
|
+
result.y = unwrappedInterval[1];
|
|
75
|
+
result.z = unwrappedInterval[2];
|
|
76
|
+
return result.normalize(result);
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Given a packed array of x, y, and z values, extracts a Cartesian3 instance.
|
|
81
|
+
*
|
|
82
|
+
* @param {Array} array A packed array of Cartesian3 values, where every three elements represents a Cartesian3.
|
|
83
|
+
* @param {Number} startingIndex The index into the array that contains the x value of the Cartesian3 you would like.
|
|
84
|
+
* @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
|
|
85
|
+
* @returns The modified result parameter or a new Cartesian3 instance if result was not defined.
|
|
86
|
+
*/
|
|
87
|
+
getValueFromArray : function(array, startingIndex, result) {
|
|
88
|
+
if (typeof result === 'undefined') {
|
|
89
|
+
result = new Cartesian3();
|
|
90
|
+
}
|
|
91
|
+
result.x = array[startingIndex];
|
|
92
|
+
result.y = array[startingIndex + 1];
|
|
93
|
+
result.z = array[startingIndex + 2];
|
|
94
|
+
return result.normalize(result);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
return CzmlUnitCartesian3;
|
|
99
|
+
});
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/Quaternion',
|
|
4
|
+
'../Core/Cartesian3'
|
|
5
|
+
], function(
|
|
6
|
+
Quaternion,
|
|
7
|
+
Cartesian3) {
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
var doublesPerCartesian = 3;
|
|
11
|
+
var doublesPerQuaternion = 4;
|
|
12
|
+
var axis = new Cartesian3();
|
|
13
|
+
var rotationVector = new Cartesian3();
|
|
14
|
+
var tmpQuaternion = new Quaternion();
|
|
15
|
+
var quaternion0 = new Quaternion();
|
|
16
|
+
var quaternion0Conjugate = new Quaternion();
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Provides methods for working with a unit Quaternion defined in CZML.
|
|
20
|
+
*
|
|
21
|
+
* @exports CzmlUnitQuaternion
|
|
22
|
+
*
|
|
23
|
+
* @see Quaternion
|
|
24
|
+
* @see DynamicProperty
|
|
25
|
+
* @see CzmlBoolean
|
|
26
|
+
* @see CzmlCartesian2
|
|
27
|
+
* @see CzmlCartesian3
|
|
28
|
+
* @see CzmlCartographic
|
|
29
|
+
* @see CzmlColor
|
|
30
|
+
* @see CzmlHorizontalOrigin
|
|
31
|
+
* @see CzmlLabelStyle
|
|
32
|
+
* @see CzmlNumber
|
|
33
|
+
* @see CzmlString
|
|
34
|
+
* @see CzmlUnitCartesian3
|
|
35
|
+
* @see CzmlUnitSpherical
|
|
36
|
+
* @see CzmlVerticalOrigin
|
|
37
|
+
*/
|
|
38
|
+
var CzmlUnitQuaternion = {
|
|
39
|
+
/**
|
|
40
|
+
* The number of doubles per packed Quaternion value.
|
|
41
|
+
*/
|
|
42
|
+
doublesPerValue : doublesPerQuaternion,
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The number of doubles per packed value used for interpolation.
|
|
46
|
+
*/
|
|
47
|
+
doublesPerInterpolationValue : doublesPerCartesian,
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Returns the packed Quaternion representation contained within the provided CZML interval
|
|
51
|
+
* or undefined if the interval does not contain Quaternion data.
|
|
52
|
+
*
|
|
53
|
+
* @param {Object} czmlInterval The CZML interval to unwrap.
|
|
54
|
+
*/
|
|
55
|
+
unwrapInterval : function(czmlInterval) {
|
|
56
|
+
return czmlInterval.unitQuaternion;
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Returns true if this interval represents data that should be interpolated by the client
|
|
61
|
+
* or false if it's a single value.
|
|
62
|
+
*
|
|
63
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitQuaternion.unwrapInterval.
|
|
64
|
+
*/
|
|
65
|
+
isSampled : function(unwrappedInterval) {
|
|
66
|
+
return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerQuaternion;
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Given a packed array of x, y, z, and w values, creates a packed array of
|
|
71
|
+
* Cartesian3 axis-angle rotations suitable for interpolation.
|
|
72
|
+
*
|
|
73
|
+
* @param {Array} sourceArray The packed array of quaternion values.
|
|
74
|
+
* @param {Array} destinationArray The array to store the packed axis-angle rotations.
|
|
75
|
+
* @param {Number} firstIndex The index of the first element to be packed.
|
|
76
|
+
* @param {Number} lastIndex The index of the last element to be packed.
|
|
77
|
+
*/
|
|
78
|
+
packValuesForInterpolation : function(sourceArray, destinationArray, firstIndex, lastIndex) {
|
|
79
|
+
CzmlUnitQuaternion.getValueFromArray(sourceArray, lastIndex * doublesPerQuaternion, quaternion0Conjugate);
|
|
80
|
+
quaternion0Conjugate.conjugate(quaternion0Conjugate);
|
|
81
|
+
|
|
82
|
+
for ( var i = 0, len = lastIndex - firstIndex + 1; i < len; i++) {
|
|
83
|
+
var offset = i * doublesPerCartesian;
|
|
84
|
+
CzmlUnitQuaternion.getValueFromArray(sourceArray, (firstIndex + i) * doublesPerQuaternion, tmpQuaternion);
|
|
85
|
+
|
|
86
|
+
tmpQuaternion.multiply(quaternion0Conjugate, tmpQuaternion);
|
|
87
|
+
|
|
88
|
+
if (tmpQuaternion.w < 0) {
|
|
89
|
+
tmpQuaternion.negate(tmpQuaternion);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
tmpQuaternion.getAxis(axis);
|
|
93
|
+
var angle = tmpQuaternion.getAngle();
|
|
94
|
+
destinationArray[offset] = axis.x * angle;
|
|
95
|
+
destinationArray[offset + 1] = axis.y * angle;
|
|
96
|
+
destinationArray[offset + 2] = axis.z * angle;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Given a non-sampled unwrapped interval, returns a Quaternion instance of the data.
|
|
102
|
+
*
|
|
103
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitQuaternion.unwrapInterval.
|
|
104
|
+
* @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
|
|
105
|
+
* @returns The modified result parameter or a new Quaternion instance if result was not defined.
|
|
106
|
+
*/
|
|
107
|
+
getValue : function(unwrappedInterval, result) {
|
|
108
|
+
if (typeof result === 'undefined') {
|
|
109
|
+
result = new Quaternion();
|
|
110
|
+
}
|
|
111
|
+
result.x = unwrappedInterval[0];
|
|
112
|
+
result.y = unwrappedInterval[1];
|
|
113
|
+
result.z = unwrappedInterval[2];
|
|
114
|
+
result.w = unwrappedInterval[3];
|
|
115
|
+
return result.normalize(result);
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Given a packed array of x, y, z, and w values, extracts a Quaternion instance.
|
|
120
|
+
*
|
|
121
|
+
* @param {Array} array A packed array of Quaternion values, where every four elements represents a Cartesian3.
|
|
122
|
+
* @param {Number} startingIndex The index into the array that contains the x value of the Quaternion you would like.
|
|
123
|
+
* @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
|
|
124
|
+
* @returns The modified result parameter or a new Quaternion instance if result was not defined.
|
|
125
|
+
*/
|
|
126
|
+
getValueFromArray : function(array, startingIndex, result) {
|
|
127
|
+
if (typeof result === 'undefined') {
|
|
128
|
+
result = new Quaternion();
|
|
129
|
+
}
|
|
130
|
+
result.x = array[startingIndex];
|
|
131
|
+
result.y = array[startingIndex + 1];
|
|
132
|
+
result.z = array[startingIndex + 2];
|
|
133
|
+
result.w = array[startingIndex + 3];
|
|
134
|
+
return result.normalize(result);
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Given a packed array of axis-angle rotations returned from CzmlUnitQuaternion.packValuesForInterpolation,
|
|
139
|
+
* converts the desired index into a unit Quaternion.
|
|
140
|
+
*
|
|
141
|
+
* @param {Array} array The array containing the packed axis-angle rotations.
|
|
142
|
+
* @param {Quaternion} result The object to store the result in, if undefined a new instance will be created.
|
|
143
|
+
* @param {Array} sourceArray The source array of the original Quaternion values previously passed to CzmlUnitQuaternion.packValuesForInterpolation.
|
|
144
|
+
* @param {Number} firstIndex The index previously passed to CzmlUnitQuaternion.packValuesForInterpolation.
|
|
145
|
+
* @param {Number} lastIndex The index previously passed to CzmlUnitQuaternion.packValuesForInterpolation
|
|
146
|
+
* @returns The modified result parameter or a new Quaternion instance if result was not defined.
|
|
147
|
+
*/
|
|
148
|
+
getValueFromInterpolationResult : function(array, result, sourceArray, firstIndex, lastIndex) {
|
|
149
|
+
if (typeof result === 'undefined') {
|
|
150
|
+
result = new Quaternion();
|
|
151
|
+
}
|
|
152
|
+
rotationVector.x = array[0];
|
|
153
|
+
rotationVector.y = array[1];
|
|
154
|
+
rotationVector.z = array[2];
|
|
155
|
+
var magnitude = rotationVector.magnitude();
|
|
156
|
+
|
|
157
|
+
CzmlUnitQuaternion.getValueFromArray(sourceArray, lastIndex * doublesPerQuaternion, quaternion0);
|
|
158
|
+
|
|
159
|
+
if (magnitude === 0) {
|
|
160
|
+
//Can't just use Quaternion.IDENTITY here because tmpQuaternion may be modified in the future.
|
|
161
|
+
tmpQuaternion.x = tmpQuaternion.y = tmpQuaternion.z = 0.0;
|
|
162
|
+
tmpQuaternion.w = 1.0;
|
|
163
|
+
} else {
|
|
164
|
+
Quaternion.fromAxisAngle(rotationVector, magnitude, tmpQuaternion);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return result.normalize(tmpQuaternion.multiply(quaternion0, result), result);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
return CzmlUnitQuaternion;
|
|
172
|
+
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/Spherical'
|
|
4
|
+
], function(
|
|
5
|
+
Spherical) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var doublesPerValue = 2;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Provides methods for working with a unit Spherical defined in CZML.
|
|
12
|
+
*
|
|
13
|
+
* @exports CzmlUnitSpherical
|
|
14
|
+
*
|
|
15
|
+
* @see Spherical
|
|
16
|
+
* @see DynamicProperty
|
|
17
|
+
* @see CzmlBoolean
|
|
18
|
+
* @see CzmlCartesian2
|
|
19
|
+
* @see CzmlCartesian3
|
|
20
|
+
* @see CzmlCartographic
|
|
21
|
+
* @see CzmlColor
|
|
22
|
+
* @see CzmlHorizontalOrigin
|
|
23
|
+
* @see CzmlLabelStyle
|
|
24
|
+
* @see CzmlNumber
|
|
25
|
+
* @see CzmlString
|
|
26
|
+
* @see CzmlUnitCartesian3
|
|
27
|
+
* @see CzmlUnitQuaternion
|
|
28
|
+
* @see CzmlVerticalOrigin
|
|
29
|
+
*/
|
|
30
|
+
var CzmlUnitSpherical = {
|
|
31
|
+
/**
|
|
32
|
+
* The number of doubles per packed Spherical value.
|
|
33
|
+
*/
|
|
34
|
+
doublesPerValue : doublesPerValue,
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The number of doubles per packed value used for interpolation.
|
|
38
|
+
*/
|
|
39
|
+
doublesPerInterpolationValue : doublesPerValue,
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Returns the packed Spherical representation contained within the provided CZML interval
|
|
43
|
+
* or undefined if the interval does not contain Spherical data.
|
|
44
|
+
*
|
|
45
|
+
* @param {Object} czmlInterval The CZML interval to unwrap.
|
|
46
|
+
*/
|
|
47
|
+
unwrapInterval : function(czmlInterval) {
|
|
48
|
+
return czmlInterval.unitSpherical;
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Returns true if this interval represents data that should be interpolated by the client
|
|
53
|
+
* or false if it's a single value.
|
|
54
|
+
*
|
|
55
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitSpherical.unwrapInterval.
|
|
56
|
+
*/
|
|
57
|
+
isSampled : function(unwrappedInterval) {
|
|
58
|
+
return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerValue;
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Given a non-sampled unwrapped interval, returns a Spherical instance of the data.
|
|
63
|
+
*
|
|
64
|
+
* @param {Object} unwrappedInterval The result of CzmlUnitSpherical.unwrapInterval.
|
|
65
|
+
* @param {Spherical} result The object to store the result in, if undefined a new instance will be created.
|
|
66
|
+
* @returns The modified result parameter or a new Spherical instance if result was not defined.
|
|
67
|
+
*/
|
|
68
|
+
getValue : function(unwrappedInterval, spherical) {
|
|
69
|
+
if (typeof spherical === 'undefined') {
|
|
70
|
+
spherical = new Spherical();
|
|
71
|
+
}
|
|
72
|
+
spherical.clock = unwrappedInterval[0];
|
|
73
|
+
spherical.cone = unwrappedInterval[1];
|
|
74
|
+
spherical.magnitude = 1.0;
|
|
75
|
+
return spherical;
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Given a packed array of clock and cone values, extracts a Spherical instance.
|
|
80
|
+
*
|
|
81
|
+
* @param {Array} array A packed array of Spherical values, where every two elements represents a Spherical.
|
|
82
|
+
* @param {Number} startingIndex The index into the array that contains the clock value of the Spherical you would like.
|
|
83
|
+
* @param {Spherical} result The object to store the result in, if undefined a new instance will be created.
|
|
84
|
+
* @returns The modified result parameter or a new Spherical instance if result was not defined.
|
|
85
|
+
*/
|
|
86
|
+
getValueFromArray : function(array, startingIndex, spherical) {
|
|
87
|
+
if (typeof spherical === 'undefined') {
|
|
88
|
+
spherical = new Spherical();
|
|
89
|
+
}
|
|
90
|
+
spherical.clock = array[startingIndex];
|
|
91
|
+
spherical.cone = array[startingIndex + 1];
|
|
92
|
+
spherical.magnitude = 1.0;
|
|
93
|
+
return spherical;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
return CzmlUnitSpherical;
|
|
98
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Scene/VerticalOrigin'
|
|
4
|
+
], function(
|
|
5
|
+
VerticalOrigin) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Provides methods for working with a vertical origin defined in CZML.
|
|
10
|
+
*
|
|
11
|
+
* @exports CzmlVerticalOrigin
|
|
12
|
+
*
|
|
13
|
+
* @see VerticalOrigin
|
|
14
|
+
* @see DynamicProperty
|
|
15
|
+
* @see CzmlBoolean
|
|
16
|
+
* @see CzmlCartesian2
|
|
17
|
+
* @see CzmlCartesian3
|
|
18
|
+
* @see CzmlCartographic
|
|
19
|
+
* @see CzmlColor
|
|
20
|
+
* @see CzmlHorizontalOrigin
|
|
21
|
+
* @see CzmlLabelStyle
|
|
22
|
+
* @see CzmlNumber
|
|
23
|
+
* @see CzmlString
|
|
24
|
+
* @see CzmlUnitCartesian3
|
|
25
|
+
* @see CzmlUnitQuaternion
|
|
26
|
+
* @see CzmlUnitSpherical
|
|
27
|
+
*/
|
|
28
|
+
var CzmlVerticalOrigin = {
|
|
29
|
+
/**
|
|
30
|
+
* Returns the packed enum representation contained within the provided CZML interval
|
|
31
|
+
* or undefined if the interval does not contain enum data.
|
|
32
|
+
*
|
|
33
|
+
* @param {Object} czmlInterval The CZML interval to unwrap.
|
|
34
|
+
*/
|
|
35
|
+
unwrapInterval : function(czmlInterval) {
|
|
36
|
+
var result = czmlInterval.verticalOrigin;
|
|
37
|
+
return typeof result === 'undefined' ? czmlInterval : result;
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Since enums can not be sampled, this method always returns false.
|
|
42
|
+
*/
|
|
43
|
+
isSampled : function() {
|
|
44
|
+
return false;
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Returns the VerticalOrigin contained within the unwrappedInterval.
|
|
49
|
+
*
|
|
50
|
+
* @param {Object} unwrappedInterval The result of CzmlVerticalOrigin.unwrapInterval.
|
|
51
|
+
* @returns The VerticalOrigin value.
|
|
52
|
+
*/
|
|
53
|
+
getValue : function(unwrappedInterval) {
|
|
54
|
+
return VerticalOrigin[unwrappedInterval];
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
return CzmlVerticalOrigin;
|
|
59
|
+
});
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/TimeInterval',
|
|
4
|
+
'../Core/defaultValue',
|
|
5
|
+
'./CzmlBoolean',
|
|
6
|
+
'./CzmlCartesian2',
|
|
7
|
+
'./CzmlCartesian3',
|
|
8
|
+
'./CzmlNumber',
|
|
9
|
+
'./CzmlImage',
|
|
10
|
+
'./CzmlHorizontalOrigin',
|
|
11
|
+
'./CzmlVerticalOrigin',
|
|
12
|
+
'./CzmlColor',
|
|
13
|
+
'./DynamicProperty'
|
|
14
|
+
], function(
|
|
15
|
+
TimeInterval,
|
|
16
|
+
defaultValue,
|
|
17
|
+
CzmlBoolean,
|
|
18
|
+
CzmlCartesian2,
|
|
19
|
+
CzmlCartesian3,
|
|
20
|
+
CzmlNumber,
|
|
21
|
+
CzmlImage,
|
|
22
|
+
CzmlHorizontalOrigin,
|
|
23
|
+
CzmlVerticalOrigin,
|
|
24
|
+
CzmlColor,
|
|
25
|
+
DynamicProperty) {
|
|
26
|
+
"use strict";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Represents a time-dynamic billboard, typically used in conjunction with DynamicBillboardVisualizer and
|
|
30
|
+
* DynamicObjectCollection to visualize CZML.
|
|
31
|
+
*
|
|
32
|
+
* @alias DynamicBillboard
|
|
33
|
+
* @constructor
|
|
34
|
+
*
|
|
35
|
+
* @see DynamicObject
|
|
36
|
+
* @see DynamicProperty
|
|
37
|
+
* @see DynamicObjectCollection
|
|
38
|
+
* @see DynamicBillboardVisualizer
|
|
39
|
+
* @see VisualizerCollection
|
|
40
|
+
* @see Billboard
|
|
41
|
+
* @see BillboardCollection
|
|
42
|
+
* @see CzmlDefaults
|
|
43
|
+
*/
|
|
44
|
+
var DynamicBillboard = function() {
|
|
45
|
+
/**
|
|
46
|
+
* A DynamicProperty of type CzmlImage which determines the billboard's texture.
|
|
47
|
+
* @type DynamicProperty
|
|
48
|
+
*/
|
|
49
|
+
this.image = undefined;
|
|
50
|
+
/**
|
|
51
|
+
* A DynamicProperty of type CzmlNumber which determines the billboard's scale.
|
|
52
|
+
* @type DynamicProperty
|
|
53
|
+
*/
|
|
54
|
+
this.scale = undefined;
|
|
55
|
+
/**
|
|
56
|
+
* A DynamicProperty of type CzmlHorizontalOrigin which determines the billboard's horizontal origin.
|
|
57
|
+
* @type DynamicProperty
|
|
58
|
+
*/
|
|
59
|
+
this.horizontalOrigin = undefined;
|
|
60
|
+
/**
|
|
61
|
+
* A DynamicProperty of type CzmlVerticalHorigin which determines the billboard's vertical origin.
|
|
62
|
+
* @type DynamicProperty
|
|
63
|
+
*/
|
|
64
|
+
this.verticalOrigin = undefined;
|
|
65
|
+
/**
|
|
66
|
+
* A DynamicProperty of type CzmlColor which determines the billboard's color.
|
|
67
|
+
* @type DynamicProperty
|
|
68
|
+
*/
|
|
69
|
+
this.color = undefined;
|
|
70
|
+
/**
|
|
71
|
+
* A DynamicProperty of type CzmlCartesian3 which determines the billboard's eye offset.
|
|
72
|
+
* @type DynamicProperty
|
|
73
|
+
*/
|
|
74
|
+
this.eyeOffset = undefined;
|
|
75
|
+
/**
|
|
76
|
+
* A DynamicProperty of type CzmlCartesian2 which determines the billboard's pixel offset.
|
|
77
|
+
* @type DynamicProperty
|
|
78
|
+
*/
|
|
79
|
+
this.pixelOffset = undefined;
|
|
80
|
+
/**
|
|
81
|
+
* A DynamicProperty of type CzmlBoolean which determines the billboard's visibility.
|
|
82
|
+
* @type DynamicProperty
|
|
83
|
+
*/
|
|
84
|
+
this.show = undefined;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Processes a single CZML packet and merges its data into the provided DynamicObject's billboard.
|
|
89
|
+
* If the DynamicObject does not have a billboard, one is created. This method is not
|
|
90
|
+
* normally called directly, but is part of the array of CZML processing functions that is
|
|
91
|
+
* passed into the DynamicObjectCollection constructor.
|
|
92
|
+
* @memberof DynamicBillboard
|
|
93
|
+
*
|
|
94
|
+
* @param {DynamicObject} dynamicObject The DynamicObject which will contain the billboard data.
|
|
95
|
+
* @param {Object} packet The CZML packet to process.
|
|
96
|
+
* @param {DynamicObjectCollection} [dynamicObjectCollection] The collection into which objects are being loaded.
|
|
97
|
+
* @param {String} [sourceUri] The originating url of the CZML being processed.
|
|
98
|
+
* @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
|
|
99
|
+
*
|
|
100
|
+
* @see DynamicObject
|
|
101
|
+
* @see DynamicProperty
|
|
102
|
+
* @see DynamicObjectCollection
|
|
103
|
+
* @see CzmlDefaults#updaters
|
|
104
|
+
*/
|
|
105
|
+
DynamicBillboard.processCzmlPacket = function(dynamicObject, packet, dynamicObjectCollection, sourceUri) {
|
|
106
|
+
var billboardData = packet.billboard;
|
|
107
|
+
if (typeof billboardData === 'undefined') {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
var billboardUpdated = false;
|
|
112
|
+
var billboard = dynamicObject.billboard;
|
|
113
|
+
billboardUpdated = typeof billboard === 'undefined';
|
|
114
|
+
if (billboardUpdated) {
|
|
115
|
+
dynamicObject.billboard = billboard = new DynamicBillboard();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
var interval = billboardData.interval;
|
|
119
|
+
if (typeof interval !== 'undefined') {
|
|
120
|
+
interval = TimeInterval.fromIso8601(interval);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (typeof billboardData.color !== 'undefined') {
|
|
124
|
+
var color = billboard.color;
|
|
125
|
+
if (typeof color === 'undefined') {
|
|
126
|
+
billboard.color = color = new DynamicProperty(CzmlColor);
|
|
127
|
+
billboardUpdated = true;
|
|
128
|
+
}
|
|
129
|
+
color.processCzmlIntervals(billboardData.color, interval);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (typeof billboardData.eyeOffset !== 'undefined') {
|
|
133
|
+
var eyeOffset = billboard.eyeOffset;
|
|
134
|
+
if (typeof eyeOffset === 'undefined') {
|
|
135
|
+
billboard.eyeOffset = eyeOffset = new DynamicProperty(CzmlCartesian3);
|
|
136
|
+
billboardUpdated = true;
|
|
137
|
+
}
|
|
138
|
+
eyeOffset.processCzmlIntervals(billboardData.eyeOffset, interval);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (typeof billboardData.horizontalOrigin !== 'undefined') {
|
|
142
|
+
var horizontalOrigin = billboard.horizontalOrigin;
|
|
143
|
+
if (typeof horizontalOrigin === 'undefined') {
|
|
144
|
+
billboard.horizontalOrigin = horizontalOrigin = new DynamicProperty(CzmlHorizontalOrigin);
|
|
145
|
+
billboardUpdated = true;
|
|
146
|
+
}
|
|
147
|
+
horizontalOrigin.processCzmlIntervals(billboardData.horizontalOrigin, interval);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (typeof billboardData.image !== 'undefined') {
|
|
151
|
+
var image = billboard.image;
|
|
152
|
+
if (typeof image === 'undefined') {
|
|
153
|
+
billboard.image = image = new DynamicProperty(CzmlImage);
|
|
154
|
+
billboardUpdated = true;
|
|
155
|
+
}
|
|
156
|
+
image.processCzmlIntervals(billboardData.image, interval, sourceUri);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (typeof billboardData.pixelOffset !== 'undefined') {
|
|
160
|
+
var pixelOffset = billboard.pixelOffset;
|
|
161
|
+
if (typeof pixelOffset === 'undefined') {
|
|
162
|
+
billboard.pixelOffset = pixelOffset = new DynamicProperty(CzmlCartesian2);
|
|
163
|
+
billboardUpdated = true;
|
|
164
|
+
}
|
|
165
|
+
pixelOffset.processCzmlIntervals(billboardData.pixelOffset, interval);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (typeof billboardData.scale !== 'undefined') {
|
|
169
|
+
var scale = billboard.scale;
|
|
170
|
+
if (typeof scale === 'undefined') {
|
|
171
|
+
billboard.scale = scale = new DynamicProperty(CzmlNumber);
|
|
172
|
+
billboardUpdated = true;
|
|
173
|
+
}
|
|
174
|
+
scale.processCzmlIntervals(billboardData.scale, interval);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (typeof billboardData.show !== 'undefined') {
|
|
178
|
+
var show = billboard.show;
|
|
179
|
+
if (typeof show === 'undefined') {
|
|
180
|
+
billboard.show = show = new DynamicProperty(CzmlBoolean);
|
|
181
|
+
billboardUpdated = true;
|
|
182
|
+
}
|
|
183
|
+
show.processCzmlIntervals(billboardData.show, interval);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (typeof billboardData.verticalOrigin !== 'undefined') {
|
|
187
|
+
var verticalOrigin = billboard.verticalOrigin;
|
|
188
|
+
if (typeof verticalOrigin === 'undefined') {
|
|
189
|
+
billboard.verticalOrigin = verticalOrigin = new DynamicProperty(CzmlVerticalOrigin);
|
|
190
|
+
billboardUpdated = true;
|
|
191
|
+
}
|
|
192
|
+
verticalOrigin.processCzmlIntervals(billboardData.verticalOrigin, interval);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return billboardUpdated;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Given two DynamicObjects, takes the billboard properties from the second
|
|
200
|
+
* and assigns them to the first, assuming such a property did not already exist.
|
|
201
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
202
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
203
|
+
* @memberof DynamicBillboard
|
|
204
|
+
*
|
|
205
|
+
* @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
|
|
206
|
+
* @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
|
|
207
|
+
*
|
|
208
|
+
* @see CzmlDefaults
|
|
209
|
+
*/
|
|
210
|
+
DynamicBillboard.mergeProperties = function(targetObject, objectToMerge) {
|
|
211
|
+
var billboardToMerge = objectToMerge.billboard;
|
|
212
|
+
if (typeof billboardToMerge !== 'undefined') {
|
|
213
|
+
|
|
214
|
+
var targetBillboard = targetObject.billboard;
|
|
215
|
+
if (typeof targetBillboard === 'undefined') {
|
|
216
|
+
targetObject.billboard = targetBillboard = new DynamicBillboard();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
targetBillboard.color = defaultValue(targetBillboard.color, billboardToMerge.color);
|
|
220
|
+
targetBillboard.eyeOffset = defaultValue(targetBillboard.eyeOffset, billboardToMerge.eyeOffset);
|
|
221
|
+
targetBillboard.horizontalOrigin = defaultValue(targetBillboard.horizontalOrigin, billboardToMerge.horizontalOrigin);
|
|
222
|
+
targetBillboard.image = defaultValue(targetBillboard.image, billboardToMerge.image);
|
|
223
|
+
targetBillboard.pixelOffset = defaultValue(targetBillboard.pixelOffset, billboardToMerge.pixelOffset);
|
|
224
|
+
targetBillboard.scale = defaultValue(targetBillboard.scale, billboardToMerge.scale);
|
|
225
|
+
targetBillboard.show = defaultValue(targetBillboard.show, billboardToMerge.show);
|
|
226
|
+
targetBillboard.verticalOrigin = defaultValue(targetBillboard.verticalOrigin, billboardToMerge.verticalOrigin);
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Given a DynamicObject, undefines the billboard associated with it.
|
|
232
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
233
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
234
|
+
* @memberof DynamicBillboard
|
|
235
|
+
*
|
|
236
|
+
* @param {DynamicObject} dynamicObject The DynamicObject to remove the billboard from.
|
|
237
|
+
*
|
|
238
|
+
* @see CzmlDefaults
|
|
239
|
+
*/
|
|
240
|
+
DynamicBillboard.undefineProperties = function(dynamicObject) {
|
|
241
|
+
dynamicObject.billboard = undefined;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
return DynamicBillboard;
|
|
245
|
+
});
|