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,384 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./DeveloperError',
|
|
5
|
+
'./Math',
|
|
6
|
+
'./Ellipsoid',
|
|
7
|
+
'./Extent',
|
|
8
|
+
'./Cartesian3',
|
|
9
|
+
'./ComponentDatatype',
|
|
10
|
+
'./PrimitiveType'
|
|
11
|
+
], function(
|
|
12
|
+
defaultValue,
|
|
13
|
+
DeveloperError,
|
|
14
|
+
CesiumMath,
|
|
15
|
+
Ellipsoid,
|
|
16
|
+
Extent,
|
|
17
|
+
Cartesian3,
|
|
18
|
+
ComponentDatatype,
|
|
19
|
+
PrimitiveType) {
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Contains class functions to create a mesh or vertex array from a cartographic extent.
|
|
24
|
+
*
|
|
25
|
+
* @exports ExtentTessellator
|
|
26
|
+
*
|
|
27
|
+
* @see CubeMapEllipsoidTessellator
|
|
28
|
+
* @see BoxTessellator
|
|
29
|
+
* @see PlaneTessellator
|
|
30
|
+
*/
|
|
31
|
+
var ExtentTessellator = {};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Compute vertices from a cartographic extent. This function is different from
|
|
35
|
+
* {@link ExtentTessellator#compute} and {@link ExtentTessellator#computeBuffers}
|
|
36
|
+
* in that it assumes that you have already allocated output arrays of the correct size.
|
|
37
|
+
*
|
|
38
|
+
* @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
|
|
39
|
+
* @param {Number} description.width The number of vertices in the longitude direction.
|
|
40
|
+
* @param {Number} description.height The number of vertices in the latitude direction.
|
|
41
|
+
* @param {Number} description.granularityX The distance, in radians, between each longitude.
|
|
42
|
+
* @param {Number} description.granularityY The distance, in radians, between each latitude.
|
|
43
|
+
* @param {Number} description.surfaceHeight The height from the surface of the ellipsoid.
|
|
44
|
+
* @param {Boolean} description.generateTextureCoordinates Whether to generate texture coordinates.
|
|
45
|
+
* @param {Boolean} description.interleaveTextureCoordinates Whether to interleave the texture coordinates into the vertex array.
|
|
46
|
+
* @param {Cartesian3} description.relativetoCenter The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
|
|
47
|
+
* @param {Cartesian3} description.radiiSquared The radii squared of the ellipsoid to use.
|
|
48
|
+
* @param {Array|Float32Array} description.vertices The array to use to store computed vertices.
|
|
49
|
+
* @param {Array|Float32Array} description.textureCoordinates The array to use to store computed texture coordinates, unless interleaved.
|
|
50
|
+
* @param {Array|Float32Array} [description.indices] The array to use to store computed indices. If undefined, indices will be not computed.
|
|
51
|
+
*/
|
|
52
|
+
ExtentTessellator.computeVertices = function(description) {
|
|
53
|
+
description = defaultValue(description, {});
|
|
54
|
+
|
|
55
|
+
var extent = description.extent;
|
|
56
|
+
var surfaceHeight = description.surfaceHeight;
|
|
57
|
+
var width = description.width;
|
|
58
|
+
var height = description.height;
|
|
59
|
+
|
|
60
|
+
var granularityX = (extent.east - extent.west) / (width - 1);
|
|
61
|
+
var granularityY = (extent.north - extent.south) / (height - 1);
|
|
62
|
+
var generateTextureCoordinates = description.generateTextureCoordinates;
|
|
63
|
+
var interleaveTextureCoordinates = description.interleaveTextureCoordinates;
|
|
64
|
+
var relativeToCenter = description.relativeToCenter;
|
|
65
|
+
|
|
66
|
+
var vertices = description.vertices;
|
|
67
|
+
var textureCoordinates = description.textureCoordinates;
|
|
68
|
+
var indices = description.indices;
|
|
69
|
+
|
|
70
|
+
var radiiSquared = description.radiiSquared;
|
|
71
|
+
var radiiSquaredX = radiiSquared.x;
|
|
72
|
+
var radiiSquaredY = radiiSquared.y;
|
|
73
|
+
var radiiSquaredZ = radiiSquared.z;
|
|
74
|
+
|
|
75
|
+
var cos = Math.cos;
|
|
76
|
+
var sin = Math.sin;
|
|
77
|
+
var sqrt = Math.sqrt;
|
|
78
|
+
|
|
79
|
+
// for computing texture coordinates
|
|
80
|
+
var lonScalar = 1.0 / (extent.east - extent.west);
|
|
81
|
+
var latScalar = 1.0 / (extent.north - extent.south);
|
|
82
|
+
|
|
83
|
+
var vertexArrayIndex = 0;
|
|
84
|
+
var textureCoordinatesIndex = 0;
|
|
85
|
+
|
|
86
|
+
for ( var row = 0; row < height; ++row) {
|
|
87
|
+
var latitude = extent.north - granularityY * row;
|
|
88
|
+
var cosLatitude = cos(latitude);
|
|
89
|
+
var nZ = sin(latitude);
|
|
90
|
+
var kZ = radiiSquaredZ * nZ;
|
|
91
|
+
|
|
92
|
+
var geographicV = (latitude - extent.south) * latScalar;
|
|
93
|
+
|
|
94
|
+
var v = geographicV;
|
|
95
|
+
|
|
96
|
+
for ( var col = 0; col < width; ++col) {
|
|
97
|
+
var longitude = extent.west + granularityX * col;
|
|
98
|
+
|
|
99
|
+
var nX = cosLatitude * cos(longitude);
|
|
100
|
+
var nY = cosLatitude * sin(longitude);
|
|
101
|
+
|
|
102
|
+
var kX = radiiSquaredX * nX;
|
|
103
|
+
var kY = radiiSquaredY * nY;
|
|
104
|
+
|
|
105
|
+
var gamma = sqrt((kX * nX) + (kY * nY) + (kZ * nZ));
|
|
106
|
+
|
|
107
|
+
var rSurfaceX = kX / gamma;
|
|
108
|
+
var rSurfaceY = kY / gamma;
|
|
109
|
+
var rSurfaceZ = kZ / gamma;
|
|
110
|
+
|
|
111
|
+
vertices[vertexArrayIndex++] = rSurfaceX + nX * surfaceHeight - relativeToCenter.x;
|
|
112
|
+
vertices[vertexArrayIndex++] = rSurfaceY + nY * surfaceHeight - relativeToCenter.y;
|
|
113
|
+
vertices[vertexArrayIndex++] = rSurfaceZ + nZ * surfaceHeight - relativeToCenter.z;
|
|
114
|
+
|
|
115
|
+
if (generateTextureCoordinates) {
|
|
116
|
+
var geographicU = (longitude - extent.west) * lonScalar;
|
|
117
|
+
|
|
118
|
+
var u = geographicU;
|
|
119
|
+
|
|
120
|
+
if (interleaveTextureCoordinates) {
|
|
121
|
+
vertices[vertexArrayIndex++] = u;
|
|
122
|
+
vertices[vertexArrayIndex++] = v;
|
|
123
|
+
} else {
|
|
124
|
+
textureCoordinates[textureCoordinatesIndex++] = u;
|
|
125
|
+
textureCoordinates[textureCoordinatesIndex++] = v;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (typeof indices !== 'undefined') {
|
|
132
|
+
var index = 0;
|
|
133
|
+
var indicesIndex = 0;
|
|
134
|
+
for ( var i = 0; i < height - 1; ++i) {
|
|
135
|
+
for ( var j = 0; j < width - 1; ++j) {
|
|
136
|
+
var upperLeft = index;
|
|
137
|
+
var lowerLeft = upperLeft + width;
|
|
138
|
+
var lowerRight = lowerLeft + 1;
|
|
139
|
+
var upperRight = upperLeft + 1;
|
|
140
|
+
|
|
141
|
+
indices[indicesIndex++] = upperLeft;
|
|
142
|
+
indices[indicesIndex++] = lowerLeft;
|
|
143
|
+
indices[indicesIndex++] = upperRight;
|
|
144
|
+
indices[indicesIndex++] = upperRight;
|
|
145
|
+
indices[indicesIndex++] = lowerLeft;
|
|
146
|
+
indices[indicesIndex++] = lowerRight;
|
|
147
|
+
|
|
148
|
+
++index;
|
|
149
|
+
}
|
|
150
|
+
++index;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Creates a mesh from a cartographic extent.
|
|
157
|
+
*
|
|
158
|
+
* @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
|
|
159
|
+
* @param {Ellipsoid} [description.ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the extent lies.
|
|
160
|
+
* @param {Number} [description.granularity=0.1] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
|
|
161
|
+
* @param {Number} [description.surfaceHeight=0.0] The height from the surface of the ellipsoid.
|
|
162
|
+
* @param {Cartesian3} [description.relativetoCenter=Cartesian3.ZERO] The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
|
|
163
|
+
* @param {Boolean} [description.generateTextureCoordinates=false] Whether to generate texture coordinates.
|
|
164
|
+
*
|
|
165
|
+
* @exception {DeveloperError} <code>description.extent</code> is required and must have north, south, east and west attributes.
|
|
166
|
+
* @exception {DeveloperError} <code>description.extent.north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
167
|
+
* @exception {DeveloperError} <code>description.extent.south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
168
|
+
* @exception {DeveloperError} <code>description.extent.east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
169
|
+
* @exception {DeveloperError} <code>description.extent.west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
170
|
+
* @exception {DeveloperError} <code>description.extent.north</code> must be greater than <code>extent.south</code>.
|
|
171
|
+
* @exception {DeveloperError} <code>description.extent.east</code> must be greater than <code>extent.west</code>.
|
|
172
|
+
* @exception {DeveloperError} <code>description.context</code> is required.
|
|
173
|
+
*
|
|
174
|
+
* @return {Object} A mesh containing attributes for positions, possibly texture coordinates and indices
|
|
175
|
+
* from the extent for creating a vertex array.
|
|
176
|
+
*
|
|
177
|
+
* @see Context#createVertexArrayFromMesh
|
|
178
|
+
* @see MeshFilters.createAttributeIndices
|
|
179
|
+
* @see MeshFilters.toWireframeInPlace
|
|
180
|
+
* @see Extent
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* // Create a vertex array for rendering a wireframe extent.
|
|
184
|
+
* var mesh = ExtentTessellator.compute({
|
|
185
|
+
* ellipsoid : Ellipsoid.WGS84,
|
|
186
|
+
* extent : new Extent(
|
|
187
|
+
* CesiumMath.toRadians(-80.0),
|
|
188
|
+
* CesiumMath.toRadians(39.0),
|
|
189
|
+
* CesiumMath.toRadians(-74.0),
|
|
190
|
+
* CesiumMath.toRadians(42.0)
|
|
191
|
+
* ),
|
|
192
|
+
* granularity : 0.01,
|
|
193
|
+
* surfaceHeight : 10000.0
|
|
194
|
+
* });
|
|
195
|
+
* mesh = MeshFilters.toWireframeInPlace(mesh);
|
|
196
|
+
* var va = context.createVertexArrayFromMesh({
|
|
197
|
+
* mesh : mesh,
|
|
198
|
+
* attributeIndices : MeshFilters.createAttributeIndices(mesh)
|
|
199
|
+
* });
|
|
200
|
+
*/
|
|
201
|
+
ExtentTessellator.compute = function(description) {
|
|
202
|
+
description = defaultValue(description, {});
|
|
203
|
+
|
|
204
|
+
var extent = description.extent;
|
|
205
|
+
extent.validate();
|
|
206
|
+
|
|
207
|
+
var ellipsoid = defaultValue(description.ellipsoid, Ellipsoid.WGS84);
|
|
208
|
+
description.radiiSquared = ellipsoid.getRadiiSquared();
|
|
209
|
+
description.relativeToCenter = defaultValue(description.relativeToCenter, Cartesian3.ZERO);
|
|
210
|
+
|
|
211
|
+
var granularity = defaultValue(description.granularity, 0.1);
|
|
212
|
+
description.surfaceHeight = defaultValue(description.surfaceHeight, 0.0);
|
|
213
|
+
|
|
214
|
+
description.width = Math.ceil((extent.east - extent.west) / granularity) + 1;
|
|
215
|
+
description.height = Math.ceil((extent.north - extent.south) / granularity) + 1;
|
|
216
|
+
|
|
217
|
+
var vertices = [];
|
|
218
|
+
var indices = [];
|
|
219
|
+
var textureCoordinates = [];
|
|
220
|
+
|
|
221
|
+
description.generateTextureCoordinates = defaultValue(description.generateTextureCoordinates, false);
|
|
222
|
+
description.interleaveTextureCoordinates = false;
|
|
223
|
+
description.vertices = vertices;
|
|
224
|
+
description.textureCoordinates = textureCoordinates;
|
|
225
|
+
description.indices = indices;
|
|
226
|
+
|
|
227
|
+
ExtentTessellator.computeVertices(description);
|
|
228
|
+
|
|
229
|
+
var mesh = {
|
|
230
|
+
attributes : {},
|
|
231
|
+
indexLists : [{
|
|
232
|
+
primitiveType : PrimitiveType.TRIANGLES,
|
|
233
|
+
values : indices
|
|
234
|
+
}]
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
var positionName = defaultValue(description.positionName, 'position');
|
|
238
|
+
mesh.attributes[positionName] = {
|
|
239
|
+
componentDatatype : ComponentDatatype.FLOAT,
|
|
240
|
+
componentsPerAttribute : 3,
|
|
241
|
+
values : vertices
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
if (description.generateTextureCoordinates) {
|
|
245
|
+
var textureCoordinatesName = defaultValue(description.textureCoordinatesName, 'textureCoordinates');
|
|
246
|
+
mesh.attributes[textureCoordinatesName] = {
|
|
247
|
+
componentDatatype : ComponentDatatype.FLOAT,
|
|
248
|
+
componentsPerAttribute : 2,
|
|
249
|
+
values : textureCoordinates
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return mesh;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Creates arrays of vertex attributes and indices from a cartographic extent.
|
|
258
|
+
*
|
|
259
|
+
* @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
|
|
260
|
+
* @param {Ellipsoid} [description.ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the extent lies.
|
|
261
|
+
* @param {Number} [description.granularity=0.1] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
|
|
262
|
+
* @param {Number} [description.surfaceHeight=0.0] The height from the surface of the ellipsoid.
|
|
263
|
+
* @param {Cartesian3} [description.relativetoCenter=Cartesian3.ZERO] The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
|
|
264
|
+
* @param {Boolean} [description.generateTextureCoordinates=false] Whether to generate texture coordinates.
|
|
265
|
+
* @param {Boolean} [description.interleaveTextureCoordinates=false] If texture coordinates are generated, whether to interleave the positions and texture coordinates in a single buffer.
|
|
266
|
+
*
|
|
267
|
+
* @exception {DeveloperError} <code>description.extent</code> is required and must have north, south, east and west attributes.
|
|
268
|
+
* @exception {DeveloperError} <code>description.extent.north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
269
|
+
* @exception {DeveloperError} <code>description.extent.south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
270
|
+
* @exception {DeveloperError} <code>description.extent.east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
271
|
+
* @exception {DeveloperError} <code>description.extent.west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
272
|
+
* @exception {DeveloperError} <code>description.extent.north</code> must be greater than <code>extent.south</code>. *
|
|
273
|
+
* @exception {DeveloperError} <code>description.extent.east</code> must be greater than <code>extent.west</code>.
|
|
274
|
+
*
|
|
275
|
+
* @return {Object} An object with flattened arrays for vertex attributes and indices.
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* // Example 1:
|
|
279
|
+
* // Create a vertex array for a solid extent, with separate positions and texture coordinates.
|
|
280
|
+
* var buffers = ExtentTessellator.computeBuffers({
|
|
281
|
+
* ellipsoid : ellipsoid,
|
|
282
|
+
* extent : extent,
|
|
283
|
+
* generateTextureCoordinates : true
|
|
284
|
+
* });
|
|
285
|
+
*
|
|
286
|
+
* var datatype = ComponentDatatype.FLOAT;
|
|
287
|
+
* var usage = BufferUsage.STATIC_DRAW;
|
|
288
|
+
* var positionBuffer = context.createVertexBuffer(datatype.toTypedArray(buffers.positions), usage);
|
|
289
|
+
* var textureCoordinateBuffer = context.createVertexBuffer(datatype.toTypedArray(buffers.textureCoordinates), usage);
|
|
290
|
+
* attributes = [{
|
|
291
|
+
* index : attributeIndices.position,
|
|
292
|
+
* vertexBuffer : positionBuffer,
|
|
293
|
+
* componentDatatype : datatype,
|
|
294
|
+
* componentsPerAttribute : 3
|
|
295
|
+
* }, {
|
|
296
|
+
* index : attributeIndices.textureCoordinates,
|
|
297
|
+
* vertexBuffer : textureCoordinateBuffer,
|
|
298
|
+
* componentDatatype : datatype,
|
|
299
|
+
* componentsPerAttribute : 2
|
|
300
|
+
* }];
|
|
301
|
+
* var indexBuffer = context.createIndexBuffer(new Uint16Array(buffers.indices), usage, IndexDatatype.UNSIGNED_SHORT);
|
|
302
|
+
* var va = context.createVertexArray(attributes, indexBuffer);
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* // Example 2:
|
|
306
|
+
* // Create a vertex array for a solid extent, with interleaved positions and texture coordinates.
|
|
307
|
+
* var buffers = ExtentTessellator.computeBuffers({
|
|
308
|
+
* ellipsoid : ellipsoid,
|
|
309
|
+
* extent : extent,
|
|
310
|
+
* generateTextureCoordinates : true,
|
|
311
|
+
* interleaveTextureCoordinates : true
|
|
312
|
+
* });
|
|
313
|
+
*
|
|
314
|
+
* var datatype = ComponentDatatype.FLOAT;
|
|
315
|
+
* var usage = BufferUsage.STATIC_DRAW;
|
|
316
|
+
* var typedArray = datatype.toTypedArray(buffers.vertices);
|
|
317
|
+
* var buffer = context.createVertexBuffer(typedArray, usage);
|
|
318
|
+
* var stride = 5 * datatype.sizeInBytes;
|
|
319
|
+
* var attributes = [{
|
|
320
|
+
* index : attributeIndices.position3D,
|
|
321
|
+
* vertexBuffer : buffer,
|
|
322
|
+
* componentDatatype : datatype,
|
|
323
|
+
* componentsPerAttribute : 3,
|
|
324
|
+
* normalize : false,
|
|
325
|
+
* offsetInBytes : 0,
|
|
326
|
+
* strideInBytes : stride
|
|
327
|
+
* }, {
|
|
328
|
+
* index : attributeIndices.textureCoordinates,
|
|
329
|
+
* vertexBuffer : buffer,
|
|
330
|
+
* componentDatatype : datatype,
|
|
331
|
+
* componentsPerAttribute : 2,
|
|
332
|
+
* normalize : false,
|
|
333
|
+
* offsetInBytes : 3 * datatype.sizeInBytes,
|
|
334
|
+
* strideInBytes : stride
|
|
335
|
+
* }];
|
|
336
|
+
* var indexBuffer = context.createIndexBuffer(new Uint16Array(buffers.indices), usage, IndexDatatype.UNSIGNED_SHORT);
|
|
337
|
+
* var vacontext.createVertexArray(attributes, indexBuffer);
|
|
338
|
+
*/
|
|
339
|
+
ExtentTessellator.computeBuffers = function(description) {
|
|
340
|
+
description = defaultValue(description, {});
|
|
341
|
+
|
|
342
|
+
var extent = description.extent;
|
|
343
|
+
extent.validate();
|
|
344
|
+
|
|
345
|
+
var ellipsoid = defaultValue(description.ellipsoid, Ellipsoid.WGS84);
|
|
346
|
+
description.radiiSquared = ellipsoid.getRadiiSquared();
|
|
347
|
+
description.relativeToCenter = defaultValue(description.relativeToCenter, Cartesian3.ZERO);
|
|
348
|
+
|
|
349
|
+
var granularity = defaultValue(description.granularity, 0.1);
|
|
350
|
+
description.surfaceHeight = defaultValue(description.surfaceHeight, 0.0);
|
|
351
|
+
|
|
352
|
+
description.width = Math.ceil((extent.east - extent.west) / granularity) + 1;
|
|
353
|
+
description.height = Math.ceil((extent.north - extent.south) / granularity) + 1;
|
|
354
|
+
|
|
355
|
+
var vertices = [];
|
|
356
|
+
var indices = [];
|
|
357
|
+
var textureCoordinates = [];
|
|
358
|
+
|
|
359
|
+
description.generateTextureCoordinates = defaultValue(description.generateTextureCoordinates, false);
|
|
360
|
+
description.interleaveTextureCoordinates = defaultValue(description.interleaveTextureCoordinates, false);
|
|
361
|
+
description.vertices = vertices;
|
|
362
|
+
description.textureCoordinates = textureCoordinates;
|
|
363
|
+
description.indices = indices;
|
|
364
|
+
|
|
365
|
+
ExtentTessellator.computeVertices(description);
|
|
366
|
+
|
|
367
|
+
var result = {
|
|
368
|
+
indices : indices
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
if (description.interleaveTextureCoordinates) {
|
|
372
|
+
result.vertices = vertices;
|
|
373
|
+
} else {
|
|
374
|
+
result.positions = vertices;
|
|
375
|
+
if (description.generateTextureCoordinates) {
|
|
376
|
+
result.textureCoordinates = textureCoordinates;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return result;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
return ExtentTessellator;
|
|
384
|
+
});
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./Fullscreen'
|
|
4
|
+
], function(
|
|
5
|
+
Fullscreen) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A set of functions to detect whether the current browser supports
|
|
10
|
+
* various features.
|
|
11
|
+
*
|
|
12
|
+
* @exports FeatureDetection
|
|
13
|
+
*/
|
|
14
|
+
var FeatureDetection = {};
|
|
15
|
+
|
|
16
|
+
function extractVersion(versionString) {
|
|
17
|
+
return versionString.split('.').map(function(v) {
|
|
18
|
+
return parseInt(v, 10);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var _isChrome;
|
|
23
|
+
var _chromeVersion;
|
|
24
|
+
function isChrome() {
|
|
25
|
+
if (typeof _isChrome === 'undefined') {
|
|
26
|
+
var fields = (/ Chrome\/([\.0-9]+)/).exec(navigator.userAgent);
|
|
27
|
+
if (!fields) {
|
|
28
|
+
return (_isChrome = false);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
_isChrome = true;
|
|
32
|
+
_chromeVersion = extractVersion(fields[1]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return _isChrome;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function chromeVersion() {
|
|
39
|
+
return isChrome() && _chromeVersion;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var _isSafari;
|
|
43
|
+
var _safariVersion;
|
|
44
|
+
function isSafari() {
|
|
45
|
+
if (typeof _isSafari === 'undefined') {
|
|
46
|
+
// Chrome contains Safari in the user agent too
|
|
47
|
+
if (isChrome() || !(/ Safari\/[\.0-9]+/).test(navigator.userAgent)) {
|
|
48
|
+
return (_isSafari = false);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var fields = (/ Version\/([\.0-9]+)/).exec(navigator.userAgent);
|
|
52
|
+
if (!fields) {
|
|
53
|
+
return (_isSafari = false);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
_isSafari = true;
|
|
57
|
+
_safariVersion = extractVersion(fields[1]);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return _isSafari;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function safariVersion() {
|
|
64
|
+
return isSafari() && _safariVersion;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var _isWebkit;
|
|
68
|
+
var _webkitVersion;
|
|
69
|
+
function isWebkit() {
|
|
70
|
+
if (typeof _isWebkit === 'undefined') {
|
|
71
|
+
var fields = (/ AppleWebKit\/([\.0-9]+)(\+?)/).exec(navigator.userAgent);
|
|
72
|
+
if (!fields) {
|
|
73
|
+
return (_isWebkit = false);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
_isWebkit = true;
|
|
77
|
+
_webkitVersion = extractVersion(fields[1]);
|
|
78
|
+
_webkitVersion.isNightly = !!fields[2];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return _isWebkit;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function webkitVersion() {
|
|
85
|
+
return isWebkit() && _webkitVersion;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var _supportsCrossOriginImagery;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Detects whether the current browser supports the use of cross-origin
|
|
92
|
+
* requests to load streaming imagery.
|
|
93
|
+
*
|
|
94
|
+
* @returns true if the browser can load cross-origin streaming imagery, false if not.
|
|
95
|
+
*
|
|
96
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
|
97
|
+
*/
|
|
98
|
+
FeatureDetection.supportsCrossOriginImagery = function() {
|
|
99
|
+
if (typeof _supportsCrossOriginImagery === 'undefined') {
|
|
100
|
+
if (isSafari() && webkitVersion()[0] < 536) {
|
|
101
|
+
// versions of Safari below this incorrectly throw a DOM error when calling
|
|
102
|
+
// readPixels on a canvas containing a cross-origin image.
|
|
103
|
+
_supportsCrossOriginImagery = false;
|
|
104
|
+
} else {
|
|
105
|
+
// any other versions of browsers that incorrectly block
|
|
106
|
+
// readPixels on canvas containing crossOrigin images?
|
|
107
|
+
_supportsCrossOriginImagery = 'withCredentials' in new XMLHttpRequest();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return _supportsCrossOriginImagery;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Detects whether the current browser supports the full screen standard.
|
|
115
|
+
*
|
|
116
|
+
* @returns true if the supports the full screen standard, false if not.
|
|
117
|
+
*
|
|
118
|
+
* @see Fullscreen
|
|
119
|
+
* @see <a href='http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html'>W3C Fullscreen Living Specification</a>
|
|
120
|
+
*/
|
|
121
|
+
FeatureDetection.supportsFullscreen = function() {
|
|
122
|
+
return Fullscreen.supportsFullscreen();
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
return FeatureDetection;
|
|
126
|
+
});
|