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,38 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
], function(
|
|
4
|
+
) {
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A {@link TileDiscardPolicy} specifying that tile images should never be discard.
|
|
9
|
+
*
|
|
10
|
+
* @alias NeverTileDiscardPolicy
|
|
11
|
+
* @constructor
|
|
12
|
+
*
|
|
13
|
+
* @see DiscardMissingTileImagePolicy
|
|
14
|
+
*/
|
|
15
|
+
var NeverTileDiscardPolicy = function(description) {
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Determines if the discard policy is ready to process images.
|
|
20
|
+
* @returns True if the discard policy is ready to process images; otherwise, false.
|
|
21
|
+
*/
|
|
22
|
+
NeverTileDiscardPolicy.prototype.isReady = function() {
|
|
23
|
+
return true;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Given a tile image, decide whether to discard that image.
|
|
28
|
+
*
|
|
29
|
+
* @param {Image|Promise} image An image, or a promise that will resolve to an image.
|
|
30
|
+
*
|
|
31
|
+
* @returns A promise that will resolve to true if the tile should be discarded.
|
|
32
|
+
*/
|
|
33
|
+
NeverTileDiscardPolicy.prototype.shouldDiscardImage = function(image) {
|
|
34
|
+
return false;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return NeverTileDiscardPolicy;
|
|
38
|
+
});
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/defaultValue',
|
|
4
|
+
'../Core/DeveloperError',
|
|
5
|
+
'../Core/Event',
|
|
6
|
+
'../Core/writeTextToCanvas',
|
|
7
|
+
'./ImageryProvider',
|
|
8
|
+
'./WebMercatorTilingScheme'
|
|
9
|
+
], function(
|
|
10
|
+
defaultValue,
|
|
11
|
+
DeveloperError,
|
|
12
|
+
Event,
|
|
13
|
+
writeTextToCanvas,
|
|
14
|
+
ImageryProvider,
|
|
15
|
+
WebMercatorTilingScheme) {
|
|
16
|
+
"use strict";
|
|
17
|
+
|
|
18
|
+
var trailingSlashRegex = /\/$/;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Provides tiled imagery hosted by OpenStreetMap or another provider of Slippy tiles. Please be aware
|
|
22
|
+
* that a default-constructed instance of this class will connect to OpenStreetMap's volunteer-run
|
|
23
|
+
* servers, so you must conform to their
|
|
24
|
+
* <a href='http://wiki.openstreetmap.org/wiki/Tile_usage_policy'>Tile Usage Policy</a>.
|
|
25
|
+
*
|
|
26
|
+
* @alias OpenStreetMapImageryProvider
|
|
27
|
+
* @constructor
|
|
28
|
+
*
|
|
29
|
+
* @param {String} [description.url='http://tile.openstreetmap.org'] The OpenStreetMap server url.
|
|
30
|
+
* @param {String} [description.fileExtension='png'] The file extension for images on the server.
|
|
31
|
+
* @param {Object} [description.proxy] A proxy to use for requests. This object is expected to have a getURL function which returns the proxied URL.
|
|
32
|
+
* @param {Extent} [description.extent=Extent.MAX_VALUE] The extent of the layer.
|
|
33
|
+
* @param {Number} [description.maximumLevel=18] The maximum level-of-detail supported by the imagery provider.
|
|
34
|
+
* @param {String} [description.credit='MapQuest, Open Street Map and contributors, CC-BY-SA'] A string crediting the data source, which is displayed on the canvas.
|
|
35
|
+
*
|
|
36
|
+
* @see ArcGisMapServerImageryProvider
|
|
37
|
+
* @see BingMapsImageryProvider
|
|
38
|
+
* @see SingleTileImageryProvider
|
|
39
|
+
* @see TileMapServiceImageryProvider
|
|
40
|
+
* @see WebMapServiceImageryProvider
|
|
41
|
+
*
|
|
42
|
+
* @see <a href='http://wiki.openstreetmap.org/wiki/Main_Page'>OpenStreetMap Wiki</a>
|
|
43
|
+
* @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // OpenStreetMap tile provider
|
|
47
|
+
* var osm = new OpenStreetMapImageryProvider({
|
|
48
|
+
* url : 'http://tile.openstreetmap.org/'
|
|
49
|
+
* });
|
|
50
|
+
*/
|
|
51
|
+
var OpenStreetMapImageryProvider = function OpenStreetMapImageryProvider(description) {
|
|
52
|
+
description = defaultValue(description, {});
|
|
53
|
+
|
|
54
|
+
var url = defaultValue(description.url, 'http://tile.openstreetmap.org/');
|
|
55
|
+
|
|
56
|
+
if (!trailingSlashRegex.test(url)) {
|
|
57
|
+
url = url + '/';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
this._url = url;
|
|
61
|
+
this._fileExtension = defaultValue(description.fileExtension, 'png');
|
|
62
|
+
this._proxy = description.proxy;
|
|
63
|
+
this._tileDiscardPolicy = description.tileDiscardPolicy;
|
|
64
|
+
|
|
65
|
+
this._tilingScheme = new WebMercatorTilingScheme();
|
|
66
|
+
|
|
67
|
+
this._tileWidth = 256;
|
|
68
|
+
this._tileHeight = 256;
|
|
69
|
+
|
|
70
|
+
this._maximumLevel = defaultValue(description.maximumLevel, 18);
|
|
71
|
+
|
|
72
|
+
this._extent = defaultValue(description.extent, this._tilingScheme.getExtent());
|
|
73
|
+
|
|
74
|
+
this._errorEvent = new Event();
|
|
75
|
+
|
|
76
|
+
this._ready = true;
|
|
77
|
+
|
|
78
|
+
var credit = defaultValue(description.credit, 'MapQuest, Open Street Map and contributors, CC-BY-SA');
|
|
79
|
+
this._logo = writeTextToCanvas(credit, {
|
|
80
|
+
font : '12px sans-serif'
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
function buildImageUrl(imageryProvider, x, y, level) {
|
|
85
|
+
var url = imageryProvider._url + level + '/' + x + '/' + y + '.' + imageryProvider._fileExtension;
|
|
86
|
+
|
|
87
|
+
var proxy = imageryProvider._proxy;
|
|
88
|
+
if (typeof proxy !== 'undefined') {
|
|
89
|
+
url = proxy.getURL(url);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return url;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Gets the URL of the service hosting the imagery.
|
|
97
|
+
*
|
|
98
|
+
* @memberof OpenStreetMapImageryProvider
|
|
99
|
+
*
|
|
100
|
+
* @returns {String} The URL.
|
|
101
|
+
*/
|
|
102
|
+
OpenStreetMapImageryProvider.prototype.getUrl = function() {
|
|
103
|
+
return this._url;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Gets the width of each tile, in pixels. This function should
|
|
108
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
109
|
+
*
|
|
110
|
+
* @memberof OpenStreetMapImageryProvider
|
|
111
|
+
*
|
|
112
|
+
* @returns {Number} The width.
|
|
113
|
+
*
|
|
114
|
+
* @exception {DeveloperError} <code>getTileWidth</code> must not be called before the imagery provider is ready.
|
|
115
|
+
*/
|
|
116
|
+
OpenStreetMapImageryProvider.prototype.getTileWidth = function() {
|
|
117
|
+
if (!this._ready) {
|
|
118
|
+
throw new DeveloperError('getTileWidth must not be called before the imagery provider is ready.');
|
|
119
|
+
}
|
|
120
|
+
return this._tileWidth;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Gets the height of each tile, in pixels. This function should
|
|
125
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
126
|
+
*
|
|
127
|
+
* @memberof OpenStreetMapImageryProvider
|
|
128
|
+
*
|
|
129
|
+
* @returns {Number} The height.
|
|
130
|
+
*
|
|
131
|
+
* @exception {DeveloperError} <code>getTileHeight</code> must not be called before the imagery provider is ready.
|
|
132
|
+
*/
|
|
133
|
+
OpenStreetMapImageryProvider.prototype.getTileHeight = function() {
|
|
134
|
+
if (!this._ready) {
|
|
135
|
+
throw new DeveloperError('getTileHeight must not be called before the imagery provider is ready.');
|
|
136
|
+
}
|
|
137
|
+
return this._tileHeight;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Gets the maximum level-of-detail that can be requested. This function should
|
|
142
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
143
|
+
*
|
|
144
|
+
* @memberof OpenStreetMapImageryProvider
|
|
145
|
+
*
|
|
146
|
+
* @returns {Number} The maximum level.
|
|
147
|
+
*
|
|
148
|
+
* @exception {DeveloperError} <code>getMaximumLevel</code> must not be called before the imagery provider is ready.
|
|
149
|
+
*/
|
|
150
|
+
OpenStreetMapImageryProvider.prototype.getMaximumLevel = function() {
|
|
151
|
+
if (!this._ready) {
|
|
152
|
+
throw new DeveloperError('getMaximumLevel must not be called before the imagery provider is ready.');
|
|
153
|
+
}
|
|
154
|
+
return this._maximumLevel;
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Gets the tiling scheme used by this provider. This function should
|
|
159
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
160
|
+
*
|
|
161
|
+
* @memberof OpenStreetMapImageryProvider
|
|
162
|
+
*
|
|
163
|
+
* @returns {TilingScheme} The tiling scheme.
|
|
164
|
+
* @see WebMercatorTilingScheme
|
|
165
|
+
* @see GeographicTilingScheme
|
|
166
|
+
*
|
|
167
|
+
* @exception {DeveloperError} <code>getTilingScheme</code> must not be called before the imagery provider is ready.
|
|
168
|
+
*/
|
|
169
|
+
OpenStreetMapImageryProvider.prototype.getTilingScheme = function() {
|
|
170
|
+
if (!this._ready) {
|
|
171
|
+
throw new DeveloperError('getTilingScheme must not be called before the imagery provider is ready.');
|
|
172
|
+
}
|
|
173
|
+
return this._tilingScheme;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Gets the extent, in radians, of the imagery provided by this instance. This function should
|
|
178
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
179
|
+
*
|
|
180
|
+
* @memberof OpenStreetMapImageryProvider
|
|
181
|
+
*
|
|
182
|
+
* @returns {Extent} The extent.
|
|
183
|
+
*
|
|
184
|
+
* @exception {DeveloperError} <code>getExtent</code> must not be called before the imagery provider is ready.
|
|
185
|
+
*/
|
|
186
|
+
OpenStreetMapImageryProvider.prototype.getExtent = function() {
|
|
187
|
+
if (!this._ready) {
|
|
188
|
+
throw new DeveloperError('getExtent must not be called before the imagery provider is ready.');
|
|
189
|
+
}
|
|
190
|
+
return this._extent;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Gets the tile discard policy. If not undefined, the discard policy is responsible
|
|
195
|
+
* for filtering out "missing" tiles via its shouldDiscardImage function. If this function
|
|
196
|
+
* returns undefined, no tiles are filtered. This function should
|
|
197
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
198
|
+
*
|
|
199
|
+
* @memberof OpenStreetMapImageryProvider
|
|
200
|
+
*
|
|
201
|
+
* @returns {TileDiscardPolicy} The discard policy.
|
|
202
|
+
*
|
|
203
|
+
* @see DiscardMissingTileImagePolicy
|
|
204
|
+
* @see NeverTileDiscardPolicy
|
|
205
|
+
*
|
|
206
|
+
* @exception {DeveloperError} <code>getTileDiscardPolicy</code> must not be called before the imagery provider is ready.
|
|
207
|
+
*/
|
|
208
|
+
OpenStreetMapImageryProvider.prototype.getTileDiscardPolicy = function() {
|
|
209
|
+
if (!this._ready) {
|
|
210
|
+
throw new DeveloperError('getTileDiscardPolicy must not be called before the imagery provider is ready.');
|
|
211
|
+
}
|
|
212
|
+
return this._tileDiscardPolicy;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing
|
|
217
|
+
* to the event, you will be notified of the error and can potentially recover from it. Event listeners
|
|
218
|
+
* are passed an instance of {@link ImageryProviderError}.
|
|
219
|
+
*
|
|
220
|
+
* @memberof OpenStreetMapImageryProvider
|
|
221
|
+
*
|
|
222
|
+
* @returns {Event} The event.
|
|
223
|
+
*/
|
|
224
|
+
OpenStreetMapImageryProvider.prototype.getErrorEvent = function() {
|
|
225
|
+
return this._errorEvent;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Gets a value indicating whether or not the provider is ready for use.
|
|
230
|
+
*
|
|
231
|
+
* @memberof OpenStreetMapImageryProvider
|
|
232
|
+
*
|
|
233
|
+
* @returns {Boolean} True if the provider is ready to use; otherwise, false.
|
|
234
|
+
*/
|
|
235
|
+
OpenStreetMapImageryProvider.prototype.isReady = function() {
|
|
236
|
+
return this._ready;
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Requests the image for a given tile. This function should
|
|
241
|
+
* not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
242
|
+
*
|
|
243
|
+
* @memberof OpenStreetMapImageryProvider
|
|
244
|
+
*
|
|
245
|
+
* @param {Number} x The tile X coordinate.
|
|
246
|
+
* @param {Number} y The tile Y coordinate.
|
|
247
|
+
* @param {Number} level The tile level.
|
|
248
|
+
*
|
|
249
|
+
* @returns {Promise} A promise for the image that will resolve when the image is available, or
|
|
250
|
+
* undefined if there are too many active requests to the server, and the request
|
|
251
|
+
* should be retried later. The resolved image may be either an
|
|
252
|
+
* Image or a Canvas DOM object.
|
|
253
|
+
*
|
|
254
|
+
* @exception {DeveloperError} <code>requestImage</code> must not be called before the imagery provider is ready.
|
|
255
|
+
*/
|
|
256
|
+
OpenStreetMapImageryProvider.prototype.requestImage = function(x, y, level) {
|
|
257
|
+
if (!this._ready) {
|
|
258
|
+
throw new DeveloperError('requestImage must not be called before the imagery provider is ready.');
|
|
259
|
+
}
|
|
260
|
+
var url = buildImageUrl(this, x, y, level);
|
|
261
|
+
return ImageryProvider.loadImage(url);
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Gets the logo to display when this imagery provider is active. Typically this is used to credit
|
|
266
|
+
* the source of the imagery. This function should not be called before {@link OpenStreetMapImageryProvider#isReady} returns true.
|
|
267
|
+
*
|
|
268
|
+
* @memberof OpenStreetMapImageryProvider
|
|
269
|
+
*
|
|
270
|
+
* @returns {Image|Canvas} A canvas or image containing the log to display, or undefined if there is no logo.
|
|
271
|
+
*
|
|
272
|
+
* @exception {DeveloperError} <code>getLogo</code> must not be called before the imagery provider is ready.
|
|
273
|
+
*/
|
|
274
|
+
OpenStreetMapImageryProvider.prototype.getLogo = function() {
|
|
275
|
+
if (!this._ready) {
|
|
276
|
+
throw new DeveloperError('getLogo must not be called before the imagery provider is ready.');
|
|
277
|
+
}
|
|
278
|
+
return this._logo;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
return OpenStreetMapImageryProvider;
|
|
282
|
+
});
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'../Core/DeveloperError',
|
|
4
|
+
'../Core/destroyObject',
|
|
5
|
+
'../Core/Cartesian2',
|
|
6
|
+
'../Core/Cartesian3',
|
|
7
|
+
'../Core/Cartesian4',
|
|
8
|
+
'../Core/Matrix4',
|
|
9
|
+
'../Scene/CullingVolume'
|
|
10
|
+
], function(
|
|
11
|
+
DeveloperError,
|
|
12
|
+
destroyObject,
|
|
13
|
+
Cartesian2,
|
|
14
|
+
Cartesian3,
|
|
15
|
+
Cartesian4,
|
|
16
|
+
Matrix4,
|
|
17
|
+
CullingVolume) {
|
|
18
|
+
"use strict";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The viewing frustum is defined by 6 planes.
|
|
22
|
+
* Each plane is represented by a {Cartesian4} object, where the x, y, and z components
|
|
23
|
+
* define the unit vector normal to the plane, and the w component is the distance of the
|
|
24
|
+
* plane from the origin/camera position.
|
|
25
|
+
*
|
|
26
|
+
* @alias OrthographicFrustum
|
|
27
|
+
* @constructor
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* var maxRadii = ellipsoid.getMaximumRadius();
|
|
31
|
+
*
|
|
32
|
+
* var frustum = new OrthographicFrustum();
|
|
33
|
+
* frustum.right = maxRadii * CesiumMath.PI;
|
|
34
|
+
* frustum.left = -c.frustum.right;
|
|
35
|
+
* frustum.top = c.frustum.right * (canvas.clientHeight / canvas.clientWidth);
|
|
36
|
+
* frustum.bottom = -c.frustum.top;
|
|
37
|
+
* frustum.near = 0.01 * maxRadii;
|
|
38
|
+
* frustum.far = 50.0 * maxRadii;
|
|
39
|
+
*/
|
|
40
|
+
var OrthographicFrustum = function() {
|
|
41
|
+
/**
|
|
42
|
+
* The left clipping plane.
|
|
43
|
+
* @type {Number}
|
|
44
|
+
*/
|
|
45
|
+
this.left = undefined;
|
|
46
|
+
this._left = undefined;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The right clipping plane.
|
|
50
|
+
* @type {Number}
|
|
51
|
+
*/
|
|
52
|
+
this.right = undefined;
|
|
53
|
+
this._right = undefined;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The top clipping plane.
|
|
57
|
+
* @type {Number}
|
|
58
|
+
*/
|
|
59
|
+
this.top = undefined;
|
|
60
|
+
this._top = undefined;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The bottom clipping plane.
|
|
64
|
+
* @type {Number}
|
|
65
|
+
*/
|
|
66
|
+
this.bottom = undefined;
|
|
67
|
+
this._bottom = undefined;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The distance of the near plane.
|
|
71
|
+
* @type {Number}
|
|
72
|
+
*/
|
|
73
|
+
this.near = 1.0;
|
|
74
|
+
this._near = this.near;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The distance of the far plane.
|
|
78
|
+
* @type {Number}
|
|
79
|
+
*/
|
|
80
|
+
this.far = 500000000.0;
|
|
81
|
+
this._far = this.far;
|
|
82
|
+
|
|
83
|
+
this._cullingVolume = new CullingVolume();
|
|
84
|
+
this._orthographicMatrix = undefined;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Returns the orthographic projection matrix computed from the view frustum.
|
|
89
|
+
*
|
|
90
|
+
* @memberof OrthographicFrustum
|
|
91
|
+
*
|
|
92
|
+
* @return {Matrix4} The orthographic projection matrix.
|
|
93
|
+
*/
|
|
94
|
+
OrthographicFrustum.prototype.getProjectionMatrix = function() {
|
|
95
|
+
update(this);
|
|
96
|
+
return this._orthographicMatrix;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
function update(frustum) {
|
|
100
|
+
if (typeof frustum.right === 'undefined' || typeof frustum.left === 'undefined' ||
|
|
101
|
+
typeof frustum.top === 'undefined' || typeof frustum.bottom === 'undefined' ||
|
|
102
|
+
typeof frustum.near === 'undefined' || typeof frustum.far === 'undefined') {
|
|
103
|
+
throw new DeveloperError('right, left, top, bottom, near, or far parameters are not set.');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (frustum.top !== frustum._top || frustum.bottom !== frustum._bottom ||
|
|
107
|
+
frustum.left !== frustum._left || frustum.right !== frustum._right ||
|
|
108
|
+
frustum.near !== frustum._near || frustum.far !== frustum._far) {
|
|
109
|
+
|
|
110
|
+
if (frustum.left > frustum.right) {
|
|
111
|
+
throw new DeveloperError('right must be greater than left.');
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (frustum.bottom > frustum.top) {
|
|
115
|
+
throw new DeveloperError('top must be greater than bottom.');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (frustum.near <= 0 || frustum.near > frustum.far) {
|
|
119
|
+
throw new DeveloperError('near must be greater than zero and less than far.');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
frustum._left = frustum.left;
|
|
123
|
+
frustum._right = frustum.right;
|
|
124
|
+
frustum._top = frustum.top;
|
|
125
|
+
frustum._bottom = frustum.bottom;
|
|
126
|
+
frustum._near = frustum.near;
|
|
127
|
+
frustum._far = frustum.far;
|
|
128
|
+
frustum._orthographicMatrix = Matrix4.computeOrthographicOffCenter(frustum.left, frustum.right, frustum.bottom, frustum.top, frustum.near, frustum.far);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
var getPlanesRight = new Cartesian3();
|
|
133
|
+
var getPlanesNearCenter = new Cartesian3();
|
|
134
|
+
var getPlanesPoint = new Cartesian3();
|
|
135
|
+
/**
|
|
136
|
+
* Creates a culling volume for this frustum.
|
|
137
|
+
*
|
|
138
|
+
* @memberof OrthographicFrustum
|
|
139
|
+
*
|
|
140
|
+
* @param {Cartesian3} position The eye position.
|
|
141
|
+
* @param {Cartesian3} direction The view direction.
|
|
142
|
+
* @param {Cartesian3} up The up direction.
|
|
143
|
+
*
|
|
144
|
+
* @exception {DeveloperError} position is required.
|
|
145
|
+
* @exception {DeveloperError} direction is required.
|
|
146
|
+
* @exception {DeveloperError} up is required.
|
|
147
|
+
*
|
|
148
|
+
* @return {CullingVolume} A culling volume at the given position and orientation.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* // Check if a bounding volume intersects the frustum.
|
|
152
|
+
* var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
|
|
153
|
+
* var intersect = cullingVolume.getVisibility(boundingVolume);
|
|
154
|
+
*/
|
|
155
|
+
OrthographicFrustum.prototype.computeCullingVolume = function(position, direction, up) {
|
|
156
|
+
if (typeof position === 'undefined') {
|
|
157
|
+
throw new DeveloperError('position is required.');
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (typeof direction === 'undefined') {
|
|
161
|
+
throw new DeveloperError('direction is required.');
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (typeof up === 'undefined') {
|
|
165
|
+
throw new DeveloperError('up is required.');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
var planes = this._cullingVolume.planes;
|
|
169
|
+
|
|
170
|
+
var t = this.top;
|
|
171
|
+
var b = this.bottom;
|
|
172
|
+
var r = this.right;
|
|
173
|
+
var l = this.left;
|
|
174
|
+
var n = this.near;
|
|
175
|
+
var f = this.far;
|
|
176
|
+
|
|
177
|
+
var right = Cartesian3.cross(direction, up, getPlanesRight);
|
|
178
|
+
|
|
179
|
+
var nearCenter = getPlanesNearCenter;
|
|
180
|
+
Cartesian3.multiplyByScalar(direction, n, nearCenter);
|
|
181
|
+
Cartesian3.add(position, nearCenter, nearCenter);
|
|
182
|
+
|
|
183
|
+
var point = getPlanesPoint;
|
|
184
|
+
|
|
185
|
+
// Left plane
|
|
186
|
+
Cartesian3.multiplyByScalar(right, l, point);
|
|
187
|
+
Cartesian3.add(nearCenter, point, point);
|
|
188
|
+
|
|
189
|
+
var plane = planes[0];
|
|
190
|
+
if (typeof plane === 'undefined') {
|
|
191
|
+
plane = planes[0] = new Cartesian4();
|
|
192
|
+
}
|
|
193
|
+
plane.x = right.x;
|
|
194
|
+
plane.y = right.y;
|
|
195
|
+
plane.z = right.z;
|
|
196
|
+
plane.w = -Cartesian3.dot(right, point);
|
|
197
|
+
|
|
198
|
+
// Right plane
|
|
199
|
+
Cartesian3.multiplyByScalar(right, r, point);
|
|
200
|
+
Cartesian3.add(nearCenter, point, point);
|
|
201
|
+
|
|
202
|
+
plane = planes[1];
|
|
203
|
+
if (typeof plane === 'undefined') {
|
|
204
|
+
plane = planes[1] = new Cartesian4();
|
|
205
|
+
}
|
|
206
|
+
plane.x = -right.x;
|
|
207
|
+
plane.y = -right.y;
|
|
208
|
+
plane.z = -right.z;
|
|
209
|
+
plane.w = -Cartesian3.dot(right.negate(), point);
|
|
210
|
+
|
|
211
|
+
// Bottom plane
|
|
212
|
+
Cartesian3.multiplyByScalar(up, b, point);
|
|
213
|
+
Cartesian3.add(nearCenter, point, point);
|
|
214
|
+
|
|
215
|
+
plane = planes[2];
|
|
216
|
+
if (typeof plane === 'undefined') {
|
|
217
|
+
plane = planes[2] = new Cartesian4();
|
|
218
|
+
}
|
|
219
|
+
plane.x = up.x;
|
|
220
|
+
plane.y = up.y;
|
|
221
|
+
plane.z = up.z;
|
|
222
|
+
plane.w = -Cartesian3.dot(up, point);
|
|
223
|
+
|
|
224
|
+
// Top plane
|
|
225
|
+
Cartesian3.multiplyByScalar(up, t, point);
|
|
226
|
+
Cartesian3.add(nearCenter, point, point);
|
|
227
|
+
|
|
228
|
+
plane = planes[3];
|
|
229
|
+
if (typeof plane === 'undefined') {
|
|
230
|
+
plane = planes[3] = new Cartesian4();
|
|
231
|
+
}
|
|
232
|
+
plane.x = -up.x;
|
|
233
|
+
plane.y = -up.y;
|
|
234
|
+
plane.z = -up.z;
|
|
235
|
+
plane.w = -Cartesian3.dot(up.negate(), point);
|
|
236
|
+
|
|
237
|
+
// Near plane
|
|
238
|
+
plane = planes[4];
|
|
239
|
+
if (typeof plane === 'undefined') {
|
|
240
|
+
plane = planes[4] = new Cartesian4();
|
|
241
|
+
}
|
|
242
|
+
plane.x = direction.x;
|
|
243
|
+
plane.y = direction.y;
|
|
244
|
+
plane.z = direction.z;
|
|
245
|
+
plane.w = -Cartesian3.dot(direction, nearCenter);
|
|
246
|
+
|
|
247
|
+
// Far plane
|
|
248
|
+
Cartesian3.multiplyByScalar(direction, f, point);
|
|
249
|
+
Cartesian3.add(position, point, point);
|
|
250
|
+
|
|
251
|
+
plane = planes[5];
|
|
252
|
+
if (typeof plane === 'undefined') {
|
|
253
|
+
plane = planes[5] = new Cartesian4();
|
|
254
|
+
}
|
|
255
|
+
plane.x = -direction.x;
|
|
256
|
+
plane.y = -direction.y;
|
|
257
|
+
plane.z = -direction.z;
|
|
258
|
+
plane.w = -Cartesian3.dot(direction.negate(), point);
|
|
259
|
+
|
|
260
|
+
return this._cullingVolume;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Returns the pixel's width and height in meters.
|
|
265
|
+
*
|
|
266
|
+
* @memberof OrthographicFrustum
|
|
267
|
+
*
|
|
268
|
+
* @param {Cartesian2} canvasDimensions A {@link Cartesian2} with width and height in the x and y properties, respectively.
|
|
269
|
+
*
|
|
270
|
+
* @exception {DeveloperError} canvasDimensions is required.
|
|
271
|
+
* @exception {DeveloperError} canvasDimensions.x must be greater than zero.
|
|
272
|
+
* @exception {DeveloperError} canvasDimensione.y must be greater than zero.
|
|
273
|
+
*
|
|
274
|
+
* @returns {Cartesian2} A {@link Cartesian2} with the pixel's width and height in the x and y properties, respectively.
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* // Example 1
|
|
278
|
+
* // Get the width and height of a pixel.
|
|
279
|
+
* var pixelSize = camera.frustum.getPixelSize(new Cartesian2(canvas.clientWidth, canvas.clientHeight));
|
|
280
|
+
*/
|
|
281
|
+
OrthographicFrustum.prototype.getPixelSize = function(canvasDimensions) {
|
|
282
|
+
update(this);
|
|
283
|
+
|
|
284
|
+
if (typeof canvasDimensions === 'undefined') {
|
|
285
|
+
throw new DeveloperError('canvasDimensions is required.');
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
var width = canvasDimensions.x;
|
|
289
|
+
var height = canvasDimensions.y;
|
|
290
|
+
|
|
291
|
+
if (width <= 0) {
|
|
292
|
+
throw new DeveloperError('canvasDimensions.x must be grater than zero.');
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (height <= 0) {
|
|
296
|
+
throw new DeveloperError('canvasDimensions.y must be grater than zero.');
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
var frustumWidth = this.right - this.left;
|
|
300
|
+
var frustumHeight = this.top - this.bottom;
|
|
301
|
+
var pixelWidth = frustumWidth / width;
|
|
302
|
+
var pixelHeight = frustumHeight / height;
|
|
303
|
+
|
|
304
|
+
return new Cartesian2(pixelWidth, pixelHeight);
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Returns a duplicate of a OrthographicFrustum instance.
|
|
309
|
+
*
|
|
310
|
+
* @memberof OrthographicFrustum
|
|
311
|
+
*
|
|
312
|
+
* @return {OrthographicFrustum} A new copy of the OrthographicFrustum instance.
|
|
313
|
+
*/
|
|
314
|
+
OrthographicFrustum.prototype.clone = function() {
|
|
315
|
+
var frustum = new OrthographicFrustum();
|
|
316
|
+
frustum.left = this.left;
|
|
317
|
+
frustum.right = this.right;
|
|
318
|
+
frustum.top = this.top;
|
|
319
|
+
frustum.bottom = this.bottom;
|
|
320
|
+
frustum.near = this.near;
|
|
321
|
+
frustum.far = this.far;
|
|
322
|
+
return frustum;
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Compares the provided OrthographicFrustum componentwise and returns
|
|
327
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
328
|
+
*
|
|
329
|
+
* @memberof OrthographicFrustum
|
|
330
|
+
*
|
|
331
|
+
* @param {OrthographicFrustum} [other] The right hand side OrthographicFrustum.
|
|
332
|
+
* @return {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
333
|
+
*/
|
|
334
|
+
OrthographicFrustum.prototype.equals = function(other) {
|
|
335
|
+
return (typeof other !== 'undefined' &&
|
|
336
|
+
this.right === other.right &&
|
|
337
|
+
this.left === other.left &&
|
|
338
|
+
this.top === other.top &&
|
|
339
|
+
this.bottom === other.bottom &&
|
|
340
|
+
this.near === other.near &&
|
|
341
|
+
this.far === other.far);
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
return OrthographicFrustum;
|
|
345
|
+
});
|