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,149 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(['./Enumeration'], function(Enumeration) {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This enumerated type is for classifying mouse events: down, up, click, double click, move and move while a button is held down.
|
|
7
|
+
*
|
|
8
|
+
* @exports ScreenSpaceEventType
|
|
9
|
+
*/
|
|
10
|
+
var ScreenSpaceEventType = {
|
|
11
|
+
/**
|
|
12
|
+
* Represents a mouse left button down event.
|
|
13
|
+
*
|
|
14
|
+
* @constant
|
|
15
|
+
* @type {Enumeration}
|
|
16
|
+
*/
|
|
17
|
+
LEFT_DOWN : new Enumeration(0, 'LEFT_DOWN'),
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Represents a mouse left button up event.
|
|
21
|
+
*
|
|
22
|
+
* @constant
|
|
23
|
+
* @type {Enumeration}
|
|
24
|
+
*/
|
|
25
|
+
LEFT_UP : new Enumeration(1, 'LEFT_UP'),
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Represents a mouse left click event.
|
|
29
|
+
*
|
|
30
|
+
* @constant
|
|
31
|
+
* @type {Enumeration}
|
|
32
|
+
*/
|
|
33
|
+
LEFT_CLICK : new Enumeration(2, 'LEFT_CLICK'),
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Represents a mouse left double click event.
|
|
37
|
+
*
|
|
38
|
+
* @constant
|
|
39
|
+
* @type {Enumeration}
|
|
40
|
+
*/
|
|
41
|
+
LEFT_DOUBLE_CLICK : new Enumeration(3, 'LEFT_DOUBLE_CLICK'),
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Represents a mouse left button down event.
|
|
45
|
+
*
|
|
46
|
+
* @constant
|
|
47
|
+
* @type {Enumeration}
|
|
48
|
+
*/
|
|
49
|
+
RIGHT_DOWN : new Enumeration(5, 'RIGHT_DOWN'),
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Represents a mouse right button up event.
|
|
53
|
+
*
|
|
54
|
+
* @constant
|
|
55
|
+
* @type {Enumeration}
|
|
56
|
+
*/
|
|
57
|
+
RIGHT_UP : new Enumeration(6, 'RIGHT_UP'),
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Represents a mouse right click event.
|
|
61
|
+
*
|
|
62
|
+
* @constant
|
|
63
|
+
* @type {Enumeration}
|
|
64
|
+
*/
|
|
65
|
+
RIGHT_CLICK : new Enumeration(7, 'RIGHT_CLICK'),
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Represents a mouse right double click event.
|
|
69
|
+
*
|
|
70
|
+
* @constant
|
|
71
|
+
* @type {Enumeration}
|
|
72
|
+
*/
|
|
73
|
+
RIGHT_DOUBLE_CLICK : new Enumeration(8, 'RIGHT_DOUBLE_CLICK'),
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Represents a mouse middle button down event.
|
|
77
|
+
*
|
|
78
|
+
* @constant
|
|
79
|
+
* @type {Enumeration}
|
|
80
|
+
*/
|
|
81
|
+
MIDDLE_DOWN : new Enumeration(10, 'MIDDLE_DOWN'),
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Represents a mouse middle button up event.
|
|
85
|
+
*
|
|
86
|
+
* @constant
|
|
87
|
+
* @type {Enumeration}
|
|
88
|
+
*/
|
|
89
|
+
MIDDLE_UP : new Enumeration(11, 'MIDDLE_UP'),
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Represents a mouse middle click event.
|
|
93
|
+
*
|
|
94
|
+
* @constant
|
|
95
|
+
* @type {Enumeration}
|
|
96
|
+
*/
|
|
97
|
+
MIDDLE_CLICK : new Enumeration(12, 'MIDDLE_CLICK'),
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Represents a mouse middle double click event.
|
|
101
|
+
*
|
|
102
|
+
* @constant
|
|
103
|
+
* @type {Enumeration}
|
|
104
|
+
*/
|
|
105
|
+
MIDDLE_DOUBLE_CLICK : new Enumeration(13, 'MIDDLE_DOUBLE_CLICK'),
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Represents a mouse move event.
|
|
109
|
+
*
|
|
110
|
+
* @constant
|
|
111
|
+
* @type {Enumeration}
|
|
112
|
+
*/
|
|
113
|
+
MOUSE_MOVE : new Enumeration(15, 'MOUSE_MOVE'),
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Represents a mouse wheel event.
|
|
117
|
+
*
|
|
118
|
+
* @constant
|
|
119
|
+
* @type {Enumeration}
|
|
120
|
+
*/
|
|
121
|
+
WHEEL : new Enumeration(16, 'WHEEL'),
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Represents the start of a two-finger event on a touch surface.
|
|
125
|
+
*
|
|
126
|
+
* @constant
|
|
127
|
+
* @type {Enumeration}
|
|
128
|
+
*/
|
|
129
|
+
PINCH_START : new Enumeration(17, 'PINCH_START'),
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Represents the end of a two-finger event on a touch surface.
|
|
133
|
+
*
|
|
134
|
+
* @constant
|
|
135
|
+
* @type {Enumeration}
|
|
136
|
+
*/
|
|
137
|
+
PINCH_END : new Enumeration(18, 'PINCH_END'),
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Represents a change of a two-finger event on a touch surface.
|
|
141
|
+
*
|
|
142
|
+
* @constant
|
|
143
|
+
* @type {Enumeration}
|
|
144
|
+
*/
|
|
145
|
+
PINCH_MOVE : new Enumeration(19, 'PINCH_MOVE')
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
return ScreenSpaceEventType;
|
|
149
|
+
});
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DeveloperError',
|
|
4
|
+
'./Math',
|
|
5
|
+
'./Cartesian2',
|
|
6
|
+
'./Cartesian3',
|
|
7
|
+
'./Quaternion',
|
|
8
|
+
'./Matrix3'
|
|
9
|
+
], function(
|
|
10
|
+
DeveloperError,
|
|
11
|
+
CesiumMath,
|
|
12
|
+
Cartesian2,
|
|
13
|
+
Cartesian3,
|
|
14
|
+
Quaternion,
|
|
15
|
+
Matrix3) {
|
|
16
|
+
"use strict";
|
|
17
|
+
|
|
18
|
+
function _computeEllipseQuadrant(cb, cbRadius, aSqr, bSqr, ab, ecc, mag, unitPos, eastVec, northVec, bearing,
|
|
19
|
+
thetaPts, thetaPtsIndex, offset, clockDir, ellipsePts, ellipsePtsIndex, numPts) {
|
|
20
|
+
var angle;
|
|
21
|
+
var theta;
|
|
22
|
+
var radius;
|
|
23
|
+
var azimuth;
|
|
24
|
+
var temp;
|
|
25
|
+
var temp2;
|
|
26
|
+
var rotAxis;
|
|
27
|
+
var tempVec;
|
|
28
|
+
|
|
29
|
+
for (var i = 0; i < numPts; i++, thetaPtsIndex += clockDir, ++ellipsePtsIndex) {
|
|
30
|
+
theta = (clockDir > 0) ? (thetaPts[thetaPtsIndex] + offset) : (offset - thetaPts[thetaPtsIndex]);
|
|
31
|
+
|
|
32
|
+
azimuth = theta + bearing;
|
|
33
|
+
|
|
34
|
+
temp = -Math.cos(azimuth);
|
|
35
|
+
|
|
36
|
+
rotAxis = eastVec.multiplyByScalar(temp);
|
|
37
|
+
|
|
38
|
+
temp = Math.sin(azimuth);
|
|
39
|
+
tempVec = northVec.multiplyByScalar(temp);
|
|
40
|
+
|
|
41
|
+
rotAxis = rotAxis.add(tempVec);
|
|
42
|
+
|
|
43
|
+
temp = Math.cos(theta);
|
|
44
|
+
temp = temp * temp;
|
|
45
|
+
|
|
46
|
+
temp2 = Math.sin(theta);
|
|
47
|
+
temp2 = temp2 * temp2;
|
|
48
|
+
|
|
49
|
+
radius = ab / Math.sqrt(bSqr * temp + aSqr * temp2);
|
|
50
|
+
angle = radius / cbRadius;
|
|
51
|
+
|
|
52
|
+
// Create the quaternion to rotate the position vector to the boundary of the ellipse.
|
|
53
|
+
temp = Math.sin(angle / 2.0);
|
|
54
|
+
|
|
55
|
+
var unitQuat = (new Quaternion(rotAxis.x * temp, rotAxis.y * temp, rotAxis.z * temp, Math.cos(angle / 2.0))).normalize();
|
|
56
|
+
var rotMtx = Matrix3.fromQuaternion(unitQuat);
|
|
57
|
+
|
|
58
|
+
var tmpEllipsePts = rotMtx.multiplyByVector(unitPos);
|
|
59
|
+
var unitCart = tmpEllipsePts.normalize();
|
|
60
|
+
tmpEllipsePts = unitCart.multiplyByScalar(mag);
|
|
61
|
+
ellipsePts[ellipsePtsIndex] = tmpEllipsePts;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Functions to compute the boundary positions for shapes, such as circles,
|
|
67
|
+
* drawn on the ellipsoid.
|
|
68
|
+
*
|
|
69
|
+
* @exports Shapes
|
|
70
|
+
*/
|
|
71
|
+
var Shapes = {
|
|
72
|
+
/**
|
|
73
|
+
* Computes boundary points for a circle on the ellipsoid.
|
|
74
|
+
* <br /><br />
|
|
75
|
+
* The <code>granularity</code> determines the number of points
|
|
76
|
+
* in the boundary. A lower granularity results in more points and a more
|
|
77
|
+
* exact circle.
|
|
78
|
+
* <br /><br />
|
|
79
|
+
* An outlined circle is rendered by passing the result of this function call to
|
|
80
|
+
* {@link Polyline#setPositions}. A filled circle is rendered by passing
|
|
81
|
+
* the result to {@link Polygon#setPositions}.
|
|
82
|
+
*
|
|
83
|
+
* @param {Ellipsoid} ellipsoid The ellipsoid the circle will be on.
|
|
84
|
+
* @param {Cartesian3} center The circle's center point in the fixed frame.
|
|
85
|
+
* @param {Number} radius The radius in meters.
|
|
86
|
+
* @param {Number} [granularity] The angular distance between points on the circle.
|
|
87
|
+
*
|
|
88
|
+
* @exception {DeveloperError} ellipsoid, center, and radius are required.
|
|
89
|
+
* @exception {DeveloperError} radius must be greater than zero.
|
|
90
|
+
* @exception {DeveloperError} granularity must be greater than zero.
|
|
91
|
+
*
|
|
92
|
+
* @see Polyline#setPositions
|
|
93
|
+
* @see Polygon#setPositions
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Create a polyline of a circle
|
|
97
|
+
* var polyline = new Polyline();
|
|
98
|
+
* polyline.setPositions(Shapes.computeCircleBoundary(
|
|
99
|
+
* ellipsoid, ellipsoid.cartographicToCartesian(
|
|
100
|
+
* Cartographic.fromDegrees(-75.59777, 40.03883, 0.0)), 100000.0));
|
|
101
|
+
*/
|
|
102
|
+
computeCircleBoundary : function(ellipsoid, center, radius, granularity) {
|
|
103
|
+
if (!ellipsoid || !center || !radius) {
|
|
104
|
+
throw new DeveloperError('ellipsoid, center, and radius are required.');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (radius <= 0.0) {
|
|
108
|
+
throw new DeveloperError('radius must be greater than zero.');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
granularity = granularity || CesiumMath.toRadians(1.0);
|
|
112
|
+
if (granularity <= 0.0) {
|
|
113
|
+
throw new DeveloperError('granularity must be greater than zero.');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return this.computeEllipseBoundary(ellipsoid, center, radius, radius, 0, granularity);
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Computes boundary points for an ellipse on the ellipsoid.
|
|
121
|
+
* <br /><br />
|
|
122
|
+
* The <code>granularity</code> determines the number of points
|
|
123
|
+
* in the boundary. A lower granularity results in more points and a more
|
|
124
|
+
* exact circle.
|
|
125
|
+
* <br /><br />
|
|
126
|
+
* An outlined ellipse is rendered by passing the result of this function call to
|
|
127
|
+
* {@link Polyline#setPositions}. A filled ellipse is rendered by passing
|
|
128
|
+
* the result to {@link Polygon#setPositions}.
|
|
129
|
+
*
|
|
130
|
+
* @param {Ellipsoid} ellipsoid The ellipsoid the ellipse will be on.
|
|
131
|
+
* @param {Cartesian3} center The ellipse's center point in the fixed frame.
|
|
132
|
+
* @param {Number} semiMajorAxis The length of the ellipse's semi-major axis in meters.
|
|
133
|
+
* @param {Number} semiMinorAxis The length of the ellipse's semi-minor axis in meters.
|
|
134
|
+
* @param {Number} [bearing] The angle from north (clockwise) in radians. The default is zero.
|
|
135
|
+
* @param {Number} [granularity] The angular distance between points on the circle.
|
|
136
|
+
*
|
|
137
|
+
* @exception {DeveloperError} ellipsoid, center, semiMajorAxis, and semiMinorAxis are required.
|
|
138
|
+
* @exception {DeveloperError} Semi-major and semi-minor axes must be greater than zero.
|
|
139
|
+
* @exception {DeveloperError} granularity must be greater than zero.
|
|
140
|
+
*
|
|
141
|
+
* @see Polyline#setPositions
|
|
142
|
+
* @see Polygon#setPositions
|
|
143
|
+
*
|
|
144
|
+
* @return The set of points that form the ellipse's boundary.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* // Create a filled ellipse.
|
|
148
|
+
* var polygon = new Polygon();
|
|
149
|
+
* polygon.setPositions(Shapes.computeEllipseBoundary(
|
|
150
|
+
* ellipsoid, ellipsoid.cartographicToCartesian(
|
|
151
|
+
* Cartographic.fromDegrees(-75.59777, 40.03883)), 500000.0, 300000.0, Math.toRadians(60)));
|
|
152
|
+
*/
|
|
153
|
+
computeEllipseBoundary : function(ellipsoid, center, semiMajorAxis, semiMinorAxis, bearing, granularity) {
|
|
154
|
+
if (!ellipsoid || !center || !semiMajorAxis || !semiMinorAxis) {
|
|
155
|
+
throw new DeveloperError('ellipsoid, center, semiMajorAxis, and semiMinorAxis are required.');
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (semiMajorAxis <= 0.0 || semiMinorAxis <= 0.0) {
|
|
159
|
+
throw new DeveloperError('Semi-major and semi-minor axes must be greater than zero.');
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
bearing = bearing || 0.0;
|
|
163
|
+
granularity = granularity || CesiumMath.toRadians(1.0);
|
|
164
|
+
|
|
165
|
+
if (granularity <= 0.0) {
|
|
166
|
+
throw new DeveloperError('granularity must be greater than zero.');
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (semiMajorAxis < semiMinorAxis) {
|
|
170
|
+
var t = semiMajorAxis;
|
|
171
|
+
semiMajorAxis = semiMinorAxis;
|
|
172
|
+
semiMinorAxis = t;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var MAX_ANOMALY_LIMIT = 2.31;
|
|
176
|
+
|
|
177
|
+
var aSqr = semiMajorAxis * semiMajorAxis;
|
|
178
|
+
var bSqr = semiMinorAxis * semiMinorAxis;
|
|
179
|
+
var ab = semiMajorAxis * semiMinorAxis;
|
|
180
|
+
|
|
181
|
+
var value = 1.0 - (bSqr / aSqr);
|
|
182
|
+
var ecc = Math.sqrt(value);
|
|
183
|
+
|
|
184
|
+
var surfPos = Cartesian3.clone(center);
|
|
185
|
+
var mag = surfPos.magnitude();
|
|
186
|
+
|
|
187
|
+
var tempVec = new Cartesian3(0.0, 0.0, 1);
|
|
188
|
+
var temp = 1.0 / mag;
|
|
189
|
+
|
|
190
|
+
var unitPos = surfPos.multiplyByScalar(temp);
|
|
191
|
+
var eastVec = tempVec.cross(surfPos).normalize();
|
|
192
|
+
var northVec = unitPos.cross(eastVec);
|
|
193
|
+
|
|
194
|
+
var numQuadrantPts = 1 + Math.ceil(CesiumMath.PI_OVER_TWO / granularity);
|
|
195
|
+
var deltaTheta = MAX_ANOMALY_LIMIT / (numQuadrantPts - 1);
|
|
196
|
+
var thetaPts = [];
|
|
197
|
+
var thetaPtsIndex = 0;
|
|
198
|
+
|
|
199
|
+
var sampleTheta = 0.0;
|
|
200
|
+
for (var i = 0; i < numQuadrantPts; i++, sampleTheta += deltaTheta, ++thetaPtsIndex) {
|
|
201
|
+
thetaPts[thetaPtsIndex] = sampleTheta - ecc * Math.sin(sampleTheta);
|
|
202
|
+
if (thetaPts[thetaPtsIndex] >= CesiumMath.PI_OVER_TWO) {
|
|
203
|
+
thetaPts[thetaPtsIndex] = CesiumMath.PI_OVER_TWO;
|
|
204
|
+
numQuadrantPts = i + 1;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
var ellipsePts = [];
|
|
210
|
+
|
|
211
|
+
_computeEllipseQuadrant(ellipsoid, surfPos.magnitude(), aSqr, bSqr, ab, ecc, mag, unitPos, eastVec, northVec, bearing,
|
|
212
|
+
thetaPts, 0.0, 0.0, 1, ellipsePts, 0, numQuadrantPts - 1);
|
|
213
|
+
|
|
214
|
+
_computeEllipseQuadrant(ellipsoid, surfPos.magnitude(), aSqr, bSqr, ab, ecc, mag, unitPos, eastVec, northVec, bearing,
|
|
215
|
+
thetaPts, numQuadrantPts - 1, Math.PI, -1, ellipsePts, numQuadrantPts - 1, numQuadrantPts - 1);
|
|
216
|
+
|
|
217
|
+
_computeEllipseQuadrant(ellipsoid, surfPos.magnitude(), aSqr, bSqr, ab, ecc, mag, unitPos, eastVec, northVec, bearing,
|
|
218
|
+
thetaPts, 0.0, Math.PI, 1, ellipsePts, (2 * numQuadrantPts) - 2, numQuadrantPts - 1);
|
|
219
|
+
|
|
220
|
+
_computeEllipseQuadrant(ellipsoid, surfPos.magnitude(), aSqr, bSqr, ab, ecc, mag, unitPos, eastVec, northVec, bearing,
|
|
221
|
+
thetaPts, numQuadrantPts - 1, CesiumMath.TWO_PI, -1, ellipsePts, (3 * numQuadrantPts) - 3, numQuadrantPts);
|
|
222
|
+
|
|
223
|
+
ellipsePts.push(ellipsePts[0].clone()); // Duplicates first and last point for polyline
|
|
224
|
+
|
|
225
|
+
return ellipsePts;
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
return Shapes;
|
|
230
|
+
});
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define(function() {
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A set of curvilinear 3-dimensional coordinates.
|
|
7
|
+
*
|
|
8
|
+
* @alias Spherical
|
|
9
|
+
* @constructor
|
|
10
|
+
*
|
|
11
|
+
* @param {Number} [clock=0.0] The angular coordinate lying in the xy-plane measured from the positive x-axis and toward the positive y-axis.
|
|
12
|
+
* @param {Number} [cone=0.0] The angular coordinate measured from the positive z-axis and toward the negative z-axis.
|
|
13
|
+
* @param {Number} [magnitude=1.0] The linear coordinate measured from the origin.
|
|
14
|
+
*/
|
|
15
|
+
var Spherical = function(clock, cone, magnitude) {
|
|
16
|
+
this.clock = typeof clock === 'undefined' ? 0.0 : clock;
|
|
17
|
+
this.cone = typeof cone === 'undefined' ? 0.0 : cone;
|
|
18
|
+
this.magnitude = typeof magnitude === 'undefined' ? 1.0 : magnitude;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Converts the provided Cartesian3 into Spherical coordinates.
|
|
23
|
+
* @memberof Spherical
|
|
24
|
+
*
|
|
25
|
+
* @param {Cartesian3} cartesian3 The Cartesian3 to be converted to Spherical.
|
|
26
|
+
* @param {Spherical} [spherical] The object in which the result will be stored, if undefined a new instance will be created.
|
|
27
|
+
*
|
|
28
|
+
* @returns The modified result parameter, or a new instance if one was not provided.
|
|
29
|
+
*/
|
|
30
|
+
Spherical.fromCartesian3 = function(cartesian3, result) {
|
|
31
|
+
if (typeof result === 'undefined') {
|
|
32
|
+
result = new Spherical();
|
|
33
|
+
}
|
|
34
|
+
var x = cartesian3.x;
|
|
35
|
+
var y = cartesian3.y;
|
|
36
|
+
var z = cartesian3.z;
|
|
37
|
+
var radialSquared = x * x + y * y;
|
|
38
|
+
result.clock = Math.atan2(y, x);
|
|
39
|
+
result.cone = Math.atan2(Math.sqrt(radialSquared), z);
|
|
40
|
+
result.magnitude = Math.sqrt(radialSquared + z * z);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Creates a duplicate of a Spherical.
|
|
46
|
+
* @memberof Spherical
|
|
47
|
+
*
|
|
48
|
+
* @param {Spherical} spherical The spherical to clone.
|
|
49
|
+
* @param {Spherical} [result] The object to store the result into, if undefined a new instance will be created.
|
|
50
|
+
*
|
|
51
|
+
* @return The modified result parameter or a new instance if result was undefined.
|
|
52
|
+
*/
|
|
53
|
+
Spherical.clone = function(spherical, result) {
|
|
54
|
+
if (typeof result === 'undefined') {
|
|
55
|
+
result = new Spherical();
|
|
56
|
+
}
|
|
57
|
+
result.clock = spherical.clock;
|
|
58
|
+
result.cone = spherical.cone;
|
|
59
|
+
result.magnitude = spherical.magnitude;
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Computes the normalized version of the provided spherical.
|
|
65
|
+
* @memberof Spherical
|
|
66
|
+
*
|
|
67
|
+
* @param {Spherical} spherical The spherical to be normalized.
|
|
68
|
+
* @param {Spherical} [result] The object to store the result into, if undefined a new instance will be created.
|
|
69
|
+
*
|
|
70
|
+
* @return The modified result parameter or a new instance if result was undefined.
|
|
71
|
+
*/
|
|
72
|
+
Spherical.normalize = function(spherical, result) {
|
|
73
|
+
if (typeof result === 'undefined') {
|
|
74
|
+
result = new Spherical();
|
|
75
|
+
}
|
|
76
|
+
result.clock = spherical.clock;
|
|
77
|
+
result.cone = spherical.cone;
|
|
78
|
+
result.magnitude = 1.0;
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Returns true if the first spherical is equal to the second spherical, false otherwise.
|
|
84
|
+
* @memberof Spherical
|
|
85
|
+
*
|
|
86
|
+
* @param {Spherical} left The first Spherical to be compared.
|
|
87
|
+
* @param {Spherical} right The second Spherical to be compared.
|
|
88
|
+
*
|
|
89
|
+
* @return true if the first spherical is equal to the second spherical, false otherwise.
|
|
90
|
+
*/
|
|
91
|
+
Spherical.equals = function(left, right) {
|
|
92
|
+
return (left === right) ||
|
|
93
|
+
((typeof left !== 'undefined') &&
|
|
94
|
+
(typeof right !== 'undefined') &&
|
|
95
|
+
(left.clock === right.clock) &&
|
|
96
|
+
(left.cone === right.cone) &&
|
|
97
|
+
(left.magnitude === right.magnitude));
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Returns true if the first spherical is within the provided epsilon of the second spherical, false otherwise.
|
|
102
|
+
* @memberof Spherical
|
|
103
|
+
*
|
|
104
|
+
* @param {Spherical} left The first Spherical to be compared.
|
|
105
|
+
* @param {Spherical} right The second Spherical to be compared.
|
|
106
|
+
* @param {Number} [epsilon=0.0] The epsilon to compare against.
|
|
107
|
+
*
|
|
108
|
+
* @return true if the first spherical is within the provided epsilon of the second spherical, false otherwise.
|
|
109
|
+
*/
|
|
110
|
+
Spherical.equalsEpsilon = function(left, right, epsilon) {
|
|
111
|
+
epsilon = typeof epsilon === 'undefined' ? 0.0 : epsilon;
|
|
112
|
+
return (left === right) ||
|
|
113
|
+
((typeof left !== 'undefined') &&
|
|
114
|
+
(typeof right !== 'undefined') &&
|
|
115
|
+
(Math.abs(left.clock - right.clock) <= epsilon) &&
|
|
116
|
+
(Math.abs(left.cone - right.cone) <= epsilon) &&
|
|
117
|
+
(Math.abs(left.magnitude - right.magnitude) <= epsilon));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Returns a string representing the provided instance in the format (clock, cone, magnitude).
|
|
122
|
+
* @memberof Spherical
|
|
123
|
+
*
|
|
124
|
+
* @param {Spherical} spherical The object to be converted.
|
|
125
|
+
*
|
|
126
|
+
* @return A string representing the provided instance.
|
|
127
|
+
*/
|
|
128
|
+
Spherical.toString = function(spherical) {
|
|
129
|
+
return '(' + spherical.clock + ', ' + spherical.cone + ', ' + spherical.magnitude + ')';
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Creates a duplicate of this Spherical.
|
|
134
|
+
* @memberof Spherical
|
|
135
|
+
*
|
|
136
|
+
* @param {Spherical} [result] The object to store the result into, if undefined a new instance will be created.
|
|
137
|
+
*
|
|
138
|
+
* @return The modified result parameter or a new instance if result was undefined.
|
|
139
|
+
*/
|
|
140
|
+
Spherical.prototype.clone = function(result) {
|
|
141
|
+
return Spherical.clone(this, result);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Computes the normalized version of this spherical.
|
|
146
|
+
* @memberof Spherical
|
|
147
|
+
*
|
|
148
|
+
* @param {Spherical} [result] The object to store the result into, if undefined a new instance will be created.
|
|
149
|
+
*
|
|
150
|
+
* @return The modified result parameter or a new instance if result was undefined.
|
|
151
|
+
*/
|
|
152
|
+
Spherical.prototype.normalize = function(result) {
|
|
153
|
+
return Spherical.normalize(this, result);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Returns true if this spherical is equal to the provided spherical, false otherwise.
|
|
158
|
+
* @memberof Spherical
|
|
159
|
+
*
|
|
160
|
+
* @param {Spherical} other The Spherical to be compared.
|
|
161
|
+
*
|
|
162
|
+
* @return true if this spherical is equal to the provided spherical, false otherwise.
|
|
163
|
+
*/
|
|
164
|
+
Spherical.prototype.equals = function(other) {
|
|
165
|
+
return Spherical.equals(this, other);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Returns true if this spherical is within the provided epsilon of the provided spherical, false otherwise.
|
|
170
|
+
* @memberof Spherical
|
|
171
|
+
*
|
|
172
|
+
* @param {Spherical} other The Spherical to be compared.
|
|
173
|
+
* @param {Number} epsilon The epsilon to compare against.
|
|
174
|
+
*
|
|
175
|
+
* @return true if this spherical is within the provided epsilon of the provided spherical, false otherwise.
|
|
176
|
+
*/
|
|
177
|
+
Spherical.prototype.equalsEpsilon = function(other, epsilon) {
|
|
178
|
+
return Spherical.equalsEpsilon(this, other, epsilon);
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Returns a string representing this instance in the format (clock, cone, magnitude).
|
|
183
|
+
* @memberof Spherical
|
|
184
|
+
*
|
|
185
|
+
* @return A string representing this instance.
|
|
186
|
+
*/
|
|
187
|
+
Spherical.prototype.toString = function() {
|
|
188
|
+
return Spherical.toString(this);
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
return Spherical;
|
|
192
|
+
});
|