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,67 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Constructs an enumeration that contains both a numeric value and a name.
|
|
7
|
+
* This is used so the name of the enumeration is available in the debugger.
|
|
8
|
+
*
|
|
9
|
+
* @param {Number} [value=undefined] The numeric value of the enumeration.
|
|
10
|
+
* @param {String} [name=undefined] The name of the enumeration for debugging purposes.
|
|
11
|
+
* @param {Object} [properties=undefined] An object containing extra properties to be added to the enumeration.
|
|
12
|
+
*
|
|
13
|
+
* @alias Enumeration
|
|
14
|
+
* @constructor
|
|
15
|
+
* @example
|
|
16
|
+
* // Create an object with two enumerations.
|
|
17
|
+
* var filter = {
|
|
18
|
+
* NEAREST : new Enumeration(0x2600, 'NEAREST'),
|
|
19
|
+
* LINEAR : new Enumeration(0x2601, 'LINEAR')
|
|
20
|
+
* };
|
|
21
|
+
*/
|
|
22
|
+
var Enumeration = function(value, name, properties) {
|
|
23
|
+
/**
|
|
24
|
+
* The numeric value of the enumeration.
|
|
25
|
+
* @type Number
|
|
26
|
+
*/
|
|
27
|
+
this.value = value;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The name of the enumeration for debugging purposes.
|
|
31
|
+
* @type String
|
|
32
|
+
*/
|
|
33
|
+
this.name = name;
|
|
34
|
+
|
|
35
|
+
if (typeof properties !== 'undefined') {
|
|
36
|
+
for ( var propertyName in properties) {
|
|
37
|
+
if (properties.hasOwnProperty(propertyName)) {
|
|
38
|
+
this[propertyName] = properties[propertyName];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns the numeric value of the enumeration.
|
|
46
|
+
*
|
|
47
|
+
* @memberof Enumeration
|
|
48
|
+
*
|
|
49
|
+
* @return {Number} The numeric value of the enumeration.
|
|
50
|
+
*/
|
|
51
|
+
Enumeration.prototype.valueOf = function() {
|
|
52
|
+
return this.value;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Returns the name of the enumeration for debugging purposes.
|
|
57
|
+
*
|
|
58
|
+
* @memberof Enumeration
|
|
59
|
+
*
|
|
60
|
+
* @return {String} The name of the enumeration for debugging purposes.
|
|
61
|
+
*/
|
|
62
|
+
Enumeration.prototype.toString = function() {
|
|
63
|
+
return this.name;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
return Enumeration;
|
|
67
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DeveloperError'
|
|
4
|
+
], function(
|
|
5
|
+
DeveloperError) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A generic utility class for managing subscribers for a particular event.
|
|
10
|
+
* This class is usually instantiated inside of a container class and
|
|
11
|
+
* exposed as a property for others to subscribe to.
|
|
12
|
+
*
|
|
13
|
+
* @alias Event
|
|
14
|
+
* @constructor
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* MyObject.prototype.myListener = function(arg1, arg2) {
|
|
18
|
+
* this.myArg1Copy = arg1;
|
|
19
|
+
* this.myArg2Copy = arg2;
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* var myObjectInstance = new MyObject();
|
|
23
|
+
* var evt = new Event();
|
|
24
|
+
* evt.addEventListener(MyObject.prototype.myListener, myObjectInstance);
|
|
25
|
+
* evt.raiseEvent('1', '2');
|
|
26
|
+
* evt.removeEventListener(MyObject.prototype.myListener);
|
|
27
|
+
*/
|
|
28
|
+
var Event = function() {
|
|
29
|
+
this._listeners = [];
|
|
30
|
+
this._scopes = [];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Gets the number of listeners currently subscribed to the event.
|
|
35
|
+
*
|
|
36
|
+
* @memberof Event
|
|
37
|
+
*
|
|
38
|
+
* @returns {Number} The number of subscribed listeners.
|
|
39
|
+
*/
|
|
40
|
+
Event.prototype.getNumberOfListeners = function() {
|
|
41
|
+
return this._listeners.length;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Registers a callback function to be executed whenever the event is raised.
|
|
46
|
+
* An optional scope can be provided to serve as the <code>this</code> pointer
|
|
47
|
+
* in which the function will execute.
|
|
48
|
+
* @memberof Event
|
|
49
|
+
*
|
|
50
|
+
* @param {Function} listener The function to be executed when the event is raised.
|
|
51
|
+
* @param {Object} [scope] An optional object scope to serve as the <code>this</code>
|
|
52
|
+
* pointer in which the listener function will execute.
|
|
53
|
+
*
|
|
54
|
+
* @see Event#raiseEvent
|
|
55
|
+
* @see Event#removeEventListener
|
|
56
|
+
*
|
|
57
|
+
* @exception {DeveloperError} listener is required and must be a function.
|
|
58
|
+
* @exception {DeveloperError} listener is already subscribed.
|
|
59
|
+
*/
|
|
60
|
+
Event.prototype.addEventListener = function(listener, scope) {
|
|
61
|
+
if (typeof listener !== 'function') {
|
|
62
|
+
throw new DeveloperError('listener is required and must be a function.');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var thisListeners = this._listeners;
|
|
66
|
+
var index = thisListeners.indexOf(listener);
|
|
67
|
+
|
|
68
|
+
if (index !== -1) {
|
|
69
|
+
throw new DeveloperError('listener is already subscribed.');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
thisListeners.push(listener);
|
|
73
|
+
this._scopes.push(scope);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Unregisters a previously registered callback.
|
|
78
|
+
* @memberof Event
|
|
79
|
+
*
|
|
80
|
+
* @param {Function} listener The function to be unregistered.
|
|
81
|
+
*
|
|
82
|
+
* @see Event#addEventListener
|
|
83
|
+
* @see Event#raiseEvent
|
|
84
|
+
*
|
|
85
|
+
* @exception {DeveloperError} listener is required and must be a function.
|
|
86
|
+
* @exception {DeveloperError} listener is not subscribed.
|
|
87
|
+
*/
|
|
88
|
+
Event.prototype.removeEventListener = function(listener) {
|
|
89
|
+
if (typeof listener !== 'function') {
|
|
90
|
+
throw new DeveloperError('listener is required and must be a function.');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var thisListeners = this._listeners;
|
|
94
|
+
var index = thisListeners.indexOf(listener);
|
|
95
|
+
|
|
96
|
+
if (index === -1) {
|
|
97
|
+
throw new DeveloperError('listener is not subscribed.');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
thisListeners.splice(index, 1);
|
|
101
|
+
this._scopes.splice(index, 1);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Raises the event by calling each registered listener with all supplied arguments.
|
|
106
|
+
* @memberof Event
|
|
107
|
+
*
|
|
108
|
+
* @param {*} arguments This method takes any number of parameters and passes them through to the listener functions.
|
|
109
|
+
*
|
|
110
|
+
* @see Event#addEventListener
|
|
111
|
+
* @see Event#removeEventListener
|
|
112
|
+
*/
|
|
113
|
+
Event.prototype.raiseEvent = function() {
|
|
114
|
+
var listeners = this._listeners;
|
|
115
|
+
var scopes = this._scopes;
|
|
116
|
+
for ( var i = listeners.length - 1; i > -1; i--) {
|
|
117
|
+
listeners[i].apply(scopes[i], arguments);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
return Event;
|
|
122
|
+
});
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./freezeObject',
|
|
4
|
+
'./defaultValue',
|
|
5
|
+
'./Ellipsoid',
|
|
6
|
+
'./Cartographic',
|
|
7
|
+
'./DeveloperError',
|
|
8
|
+
'./Math'
|
|
9
|
+
], function(
|
|
10
|
+
freezeObject,
|
|
11
|
+
defaultValue,
|
|
12
|
+
Ellipsoid,
|
|
13
|
+
Cartographic,
|
|
14
|
+
DeveloperError,
|
|
15
|
+
CesiumMath) {
|
|
16
|
+
"use strict";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A two dimensional region specified as longitude and latitude coordinates.
|
|
20
|
+
* @alias Extent
|
|
21
|
+
* @constructor
|
|
22
|
+
*
|
|
23
|
+
* @param {Number} [west=0.0] The westernmost longitude in the range [-Pi, Pi].
|
|
24
|
+
* @param {Number} [south=0.0] The southernmost latitude in the range [-Pi/2, Pi/2].
|
|
25
|
+
* @param {Number} [east=0.0] The easternmost longitude in the range [-Pi, Pi].
|
|
26
|
+
* @param {Number} [north=0.0] The northernmost latitude in the range [-Pi/2, Pi/2].
|
|
27
|
+
*/
|
|
28
|
+
var Extent = function(west, south, east, north) {
|
|
29
|
+
/**
|
|
30
|
+
* The westernmost longitude in the range [-Pi, Pi].
|
|
31
|
+
* @type Number
|
|
32
|
+
*/
|
|
33
|
+
this.west = defaultValue(west, 0.0);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The southernmost latitude in the range [-Pi/2, Pi/2].
|
|
37
|
+
* @type Number
|
|
38
|
+
*/
|
|
39
|
+
this.south = defaultValue(south, 0.0);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The easternmost longitude in the range [-Pi, Pi].
|
|
43
|
+
* @type Number
|
|
44
|
+
*/
|
|
45
|
+
this.east = defaultValue(east, 0.0);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The northernmost latitude in the range [-Pi/2, Pi/2].
|
|
49
|
+
* @type Number
|
|
50
|
+
*/
|
|
51
|
+
this.north = defaultValue(north, 0.0);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Duplicates this Extent.
|
|
56
|
+
*
|
|
57
|
+
* @param {Extent} [result] The object onto which to store the result.
|
|
58
|
+
* @return {Extent} The modified result parameter or a new Extent instance if none was provided.
|
|
59
|
+
*/
|
|
60
|
+
Extent.prototype.clone = function(result) {
|
|
61
|
+
if (typeof result === 'undefined') {
|
|
62
|
+
return new Extent(this.west, this.south, this.east, this.north);
|
|
63
|
+
}
|
|
64
|
+
result.west = this.west;
|
|
65
|
+
result.south = this.south;
|
|
66
|
+
result.east = this.east;
|
|
67
|
+
result.north = this.north;
|
|
68
|
+
return result;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Compares the provided Extent with this Extent componentwise and returns
|
|
73
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
74
|
+
* @memberof Cartesian3
|
|
75
|
+
*
|
|
76
|
+
* @param {Extent} [other] The Extent to compare.
|
|
77
|
+
* @return {Boolean} <code>true</code> if the Extents are equal, <code>false</code> otherwise.
|
|
78
|
+
*/
|
|
79
|
+
Extent.prototype.equals = function(other) {
|
|
80
|
+
return typeof other !== 'undefined' &&
|
|
81
|
+
this.west === other.west &&
|
|
82
|
+
this.south === other.south &&
|
|
83
|
+
this.east === other.east &&
|
|
84
|
+
this.north === other.north;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Compares the provided Extent with this Extent componentwise and returns
|
|
89
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
90
|
+
* <code>false</code> otherwise.
|
|
91
|
+
* @memberof Extent
|
|
92
|
+
*
|
|
93
|
+
* @param {Extent} [other] The Extent to compare.
|
|
94
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
95
|
+
* @return {Boolean} <code>true</code> if the Extents are within the provided epsilon, <code>false</code> otherwise.
|
|
96
|
+
*
|
|
97
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
98
|
+
*/
|
|
99
|
+
Extent.prototype.equalsEpsilon = function(other, epsilon) {
|
|
100
|
+
if (typeof epsilon !== 'number') {
|
|
101
|
+
throw new DeveloperError('epsilon is required and must be a number.');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return typeof other !== 'undefined' &&
|
|
105
|
+
(Math.abs(this.west - other.west) <= epsilon) &&
|
|
106
|
+
(Math.abs(this.south - other.south) <= epsilon) &&
|
|
107
|
+
(Math.abs(this.east - other.east) <= epsilon) &&
|
|
108
|
+
(Math.abs(this.north - other.north) <= epsilon);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Checks this Extent's properties and throws if they are not in valid ranges.
|
|
113
|
+
*
|
|
114
|
+
* @exception {DeveloperError} <code>north</code> is required to be a number.
|
|
115
|
+
* @exception {DeveloperError} <code>south</code> is required to be a number.
|
|
116
|
+
* @exception {DeveloperError} <code>east</code> is required to be a number.
|
|
117
|
+
* @exception {DeveloperError} <code>west</code> is required to be a number.
|
|
118
|
+
* @exception {DeveloperError} <code>north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
119
|
+
* @exception {DeveloperError} <code>south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
|
|
120
|
+
* @exception {DeveloperError} <code>east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
121
|
+
* @exception {DeveloperError} <code>west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
|
|
122
|
+
*/
|
|
123
|
+
Extent.prototype.validate = function() {
|
|
124
|
+
var north = this.north;
|
|
125
|
+
if (typeof north !== 'number') {
|
|
126
|
+
throw new DeveloperError('north is required to be a number.');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (north < -CesiumMath.PI_OVER_TWO || north > CesiumMath.PI_OVER_TWO) {
|
|
130
|
+
throw new DeveloperError('north must be in the interval [-Pi/2, Pi/2].');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
var south = this.south;
|
|
134
|
+
if (typeof south !== 'number') {
|
|
135
|
+
throw new DeveloperError('south is required to be a number.');
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (south < -CesiumMath.PI_OVER_TWO || south > CesiumMath.PI_OVER_TWO) {
|
|
139
|
+
throw new DeveloperError('south must be in the interval [-Pi/2, Pi/2].');
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
var west = this.west;
|
|
143
|
+
if (typeof west !== 'number') {
|
|
144
|
+
throw new DeveloperError('west is required to be a number.');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (west < -Math.PI || west > Math.PI) {
|
|
148
|
+
throw new DeveloperError('west must be in the interval [-Pi, Pi].');
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
var east = this.east;
|
|
152
|
+
if (typeof east !== 'number') {
|
|
153
|
+
throw new DeveloperError('east is required to be a number.');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (east < -Math.PI || east > Math.PI) {
|
|
157
|
+
throw new DeveloperError('east must be in the interval [-Pi, Pi].');
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Computes the southwest corner of this extent.
|
|
163
|
+
* @memberof Extent
|
|
164
|
+
*
|
|
165
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
166
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if none was provided.
|
|
167
|
+
*/
|
|
168
|
+
Extent.prototype.getSouthwest = function(result) {
|
|
169
|
+
if (typeof result === 'undefined') {
|
|
170
|
+
return new Cartographic(this.west, this.south);
|
|
171
|
+
}
|
|
172
|
+
result.longitude = this.west;
|
|
173
|
+
result.latitude = this.south;
|
|
174
|
+
result.height = 0.0;
|
|
175
|
+
return result;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Computes the northwest corner of this extent.
|
|
180
|
+
* @memberof Extent
|
|
181
|
+
*
|
|
182
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
183
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if none was provided.
|
|
184
|
+
*/
|
|
185
|
+
Extent.prototype.getNorthwest = function(result) {
|
|
186
|
+
if (typeof result === 'undefined') {
|
|
187
|
+
return new Cartographic(this.west, this.north);
|
|
188
|
+
}
|
|
189
|
+
result.longitude = this.west;
|
|
190
|
+
result.latitude = this.north;
|
|
191
|
+
result.height = 0.0;
|
|
192
|
+
return result;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Computes the northeast corner of this extent.
|
|
197
|
+
* @memberof Extent
|
|
198
|
+
*
|
|
199
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
200
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if none was provided.
|
|
201
|
+
*/
|
|
202
|
+
Extent.prototype.getNortheast = function(result) {
|
|
203
|
+
if (typeof result === 'undefined') {
|
|
204
|
+
return new Cartographic(this.east, this.north);
|
|
205
|
+
}
|
|
206
|
+
result.longitude = this.east;
|
|
207
|
+
result.latitude = this.north;
|
|
208
|
+
result.height = 0.0;
|
|
209
|
+
return result;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Computes the southeast corner of this extent.
|
|
214
|
+
* @memberof Extent
|
|
215
|
+
*
|
|
216
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
217
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if none was provided.
|
|
218
|
+
*/
|
|
219
|
+
Extent.prototype.getSoutheast = function(result) {
|
|
220
|
+
if (typeof result === 'undefined') {
|
|
221
|
+
return new Cartographic(this.east, this.south);
|
|
222
|
+
}
|
|
223
|
+
result.longitude = this.east;
|
|
224
|
+
result.latitude = this.south;
|
|
225
|
+
result.height = 0.0;
|
|
226
|
+
return result;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Computes the center of this extent.
|
|
231
|
+
* @memberof Extent
|
|
232
|
+
*
|
|
233
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
234
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if none was provided.
|
|
235
|
+
*/
|
|
236
|
+
Extent.prototype.getCenter = function(result) {
|
|
237
|
+
if (typeof result === 'undefined') {
|
|
238
|
+
return new Cartographic((this.west + this.east) * 0.5, (this.south + this.north) * 0.5);
|
|
239
|
+
}
|
|
240
|
+
result.longitude = (this.west + this.east) * 0.5;
|
|
241
|
+
result.latitude = (this.south + this.north) * 0.5;
|
|
242
|
+
result.height = 0.0;
|
|
243
|
+
return result;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Computes the intersection of this extent with the provided extent.
|
|
248
|
+
* @memberof Extent
|
|
249
|
+
*
|
|
250
|
+
* @param otherExtent The extent to intersect with this extent.
|
|
251
|
+
* @param {Extent} [result] The object onto which to store the result.
|
|
252
|
+
* @return {Extent} The modified result parameter or a new Extent instance if none was provided.
|
|
253
|
+
*
|
|
254
|
+
* @exception {DeveloperError} otherExtent is required.
|
|
255
|
+
*/
|
|
256
|
+
Extent.prototype.intersectWith = function(otherExtent, result) {
|
|
257
|
+
if (typeof otherExtent === 'undefined') {
|
|
258
|
+
throw new DeveloperError('otherExtent is required.');
|
|
259
|
+
}
|
|
260
|
+
var west = Math.max(this.west, otherExtent.west);
|
|
261
|
+
var south = Math.max(this.south, otherExtent.south);
|
|
262
|
+
var east = Math.min(this.east, otherExtent.east);
|
|
263
|
+
var north = Math.min(this.north, otherExtent.north);
|
|
264
|
+
if (typeof result === 'undefined') {
|
|
265
|
+
return new Extent(west, south, east, north);
|
|
266
|
+
}
|
|
267
|
+
result.west = west;
|
|
268
|
+
result.south = south;
|
|
269
|
+
result.east = east;
|
|
270
|
+
result.north = north;
|
|
271
|
+
return result;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Returns true if the provided cartographic is on or inside the extent, false otherwise.
|
|
276
|
+
* @memberof Extent
|
|
277
|
+
*
|
|
278
|
+
* @param {Cartographic} cartographic The cartographic to test.
|
|
279
|
+
* @returns {Boolean} true if the provided cartographic is inside the extent, false otherwise.
|
|
280
|
+
*
|
|
281
|
+
* @exception {DeveloperError} cartographic is required.
|
|
282
|
+
*/
|
|
283
|
+
Extent.prototype.contains = function(cartographic) {
|
|
284
|
+
if (typeof cartographic === 'undefined') {
|
|
285
|
+
throw new DeveloperError('cartographic is required.');
|
|
286
|
+
}
|
|
287
|
+
return cartographic.longitude >= this.west &&
|
|
288
|
+
cartographic.longitude <= this.east &&
|
|
289
|
+
cartographic.latitude >= this.south &&
|
|
290
|
+
cartographic.latitude <= this.north;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Determines if the extent is empty, i.e., if <code>west === east</code>
|
|
295
|
+
* and <code>south === north</code>.
|
|
296
|
+
*
|
|
297
|
+
* @memberof Extent
|
|
298
|
+
*
|
|
299
|
+
* @return {Boolean} True if the extent is empty; otherwise, false.
|
|
300
|
+
*/
|
|
301
|
+
Extent.prototype.isEmpty = function() {
|
|
302
|
+
return (this.west === this.east) && (this.south === this.north);
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
var subsampleLlaScratch = new Cartographic();
|
|
306
|
+
/**
|
|
307
|
+
* Samples this Extent so that it includes a list of Cartesian points suitable for passing to
|
|
308
|
+
* {@link BoundingSphere#fromPoints}. Sampling is necessary to account
|
|
309
|
+
* for extents that cover the poles or cross the equator.
|
|
310
|
+
*
|
|
311
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid to use.
|
|
312
|
+
* @param {Array} [result] The array of Cartesians onto which to store the result.
|
|
313
|
+
* @return {Array} The modified result parameter or a new Array of Cartesians instances if none was provided.
|
|
314
|
+
*/
|
|
315
|
+
Extent.prototype.subsample = function(ellipsoid, result) {
|
|
316
|
+
ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
|
|
317
|
+
|
|
318
|
+
if (typeof result === 'undefined') {
|
|
319
|
+
result = [];
|
|
320
|
+
}
|
|
321
|
+
var length = 0;
|
|
322
|
+
|
|
323
|
+
var north = this.north;
|
|
324
|
+
var south = this.south;
|
|
325
|
+
var east = this.east;
|
|
326
|
+
var west = this.west;
|
|
327
|
+
|
|
328
|
+
var lla = subsampleLlaScratch;
|
|
329
|
+
lla.longitude = west;
|
|
330
|
+
lla.latitude = north;
|
|
331
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
332
|
+
length++;
|
|
333
|
+
|
|
334
|
+
lla.longitude = east;
|
|
335
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
336
|
+
length++;
|
|
337
|
+
|
|
338
|
+
lla.latitude = south;
|
|
339
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
340
|
+
length++;
|
|
341
|
+
|
|
342
|
+
lla.longitude = west;
|
|
343
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
344
|
+
length++;
|
|
345
|
+
|
|
346
|
+
if (north < 0.0) {
|
|
347
|
+
lla.latitude = north;
|
|
348
|
+
} else if (south > 0.0) {
|
|
349
|
+
lla.latitude = south;
|
|
350
|
+
} else {
|
|
351
|
+
lla.latitude = 0.0;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
for ( var i = 1; i < 8; ++i) {
|
|
355
|
+
var temp = -Math.PI + i * CesiumMath.PI_OVER_TWO;
|
|
356
|
+
if (west < temp && temp < east) {
|
|
357
|
+
lla.longitude = temp;
|
|
358
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
359
|
+
length++;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (lla.latitude === 0.0) {
|
|
364
|
+
lla.longitude = west;
|
|
365
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
366
|
+
length++;
|
|
367
|
+
lla.longitude = east;
|
|
368
|
+
result[length] = ellipsoid.cartographicToCartesian(lla, result[length]);
|
|
369
|
+
length++;
|
|
370
|
+
}
|
|
371
|
+
result.length = length;
|
|
372
|
+
return result;
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* The largest possible extent.
|
|
377
|
+
* @memberof Extent
|
|
378
|
+
* @type Extent
|
|
379
|
+
*/
|
|
380
|
+
Extent.MAX_VALUE = freezeObject(new Extent(-Math.PI, -CesiumMath.PI_OVER_TWO, Math.PI, CesiumMath.PI_OVER_TWO));
|
|
381
|
+
|
|
382
|
+
return Extent;
|
|
383
|
+
});
|