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