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,134 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/loadImage',
|
|
5
|
+
'../Core/getImagePixels',
|
|
6
|
+
'../Core/DeveloperError',
|
|
7
|
+
'../ThirdParty/when'
|
|
8
|
+
], function(
|
|
9
|
+
defaultValue,
|
|
10
|
+
loadImage,
|
|
11
|
+
getImagePixels,
|
|
12
|
+
DeveloperError,
|
|
13
|
+
when) {
|
|
14
|
+
"use strict";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A policy for discarding tile images that match a known image containing a
|
|
18
|
+
* "missing" image.
|
|
19
|
+
*
|
|
20
|
+
* @alias DiscardMissingTileImagePolicy
|
|
21
|
+
* @constructor
|
|
22
|
+
*
|
|
23
|
+
* @param {String} description.missingImageUrl The URL of the known missing image.
|
|
24
|
+
* @param {Array} description.pixelsToCheck An array of {@link Cartesian2} pixel positions to
|
|
25
|
+
* compare against the missing image.
|
|
26
|
+
* @param {Boolean} [description.disableCheckIfAllPixelsAreTransparent=false] If true, the discard check will be disabled
|
|
27
|
+
* if all of the pixelsToCheck in the missingImageUrl have an alpha value of 0. If false, the
|
|
28
|
+
* discard check will proceed no matter the values of the pixelsToCheck.
|
|
29
|
+
*
|
|
30
|
+
* @exception {DeveloperError} <code>description.missingImageUrl</code> is required.
|
|
31
|
+
* @exception {DeveloperError} <code>pixelsToCheck</code> is required.
|
|
32
|
+
*/
|
|
33
|
+
var DiscardMissingTileImagePolicy = function(description) {
|
|
34
|
+
description = defaultValue(description, {});
|
|
35
|
+
|
|
36
|
+
if (typeof description.missingImageUrl === 'undefined') {
|
|
37
|
+
throw new DeveloperError('description.missingImageUrl is required.');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (typeof description.pixelsToCheck === 'undefined') {
|
|
41
|
+
throw new DeveloperError('description.pixelsToCheck is required.');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
this._pixelsToCheck = description.pixelsToCheck;
|
|
45
|
+
this._missingImagePixels = undefined;
|
|
46
|
+
this._isReady = false;
|
|
47
|
+
|
|
48
|
+
var that = this;
|
|
49
|
+
|
|
50
|
+
function success(image) {
|
|
51
|
+
var pixels = getImagePixels(image);
|
|
52
|
+
|
|
53
|
+
if (description.disableCheckIfAllPixelsAreTransparent) {
|
|
54
|
+
var allAreTransparent = true;
|
|
55
|
+
var width = image.width;
|
|
56
|
+
|
|
57
|
+
var pixelsToCheck = description.pixelsToCheck;
|
|
58
|
+
for (var i = 0, len = pixelsToCheck.length; allAreTransparent && i < len; ++i) {
|
|
59
|
+
var pos = pixelsToCheck[i];
|
|
60
|
+
var index = pos.x * 4 + pos.y * width;
|
|
61
|
+
var alpha = pixels[index + 3];
|
|
62
|
+
|
|
63
|
+
if (alpha > 0) {
|
|
64
|
+
allAreTransparent = false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (allAreTransparent) {
|
|
69
|
+
pixels = undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
that._missingImagePixels = pixels;
|
|
74
|
+
that._isReady = true;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function failure() {
|
|
78
|
+
// Failed to download "missing" image, so assume that any truly missing tiles
|
|
79
|
+
// will also fail to download and disable the discard check.
|
|
80
|
+
that._missingImagePixels = undefined;
|
|
81
|
+
that._isReady = true;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
when(loadImage(description.missingImageUrl), success, failure);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Determines if the discard policy is ready to process images.
|
|
89
|
+
* @returns True if the discard policy is ready to process images; otherwise, false.
|
|
90
|
+
*/
|
|
91
|
+
DiscardMissingTileImagePolicy.prototype.isReady = function() {
|
|
92
|
+
return this._isReady;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Given a tile image, decide whether to discard that image.
|
|
97
|
+
*
|
|
98
|
+
* @param {Image} image An image to test.
|
|
99
|
+
*
|
|
100
|
+
* @returns True if the image should be discarded; otherwise, false.
|
|
101
|
+
*
|
|
102
|
+
* @exception {DeveloperError} <code>shouldDiscardImage</code> must not be called before the discard policy is ready.
|
|
103
|
+
*/
|
|
104
|
+
DiscardMissingTileImagePolicy.prototype.shouldDiscardImage = function(image) {
|
|
105
|
+
if (!this._isReady) {
|
|
106
|
+
throw new DeveloperError('shouldDiscardImage must not be called before the discard policy is ready.');
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var pixelsToCheck = this._pixelsToCheck;
|
|
110
|
+
var missingImagePixels = this._missingImagePixels;
|
|
111
|
+
|
|
112
|
+
// If missingImagePixels is undefined, it indicates that the discard check has been disabled.
|
|
113
|
+
if (typeof missingImagePixels === 'undefined') {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var pixels = getImagePixels(image);
|
|
118
|
+
var width = image.width;
|
|
119
|
+
|
|
120
|
+
for (var i = 0, len = pixelsToCheck.length; i < len; ++i) {
|
|
121
|
+
var pos = pixelsToCheck[i];
|
|
122
|
+
var index = pos.x * 4 + pos.y * width;
|
|
123
|
+
for (var offset = 0; offset < 4; ++offset) {
|
|
124
|
+
var pixel = index + offset;
|
|
125
|
+
if (pixels[pixel] !== missingImagePixels[pixel]) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
return DiscardMissingTileImagePolicy;
|
|
134
|
+
});
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/BoxTessellator',
|
|
4
|
+
'../Core/Cartesian3',
|
|
5
|
+
'../Core/Cartesian4',
|
|
6
|
+
'../Core/Color',
|
|
7
|
+
'../Core/combine',
|
|
8
|
+
'../Core/ComponentDatatype',
|
|
9
|
+
'../Core/DeveloperError',
|
|
10
|
+
'../Core/destroyObject',
|
|
11
|
+
'../Core/Ellipsoid',
|
|
12
|
+
'../Core/Matrix4',
|
|
13
|
+
'../Core/MeshFilters',
|
|
14
|
+
'../Core/BoundingSphere',
|
|
15
|
+
'../Core/PrimitiveType',
|
|
16
|
+
'../Renderer/CullFace',
|
|
17
|
+
'../Renderer/BlendingState',
|
|
18
|
+
'../Renderer/BufferUsage',
|
|
19
|
+
'../Renderer/CommandLists',
|
|
20
|
+
'../Renderer/DrawCommand',
|
|
21
|
+
'./Material',
|
|
22
|
+
'./SceneMode',
|
|
23
|
+
'../Shaders/Noise',
|
|
24
|
+
'../Shaders/EllipsoidVS',
|
|
25
|
+
'../Shaders/EllipsoidFS'
|
|
26
|
+
], function(
|
|
27
|
+
BoxTessellator,
|
|
28
|
+
Cartesian3,
|
|
29
|
+
Cartesian4,
|
|
30
|
+
Color,
|
|
31
|
+
combine,
|
|
32
|
+
ComponentDatatype,
|
|
33
|
+
DeveloperError,
|
|
34
|
+
destroyObject,
|
|
35
|
+
Ellipsoid,
|
|
36
|
+
Matrix4,
|
|
37
|
+
MeshFilters,
|
|
38
|
+
BoundingSphere,
|
|
39
|
+
PrimitiveType,
|
|
40
|
+
CullFace,
|
|
41
|
+
BlendingState,
|
|
42
|
+
BufferUsage,
|
|
43
|
+
CommandLists,
|
|
44
|
+
DrawCommand,
|
|
45
|
+
Material,
|
|
46
|
+
SceneMode,
|
|
47
|
+
Noise,
|
|
48
|
+
EllipsoidVS,
|
|
49
|
+
EllipsoidFS) {
|
|
50
|
+
"use strict";
|
|
51
|
+
|
|
52
|
+
var attributeIndices = {
|
|
53
|
+
position : 0
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* A renderable ellipsoid. It can also draw spheres when the three {@link EllipsoidPrimitive#radii} components are equal.
|
|
58
|
+
* <p>
|
|
59
|
+
* This is only supported in 3D. The ellipsoid is not shown in 2D or Columbus view.
|
|
60
|
+
* </p>
|
|
61
|
+
*
|
|
62
|
+
* @alias EllipsoidPrimitive
|
|
63
|
+
* @constructor
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* // 1. Create a sphere using the ellipsoid primitive
|
|
67
|
+
* var e = new EllipsoidPrimitive();
|
|
68
|
+
* e.center = ellipsoid.cartographicToCartesian(
|
|
69
|
+
* Cartographic.fromDegrees(-75.0, 40.0, 500000.0));
|
|
70
|
+
* e.radii = new Cartesian3(500000.0, 500000.0, 500000.0);
|
|
71
|
+
* primitives.add(e);
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* // 2. Create a tall ellipsoid in an east-north-up reference frame
|
|
75
|
+
* var e = new EllipsoidPrimitive();
|
|
76
|
+
* e.modelMatrix = Transforms.eastNorthUpToFixedFrame(
|
|
77
|
+
* ellipsoid.cartographicToCartesian(
|
|
78
|
+
* Cartographic.fromDegrees(-95.0, 40.0, 200000.0)));
|
|
79
|
+
* e.radii = new Cartesian3(100000.0, 100000.0, 200000.0);
|
|
80
|
+
* primitives.add(e);
|
|
81
|
+
*/
|
|
82
|
+
var EllipsoidPrimitive = function() {
|
|
83
|
+
/**
|
|
84
|
+
* The center of the ellipsoid in the ellipsoid's model coordinates.
|
|
85
|
+
* <p>
|
|
86
|
+
* The default is {@link Cartesian3.ZERO}.
|
|
87
|
+
* </p>
|
|
88
|
+
*
|
|
89
|
+
* @type Cartesian3
|
|
90
|
+
*
|
|
91
|
+
* @see EllipsoidPrimitive#modelMatrix
|
|
92
|
+
*/
|
|
93
|
+
this.center = Cartesian3.ZERO.clone();
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The radius of the ellipsoid along the <code>x</code>, <code>y</code>, and <code>z</code> axes in the ellipsoid's model coordinates.
|
|
97
|
+
* When these are the same, the ellipsoid is a sphere.
|
|
98
|
+
* <p>
|
|
99
|
+
* The default is <code>undefined</code>. The ellipsoid is not drawn until a radii is provided.
|
|
100
|
+
* </p>
|
|
101
|
+
*
|
|
102
|
+
* @type Cartesian3
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* // A sphere with a radius of 2.0
|
|
106
|
+
* e.radii = new Cartesian3(2.0, 2.0, 2.0);
|
|
107
|
+
*
|
|
108
|
+
* @see EllipsoidPrimitive#modelMatrix
|
|
109
|
+
*/
|
|
110
|
+
this.radii = undefined;
|
|
111
|
+
this._radii = new Cartesian3();
|
|
112
|
+
|
|
113
|
+
this._oneOverEllipsoidRadiiSquared = new Cartesian3();
|
|
114
|
+
this._boundingSphere = new BoundingSphere();
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* The 4x4 transformation matrix that transforms the ellipsoid from model to world coordinates.
|
|
118
|
+
* When this is the identity matrix, the ellipsoid is drawn in world coordinates, i.e., Earth's WGS84 coordinates.
|
|
119
|
+
* Local reference frames can be used by providing a different transformation matrix, like that returned
|
|
120
|
+
* by {@link Transforms.eastNorthUpToFixedFrame}. This matrix is available to GLSL vertex and fragment
|
|
121
|
+
* shaders via {@link czm_model} and derived uniforms.
|
|
122
|
+
* <p>
|
|
123
|
+
* The default is {@link Matrix4.IDENTITY}.
|
|
124
|
+
* </p>
|
|
125
|
+
*
|
|
126
|
+
* @type Matrix4
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* var origin = ellipsoid.cartographicToCartesian(
|
|
130
|
+
* Cartographic.fromDegrees(-95.0, 40.0, 200000.0));
|
|
131
|
+
* e.modelMatrix = Transforms.eastNorthUpToFixedFrame(origin);
|
|
132
|
+
*
|
|
133
|
+
* @see Transforms.eastNorthUpToFixedFrame
|
|
134
|
+
* @see czm_model
|
|
135
|
+
*/
|
|
136
|
+
this.modelMatrix = Matrix4.IDENTITY.clone();
|
|
137
|
+
this._computedModelMatrix = Matrix4.IDENTITY.clone();
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Determines if the ellipsoid primitive will be shown.
|
|
141
|
+
* <p>
|
|
142
|
+
* The default is <code>true</code>.
|
|
143
|
+
* </p>
|
|
144
|
+
*
|
|
145
|
+
* @type Boolean
|
|
146
|
+
*/
|
|
147
|
+
this.show = true;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* The surface appearance of the ellipsoid. This can be one of several built-in {@link Material} objects or a custom material, scripted with
|
|
151
|
+
* <a href='https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric'>Fabric</a>.
|
|
152
|
+
* <p>
|
|
153
|
+
* The default material is <code>Material.ColorType</code>.
|
|
154
|
+
* </p>
|
|
155
|
+
*
|
|
156
|
+
* @type Material
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // 1. Change the color of the default material to yellow
|
|
160
|
+
* e.material.uniforms.color = new Color(1.0, 1.0, 0.0, 1.0);
|
|
161
|
+
*
|
|
162
|
+
* // 2. Change material to horizontal stripes
|
|
163
|
+
* e.material = Material.fromType(scene.getContext(), Material.StripeType);
|
|
164
|
+
*
|
|
165
|
+
* @see <a href='https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric'>Fabric</a>
|
|
166
|
+
*/
|
|
167
|
+
this.material = Material.fromType(undefined, Material.ColorType);
|
|
168
|
+
this._material = undefined;
|
|
169
|
+
|
|
170
|
+
this._sp = undefined;
|
|
171
|
+
this._rs = undefined;
|
|
172
|
+
this._va = undefined;
|
|
173
|
+
|
|
174
|
+
this._pickSP = undefined;
|
|
175
|
+
this._pickMaterial = undefined;
|
|
176
|
+
this._pickId = undefined;
|
|
177
|
+
|
|
178
|
+
this._colorCommand = new DrawCommand();
|
|
179
|
+
this._pickCommand = new DrawCommand();
|
|
180
|
+
this._commandLists = new CommandLists();
|
|
181
|
+
|
|
182
|
+
var that = this;
|
|
183
|
+
this._uniforms = {
|
|
184
|
+
u_radii : function() {
|
|
185
|
+
return that.radii;
|
|
186
|
+
},
|
|
187
|
+
u_oneOverEllipsoidRadiiSquared : function() {
|
|
188
|
+
return that._oneOverEllipsoidRadiiSquared;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
// Per-context cache for ellipsoids
|
|
194
|
+
var vertexArrayCache = {};
|
|
195
|
+
|
|
196
|
+
function getVertexArray(context) {
|
|
197
|
+
var c = vertexArrayCache[context.getId()];
|
|
198
|
+
|
|
199
|
+
if (typeof c !== 'undefined' &&
|
|
200
|
+
typeof c.vertexArray !== 'undefined') {
|
|
201
|
+
|
|
202
|
+
++c.referenceCount;
|
|
203
|
+
return c;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
var mesh = BoxTessellator.compute({
|
|
207
|
+
dimensions : new Cartesian3(2.0, 2.0, 2.0)
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
var va = context.createVertexArrayFromMesh({
|
|
211
|
+
mesh: mesh,
|
|
212
|
+
attributeIndices: attributeIndices,
|
|
213
|
+
bufferUsage: BufferUsage.STATIC_DRAW
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
var cachedVA = {
|
|
217
|
+
vertexArray : va,
|
|
218
|
+
referenceCount : 1,
|
|
219
|
+
|
|
220
|
+
release : function() {
|
|
221
|
+
if (typeof this.vertexArray !== 'undefined' &&
|
|
222
|
+
--this.referenceCount === 0) {
|
|
223
|
+
|
|
224
|
+
// PERFORMANCE_IDEA: Schedule this for a few hundred frames later so we don't thrash the cache
|
|
225
|
+
this.vertexArray = this.vertexArray.destroy();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
vertexArrayCache[context.getId()] = cachedVA;
|
|
233
|
+
return cachedVA;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @private
|
|
238
|
+
*
|
|
239
|
+
* @exception {DeveloperError} this.material must be defined.
|
|
240
|
+
*/
|
|
241
|
+
EllipsoidPrimitive.prototype.update = function(context, frameState, commandList) {
|
|
242
|
+
if (!this.show ||
|
|
243
|
+
(frameState.mode !== SceneMode.SCENE3D) ||
|
|
244
|
+
(typeof this.center === 'undefined') ||
|
|
245
|
+
(typeof this.radii === 'undefined')) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (typeof this.material === 'undefined') {
|
|
250
|
+
throw new DeveloperError('this.material must be defined.');
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (typeof this._rs === 'undefined') {
|
|
254
|
+
this._rs = context.createRenderState({
|
|
255
|
+
// Cull front faces - not back faces - so the ellipsoid doesn't
|
|
256
|
+
// disappear if the viewer enters the bounding box.
|
|
257
|
+
cull : {
|
|
258
|
+
enabled : true,
|
|
259
|
+
face : CullFace.FRONT
|
|
260
|
+
},
|
|
261
|
+
depthTest : {
|
|
262
|
+
enabled : true
|
|
263
|
+
},
|
|
264
|
+
// Do not write depth since the depth for the bounding box is
|
|
265
|
+
// wrong; it is not the true of the ray casted ellipsoid.
|
|
266
|
+
// Once WebGL has the extension for writing gl_FragDepth,
|
|
267
|
+
// we can write the correct depth. For now, most ellipsoids
|
|
268
|
+
// will be translucent so we don't want to write depth anyway.
|
|
269
|
+
depthMask : false,
|
|
270
|
+
blending : BlendingState.ALPHA_BLEND
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (typeof this._va === 'undefined') {
|
|
275
|
+
this._va = getVertexArray(context);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
var radii = this.radii;
|
|
279
|
+
if (!Cartesian3.equals(this._radii, radii)) {
|
|
280
|
+
Cartesian3.clone(radii, this._radii);
|
|
281
|
+
|
|
282
|
+
var r = this._oneOverEllipsoidRadiiSquared;
|
|
283
|
+
r.x = 1.0 / (radii.x * radii.x);
|
|
284
|
+
r.y = 1.0 / (radii.y * radii.y);
|
|
285
|
+
r.z = 1.0 / (radii.z * radii.z);
|
|
286
|
+
|
|
287
|
+
this._boundingSphere.radius = Cartesian3.getMaximumComponent(radii);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// Translate model coordinates used for rendering such that the origin is the center of the ellipsoid.
|
|
291
|
+
Matrix4.multiplyByTranslation(this.modelMatrix, this.center, this._computedModelMatrix);
|
|
292
|
+
|
|
293
|
+
var ellipsoidCommandLists = this._commandLists;
|
|
294
|
+
ellipsoidCommandLists.removeAll();
|
|
295
|
+
|
|
296
|
+
if (frameState.passes.color) {
|
|
297
|
+
var colorCommand = this._colorCommand;
|
|
298
|
+
|
|
299
|
+
// Recompile shader when material changes
|
|
300
|
+
if (typeof this._material === 'undefined' ||
|
|
301
|
+
this._material !== this.material) {
|
|
302
|
+
|
|
303
|
+
this._material = this.material;
|
|
304
|
+
|
|
305
|
+
var fsSource =
|
|
306
|
+
'#line 0\n' +
|
|
307
|
+
Noise +
|
|
308
|
+
'#line 0\n' +
|
|
309
|
+
this.material.shaderSource +
|
|
310
|
+
'#line 0\n' +
|
|
311
|
+
EllipsoidFS;
|
|
312
|
+
|
|
313
|
+
this._sp = this._sp && this._sp.release();
|
|
314
|
+
this._sp = context.getShaderCache().getShaderProgram(EllipsoidVS, fsSource, attributeIndices);
|
|
315
|
+
|
|
316
|
+
colorCommand.primitiveType = PrimitiveType.TRIANGLES;
|
|
317
|
+
colorCommand.vertexArray = this._va.vertexArray;
|
|
318
|
+
colorCommand.renderState = this._rs;
|
|
319
|
+
colorCommand.shaderProgram = this._sp;
|
|
320
|
+
colorCommand.uniformMap = combine([this._uniforms, this._material._uniforms], false, false);
|
|
321
|
+
colorCommand.executeInClosestFrustum = true;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
colorCommand.boundingVolume = this._boundingSphere;
|
|
325
|
+
colorCommand.modelMatrix = this._computedModelMatrix;
|
|
326
|
+
|
|
327
|
+
ellipsoidCommandLists.colorList.push(colorCommand);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if (frameState.passes.pick) {
|
|
331
|
+
var pickCommand = this._pickCommand;
|
|
332
|
+
|
|
333
|
+
if (typeof this._pickId === 'undefined') {
|
|
334
|
+
var pickId = context.createPickId(this);
|
|
335
|
+
|
|
336
|
+
var pickMaterial = Material.fromType(context, Material.ColorType);
|
|
337
|
+
pickMaterial.uniforms.color = pickId.normalizedRgba;
|
|
338
|
+
|
|
339
|
+
var pickFS =
|
|
340
|
+
'#line 0\n' +
|
|
341
|
+
Noise +
|
|
342
|
+
'#line 0\n' +
|
|
343
|
+
pickMaterial.shaderSource +
|
|
344
|
+
'#line 0\n' +
|
|
345
|
+
EllipsoidFS;
|
|
346
|
+
|
|
347
|
+
this._pickId = pickId;
|
|
348
|
+
this._pickMaterial = pickMaterial;
|
|
349
|
+
this._pickSP = context.getShaderCache().getShaderProgram(EllipsoidVS, pickFS, attributeIndices);
|
|
350
|
+
|
|
351
|
+
pickCommand.primitiveType = PrimitiveType.TRIANGLES;
|
|
352
|
+
pickCommand.vertexArray = this._va.vertexArray;
|
|
353
|
+
pickCommand.renderState = this._rs;
|
|
354
|
+
pickCommand.shaderProgram = this._pickSP;
|
|
355
|
+
pickCommand.uniformMap = combine([this._uniforms, pickMaterial._uniforms], false, false);
|
|
356
|
+
pickCommand.executeInClosestFrustum = true;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
pickCommand.boundingVolume = this._boundingSphere;
|
|
360
|
+
pickCommand.modelMatrix = this._computedModelMatrix;
|
|
361
|
+
|
|
362
|
+
ellipsoidCommandLists.pickList.push(pickCommand);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
commandList.push(ellipsoidCommandLists);
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
370
|
+
* <br /><br />
|
|
371
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
372
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
373
|
+
*
|
|
374
|
+
* @memberof EllipsoidPrimitive
|
|
375
|
+
*
|
|
376
|
+
* @return {Boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
|
|
377
|
+
*
|
|
378
|
+
* @see EllipsoidPrimitive#destroy
|
|
379
|
+
*/
|
|
380
|
+
EllipsoidPrimitive.prototype.isDestroyed = function() {
|
|
381
|
+
return false;
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
386
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
387
|
+
* <br /><br />
|
|
388
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
389
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
390
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
391
|
+
*
|
|
392
|
+
* @memberof EllipsoidPrimitive
|
|
393
|
+
*
|
|
394
|
+
* @return {undefined}
|
|
395
|
+
*
|
|
396
|
+
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
397
|
+
*
|
|
398
|
+
* @see EllipsoidPrimitive#isDestroyed
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* e = e && e.destroy();
|
|
402
|
+
*/
|
|
403
|
+
EllipsoidPrimitive.prototype.destroy = function() {
|
|
404
|
+
this._sp = this._sp && this._sp.release();
|
|
405
|
+
this._va = this._va && this._va.release();
|
|
406
|
+
this._pickSP = this._pickSP && this._pickSP.release();
|
|
407
|
+
this._pickId = this._pickId && this._pickId.destroy();
|
|
408
|
+
return destroyObject(this);
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
return EllipsoidPrimitive;
|
|
412
|
+
});
|