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,347 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/destroyObject',
|
|
5
|
+
'../Core/Color',
|
|
6
|
+
'../Core/Cartesian2',
|
|
7
|
+
'../Core/Cartesian3',
|
|
8
|
+
'../Scene/BillboardCollection',
|
|
9
|
+
'../Scene/HorizontalOrigin',
|
|
10
|
+
'../Scene/VerticalOrigin',
|
|
11
|
+
'../Renderer/TextureAtlasBuilder'
|
|
12
|
+
], function(
|
|
13
|
+
DeveloperError,
|
|
14
|
+
destroyObject,
|
|
15
|
+
Color,
|
|
16
|
+
Cartesian2,
|
|
17
|
+
Cartesian3,
|
|
18
|
+
BillboardCollection,
|
|
19
|
+
HorizontalOrigin,
|
|
20
|
+
VerticalOrigin,
|
|
21
|
+
TextureAtlasBuilder) {
|
|
22
|
+
"use strict";
|
|
23
|
+
|
|
24
|
+
//Callback to create a callback so that we close over all of the proper values.
|
|
25
|
+
function textureReady(dynamicObject, billboardCollection, textureValue) {
|
|
26
|
+
return function(imageIndex) {
|
|
27
|
+
//By the time the texture was loaded, the billboard might already be
|
|
28
|
+
//gone or have been assigned a different texture. Look it up again
|
|
29
|
+
//and check.
|
|
30
|
+
var currentIndex = dynamicObject._billboardVisualizerIndex;
|
|
31
|
+
if (typeof currentIndex !== 'undefined') {
|
|
32
|
+
var cbBillboard = billboardCollection.get(currentIndex);
|
|
33
|
+
if (cbBillboard._visualizerUrl === textureValue) {
|
|
34
|
+
cbBillboard._visualizerTextureAvailable = true;
|
|
35
|
+
cbBillboard.setImageIndex(imageIndex);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* A DynamicObject visualizer which maps the DynamicBillboard instance
|
|
43
|
+
* in DynamicObject.billboard to a Billboard primitive.
|
|
44
|
+
* @alias DynamicBillboardVisualizer
|
|
45
|
+
* @constructor
|
|
46
|
+
*
|
|
47
|
+
* @param {Scene} scene The scene the primitives will be rendered in.
|
|
48
|
+
* @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
|
|
49
|
+
*
|
|
50
|
+
* @exception {DeveloperError} scene is required.
|
|
51
|
+
*
|
|
52
|
+
* @see DynamicBillboard
|
|
53
|
+
* @see Scene
|
|
54
|
+
* @see DynamicObject
|
|
55
|
+
* @see DynamicObjectCollection
|
|
56
|
+
* @see CompositeDynamicObjectCollection
|
|
57
|
+
* @see VisualizerCollection
|
|
58
|
+
* @see DynamicConeVisualizer
|
|
59
|
+
* @see DynamicConeVisualizerUsingCustomSensor
|
|
60
|
+
* @see DynamicLabelVisualizer
|
|
61
|
+
* @see DynamicPointVisualizer
|
|
62
|
+
* @see DynamicPolygonVisualizer
|
|
63
|
+
* @see DynamicPolylineVisualizer
|
|
64
|
+
* @see DynamicPyramidVisualizer
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
var DynamicBillboardVisualizer = function(scene, dynamicObjectCollection) {
|
|
68
|
+
if (typeof scene === 'undefined') {
|
|
69
|
+
throw new DeveloperError('scene is required.');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
this._scene = scene;
|
|
73
|
+
this._unusedIndexes = [];
|
|
74
|
+
this._dynamicObjectCollection = undefined;
|
|
75
|
+
|
|
76
|
+
var billboardCollection = this._billboardCollection = new BillboardCollection();
|
|
77
|
+
var atlas = this._textureAtlas = scene.getContext().createTextureAtlas();
|
|
78
|
+
this._textureAtlasBuilder = new TextureAtlasBuilder(atlas);
|
|
79
|
+
billboardCollection.setTextureAtlas(atlas);
|
|
80
|
+
scene.getPrimitives().add(billboardCollection);
|
|
81
|
+
this.setDynamicObjectCollection(dynamicObjectCollection);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Returns the scene being used by this visualizer.
|
|
86
|
+
*
|
|
87
|
+
* @returns {Scene} The scene being used by this visualizer.
|
|
88
|
+
*/
|
|
89
|
+
DynamicBillboardVisualizer.prototype.getScene = function() {
|
|
90
|
+
return this._scene;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Gets the DynamicObjectCollection being visualized.
|
|
95
|
+
*
|
|
96
|
+
* @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
|
|
97
|
+
*/
|
|
98
|
+
DynamicBillboardVisualizer.prototype.getDynamicObjectCollection = function() {
|
|
99
|
+
return this._dynamicObjectCollection;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Sets the DynamicObjectCollection to visualize.
|
|
104
|
+
*
|
|
105
|
+
* @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
|
|
106
|
+
*/
|
|
107
|
+
DynamicBillboardVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
|
|
108
|
+
var oldCollection = this._dynamicObjectCollection;
|
|
109
|
+
if (oldCollection !== dynamicObjectCollection) {
|
|
110
|
+
if (typeof oldCollection !== 'undefined') {
|
|
111
|
+
oldCollection.objectsRemoved.removeEventListener(DynamicBillboardVisualizer.prototype._onObjectsRemoved);
|
|
112
|
+
this.removeAllPrimitives();
|
|
113
|
+
}
|
|
114
|
+
this._dynamicObjectCollection = dynamicObjectCollection;
|
|
115
|
+
if (typeof dynamicObjectCollection !== 'undefined') {
|
|
116
|
+
dynamicObjectCollection.objectsRemoved.addEventListener(DynamicBillboardVisualizer.prototype._onObjectsRemoved, this);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Updates all of the primitives created by this visualizer to match their
|
|
123
|
+
* DynamicObject counterpart at the given time.
|
|
124
|
+
*
|
|
125
|
+
* @param {JulianDate} time The time to update to.
|
|
126
|
+
*
|
|
127
|
+
* @exception {DeveloperError} time is required.
|
|
128
|
+
*/
|
|
129
|
+
DynamicBillboardVisualizer.prototype.update = function(time) {
|
|
130
|
+
if (typeof time === 'undefined') {
|
|
131
|
+
throw new DeveloperError('time is requied.');
|
|
132
|
+
}
|
|
133
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
134
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
135
|
+
for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
|
|
136
|
+
this._updateObject(time, dynamicObjects[i]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Removes all primitives from the scene.
|
|
143
|
+
*/
|
|
144
|
+
DynamicBillboardVisualizer.prototype.removeAllPrimitives = function() {
|
|
145
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
146
|
+
this._unusedIndexes = [];
|
|
147
|
+
this._billboardCollection.removeAll();
|
|
148
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
149
|
+
for ( var i = dynamicObjects.length - 1; i > -1; i--) {
|
|
150
|
+
dynamicObjects[i]._billboardVisualizerIndex = undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
157
|
+
* <br /><br />
|
|
158
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
159
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
160
|
+
*
|
|
161
|
+
* @memberof DynamicBillboardVisualizer
|
|
162
|
+
*
|
|
163
|
+
* @return {Boolean} True if this object was destroyed; otherwise, false.
|
|
164
|
+
*
|
|
165
|
+
* @see DynamicBillboardVisualizer#destroy
|
|
166
|
+
*/
|
|
167
|
+
DynamicBillboardVisualizer.prototype.isDestroyed = function() {
|
|
168
|
+
return false;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
173
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
174
|
+
* <br /><br />
|
|
175
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
176
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
177
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
178
|
+
*
|
|
179
|
+
* @memberof DynamicBillboardVisualizer
|
|
180
|
+
*
|
|
181
|
+
* @return {undefined}
|
|
182
|
+
*
|
|
183
|
+
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
184
|
+
*
|
|
185
|
+
* @see DynamicBillboardVisualizer#isDestroyed
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* visualizer = visualizer && visualizer.destroy();
|
|
189
|
+
*/
|
|
190
|
+
DynamicBillboardVisualizer.prototype.destroy = function() {
|
|
191
|
+
this.removeAllPrimitives();
|
|
192
|
+
this._scene.getPrimitives().remove(this._billboardCollection);
|
|
193
|
+
return destroyObject(this);
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
var position;
|
|
197
|
+
var color;
|
|
198
|
+
var eyeOffset;
|
|
199
|
+
var pixelOffset;
|
|
200
|
+
DynamicBillboardVisualizer.prototype._updateObject = function(time, dynamicObject) {
|
|
201
|
+
var dynamicBillboard = dynamicObject.billboard;
|
|
202
|
+
if (typeof dynamicBillboard === 'undefined') {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
var positionProperty = dynamicObject.position;
|
|
207
|
+
if (typeof positionProperty === 'undefined') {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var textureProperty = dynamicBillboard.image;
|
|
212
|
+
if (typeof textureProperty === 'undefined') {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
var billboard;
|
|
217
|
+
var showProperty = dynamicBillboard.show;
|
|
218
|
+
var billboardVisualizerIndex = dynamicObject._billboardVisualizerIndex;
|
|
219
|
+
var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
|
|
220
|
+
|
|
221
|
+
if (!show) {
|
|
222
|
+
//don't bother creating or updating anything else
|
|
223
|
+
if (typeof billboardVisualizerIndex !== 'undefined') {
|
|
224
|
+
billboard = this._billboardCollection.get(billboardVisualizerIndex);
|
|
225
|
+
billboard.setShow(false);
|
|
226
|
+
billboard.setImageIndex(-1);
|
|
227
|
+
billboard._visualizerUrl = undefined;
|
|
228
|
+
billboard._visualizerTextureAvailable = false;
|
|
229
|
+
dynamicObject._billboardVisualizerIndex = undefined;
|
|
230
|
+
this._unusedIndexes.push(billboardVisualizerIndex);
|
|
231
|
+
}
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (typeof billboardVisualizerIndex === 'undefined') {
|
|
236
|
+
var unusedIndexes = this._unusedIndexes;
|
|
237
|
+
var length = unusedIndexes.length;
|
|
238
|
+
if (length > 0) {
|
|
239
|
+
billboardVisualizerIndex = unusedIndexes.pop();
|
|
240
|
+
billboard = this._billboardCollection.get(billboardVisualizerIndex);
|
|
241
|
+
} else {
|
|
242
|
+
billboardVisualizerIndex = this._billboardCollection.getLength();
|
|
243
|
+
billboard = this._billboardCollection.add();
|
|
244
|
+
}
|
|
245
|
+
dynamicObject._billboardVisualizerIndex = billboardVisualizerIndex;
|
|
246
|
+
billboard.dynamicObject = dynamicObject;
|
|
247
|
+
billboard._visualizerUrl = undefined;
|
|
248
|
+
billboard._visualizerTextureAvailable = false;
|
|
249
|
+
|
|
250
|
+
// CZML_TODO Determine official defaults
|
|
251
|
+
billboard.setColor(Color.WHITE);
|
|
252
|
+
billboard.setEyeOffset(Cartesian3.ZERO);
|
|
253
|
+
billboard.setPixelOffset(Cartesian2.ZERO);
|
|
254
|
+
billboard.setScale(1.0);
|
|
255
|
+
billboard.setHorizontalOrigin(HorizontalOrigin.CENTER);
|
|
256
|
+
billboard.setVerticalOrigin(VerticalOrigin.CENTER);
|
|
257
|
+
} else {
|
|
258
|
+
billboard = this._billboardCollection.get(billboardVisualizerIndex);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
var textureValue = textureProperty.getValue(time);
|
|
262
|
+
if (textureValue !== billboard._visualizerUrl) {
|
|
263
|
+
billboard._visualizerUrl = textureValue;
|
|
264
|
+
billboard._visualizerTextureAvailable = false;
|
|
265
|
+
this._textureAtlasBuilder.addTextureFromUrl(textureValue, textureReady(dynamicObject, this._billboardCollection, textureValue));
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
billboard.setShow(billboard._visualizerTextureAvailable);
|
|
269
|
+
if (!billboard._visualizerTextureAvailable) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
position = positionProperty.getValueCartesian(time, position);
|
|
274
|
+
if (typeof position !== 'undefined') {
|
|
275
|
+
billboard.setPosition(position);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
var property = dynamicBillboard.color;
|
|
279
|
+
|
|
280
|
+
if (typeof property !== 'undefined') {
|
|
281
|
+
color = property.getValue(time, color);
|
|
282
|
+
if (typeof color !== 'undefined') {
|
|
283
|
+
billboard.setColor(color);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
property = dynamicBillboard.eyeOffset;
|
|
288
|
+
if (typeof property !== 'undefined') {
|
|
289
|
+
eyeOffset = property.getValue(time, eyeOffset);
|
|
290
|
+
if (typeof eyeOffset !== 'undefined') {
|
|
291
|
+
billboard.setEyeOffset(eyeOffset);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
property = dynamicBillboard.pixelOffset;
|
|
296
|
+
if (typeof property !== 'undefined') {
|
|
297
|
+
pixelOffset = property.getValue(time, pixelOffset);
|
|
298
|
+
if (typeof pixelOffset !== 'undefined') {
|
|
299
|
+
billboard.setPixelOffset(pixelOffset);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
property = dynamicBillboard.scale;
|
|
304
|
+
if (typeof property !== 'undefined') {
|
|
305
|
+
var scale = property.getValue(time);
|
|
306
|
+
if (typeof scale !== 'undefined') {
|
|
307
|
+
billboard.setScale(scale);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
property = dynamicBillboard.horizontalOrigin;
|
|
312
|
+
if (typeof property !== 'undefined') {
|
|
313
|
+
var horizontalOrigin = property.getValue(time);
|
|
314
|
+
if (typeof horizontalOrigin !== 'undefined') {
|
|
315
|
+
billboard.setHorizontalOrigin(horizontalOrigin);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
property = dynamicBillboard.verticalOrigin;
|
|
320
|
+
if (typeof property !== 'undefined') {
|
|
321
|
+
var verticalOrigin = property.getValue(time);
|
|
322
|
+
if (typeof verticalOrigin !== 'undefined') {
|
|
323
|
+
billboard.setVerticalOrigin(verticalOrigin);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
DynamicBillboardVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
|
|
329
|
+
var thisBillboardCollection = this._billboardCollection;
|
|
330
|
+
var thisUnusedIndexes = this._unusedIndexes;
|
|
331
|
+
for ( var i = dynamicObjects.length - 1; i > -1; i--) {
|
|
332
|
+
var dynamicObject = dynamicObjects[i];
|
|
333
|
+
var billboardVisualizerIndex = dynamicObject._billboardVisualizerIndex;
|
|
334
|
+
if (typeof billboardVisualizerIndex !== 'undefined') {
|
|
335
|
+
var billboard = thisBillboardCollection.get(billboardVisualizerIndex);
|
|
336
|
+
billboard.setShow(false);
|
|
337
|
+
billboard.setImageIndex(-1);
|
|
338
|
+
billboard._visualizerUrl = undefined;
|
|
339
|
+
billboard._visualizerTextureAvailable = false;
|
|
340
|
+
dynamicObject._billboardVisualizerIndex = undefined;
|
|
341
|
+
thisUnusedIndexes.push(billboardVisualizerIndex);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
return DynamicBillboardVisualizer;
|
|
347
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DynamicProperty',
|
|
4
|
+
'./CzmlColor',
|
|
5
|
+
'../Scene/Material'
|
|
6
|
+
], function(
|
|
7
|
+
DynamicProperty,
|
|
8
|
+
CzmlColor,
|
|
9
|
+
Material) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A utility class for processing CZML color materials.
|
|
14
|
+
* @alias DynamicColorMaterial
|
|
15
|
+
* @constructor
|
|
16
|
+
*/
|
|
17
|
+
var DynamicColorMaterial = function() {
|
|
18
|
+
/**
|
|
19
|
+
* A DynamicProperty of type CzmlColor which determines the material's color.
|
|
20
|
+
* @type DynamicProperty
|
|
21
|
+
*/
|
|
22
|
+
this.color = undefined;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns true if the provided CZML interval contains color material data.
|
|
27
|
+
* @param czmlInterval The CZML interval to check.
|
|
28
|
+
* @returns {Boolean} true if the interval contains CZML color material data, false otherwise.
|
|
29
|
+
*/
|
|
30
|
+
DynamicColorMaterial.isMaterial = function(czmlInterval) {
|
|
31
|
+
return typeof czmlInterval !== 'undefined' && typeof czmlInterval.solidColor !== 'undefined';
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Returns true if the provided CZML interval contains color material data.
|
|
36
|
+
* @param czmlInterval The CZML interval to check.
|
|
37
|
+
* @returns {Boolean} true if the interval contains CZML color material data, false otherwise.
|
|
38
|
+
*/
|
|
39
|
+
DynamicColorMaterial.prototype.isMaterial = DynamicColorMaterial.isMaterial;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Provided a CZML interval containing color material data, processes the
|
|
43
|
+
* interval into a new or existing instance of this class.
|
|
44
|
+
*
|
|
45
|
+
* @param {Object} czmlInterval The interval to process.
|
|
46
|
+
* @param {DynamicColorMaterial} [existingMaterial] The DynamicColorMaterial to modify.
|
|
47
|
+
*/
|
|
48
|
+
DynamicColorMaterial.prototype.processCzmlIntervals = function(czmlInterval) {
|
|
49
|
+
var materialData = czmlInterval.solidColor;
|
|
50
|
+
if (typeof materialData !== 'undefined') {
|
|
51
|
+
if (typeof materialData.color !== 'undefined') {
|
|
52
|
+
var color = this.color;
|
|
53
|
+
if (typeof color === 'undefined') {
|
|
54
|
+
this.color = color = new DynamicProperty(CzmlColor);
|
|
55
|
+
}
|
|
56
|
+
color.processCzmlIntervals(materialData.color);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Gets a Color Material that represents this dynamic material at the provided time.
|
|
63
|
+
*
|
|
64
|
+
* @param {JulianDate} time The desired time.
|
|
65
|
+
* @param {Context} context The context in which this material exists.
|
|
66
|
+
* @param {Material} [existingMaterial] An existing material to be modified. If the material is undefined or not a Color Material, a new instance is created.
|
|
67
|
+
* @returns The modified existingMaterial parameter or a new Color Material instance if existingMaterial was undefined or not a Color Material.
|
|
68
|
+
*/
|
|
69
|
+
DynamicColorMaterial.prototype.getValue = function(time, context, existingMaterial) {
|
|
70
|
+
if (typeof existingMaterial === 'undefined' || (existingMaterial.type !== Material.ColorType)) {
|
|
71
|
+
existingMaterial = Material.fromType(context, Material.ColorType);
|
|
72
|
+
}
|
|
73
|
+
existingMaterial.uniforms.color = this.color.getValue(time, existingMaterial.uniforms.color);
|
|
74
|
+
return existingMaterial;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
return DynamicColorMaterial;
|
|
78
|
+
});
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/TimeInterval',
|
|
4
|
+
'../Core/defaultValue',
|
|
5
|
+
'./CzmlBoolean',
|
|
6
|
+
'./CzmlNumber',
|
|
7
|
+
'./CzmlColor',
|
|
8
|
+
'./DynamicProperty',
|
|
9
|
+
'./DynamicMaterialProperty'
|
|
10
|
+
], function(
|
|
11
|
+
TimeInterval,
|
|
12
|
+
defaultValue,
|
|
13
|
+
CzmlBoolean,
|
|
14
|
+
CzmlNumber,
|
|
15
|
+
CzmlColor,
|
|
16
|
+
DynamicProperty,
|
|
17
|
+
DynamicMaterialProperty) {
|
|
18
|
+
"use strict";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Represents a time-dynamic cone, typically used in conjunction with DynamicConeVisualizer and
|
|
22
|
+
* DynamicObjectCollection to visualize CZML.
|
|
23
|
+
*
|
|
24
|
+
* @alias DynamicCone
|
|
25
|
+
* @constructor
|
|
26
|
+
*
|
|
27
|
+
* @see DynamicObject
|
|
28
|
+
* @see DynamicProperty
|
|
29
|
+
* @see DynamicObjectCollection
|
|
30
|
+
* @see DynamicConeVisualizer
|
|
31
|
+
* @see VisualizerCollection
|
|
32
|
+
* @see ComplexConicSensor
|
|
33
|
+
* @see CzmlDefaults
|
|
34
|
+
*/
|
|
35
|
+
var DynamicCone = function() {
|
|
36
|
+
/**
|
|
37
|
+
* A DynamicProperty of type CzmlNumber which determines the cone's minimum clock-angle.
|
|
38
|
+
* @type DynamicProperty
|
|
39
|
+
*/
|
|
40
|
+
this.minimumClockAngle = undefined;
|
|
41
|
+
/**
|
|
42
|
+
* A DynamicProperty of type CzmlNumber which determines the cone's maximum clock-angle.
|
|
43
|
+
* @type DynamicProperty
|
|
44
|
+
*/
|
|
45
|
+
this.maximumClockAngle = undefined;
|
|
46
|
+
/**
|
|
47
|
+
* A DynamicProperty of type CzmlNumber which determines the cone's inner half-angle.
|
|
48
|
+
* @type DynamicProperty
|
|
49
|
+
*/
|
|
50
|
+
this.innerHalfAngle = undefined;
|
|
51
|
+
/**
|
|
52
|
+
* A DynamicProperty of type CzmlNumber which determines the cone's outer half-angle.
|
|
53
|
+
* @type DynamicProperty
|
|
54
|
+
*/
|
|
55
|
+
this.outerHalfAngle = undefined;
|
|
56
|
+
/**
|
|
57
|
+
* A DynamicMaterialProperty which determines the cone's cap material.
|
|
58
|
+
* @type DynamicMaterialProperty
|
|
59
|
+
*/
|
|
60
|
+
this.capMaterial = undefined;
|
|
61
|
+
/**
|
|
62
|
+
* A DynamicMaterialProperty which determines the cone's inner material.
|
|
63
|
+
* @type DynamicMaterialProperty
|
|
64
|
+
*/
|
|
65
|
+
this.innerMaterial = undefined;
|
|
66
|
+
/**
|
|
67
|
+
* A DynamicMaterialProperty which determines the cone's outer material.
|
|
68
|
+
* @type DynamicMaterialProperty
|
|
69
|
+
*/
|
|
70
|
+
this.outerMaterial = undefined;
|
|
71
|
+
/**
|
|
72
|
+
* A DynamicMaterialProperty which determines the cone's silhouette material.
|
|
73
|
+
* @type DynamicMaterialProperty
|
|
74
|
+
*/
|
|
75
|
+
this.silhouetteMaterial = undefined;
|
|
76
|
+
/**
|
|
77
|
+
* A DynamicProperty of type CzmlColor which determines the color of the line formed by the intersection of the cone and other central bodies.
|
|
78
|
+
* @type DynamicProperty
|
|
79
|
+
*/
|
|
80
|
+
this.intersectionColor = undefined;
|
|
81
|
+
/**
|
|
82
|
+
* A DynamicProperty of type CzmlBoolean which determines the cone's intersection visibility
|
|
83
|
+
* @type DynamicProperty
|
|
84
|
+
*/
|
|
85
|
+
this.showIntersection = undefined;
|
|
86
|
+
/**
|
|
87
|
+
* A DynamicProperty of type CzmlNumber which determines the cone's radius.
|
|
88
|
+
* @type DynamicProperty
|
|
89
|
+
*/
|
|
90
|
+
this.radius = undefined;
|
|
91
|
+
/**
|
|
92
|
+
* A DynamicProperty of type CzmlBoolean which determines the cone's visibility
|
|
93
|
+
* @type DynamicProperty
|
|
94
|
+
*/
|
|
95
|
+
this.show = undefined;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Processes a single CZML packet and merges its data into the provided DynamicObject's cone.
|
|
100
|
+
* If the DynamicObject does not have a cone, one is created. This method is not
|
|
101
|
+
* normally called directly, but is part of the array of CZML processing functions that is
|
|
102
|
+
* passed into the DynamicObjectCollection constructor.
|
|
103
|
+
*
|
|
104
|
+
* @param {DynamicObject} dynamicObject The DynamicObject which will contain the cone data.
|
|
105
|
+
* @param {Object} packet The CZML packet to process.
|
|
106
|
+
* @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
|
|
107
|
+
*
|
|
108
|
+
* @see DynamicObject
|
|
109
|
+
* @see DynamicProperty
|
|
110
|
+
* @see DynamicObjectCollection
|
|
111
|
+
* @see CzmlDefaults#updaters
|
|
112
|
+
*/
|
|
113
|
+
DynamicCone.processCzmlPacket = function(dynamicObject, packet) {
|
|
114
|
+
var coneData = packet.cone;
|
|
115
|
+
if (typeof coneData === 'undefined') {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
var coneUpdated = false;
|
|
120
|
+
var cone = dynamicObject.cone;
|
|
121
|
+
coneUpdated = typeof cone === 'undefined';
|
|
122
|
+
if (coneUpdated) {
|
|
123
|
+
dynamicObject.cone = cone = new DynamicCone();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
var interval = coneData.interval;
|
|
127
|
+
if (typeof interval !== 'undefined') {
|
|
128
|
+
interval = TimeInterval.fromIso8601(interval);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (typeof coneData.show !== 'undefined') {
|
|
132
|
+
var show = cone.show;
|
|
133
|
+
if (typeof show === 'undefined') {
|
|
134
|
+
cone.show = show = new DynamicProperty(CzmlBoolean);
|
|
135
|
+
coneUpdated = true;
|
|
136
|
+
}
|
|
137
|
+
show.processCzmlIntervals(coneData.show, interval);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (typeof coneData.innerHalfAngle !== 'undefined') {
|
|
141
|
+
var innerHalfAngle = cone.innerHalfAngle;
|
|
142
|
+
if (typeof innerHalfAngle === 'undefined') {
|
|
143
|
+
cone.innerHalfAngle = innerHalfAngle = new DynamicProperty(CzmlNumber);
|
|
144
|
+
coneUpdated = true;
|
|
145
|
+
}
|
|
146
|
+
innerHalfAngle.processCzmlIntervals(coneData.innerHalfAngle, interval);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (typeof coneData.outerHalfAngle !== 'undefined') {
|
|
150
|
+
var outerHalfAngle = cone.outerHalfAngle;
|
|
151
|
+
if (typeof outerHalfAngle === 'undefined') {
|
|
152
|
+
cone.outerHalfAngle = outerHalfAngle = new DynamicProperty(CzmlNumber);
|
|
153
|
+
coneUpdated = true;
|
|
154
|
+
}
|
|
155
|
+
outerHalfAngle.processCzmlIntervals(coneData.outerHalfAngle, interval);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (typeof coneData.minimumClockAngle !== 'undefined') {
|
|
159
|
+
var minimumClockAngle = cone.minimumClockAngle;
|
|
160
|
+
if (typeof minimumClockAngle === 'undefined') {
|
|
161
|
+
cone.minimumClockAngle = minimumClockAngle = new DynamicProperty(CzmlNumber);
|
|
162
|
+
coneUpdated = true;
|
|
163
|
+
}
|
|
164
|
+
minimumClockAngle.processCzmlIntervals(coneData.minimumClockAngle, interval);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (typeof coneData.maximumClockAngle !== 'undefined') {
|
|
168
|
+
var maximumClockAngle = cone.maximumClockAngle;
|
|
169
|
+
if (typeof maximumClockAngle === 'undefined') {
|
|
170
|
+
cone.maximumClockAngle = maximumClockAngle = new DynamicProperty(CzmlNumber);
|
|
171
|
+
coneUpdated = true;
|
|
172
|
+
}
|
|
173
|
+
maximumClockAngle.processCzmlIntervals(coneData.maximumClockAngle, interval);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (typeof coneData.radius !== 'undefined') {
|
|
177
|
+
var radius = cone.radius;
|
|
178
|
+
if (typeof radius === 'undefined') {
|
|
179
|
+
cone.radius = radius = new DynamicProperty(CzmlNumber);
|
|
180
|
+
coneUpdated = true;
|
|
181
|
+
}
|
|
182
|
+
radius.processCzmlIntervals(coneData.radius, interval);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (typeof coneData.showIntersection !== 'undefined') {
|
|
186
|
+
var showIntersection = cone.showIntersection;
|
|
187
|
+
if (typeof showIntersection === 'undefined') {
|
|
188
|
+
cone.showIntersection = showIntersection = new DynamicProperty(CzmlBoolean);
|
|
189
|
+
coneUpdated = true;
|
|
190
|
+
}
|
|
191
|
+
showIntersection.processCzmlIntervals(coneData.showIntersection, interval);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (typeof coneData.intersectionColor !== 'undefined') {
|
|
195
|
+
var intersectionColor = cone.intersectionColor;
|
|
196
|
+
if (typeof intersectionColor === 'undefined') {
|
|
197
|
+
cone.intersectionColor = intersectionColor = new DynamicProperty(CzmlColor);
|
|
198
|
+
coneUpdated = true;
|
|
199
|
+
}
|
|
200
|
+
intersectionColor.processCzmlIntervals(coneData.intersectionColor, interval);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (typeof coneData.capMaterial !== 'undefined') {
|
|
204
|
+
var capMaterial = cone.capMaterial;
|
|
205
|
+
if (typeof capMaterial === 'undefined') {
|
|
206
|
+
cone.capMaterial = capMaterial = new DynamicMaterialProperty();
|
|
207
|
+
coneUpdated = true;
|
|
208
|
+
}
|
|
209
|
+
capMaterial.processCzmlIntervals(coneData.capMaterial, interval);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (typeof coneData.innerMaterial !== 'undefined') {
|
|
213
|
+
var innerMaterial = cone.innerMaterial;
|
|
214
|
+
if (typeof innerMaterial === 'undefined') {
|
|
215
|
+
cone.innerMaterial = innerMaterial = new DynamicMaterialProperty();
|
|
216
|
+
coneUpdated = true;
|
|
217
|
+
}
|
|
218
|
+
innerMaterial.processCzmlIntervals(coneData.innerMaterial, interval);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (typeof coneData.outerMaterial !== 'undefined') {
|
|
222
|
+
var outerMaterial = cone.outerMaterial;
|
|
223
|
+
if (typeof outerMaterial === 'undefined') {
|
|
224
|
+
cone.outerMaterial = outerMaterial = new DynamicMaterialProperty();
|
|
225
|
+
coneUpdated = true;
|
|
226
|
+
}
|
|
227
|
+
outerMaterial.processCzmlIntervals(coneData.outerMaterial, interval);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if (typeof coneData.silhouetteMaterial !== 'undefined') {
|
|
231
|
+
var silhouetteMaterial = cone.silhouetteMaterial;
|
|
232
|
+
if (typeof silhouetteMaterial === 'undefined') {
|
|
233
|
+
cone.silhouetteMaterial = silhouetteMaterial = new DynamicMaterialProperty();
|
|
234
|
+
coneUpdated = true;
|
|
235
|
+
}
|
|
236
|
+
silhouetteMaterial.processCzmlIntervals(coneData.silhouetteMaterial, interval);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return coneUpdated;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Given two DynamicObjects, takes the cone properties from the second
|
|
244
|
+
* and assigns them to the first, assuming such a property did not already exist.
|
|
245
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
246
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
247
|
+
*
|
|
248
|
+
* @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
|
|
249
|
+
* @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
|
|
250
|
+
*
|
|
251
|
+
* @see CzmlDefaults
|
|
252
|
+
*/
|
|
253
|
+
DynamicCone.mergeProperties = function(targetObject, objectToMerge) {
|
|
254
|
+
var coneToMerge = objectToMerge.cone;
|
|
255
|
+
if (typeof coneToMerge !== 'undefined') {
|
|
256
|
+
|
|
257
|
+
var targetCone = targetObject.cone;
|
|
258
|
+
if (typeof targetCone === 'undefined') {
|
|
259
|
+
targetObject.cone = targetCone = new DynamicCone();
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
targetCone.show = defaultValue(targetCone.show, coneToMerge.show);
|
|
263
|
+
targetCone.innerHalfAngle = defaultValue(targetCone.innerHalfAngle, coneToMerge.innerHalfAngle);
|
|
264
|
+
targetCone.outerHalfAngle = defaultValue(targetCone.outerHalfAngle, coneToMerge.outerHalfAngle);
|
|
265
|
+
targetCone.minimumClockAngle = defaultValue(targetCone.minimumClockAngle, coneToMerge.minimumClockAngle);
|
|
266
|
+
targetCone.maximumClockAngle = defaultValue(targetCone.maximumClockAngle, coneToMerge.maximumClockAngle);
|
|
267
|
+
targetCone.radius = defaultValue(targetCone.radius, coneToMerge.radius);
|
|
268
|
+
targetCone.showIntersection = defaultValue(targetCone.showIntersection, coneToMerge.showIntersection);
|
|
269
|
+
targetCone.intersectionColor = defaultValue(targetCone.intersectionColor, coneToMerge.intersectionColor);
|
|
270
|
+
targetCone.capMaterial = defaultValue(targetCone.capMaterial, coneToMerge.capMaterial);
|
|
271
|
+
targetCone.innerMaterial = defaultValue(targetCone.innerMaterial, coneToMerge.innerMaterial);
|
|
272
|
+
targetCone.outerMaterial = defaultValue(targetCone.outerMaterial, coneToMerge.outerMaterial);
|
|
273
|
+
targetCone.silhouetteMaterial = defaultValue(targetCone.silhouetteMaterial, coneToMerge.silhouetteMaterial);
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Given a DynamicObject, undefines the cone associated with it.
|
|
279
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
280
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
281
|
+
*
|
|
282
|
+
* @param {DynamicObject} dynamicObject The DynamicObject to remove the cone from.
|
|
283
|
+
*
|
|
284
|
+
* @see CzmlDefaults
|
|
285
|
+
*/
|
|
286
|
+
DynamicCone.undefineProperties = function(dynamicObject) {
|
|
287
|
+
dynamicObject.cone = undefined;
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
return DynamicCone;
|
|
291
|
+
});
|