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,182 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/DeveloperError',
|
|
5
|
+
'../Core/Math',
|
|
6
|
+
'../Core/BoundingSphere',
|
|
7
|
+
'../Core/Cartesian2',
|
|
8
|
+
'../Core/Cartesian3',
|
|
9
|
+
'../Core/Cartographic',
|
|
10
|
+
'../Core/Ellipsoid',
|
|
11
|
+
'../Core/ExtentTessellator',
|
|
12
|
+
'../Core/Occluder',
|
|
13
|
+
'../Core/PlaneTessellator',
|
|
14
|
+
'../Core/TaskProcessor',
|
|
15
|
+
'./TerrainProvider',
|
|
16
|
+
'./TileState',
|
|
17
|
+
'./GeographicTilingScheme',
|
|
18
|
+
'../ThirdParty/when'
|
|
19
|
+
], function(
|
|
20
|
+
defaultValue,
|
|
21
|
+
DeveloperError,
|
|
22
|
+
CesiumMath,
|
|
23
|
+
BoundingSphere,
|
|
24
|
+
Cartesian2,
|
|
25
|
+
Cartesian3,
|
|
26
|
+
Cartographic,
|
|
27
|
+
Ellipsoid,
|
|
28
|
+
ExtentTessellator,
|
|
29
|
+
Occluder,
|
|
30
|
+
PlaneTessellator,
|
|
31
|
+
TaskProcessor,
|
|
32
|
+
TerrainProvider,
|
|
33
|
+
TileState,
|
|
34
|
+
GeographicTilingScheme,
|
|
35
|
+
when) {
|
|
36
|
+
"use strict";
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A very simple {@link TerrainProvider} that produces geometry by tessellating an ellipsoidal
|
|
40
|
+
* surface.
|
|
41
|
+
*
|
|
42
|
+
* @alias EllipsoidTerrainProvider
|
|
43
|
+
* @constructor
|
|
44
|
+
* @private
|
|
45
|
+
*
|
|
46
|
+
* @param {TilingScheme} [description.tilingScheme] The tiling scheme specifying how the ellipsoidal
|
|
47
|
+
* surface is broken into tiles. If this parameter is not provided, a {@link GeographicTilingScheme}
|
|
48
|
+
* is used.
|
|
49
|
+
* @param {Ellipsoid} [description.ellipsoid] The ellipsoid. If the tilingScheme is specified,
|
|
50
|
+
* this parameter is ignored and the tiling scheme's ellipsoid is used instead. If neither
|
|
51
|
+
* parameter is specified, the WGS84 ellipsoid is used.
|
|
52
|
+
*
|
|
53
|
+
* @see TerrainProvider
|
|
54
|
+
*/
|
|
55
|
+
function EllipsoidTerrainProvider(description) {
|
|
56
|
+
description = defaultValue(description, {});
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The tiling scheme used to tile the surface.
|
|
60
|
+
*
|
|
61
|
+
* @type TilingScheme
|
|
62
|
+
*/
|
|
63
|
+
this.tilingScheme = defaultValue(description.tilingScheme, new GeographicTilingScheme({ ellipsoid : defaultValue(description.ellipsoid, Ellipsoid.WGS84) }));
|
|
64
|
+
|
|
65
|
+
// Note: the 64 below does NOT need to match the actual vertex dimensions.
|
|
66
|
+
this.levelZeroMaximumGeometricError = TerrainProvider.getEstimatedLevelZeroGeometricErrorForAHeightmap(this.tilingScheme.getEllipsoid(), 64, this.tilingScheme.getNumberOfXTilesAtLevel(0));
|
|
67
|
+
|
|
68
|
+
this.ready = true;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Gets the maximum geometric error allowed in a tile at a given level.
|
|
73
|
+
*
|
|
74
|
+
* @param {Number} level The tile level for which to get the maximum geometric error.
|
|
75
|
+
* @returns {Number} The maximum geometric error.
|
|
76
|
+
*/
|
|
77
|
+
EllipsoidTerrainProvider.prototype.getLevelMaximumGeometricError = TerrainProvider.prototype.getLevelMaximumGeometricError;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Request the tile geometry from the remote server. Once complete, the
|
|
81
|
+
* tile state should be set to RECEIVED. Alternatively, tile state can be set to
|
|
82
|
+
* UNLOADED to indicate that the request should be attempted again next update, if the tile
|
|
83
|
+
* is still needed.
|
|
84
|
+
*
|
|
85
|
+
* @param {Tile} The tile to request geometry for.
|
|
86
|
+
*/
|
|
87
|
+
EllipsoidTerrainProvider.prototype.requestTileGeometry = function(tile) {
|
|
88
|
+
tile.state = TileState.RECEIVED;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
var taskProcessor = new TaskProcessor('createVerticesFromExtent');
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Transform the tile geometry from the format requested from the remote server
|
|
95
|
+
* into a format suitable for resource creation. Once complete, the tile
|
|
96
|
+
* state should be set to TRANSFORMED. Alternatively, tile state can be set to
|
|
97
|
+
* RECEIVED to indicate that the transformation should be attempted again next update, if the tile
|
|
98
|
+
* is still needed.
|
|
99
|
+
*
|
|
100
|
+
* @param {Context} context The context to use to create resources.
|
|
101
|
+
* @param {Tile} tile The tile to transform geometry for.
|
|
102
|
+
*/
|
|
103
|
+
EllipsoidTerrainProvider.prototype.transformGeometry = function(context, tile) {
|
|
104
|
+
var tilingScheme = this.tilingScheme;
|
|
105
|
+
var ellipsoid = tilingScheme.getEllipsoid();
|
|
106
|
+
var extent = tile.extent;
|
|
107
|
+
|
|
108
|
+
tile.center = ellipsoid.cartographicToCartesian(extent.getCenter());
|
|
109
|
+
|
|
110
|
+
var width = 16;
|
|
111
|
+
var height = 16;
|
|
112
|
+
|
|
113
|
+
var verticesPromise = taskProcessor.scheduleTask({
|
|
114
|
+
extent : extent,
|
|
115
|
+
surfaceHeight : 0,
|
|
116
|
+
width : width,
|
|
117
|
+
height : height,
|
|
118
|
+
relativeToCenter : tile.center,
|
|
119
|
+
radiiSquared : ellipsoid.getRadiiSquared()
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
if (typeof verticesPromise === 'undefined') {
|
|
123
|
+
//postponed
|
|
124
|
+
tile.state = TileState.RECEIVED;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
when(verticesPromise, function(result) {
|
|
129
|
+
tile.transientData = {
|
|
130
|
+
vertices : new Float32Array(result),
|
|
131
|
+
indices : TerrainProvider.getRegularGridIndices(width, height)
|
|
132
|
+
};
|
|
133
|
+
tile.state = TileState.TRANSFORMED;
|
|
134
|
+
}, function(e) {
|
|
135
|
+
/*global console*/
|
|
136
|
+
console.error('failed to transform geometry: ' + e);
|
|
137
|
+
tile.state = TileState.FAILED;
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
var scratch = new Cartesian3();
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Create WebGL resources for the tile using whatever data the transformGeometry step produced.
|
|
145
|
+
* Once complete, the tile state should be set to READY. Alternatively, tile state can be set to
|
|
146
|
+
* TRANSFORMED to indicate that resource creation should be attempted again next update, if the tile
|
|
147
|
+
* is still needed.
|
|
148
|
+
*
|
|
149
|
+
* @param {Context} context The context to use to create resources.
|
|
150
|
+
* @param {Tile} tile The tile to create resources for.
|
|
151
|
+
*/
|
|
152
|
+
EllipsoidTerrainProvider.prototype.createResources = function(context, tile) {
|
|
153
|
+
var buffers = tile.transientData;
|
|
154
|
+
tile.transientData = undefined;
|
|
155
|
+
|
|
156
|
+
TerrainProvider.createTileEllipsoidGeometryFromBuffers(context, tile, buffers);
|
|
157
|
+
tile.maxHeight = 0;
|
|
158
|
+
tile.boundingSphere3D = BoundingSphere.fromVertices(buffers.vertices, tile.center, 5);
|
|
159
|
+
|
|
160
|
+
var ellipsoid = this.tilingScheme.getEllipsoid();
|
|
161
|
+
var extent = tile.extent;
|
|
162
|
+
tile.southwestCornerCartesian = ellipsoid.cartographicToCartesian(extent.getSouthwest());
|
|
163
|
+
tile.southeastCornerCartesian = ellipsoid.cartographicToCartesian(extent.getSoutheast());
|
|
164
|
+
tile.northeastCornerCartesian = ellipsoid.cartographicToCartesian(extent.getNortheast());
|
|
165
|
+
tile.northwestCornerCartesian = ellipsoid.cartographicToCartesian(extent.getNorthwest());
|
|
166
|
+
|
|
167
|
+
tile.westNormal = Cartesian3.UNIT_Z.cross(tile.southwestCornerCartesian.negate(scratch), scratch).normalize();
|
|
168
|
+
tile.eastNormal = tile.northeastCornerCartesian.negate(scratch).cross(Cartesian3.UNIT_Z, scratch).normalize();
|
|
169
|
+
tile.southNormal = ellipsoid.geodeticSurfaceNormal(tile.southeastCornerCartesian).cross(tile.southwestCornerCartesian.subtract(tile.southeastCornerCartesian, scratch)).normalize();
|
|
170
|
+
tile.northNormal = ellipsoid.geodeticSurfaceNormal(tile.northwestCornerCartesian).cross(tile.northeastCornerCartesian.subtract(tile.northwestCornerCartesian, scratch)).normalize();
|
|
171
|
+
|
|
172
|
+
var occludeePoint = Occluder.computeOccludeePointFromExtent(tile.extent, ellipsoid);
|
|
173
|
+
if (typeof occludeePoint !== 'undefined') {
|
|
174
|
+
Cartesian3.multiplyComponents(occludeePoint, ellipsoid.getOneOverRadii(), occludeePoint);
|
|
175
|
+
}
|
|
176
|
+
tile.occludeePointInScaledSpace = occludeePoint;
|
|
177
|
+
|
|
178
|
+
tile.state = TileState.READY;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
return EllipsoidTerrainProvider;
|
|
182
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([], function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* State information about the current frame. An instance of this class
|
|
7
|
+
* is provided to update functions.
|
|
8
|
+
*
|
|
9
|
+
* @alias FrameState
|
|
10
|
+
* @constructor
|
|
11
|
+
*/
|
|
12
|
+
var FrameState = function() {
|
|
13
|
+
/**
|
|
14
|
+
* The current mode of the scene.
|
|
15
|
+
* @type SceneMode
|
|
16
|
+
*/
|
|
17
|
+
this.mode = undefined;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The current morph transition time between 2D/Columbus View and 3D,
|
|
21
|
+
* with 0.0 being 2D or Columbus View and 1.0 being 3D.
|
|
22
|
+
*
|
|
23
|
+
* @type Number
|
|
24
|
+
*/
|
|
25
|
+
this.morphTime = undefined;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The current frame number.
|
|
29
|
+
*
|
|
30
|
+
* @type Number
|
|
31
|
+
*/
|
|
32
|
+
this.frameNumber = undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The scene's current time.
|
|
36
|
+
*
|
|
37
|
+
* @type JulianDate
|
|
38
|
+
*/
|
|
39
|
+
this.time = undefined;
|
|
40
|
+
|
|
41
|
+
this.scene2D = {
|
|
42
|
+
/**
|
|
43
|
+
* The projection to use in 2D mode.
|
|
44
|
+
*/
|
|
45
|
+
projection : undefined
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The current camera.
|
|
50
|
+
* @type Camera
|
|
51
|
+
*/
|
|
52
|
+
this.camera = undefined;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The culling volume.
|
|
56
|
+
* @type CullingVolume
|
|
57
|
+
*/
|
|
58
|
+
this.cullingVolume = undefined;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The current occluder.
|
|
62
|
+
* @type Occluder
|
|
63
|
+
*/
|
|
64
|
+
this.occluder = undefined;
|
|
65
|
+
|
|
66
|
+
this.passes = {
|
|
67
|
+
/**
|
|
68
|
+
* <code>true</code> if the primitive should update for a color pass, <code>false</code> otherwise.
|
|
69
|
+
* @type Boolean
|
|
70
|
+
*/
|
|
71
|
+
color : false,
|
|
72
|
+
/**
|
|
73
|
+
* <code>true</code> if the primitive should update for a picking pass, <code>false</code> otherwise.
|
|
74
|
+
* @type Boolean
|
|
75
|
+
*/
|
|
76
|
+
pick : false,
|
|
77
|
+
/**
|
|
78
|
+
* <code>true</code> if the primitive should update for an overlay pass, <code>false</code> otherwise.
|
|
79
|
+
* @type Boolean
|
|
80
|
+
*/
|
|
81
|
+
overlay : false
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return FrameState;
|
|
86
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['../Core/defaultValue'], function(defaultValue) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Defines a list of commands whose geometry are bound by near and far distances from the camera.
|
|
7
|
+
* @alias FrustumCommands
|
|
8
|
+
* @constructor
|
|
9
|
+
*
|
|
10
|
+
* @param {Number} [near=0.0] The lower bound or closest distance from the camera.
|
|
11
|
+
* @param {Number} [far=0.0] The upper bound or farthest distance from the camera.
|
|
12
|
+
*/
|
|
13
|
+
var FrustumCommands = function(near, far) {
|
|
14
|
+
/**
|
|
15
|
+
* The lower bound or closest distance from the camera.
|
|
16
|
+
* @type {Number}
|
|
17
|
+
*/
|
|
18
|
+
this.near = defaultValue(near, 0.0);
|
|
19
|
+
/**
|
|
20
|
+
* The upper bound or farthest distance from the camera.
|
|
21
|
+
* @type {Number}
|
|
22
|
+
*/
|
|
23
|
+
this.far = defaultValue(far, 0.0);
|
|
24
|
+
/**
|
|
25
|
+
* The list of commands.
|
|
26
|
+
* @type {Array}
|
|
27
|
+
*/
|
|
28
|
+
this.commands = [];
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return FrustumCommands;
|
|
32
|
+
});
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/DeveloperError',
|
|
5
|
+
'../Core/Math',
|
|
6
|
+
'../Core/Cartesian2',
|
|
7
|
+
'../Core/Ellipsoid',
|
|
8
|
+
'../Core/Extent',
|
|
9
|
+
'../Core/GeographicProjection',
|
|
10
|
+
'./TilingScheme'
|
|
11
|
+
], function(
|
|
12
|
+
defaultValue,
|
|
13
|
+
DeveloperError,
|
|
14
|
+
CesiumMath,
|
|
15
|
+
Cartesian2,
|
|
16
|
+
Ellipsoid,
|
|
17
|
+
Extent,
|
|
18
|
+
GeographicProjection,
|
|
19
|
+
TilingScheme) {
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A tiling scheme for geometry referenced to a simple {@link GeographicProjection} where
|
|
24
|
+
* longitude and latitude are directly mapped to X and Y. This projection is commonly
|
|
25
|
+
* known as geographic, equirectangular, equidistant cylindrical, or plate carrée.
|
|
26
|
+
*
|
|
27
|
+
* @alias GeographicTilingScheme
|
|
28
|
+
* @constructor
|
|
29
|
+
*
|
|
30
|
+
* @param {Ellipsoid} [description.ellipsoid=Ellipsoid.WGS84] The ellipsoid whose surface is being tiled. Defaults to
|
|
31
|
+
* the WGS84 ellipsoid.
|
|
32
|
+
* @param {Extent} [description.extent=Extent.MAX_VALUE] The extent, in radians, covered by the tiling scheme.
|
|
33
|
+
* @param {Number} [description.numberOfLevelZeroTilesX=2] The number of tiles in the X direction at level zero of
|
|
34
|
+
* the tile tree.
|
|
35
|
+
* @param {Number} [description.numberOfLevelZeroTilesY=1] The number of tiles in the Y direction at level zero of
|
|
36
|
+
* the tile tree.
|
|
37
|
+
*/
|
|
38
|
+
var GeographicTilingScheme = function GeographicTilingScheme(description) {
|
|
39
|
+
description = defaultValue(description, {});
|
|
40
|
+
|
|
41
|
+
this._ellipsoid = defaultValue(description.ellipsoid, Ellipsoid.WGS84);
|
|
42
|
+
this._extent = defaultValue(description.extent, Extent.MAX_VALUE);
|
|
43
|
+
this._projection = new GeographicProjection(this._ellipsoid);
|
|
44
|
+
this._numberOfLevelZeroTilesX = defaultValue(description.numberOfLevelZeroTilesX, 2);
|
|
45
|
+
this._numberOfLevelZeroTilesY = defaultValue(description.numberOfLevelZeroTilesY, 1);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Gets the ellipsoid that is tiled by this tiling scheme.
|
|
50
|
+
*
|
|
51
|
+
* @memberof GeographicTilingScheme
|
|
52
|
+
*
|
|
53
|
+
* @returns {Ellipsoid} The ellipsoid.
|
|
54
|
+
*/
|
|
55
|
+
GeographicTilingScheme.prototype.getEllipsoid = function() {
|
|
56
|
+
return this._ellipsoid;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Gets the extent, in radians, covered by this tiling scheme.
|
|
61
|
+
*
|
|
62
|
+
* @memberof GeographicTilingScheme
|
|
63
|
+
*
|
|
64
|
+
* @returns {Extent} The extent.
|
|
65
|
+
*/
|
|
66
|
+
GeographicTilingScheme.prototype.getExtent = function() {
|
|
67
|
+
return this._extent;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Gets the map projection used by this tiling scheme.
|
|
72
|
+
*
|
|
73
|
+
* @memberof GeographicTilingScheme
|
|
74
|
+
*
|
|
75
|
+
* @returns {Projection} The map projection.
|
|
76
|
+
*/
|
|
77
|
+
GeographicTilingScheme.prototype.getProjection = function() {
|
|
78
|
+
return this._projection;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Gets the total number of tiles in the X direction at a specified level-of-detail.
|
|
83
|
+
*
|
|
84
|
+
* @memberof GeographicTilingScheme
|
|
85
|
+
*
|
|
86
|
+
* @param {Number} level The level-of-detail.
|
|
87
|
+
* @returns {Number} The number of tiles in the X direction at the given level.
|
|
88
|
+
*/
|
|
89
|
+
GeographicTilingScheme.prototype.getNumberOfXTilesAtLevel = function(level) {
|
|
90
|
+
return this._numberOfLevelZeroTilesX << level;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Gets the total number of tiles in the Y direction at a specified level-of-detail.
|
|
95
|
+
*
|
|
96
|
+
* @memberof GeographicTilingScheme
|
|
97
|
+
*
|
|
98
|
+
* @param {Number} level The level-of-detail.
|
|
99
|
+
* @returns {Number} The number of tiles in the Y direction at the given level.
|
|
100
|
+
*/
|
|
101
|
+
GeographicTilingScheme.prototype.getNumberOfYTilesAtLevel = function(level) {
|
|
102
|
+
return this._numberOfLevelZeroTilesY << level;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Creates the tile or tiles at level of detail zero, the coarsest, least detailed level.
|
|
107
|
+
*
|
|
108
|
+
* @memberof GeographicTilingScheme
|
|
109
|
+
*
|
|
110
|
+
* @return {Array} An array containing the tiles at level of detail zero, starting with the
|
|
111
|
+
* tile in the northwest corner of the globe and followed by the tile (if any) to its east.
|
|
112
|
+
*/
|
|
113
|
+
GeographicTilingScheme.prototype.createLevelZeroTiles = function() {
|
|
114
|
+
return TilingScheme.createRectangleOfLevelZeroTiles(this, this._numberOfLevelZeroTilesX, this._numberOfLevelZeroTilesY);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Transforms an extent specified in geodetic radians to the native coordinate system
|
|
119
|
+
* of this tiling scheme.
|
|
120
|
+
*
|
|
121
|
+
* @memberof GeographicTilingScheme
|
|
122
|
+
*
|
|
123
|
+
* @param {Extent} extent The extent to transform.
|
|
124
|
+
* @param {Extent} [result] The instance to which to copy the result, or undefined if a new instance
|
|
125
|
+
* should be created.
|
|
126
|
+
* @returns {Extent} The specified 'result', or a new object containing the native extent if 'result'
|
|
127
|
+
* is undefined.
|
|
128
|
+
*
|
|
129
|
+
* @exception {DeveloperError} <code>extent</code> is required.
|
|
130
|
+
*/
|
|
131
|
+
GeographicTilingScheme.prototype.extentToNativeExtent = function(extent, result) {
|
|
132
|
+
if (typeof extent === 'undefined') {
|
|
133
|
+
throw new DeveloperError('extent is required.');
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var west = CesiumMath.toDegrees(extent.west);
|
|
137
|
+
var south = CesiumMath.toDegrees(extent.south);
|
|
138
|
+
var east = CesiumMath.toDegrees(extent.east);
|
|
139
|
+
var north = CesiumMath.toDegrees(extent.north);
|
|
140
|
+
|
|
141
|
+
if (typeof result === 'undefined') {
|
|
142
|
+
return new Extent(west, south, east, north);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
result.west = west;
|
|
146
|
+
result.south = south;
|
|
147
|
+
result.east = east;
|
|
148
|
+
result.north = north;
|
|
149
|
+
return result;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Converts tile x, y coordinates and level to an extent expressed in the native coordinates
|
|
154
|
+
* of the tiling scheme.
|
|
155
|
+
*
|
|
156
|
+
* @memberof GeographicTilingScheme
|
|
157
|
+
*
|
|
158
|
+
* @param {Number} x The integer x coordinate of the tile.
|
|
159
|
+
* @param {Number} y The integer y coordinate of the tile.
|
|
160
|
+
* @param {Number} level The tile level-of-detail. Zero is the least detailed.
|
|
161
|
+
* @param {Object} [result] The instance to which to copy the result, or undefined if a new instance
|
|
162
|
+
* should be created.
|
|
163
|
+
*
|
|
164
|
+
* @returns {Extent} The specified 'result', or a new object containing the extent
|
|
165
|
+
* if 'result' is undefined.
|
|
166
|
+
*/
|
|
167
|
+
GeographicTilingScheme.prototype.tileXYToNativeExtent = function(x, y, level, result) {
|
|
168
|
+
var extentRadians = this.tileXYToExtent(x, y, level, result);
|
|
169
|
+
extentRadians.west = CesiumMath.toDegrees(extentRadians.west);
|
|
170
|
+
extentRadians.south = CesiumMath.toDegrees(extentRadians.south);
|
|
171
|
+
extentRadians.east = CesiumMath.toDegrees(extentRadians.east);
|
|
172
|
+
extentRadians.north = CesiumMath.toDegrees(extentRadians.north);
|
|
173
|
+
return extentRadians;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Converts tile x, y coordinates and level to a cartographic extent in radians.
|
|
178
|
+
*
|
|
179
|
+
* @memberof GeographicTilingScheme
|
|
180
|
+
*
|
|
181
|
+
* @param {Number} x The integer x coordinate of the tile.
|
|
182
|
+
* @param {Number} y The integer y coordinate of the tile.
|
|
183
|
+
* @param {Number} level The tile level-of-detail. Zero is the least detailed.
|
|
184
|
+
* @param {Object} [result] The instance to which to copy the result, or undefined if a new instance
|
|
185
|
+
* should be created.
|
|
186
|
+
*
|
|
187
|
+
* @returns {Extent} The specified 'result', or a new object containing the extent
|
|
188
|
+
* if 'result' is undefined.
|
|
189
|
+
*/
|
|
190
|
+
GeographicTilingScheme.prototype.tileXYToExtent = function(x, y, level, result) {
|
|
191
|
+
var extent = this._extent;
|
|
192
|
+
|
|
193
|
+
var xTiles = this.getNumberOfXTilesAtLevel(level);
|
|
194
|
+
var yTiles = this.getNumberOfYTilesAtLevel(level);
|
|
195
|
+
|
|
196
|
+
var xTileWidth = (extent.east - extent.west) / xTiles;
|
|
197
|
+
var west = x * xTileWidth + extent.west;
|
|
198
|
+
var east = (x + 1) * xTileWidth + extent.west;
|
|
199
|
+
|
|
200
|
+
var yTileHeight = (extent.north - extent.south) / yTiles;
|
|
201
|
+
var north = extent.north - y * yTileHeight;
|
|
202
|
+
var south = extent.north - (y + 1) * yTileHeight;
|
|
203
|
+
|
|
204
|
+
if (typeof result === 'undefined') {
|
|
205
|
+
result = new Extent(west, south, east, north);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
result.west = west;
|
|
209
|
+
result.south = south;
|
|
210
|
+
result.east = east;
|
|
211
|
+
result.north = north;
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Calculates the tile x, y coordinates of the tile containing
|
|
217
|
+
* a given cartographic position.
|
|
218
|
+
*
|
|
219
|
+
* @memberof GeographicTilingScheme
|
|
220
|
+
*
|
|
221
|
+
* @param {Cartographic} position The position.
|
|
222
|
+
* @param {Number} level The tile level-of-detail. Zero is the least detailed.
|
|
223
|
+
* @param {Cartesian} [result] The instance to which to copy the result, or undefined if a new instance
|
|
224
|
+
* should be created.
|
|
225
|
+
*
|
|
226
|
+
* @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
|
|
227
|
+
* if 'result' is undefined.
|
|
228
|
+
*/
|
|
229
|
+
GeographicTilingScheme.prototype.positionToTileXY = function(position, level, result) {
|
|
230
|
+
var extent = this._extent;
|
|
231
|
+
if (position.latitude > extent.north ||
|
|
232
|
+
position.latitude < extent.south ||
|
|
233
|
+
position.longitude < extent.west ||
|
|
234
|
+
position.longitude > extent.east) {
|
|
235
|
+
// outside the bounds of the tiling scheme
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
var xTiles = this.getNumberOfXTilesAtLevel(level);
|
|
240
|
+
var yTiles = this.getNumberOfYTilesAtLevel(level);
|
|
241
|
+
|
|
242
|
+
var xTileWidth = (extent.east - extent.west) / xTiles;
|
|
243
|
+
var yTileHeight = (extent.north - extent.south) / yTiles;
|
|
244
|
+
|
|
245
|
+
var xTileCoordinate = (position.longitude - extent.west) / xTileWidth | 0;
|
|
246
|
+
if (xTileCoordinate >= xTiles) {
|
|
247
|
+
xTileCoordinate = xTiles - 1;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
var yTileCoordinate = (extent.north - position.latitude) / yTileHeight | 0;
|
|
251
|
+
if (yTileCoordinate >= yTiles) {
|
|
252
|
+
yTileCoordinate = yTiles - 1;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (typeof result === 'undefined') {
|
|
256
|
+
return new Cartesian2(xTileCoordinate, yTileCoordinate);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
result.x = xTileCoordinate;
|
|
260
|
+
result.y = yTileCoordinate;
|
|
261
|
+
return result;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
return GeographicTilingScheme;
|
|
265
|
+
});
|