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,251 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/destroyObject',
|
|
5
|
+
'../Scene/Polygon',
|
|
6
|
+
'../Scene/Material'
|
|
7
|
+
], function(
|
|
8
|
+
DeveloperError,
|
|
9
|
+
destroyObject,
|
|
10
|
+
Polygon,
|
|
11
|
+
Material) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A DynamicObject visualizer which maps the DynamicPolygon instance
|
|
16
|
+
* in DynamicObject.polygon to a Polygon primitive.
|
|
17
|
+
* @alias DynamicPolygonVisualizer
|
|
18
|
+
* @constructor
|
|
19
|
+
*
|
|
20
|
+
* @param {Scene} scene The scene the primitives will be rendered in.
|
|
21
|
+
* @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
|
|
22
|
+
*
|
|
23
|
+
* @exception {DeveloperError} scene is required.
|
|
24
|
+
*
|
|
25
|
+
* @see DynamicPolygon
|
|
26
|
+
* @see Scene
|
|
27
|
+
* @see DynamicObject
|
|
28
|
+
* @see DynamicObjectCollection
|
|
29
|
+
* @see CompositeDynamicObjectCollection
|
|
30
|
+
* @see VisualizerCollection
|
|
31
|
+
* @see DynamicBillboardVisualizer
|
|
32
|
+
* @see DynamicConeVisualizer
|
|
33
|
+
* @see DynamicConeVisualizerUsingCustomSensorr
|
|
34
|
+
* @see DynamicLabelVisualizer
|
|
35
|
+
* @see DynamicPointVisualizer
|
|
36
|
+
* @see DynamicPolylineVisualizer
|
|
37
|
+
* @see DynamicPyramidVisualizer
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
var DynamicPolygonVisualizer = function(scene, dynamicObjectCollection) {
|
|
41
|
+
if (typeof scene === 'undefined') {
|
|
42
|
+
throw new DeveloperError('scene is required.');
|
|
43
|
+
}
|
|
44
|
+
this._scene = scene;
|
|
45
|
+
this._unusedIndexes = [];
|
|
46
|
+
this._primitives = scene.getPrimitives();
|
|
47
|
+
this._polygonCollection = [];
|
|
48
|
+
this._dynamicObjectCollection = undefined;
|
|
49
|
+
this.setDynamicObjectCollection(dynamicObjectCollection);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns the scene being used by this visualizer.
|
|
54
|
+
*
|
|
55
|
+
* @returns {Scene} The scene being used by this visualizer.
|
|
56
|
+
*/
|
|
57
|
+
DynamicPolygonVisualizer.prototype.getScene = function() {
|
|
58
|
+
return this._scene;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Gets the DynamicObjectCollection being visualized.
|
|
63
|
+
*
|
|
64
|
+
* @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
|
|
65
|
+
*/
|
|
66
|
+
DynamicPolygonVisualizer.prototype.getDynamicObjectCollection = function() {
|
|
67
|
+
return this._dynamicObjectCollection;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Sets the DynamicObjectCollection to visualize.
|
|
72
|
+
*
|
|
73
|
+
* @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
|
|
74
|
+
*/
|
|
75
|
+
DynamicPolygonVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
|
|
76
|
+
var oldCollection = this._dynamicObjectCollection;
|
|
77
|
+
if (oldCollection !== dynamicObjectCollection) {
|
|
78
|
+
if (typeof oldCollection !== 'undefined') {
|
|
79
|
+
oldCollection.objectsRemoved.removeEventListener(DynamicPolygonVisualizer.prototype._onObjectsRemoved);
|
|
80
|
+
this.removeAllPrimitives();
|
|
81
|
+
}
|
|
82
|
+
this._dynamicObjectCollection = dynamicObjectCollection;
|
|
83
|
+
if (typeof dynamicObjectCollection !== 'undefined') {
|
|
84
|
+
dynamicObjectCollection.objectsRemoved.addEventListener(DynamicPolygonVisualizer.prototype._onObjectsRemoved, this);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Updates all of the primitives created by this visualizer to match their
|
|
91
|
+
* DynamicObject counterpart at the given time.
|
|
92
|
+
*
|
|
93
|
+
* @param {JulianDate} time The time to update to.
|
|
94
|
+
*
|
|
95
|
+
* @exception {DeveloperError} time is required.
|
|
96
|
+
*/
|
|
97
|
+
DynamicPolygonVisualizer.prototype.update = function(time) {
|
|
98
|
+
if (typeof time === 'undefined') {
|
|
99
|
+
throw new DeveloperError('time is requied.');
|
|
100
|
+
}
|
|
101
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
102
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
103
|
+
for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
|
|
104
|
+
this._updateObject(time, dynamicObjects[i]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Removes all primitives from the scene.
|
|
111
|
+
*/
|
|
112
|
+
DynamicPolygonVisualizer.prototype.removeAllPrimitives = function() {
|
|
113
|
+
var i, len;
|
|
114
|
+
for (i = 0, len = this._polygonCollection.length; i < len; i++) {
|
|
115
|
+
this._primitives.remove(this._polygonCollection[i]);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
119
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
120
|
+
for (i = dynamicObjects.length - 1; i > -1; i--) {
|
|
121
|
+
dynamicObjects[i]._polygonVisualizerIndex = undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
this._unusedIndexes = [];
|
|
126
|
+
this._polygonCollection = [];
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
131
|
+
* <br /><br />
|
|
132
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
133
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
134
|
+
*
|
|
135
|
+
* @memberof DynamicPolygonVisualizer
|
|
136
|
+
*
|
|
137
|
+
* @return {Boolean} True if this object was destroyed; otherwise, false.
|
|
138
|
+
*
|
|
139
|
+
* @see DynamicPolygonVisualizer#destroy
|
|
140
|
+
*/
|
|
141
|
+
DynamicPolygonVisualizer.prototype.isDestroyed = function() {
|
|
142
|
+
return false;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
147
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
148
|
+
* <br /><br />
|
|
149
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
150
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
151
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
152
|
+
*
|
|
153
|
+
* @memberof DynamicPolygonVisualizer
|
|
154
|
+
*
|
|
155
|
+
* @return {undefined}
|
|
156
|
+
*
|
|
157
|
+
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
158
|
+
*
|
|
159
|
+
* @see DynamicPolygonVisualizer#isDestroyed
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* visualizer = visualizer && visualizer.destroy();
|
|
163
|
+
*/
|
|
164
|
+
DynamicPolygonVisualizer.prototype.destroy = function() {
|
|
165
|
+
this.removeAllPrimitives();
|
|
166
|
+
return destroyObject(this);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
DynamicPolygonVisualizer.prototype._updateObject = function(time, dynamicObject) {
|
|
170
|
+
var context = this._scene.getContext();
|
|
171
|
+
var dynamicPolygon = dynamicObject.polygon;
|
|
172
|
+
if (typeof dynamicPolygon === 'undefined') {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
var vertexPositionsProperty = dynamicObject.vertexPositions;
|
|
177
|
+
if (typeof vertexPositionsProperty === 'undefined') {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
var vertexPositions = vertexPositionsProperty.getValueCartesian(time);
|
|
182
|
+
|
|
183
|
+
var polygon;
|
|
184
|
+
var showProperty = dynamicPolygon.show;
|
|
185
|
+
var polygonVisualizerIndex = dynamicObject._polygonVisualizerIndex;
|
|
186
|
+
var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
if (!show || typeof vertexPositions === 'undefined' || vertexPositions.length < 3) {
|
|
190
|
+
//don't bother creating or updating anything else
|
|
191
|
+
if (typeof polygonVisualizerIndex !== 'undefined') {
|
|
192
|
+
polygon = this._polygonCollection[polygonVisualizerIndex];
|
|
193
|
+
polygon.show = false;
|
|
194
|
+
dynamicObject._polygonVisualizerIndex = undefined;
|
|
195
|
+
this._unusedIndexes.push(polygonVisualizerIndex);
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (typeof polygonVisualizerIndex === 'undefined') {
|
|
201
|
+
var unusedIndexes = this._unusedIndexes;
|
|
202
|
+
var length = unusedIndexes.length;
|
|
203
|
+
if (length > 0) {
|
|
204
|
+
polygonVisualizerIndex = unusedIndexes.pop();
|
|
205
|
+
polygon = this._polygonCollection[polygonVisualizerIndex];
|
|
206
|
+
} else {
|
|
207
|
+
polygonVisualizerIndex = this._polygonCollection.length;
|
|
208
|
+
polygon = new Polygon();
|
|
209
|
+
this._polygonCollection.push(polygon);
|
|
210
|
+
this._primitives.add(polygon);
|
|
211
|
+
}
|
|
212
|
+
dynamicObject._polygonVisualizerIndex = polygonVisualizerIndex;
|
|
213
|
+
polygon.dynamicObject = dynamicObject;
|
|
214
|
+
|
|
215
|
+
// CZML_TODO Determine official defaults
|
|
216
|
+
polygon.material = Material.fromType(context, Material.ColorType);
|
|
217
|
+
|
|
218
|
+
} else {
|
|
219
|
+
polygon = this._polygonCollection[polygonVisualizerIndex];
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
polygon.show = true;
|
|
223
|
+
|
|
224
|
+
if (polygon._visualizerPositions !== vertexPositions) {
|
|
225
|
+
polygon.setPositions(vertexPositions);
|
|
226
|
+
polygon._visualizerPositions = vertexPositions;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
var material = dynamicPolygon.material;
|
|
230
|
+
if (typeof material !== 'undefined') {
|
|
231
|
+
polygon.material = material.getValue(time, context, polygon.material);
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
DynamicPolygonVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
|
|
236
|
+
var thisPolygonCollection = this._polygonCollection;
|
|
237
|
+
var thisUnusedIndexes = this._unusedIndexes;
|
|
238
|
+
for ( var i = dynamicObjects.length - 1; i > -1; i--) {
|
|
239
|
+
var dynamicObject = dynamicObjects[i];
|
|
240
|
+
var polygonVisualizerIndex = dynamicObject._polygonVisualizerIndex;
|
|
241
|
+
if (typeof polygonVisualizerIndex !== 'undefined') {
|
|
242
|
+
var polygon = thisPolygonCollection[polygonVisualizerIndex];
|
|
243
|
+
polygon.show = false;
|
|
244
|
+
thisUnusedIndexes.push(polygonVisualizerIndex);
|
|
245
|
+
dynamicObject._polygonVisualizerIndex = undefined;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
return DynamicPolygonVisualizer;
|
|
251
|
+
});
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/TimeInterval',
|
|
4
|
+
'../Core/defaultValue',
|
|
5
|
+
'./CzmlBoolean',
|
|
6
|
+
'./CzmlNumber',
|
|
7
|
+
'./CzmlColor',
|
|
8
|
+
'./DynamicProperty'],
|
|
9
|
+
function(
|
|
10
|
+
TimeInterval,
|
|
11
|
+
defaultValue,
|
|
12
|
+
CzmlBoolean,
|
|
13
|
+
CzmlNumber,
|
|
14
|
+
CzmlColor,
|
|
15
|
+
DynamicProperty) {
|
|
16
|
+
"use strict";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Represents a time-dynamic polyline, typically used in conjunction with DynamicPolylineVisualizer and
|
|
20
|
+
* DynamicObjectCollection to visualize CZML.
|
|
21
|
+
*
|
|
22
|
+
* @alias DynamicPolyline
|
|
23
|
+
* @constructor
|
|
24
|
+
*
|
|
25
|
+
* @see DynamicObject
|
|
26
|
+
* @see DynamicProperty
|
|
27
|
+
* @see DynamicObjectCollection
|
|
28
|
+
* @see DynamicPolylineVisualizer
|
|
29
|
+
* @see VisualizerCollection
|
|
30
|
+
* @see Polyline
|
|
31
|
+
* @see CzmlDefaults
|
|
32
|
+
*/
|
|
33
|
+
var DynamicPolyline = function() {
|
|
34
|
+
/**
|
|
35
|
+
* A DynamicProperty of type CzmlColor which determines the line's color.
|
|
36
|
+
* @type DynamicProperty
|
|
37
|
+
*/
|
|
38
|
+
this.color = undefined;
|
|
39
|
+
/**
|
|
40
|
+
* A DynamicProperty of type CzmlColor which determines the line's outline color.
|
|
41
|
+
* @type DynamicProperty
|
|
42
|
+
*/
|
|
43
|
+
this.outlineColor = undefined;
|
|
44
|
+
/**
|
|
45
|
+
* A DynamicProperty of type CzmlNumber which determines the line's outline width.
|
|
46
|
+
* @type DynamicProperty
|
|
47
|
+
*/
|
|
48
|
+
this.outlineWidth = undefined;
|
|
49
|
+
/**
|
|
50
|
+
* A DynamicProperty of type CzmlBoolean which determines the lines's visibility.
|
|
51
|
+
* @type DynamicProperty
|
|
52
|
+
*/
|
|
53
|
+
this.show = undefined;
|
|
54
|
+
/**
|
|
55
|
+
* A DynamicProperty of type CzmlNumber which determines the line's width.
|
|
56
|
+
* @type DynamicProperty
|
|
57
|
+
*/
|
|
58
|
+
this.width = undefined;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Processes a single CZML packet and merges its data into the provided DynamicObject's polyline.
|
|
63
|
+
* If the DynamicObject does not have a polyline, one is created. This method is not
|
|
64
|
+
* normally called directly, but is part of the array of CZML processing functions that is
|
|
65
|
+
* passed into the DynamicObjectCollection constructor.
|
|
66
|
+
*
|
|
67
|
+
* @param {DynamicObject} dynamicObject The DynamicObject which will contain the polyline data.
|
|
68
|
+
* @param {Object} packet The CZML packet to process.
|
|
69
|
+
* @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
|
|
70
|
+
*
|
|
71
|
+
* @see DynamicObject
|
|
72
|
+
* @see DynamicProperty
|
|
73
|
+
* @see DynamicObjectCollection
|
|
74
|
+
* @see CzmlDefaults#updaters
|
|
75
|
+
*/
|
|
76
|
+
DynamicPolyline.processCzmlPacket = function(dynamicObject, packet) {
|
|
77
|
+
var polylineData = packet.polyline;
|
|
78
|
+
if (typeof polylineData === 'undefined') {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var polylineUpdated = false;
|
|
83
|
+
var polyline = dynamicObject.polyline;
|
|
84
|
+
polylineUpdated = typeof polyline === 'undefined';
|
|
85
|
+
if (polylineUpdated) {
|
|
86
|
+
dynamicObject.polyline = polyline = new DynamicPolyline();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var interval = polylineData.interval;
|
|
90
|
+
if (typeof interval !== 'undefined') {
|
|
91
|
+
interval = TimeInterval.fromIso8601(interval);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (typeof polylineData.color !== 'undefined') {
|
|
95
|
+
var color = polyline.color;
|
|
96
|
+
if (typeof color === 'undefined') {
|
|
97
|
+
polyline.color = color = new DynamicProperty(CzmlColor);
|
|
98
|
+
polylineUpdated = true;
|
|
99
|
+
}
|
|
100
|
+
color.processCzmlIntervals(polylineData.color, interval);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (typeof polylineData.width !== 'undefined') {
|
|
104
|
+
var width = polyline.width;
|
|
105
|
+
if (typeof width === 'undefined') {
|
|
106
|
+
polyline.width = width = new DynamicProperty(CzmlNumber);
|
|
107
|
+
polylineUpdated = true;
|
|
108
|
+
}
|
|
109
|
+
width.processCzmlIntervals(polylineData.width, interval);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (typeof polylineData.outlineColor !== 'undefined') {
|
|
113
|
+
var outlineColor = polyline.outlineColor;
|
|
114
|
+
if (typeof outlineColor === 'undefined') {
|
|
115
|
+
polyline.outlineColor = outlineColor = new DynamicProperty(CzmlColor);
|
|
116
|
+
polylineUpdated = true;
|
|
117
|
+
}
|
|
118
|
+
outlineColor.processCzmlIntervals(polylineData.outlineColor, interval);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (typeof polylineData.outlineWidth !== 'undefined') {
|
|
122
|
+
var outlineWidth = polyline.outlineWidth;
|
|
123
|
+
if (typeof outlineWidth === 'undefined') {
|
|
124
|
+
polyline.outlineWidth = outlineWidth = new DynamicProperty(CzmlNumber);
|
|
125
|
+
polylineUpdated = true;
|
|
126
|
+
}
|
|
127
|
+
outlineWidth.processCzmlIntervals(polylineData.outlineWidth, interval);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (typeof polylineData.show !== 'undefined') {
|
|
131
|
+
var show = polyline.show;
|
|
132
|
+
if (typeof show === 'undefined') {
|
|
133
|
+
polyline.show = show = new DynamicProperty(CzmlBoolean);
|
|
134
|
+
polylineUpdated = true;
|
|
135
|
+
}
|
|
136
|
+
show.processCzmlIntervals(polylineData.show, interval);
|
|
137
|
+
}
|
|
138
|
+
return polylineUpdated;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Given two DynamicObjects, takes the polyline properties from the second
|
|
143
|
+
* and assigns them to the first, assuming such a property did not already exist.
|
|
144
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
145
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
146
|
+
*
|
|
147
|
+
* @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
|
|
148
|
+
* @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
|
|
149
|
+
*
|
|
150
|
+
* @see CzmlDefaults
|
|
151
|
+
*/
|
|
152
|
+
DynamicPolyline.mergeProperties = function(targetObject, objectToMerge) {
|
|
153
|
+
var polylineToMerge = objectToMerge.polyline;
|
|
154
|
+
if (typeof polylineToMerge !== 'undefined') {
|
|
155
|
+
|
|
156
|
+
var targetPolyline = targetObject.polyline;
|
|
157
|
+
if (typeof targetPolyline === 'undefined') {
|
|
158
|
+
targetObject.polyline = targetPolyline = new DynamicPolyline();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
targetPolyline.color = defaultValue(targetPolyline.color, polylineToMerge.color);
|
|
162
|
+
targetPolyline.width = defaultValue(targetPolyline.width, polylineToMerge.width);
|
|
163
|
+
targetPolyline.outlineColor = defaultValue(targetPolyline.outlineColor, polylineToMerge.outlineColor);
|
|
164
|
+
targetPolyline.outlineWidth = defaultValue(targetPolyline.outlineWidth, polylineToMerge.outlineWidth);
|
|
165
|
+
targetPolyline.show = defaultValue(targetPolyline.show, polylineToMerge.show);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Given a DynamicObject, undefines the polyline associated with it.
|
|
171
|
+
* This method is not normally called directly, but is part of the array of CZML processing
|
|
172
|
+
* functions that is passed into the CompositeDynamicObjectCollection constructor.
|
|
173
|
+
*
|
|
174
|
+
* @param {DynamicObject} dynamicObject The DynamicObject to remove the polyline from.
|
|
175
|
+
*
|
|
176
|
+
* @see CzmlDefaults
|
|
177
|
+
*/
|
|
178
|
+
DynamicPolyline.undefineProperties = function(dynamicObject) {
|
|
179
|
+
dynamicObject.polyline = undefined;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
return DynamicPolyline;
|
|
183
|
+
});
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/destroyObject',
|
|
5
|
+
'../Core/Color',
|
|
6
|
+
'../Scene/PolylineCollection'
|
|
7
|
+
], function(
|
|
8
|
+
DeveloperError,
|
|
9
|
+
destroyObject,
|
|
10
|
+
Color,
|
|
11
|
+
PolylineCollection) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A DynamicObject visualizer which maps the DynamicPolyline instance
|
|
16
|
+
* in DynamicObject.polyline to a Polyline primitive.
|
|
17
|
+
* @alias DynamicPolylineVisualizer
|
|
18
|
+
* @constructor
|
|
19
|
+
*
|
|
20
|
+
* @param {Scene} scene The scene the primitives will be rendered in.
|
|
21
|
+
* @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
|
|
22
|
+
*
|
|
23
|
+
* @exception {DeveloperError} scene is required.
|
|
24
|
+
*
|
|
25
|
+
* @see DynamicPolyline
|
|
26
|
+
* @see Scene
|
|
27
|
+
* @see DynamicObject
|
|
28
|
+
* @see DynamicObjectCollection
|
|
29
|
+
* @see CompositeDynamicObjectCollection
|
|
30
|
+
* @see VisualizerCollection
|
|
31
|
+
* @see DynamicBillboardVisualizer
|
|
32
|
+
* @see DynamicConeVisualizer
|
|
33
|
+
* @see DynamicConeVisualizerUsingCustomSensorr
|
|
34
|
+
* @see DynamicLabelVisualizer
|
|
35
|
+
* @see DynamicPointVisualizer
|
|
36
|
+
* @see DynamicPolygonVisualizer
|
|
37
|
+
* @see DynamicPyramidVisualizer
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
var DynamicPolylineVisualizer = function(scene, dynamicObjectCollection) {
|
|
41
|
+
if (typeof scene === 'undefined') {
|
|
42
|
+
throw new DeveloperError('scene is required.');
|
|
43
|
+
}
|
|
44
|
+
this._scene = scene;
|
|
45
|
+
this._unusedIndexes = [];
|
|
46
|
+
this._primitives = scene.getPrimitives();
|
|
47
|
+
var polylineCollection = this._polylineCollection = new PolylineCollection();
|
|
48
|
+
scene.getPrimitives().add(polylineCollection);
|
|
49
|
+
this._dynamicObjectCollection = undefined;
|
|
50
|
+
this.setDynamicObjectCollection(dynamicObjectCollection);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Returns the scene being used by this visualizer.
|
|
55
|
+
*
|
|
56
|
+
* @returns {Scene} The scene being used by this visualizer.
|
|
57
|
+
*/
|
|
58
|
+
DynamicPolylineVisualizer.prototype.getScene = function() {
|
|
59
|
+
return this._scene;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Gets the DynamicObjectCollection being visualized.
|
|
64
|
+
*
|
|
65
|
+
* @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
|
|
66
|
+
*/
|
|
67
|
+
DynamicPolylineVisualizer.prototype.getDynamicObjectCollection = function() {
|
|
68
|
+
return this._dynamicObjectCollection;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Sets the DynamicObjectCollection to visualize.
|
|
73
|
+
*
|
|
74
|
+
* @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
|
|
75
|
+
*/
|
|
76
|
+
DynamicPolylineVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
|
|
77
|
+
var oldCollection = this._dynamicObjectCollection;
|
|
78
|
+
if (oldCollection !== dynamicObjectCollection) {
|
|
79
|
+
if (typeof oldCollection !== 'undefined') {
|
|
80
|
+
oldCollection.objectsRemoved.removeEventListener(DynamicPolylineVisualizer.prototype._onObjectsRemoved);
|
|
81
|
+
this.removeAllPrimitives();
|
|
82
|
+
}
|
|
83
|
+
this._dynamicObjectCollection = dynamicObjectCollection;
|
|
84
|
+
if (typeof dynamicObjectCollection !== 'undefined') {
|
|
85
|
+
dynamicObjectCollection.objectsRemoved.addEventListener(DynamicPolylineVisualizer.prototype._onObjectsRemoved, this);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Updates all of the primitives created by this visualizer to match their
|
|
92
|
+
* DynamicObject counterpart at the given time.
|
|
93
|
+
*
|
|
94
|
+
* @param {JulianDate} time The time to update to.
|
|
95
|
+
*
|
|
96
|
+
* @exception {DeveloperError} time is required.
|
|
97
|
+
*/
|
|
98
|
+
DynamicPolylineVisualizer.prototype.update = function(time) {
|
|
99
|
+
if (typeof time === 'undefined') {
|
|
100
|
+
throw new DeveloperError('time is requied.');
|
|
101
|
+
}
|
|
102
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
103
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
104
|
+
for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
|
|
105
|
+
this._updateObject(time, dynamicObjects[i]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Removes all primitives from the scene.
|
|
112
|
+
*/
|
|
113
|
+
DynamicPolylineVisualizer.prototype.removeAllPrimitives = function() {
|
|
114
|
+
var i;
|
|
115
|
+
this._polylineCollection.removeAll();
|
|
116
|
+
|
|
117
|
+
if (typeof this._dynamicObjectCollection !== 'undefined') {
|
|
118
|
+
var dynamicObjects = this._dynamicObjectCollection.getObjects();
|
|
119
|
+
for (i = dynamicObjects.length - 1; i > -1; i--) {
|
|
120
|
+
dynamicObjects[i]._polylineVisualizerIndex = undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
this._unusedIndexes = [];
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
129
|
+
* <br /><br />
|
|
130
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
131
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
132
|
+
*
|
|
133
|
+
* @memberof DynamicPolylineVisualizer
|
|
134
|
+
*
|
|
135
|
+
* @return {Boolean} True if this object was destroyed; otherwise, false.
|
|
136
|
+
*
|
|
137
|
+
* @see DynamicPolylineVisualizer#destroy
|
|
138
|
+
*/
|
|
139
|
+
DynamicPolylineVisualizer.prototype.isDestroyed = function() {
|
|
140
|
+
return false;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
145
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
146
|
+
* <br /><br />
|
|
147
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
148
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
149
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
150
|
+
*
|
|
151
|
+
* @memberof DynamicPolylineVisualizer
|
|
152
|
+
*
|
|
153
|
+
* @return {undefined}
|
|
154
|
+
*
|
|
155
|
+
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
156
|
+
*
|
|
157
|
+
* @see DynamicPolylineVisualizer#isDestroyed
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* visualizer = visualizer && visualizer.destroy();
|
|
161
|
+
*/
|
|
162
|
+
DynamicPolylineVisualizer.prototype.destroy = function() {
|
|
163
|
+
this.removeAllPrimitives();
|
|
164
|
+
this._scene.getPrimitives().remove(this._polylineCollection);
|
|
165
|
+
return destroyObject(this);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
DynamicPolylineVisualizer.prototype._updateObject = function(time, dynamicObject) {
|
|
169
|
+
var dynamicPolyline = dynamicObject.polyline;
|
|
170
|
+
if (typeof dynamicPolyline === 'undefined') {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var vertexPositionsProperty = dynamicObject.vertexPositions;
|
|
175
|
+
if (typeof vertexPositionsProperty === 'undefined') {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
var polyline;
|
|
180
|
+
var showProperty = dynamicPolyline.show;
|
|
181
|
+
var polylineVisualizerIndex = dynamicObject._polylineVisualizerIndex;
|
|
182
|
+
var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
|
|
183
|
+
|
|
184
|
+
if (!show) {
|
|
185
|
+
//don't bother creating or updating anything else
|
|
186
|
+
if (typeof polylineVisualizerIndex !== 'undefined') {
|
|
187
|
+
polyline = this._polylineCollection.get(polylineVisualizerIndex);
|
|
188
|
+
polyline.setShow(false);
|
|
189
|
+
dynamicObject._polylineVisualizerIndex = undefined;
|
|
190
|
+
this._unusedIndexes.push(polylineVisualizerIndex);
|
|
191
|
+
}
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (typeof polylineVisualizerIndex === 'undefined') {
|
|
196
|
+
var unusedIndexes = this._unusedIndexes;
|
|
197
|
+
var length = unusedIndexes.length;
|
|
198
|
+
if (length > 0) {
|
|
199
|
+
polylineVisualizerIndex = unusedIndexes.pop();
|
|
200
|
+
polyline = this._polylineCollection.get(polylineVisualizerIndex);
|
|
201
|
+
} else {
|
|
202
|
+
polylineVisualizerIndex = this._polylineCollection.getLength();
|
|
203
|
+
polyline = this._polylineCollection.add();
|
|
204
|
+
}
|
|
205
|
+
dynamicObject._polylineVisualizerIndex = polylineVisualizerIndex;
|
|
206
|
+
polyline.dynamicObject = dynamicObject;
|
|
207
|
+
|
|
208
|
+
// CZML_TODO Determine official defaults
|
|
209
|
+
polyline.setColor(Color.WHITE);
|
|
210
|
+
polyline.setOutlineColor(Color.BLACK);
|
|
211
|
+
polyline.setOutlineWidth(1);
|
|
212
|
+
polyline.setWidth(1);
|
|
213
|
+
} else {
|
|
214
|
+
polyline = this._polylineCollection.get(polylineVisualizerIndex);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
polyline.setShow(true);
|
|
218
|
+
|
|
219
|
+
var vertexPositions = vertexPositionsProperty.getValueCartesian(time);
|
|
220
|
+
if (typeof vertexPositions !== 'undefined' && polyline._visualizerPositions !== vertexPositions) {
|
|
221
|
+
polyline.setPositions(vertexPositions);
|
|
222
|
+
polyline._visualizerPositions = vertexPositions;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var property = dynamicPolyline.color;
|
|
226
|
+
if (typeof property !== 'undefined') {
|
|
227
|
+
polyline.setColor(property.getValue(time, polyline.getColor()));
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
property = dynamicPolyline.outlineColor;
|
|
231
|
+
if (typeof property !== 'undefined') {
|
|
232
|
+
polyline.setOutlineColor(property.getValue(time, polyline.getOutlineColor()));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
property = dynamicPolyline.outlineWidth;
|
|
236
|
+
if (typeof property !== 'undefined') {
|
|
237
|
+
var outlineWidth = property.getValue(time);
|
|
238
|
+
if (typeof outlineWidth !== 'undefined') {
|
|
239
|
+
polyline.setOutlineWidth(outlineWidth);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
property = dynamicPolyline.width;
|
|
244
|
+
if (typeof property !== 'undefined') {
|
|
245
|
+
var width = property.getValue(time);
|
|
246
|
+
if (typeof width !== 'undefined') {
|
|
247
|
+
polyline.setWidth(width);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
DynamicPolylineVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
|
|
253
|
+
var thisPolylineCollection = this._polylineCollection;
|
|
254
|
+
var thisUnusedIndexes = this._unusedIndexes;
|
|
255
|
+
for ( var i = dynamicObjects.length - 1; i > -1; i--) {
|
|
256
|
+
var dynamicObject = dynamicObjects[i];
|
|
257
|
+
var polylineVisualizerIndex = dynamicObject._polylineVisualizerIndex;
|
|
258
|
+
if (typeof polylineVisualizerIndex !== 'undefined') {
|
|
259
|
+
var polyline = thisPolylineCollection.get(polylineVisualizerIndex);
|
|
260
|
+
polyline.setShow(false);
|
|
261
|
+
thisUnusedIndexes.push(polylineVisualizerIndex);
|
|
262
|
+
dynamicObject._polylineVisualizerIndex = undefined;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
return DynamicPolylineVisualizer;
|
|
268
|
+
});
|