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,207 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./DeveloperError',
|
|
5
|
+
'./Transforms',
|
|
6
|
+
'./AxisAlignedBoundingBox',
|
|
7
|
+
'./IntersectionTests',
|
|
8
|
+
'./Cartesian2',
|
|
9
|
+
'./Cartesian3',
|
|
10
|
+
'./Ellipsoid',
|
|
11
|
+
'./Ray'
|
|
12
|
+
], function(
|
|
13
|
+
defaultValue,
|
|
14
|
+
DeveloperError,
|
|
15
|
+
Transforms,
|
|
16
|
+
AxisAlignedBoundingBox,
|
|
17
|
+
IntersectionTests,
|
|
18
|
+
Cartesian2,
|
|
19
|
+
Cartesian3,
|
|
20
|
+
Ellipsoid,
|
|
21
|
+
Ray) {
|
|
22
|
+
"use strict";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A plane tangent to the provided ellipsoid at the provided origin.
|
|
26
|
+
* If origin is not on the surface of the ellipsoid, it's surface projection will be used.
|
|
27
|
+
* If origin as at the center of the ellipsoid, an exception will be thrown.
|
|
28
|
+
* @alias EllipsoidTangentPlane
|
|
29
|
+
* @constructor
|
|
30
|
+
*
|
|
31
|
+
* @param {Ellipsoid} ellipsoid The ellipsoid to use.
|
|
32
|
+
* @param {Cartesian3} origin The point on the surface of the ellipsoid where the tangent plane touches.
|
|
33
|
+
*
|
|
34
|
+
* @exception {DeveloperError} origin is required.
|
|
35
|
+
* @exception {DeveloperError} origin must not be at the center of the ellipsoid.
|
|
36
|
+
*/
|
|
37
|
+
var EllipsoidTangentPlane = function(origin, ellipsoid) {
|
|
38
|
+
if (typeof origin === 'undefined') {
|
|
39
|
+
throw new DeveloperError('origin is required.');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
|
|
43
|
+
|
|
44
|
+
origin = ellipsoid.scaleToGeodeticSurface(origin);
|
|
45
|
+
if (typeof origin === 'undefined') {
|
|
46
|
+
throw new DeveloperError('origin must not be at the center of the ellipsoid.');
|
|
47
|
+
}
|
|
48
|
+
var eastNorthUp = Transforms.eastNorthUpToFixedFrame(origin, ellipsoid);
|
|
49
|
+
this._ellipsoid = ellipsoid;
|
|
50
|
+
this._origin = Cartesian3.clone(origin);
|
|
51
|
+
this._xAxis = Cartesian3.fromCartesian4(eastNorthUp.getColumn(0));
|
|
52
|
+
this._yAxis = Cartesian3.fromCartesian4(eastNorthUp.getColumn(1));
|
|
53
|
+
this._normal = Cartesian3.fromCartesian4(eastNorthUp.getColumn(2));
|
|
54
|
+
this._distance = -Cartesian3.dot(origin, origin); //The shortest distance from the origin to the plane.
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var tmp = new AxisAlignedBoundingBox();
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new instance from the provided ellipsoid and the center
|
|
60
|
+
* point of the provided Cartesians.
|
|
61
|
+
* @memberof EllipsoidTangentPlane
|
|
62
|
+
*
|
|
63
|
+
* @param {Ellipsoid} ellipsoid The ellipsoid to use.
|
|
64
|
+
* @param {Cartesian3} cartesians The list of positions surrounding the center point.
|
|
65
|
+
*
|
|
66
|
+
* @exception {DeveloperError} cartesians is required.
|
|
67
|
+
*/
|
|
68
|
+
EllipsoidTangentPlane.fromPoints = function(cartesians, ellipsoid) {
|
|
69
|
+
if (typeof cartesians === 'undefined') {
|
|
70
|
+
throw new DeveloperError('cartesians is required.');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var box = AxisAlignedBoundingBox.fromPoints(cartesians, tmp);
|
|
74
|
+
return new EllipsoidTangentPlane(box.center, ellipsoid);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @memberof EllipsoidTangentPlane
|
|
79
|
+
* @returns {Ellipsoid} Gets the ellipsoid.
|
|
80
|
+
*/
|
|
81
|
+
EllipsoidTangentPlane.prototype.getEllipsoid = function() {
|
|
82
|
+
return this._ellipsoid;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @memberof EllipsoidTangentPlane
|
|
87
|
+
* @returns {Cartesian3} Gets the origin.
|
|
88
|
+
*/
|
|
89
|
+
EllipsoidTangentPlane.prototype.getOrigin = function() {
|
|
90
|
+
return this._origin;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var projectPointOntoPlaneRay = new Ray();
|
|
94
|
+
var projectPointOntoPlaneCartesian3 = new Cartesian3();
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Computes the projection of the provided 3D position onto the 2D plane.
|
|
98
|
+
* @memberof EllipsoidTangentPlane
|
|
99
|
+
*
|
|
100
|
+
* @param {Cartesian3} cartesian The point to project.
|
|
101
|
+
* @param {Cartesian2} [result] The object onto which to store the result.
|
|
102
|
+
* @return {Cartesian2} The modified result parameter or a new Cartesian2 instance if none was provided.
|
|
103
|
+
*
|
|
104
|
+
* @exception {DeveloperError} cartesian is required.
|
|
105
|
+
*/
|
|
106
|
+
EllipsoidTangentPlane.prototype.projectPointOntoPlane = function(cartesian, result) {
|
|
107
|
+
if (typeof cartesian === 'undefined') {
|
|
108
|
+
throw new DeveloperError('cartesian is required.');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
var ray = projectPointOntoPlaneRay;
|
|
112
|
+
ray.origin = cartesian;
|
|
113
|
+
Cartesian3.normalize(cartesian, ray.direction);
|
|
114
|
+
|
|
115
|
+
var intersectionPoint = IntersectionTests.rayPlane(ray, this._normal, this._distance, projectPointOntoPlaneCartesian3);
|
|
116
|
+
|
|
117
|
+
if (typeof intersectionPoint !== 'undefined') {
|
|
118
|
+
var v = intersectionPoint.subtract(this._origin, intersectionPoint);
|
|
119
|
+
var x = this._xAxis.dot(v);
|
|
120
|
+
var y = this._yAxis.dot(v);
|
|
121
|
+
|
|
122
|
+
if (typeof result === 'undefined') {
|
|
123
|
+
return new Cartesian2(x, y);
|
|
124
|
+
}
|
|
125
|
+
result.x = x;
|
|
126
|
+
result.y = y;
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Computes the projection of the provided 3D positions onto the 2D plane.
|
|
134
|
+
* @memberof EllipsoidTangentPlane
|
|
135
|
+
*
|
|
136
|
+
* @param {Array} cartesians The array of points to project.
|
|
137
|
+
* @param {Array} [result] The array of Cartesian2 instances onto which to store results.
|
|
138
|
+
* @return {Array} The modified result parameter or a new array of Cartesian2 instances if none was provided.
|
|
139
|
+
*
|
|
140
|
+
* @exception {DeveloperError} cartesians is required.
|
|
141
|
+
*/
|
|
142
|
+
EllipsoidTangentPlane.prototype.projectPointsOntoPlane = function(cartesians, result) {
|
|
143
|
+
if (typeof cartesians === 'undefined') {
|
|
144
|
+
throw new DeveloperError('cartesians is required.');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (typeof result === 'undefined') {
|
|
148
|
+
result = [];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
var count = 0;
|
|
152
|
+
var length = cartesians.length;
|
|
153
|
+
for ( var i = 0; i < length; i++) {
|
|
154
|
+
var p = this.projectPointOntoPlane(cartesians[i], result[count]);
|
|
155
|
+
if (typeof p !== 'undefined') {
|
|
156
|
+
result[count] = p;
|
|
157
|
+
count++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
result.length = count;
|
|
161
|
+
return result;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
var projectPointsOntoEllipsoidScratch = new Cartesian3();
|
|
166
|
+
/**
|
|
167
|
+
* Computes the projection of the provided 2D positions onto the 3D ellipsoid.
|
|
168
|
+
* @memberof EllipsoidTangentPlane
|
|
169
|
+
*
|
|
170
|
+
* @param {Array} cartesians The array of points to project.
|
|
171
|
+
* @param {Array} [result] The array of Cartesian3 instances onto which to store results.
|
|
172
|
+
* @return {Array} The modified result parameter or a new array of Cartesian3 instances if none was provided.
|
|
173
|
+
*
|
|
174
|
+
* @exception {DeveloperError} cartesians is required.
|
|
175
|
+
*/
|
|
176
|
+
EllipsoidTangentPlane.prototype.projectPointsOntoEllipsoid = function(cartesians, result) {
|
|
177
|
+
if (typeof cartesians === 'undefined') {
|
|
178
|
+
throw new DeveloperError('cartesians is required.');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
var length = cartesians.length;
|
|
182
|
+
if (typeof result === 'undefined') {
|
|
183
|
+
result = new Array(length);
|
|
184
|
+
} else {
|
|
185
|
+
result.length = length;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
var ellipsoid = this._ellipsoid;
|
|
189
|
+
var origin = this._origin;
|
|
190
|
+
var xAxis = this._xAxis;
|
|
191
|
+
var yAxis = this._yAxis;
|
|
192
|
+
var tmp = projectPointsOntoEllipsoidScratch;
|
|
193
|
+
|
|
194
|
+
for ( var i = 0; i < length; ++i) {
|
|
195
|
+
var position = cartesians[i];
|
|
196
|
+
xAxis.multiplyByScalar(position.x, tmp);
|
|
197
|
+
var point = result[i] = Cartesian3.add(origin, tmp, result[i]);
|
|
198
|
+
yAxis.multiplyByScalar(position.y, tmp);
|
|
199
|
+
Cartesian3.add(point, tmp, point);
|
|
200
|
+
ellipsoid.scaleToGeocentricSurface(point, point);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return result;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
return EllipsoidTangentPlane;
|
|
207
|
+
});
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./DeveloperError',
|
|
5
|
+
'./Math',
|
|
6
|
+
'./Cartesian3',
|
|
7
|
+
'./Visibility',
|
|
8
|
+
'./Ellipsoid',
|
|
9
|
+
'./BoundingSphere'
|
|
10
|
+
], function(
|
|
11
|
+
defaultValue,
|
|
12
|
+
DeveloperError,
|
|
13
|
+
CesiumMath,
|
|
14
|
+
Cartesian3,
|
|
15
|
+
Visibility,
|
|
16
|
+
Ellipsoid,
|
|
17
|
+
BoundingSphere) {
|
|
18
|
+
"use strict";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Determine whether or not other objects are visible or hidden behind the visible horizon defined by
|
|
22
|
+
* an {@link Ellipsoid} and a camera position. The ellipsoid is assumed to be located at the
|
|
23
|
+
* origin of the coordinate system.
|
|
24
|
+
*
|
|
25
|
+
* @alias EllipsoidalOccluder
|
|
26
|
+
*
|
|
27
|
+
* @param {Ellipsoid} ellipsoid The ellipsoid to use as an occluder.
|
|
28
|
+
* @param {Cartesian3} [cameraPosition] The coordinate of the viewer/camera. If this parameter is not
|
|
29
|
+
* specified, {@link EllipsoidalOccluder#setCameraPosition} must be called before
|
|
30
|
+
* testing visibility.
|
|
31
|
+
*
|
|
32
|
+
* @exception {DeveloperError} <code>ellipsoid</code> is required.
|
|
33
|
+
*
|
|
34
|
+
* @constructor
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // Construct an ellipsoidal occluder with radii 1.0, 1.1, and 0.9.
|
|
38
|
+
* var cameraPosition = new Cartesian3(5.0, 6.0, 7.0);
|
|
39
|
+
* var occluderEllipsoid = new Ellipsoid(1.0, 1.1, 0.9);
|
|
40
|
+
* var occluder = new EllipsoidalOccluder(occluderEllipsoid, cameraPosition);
|
|
41
|
+
*/
|
|
42
|
+
var EllipsoidalOccluder = function(ellipsoid, cameraPosition) {
|
|
43
|
+
if (typeof ellipsoid === 'undefined') {
|
|
44
|
+
throw new DeveloperError('ellipsoid is required.');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
this._ellipsoid = ellipsoid;
|
|
48
|
+
this._cameraPosition = new Cartesian3(0.0, 0.0, 0.0);
|
|
49
|
+
this._cameraPositionInScaledSpace = new Cartesian3(0.0, 0.0, 0.0);
|
|
50
|
+
this._distanceToLimbInScaledSpaceSquared = 0.0;
|
|
51
|
+
|
|
52
|
+
// setCameraPosition fills in the above values
|
|
53
|
+
if (typeof cameraPosition !== 'undefined') {
|
|
54
|
+
this.setCameraPosition(cameraPosition);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Returns the occluding ellipsoid.
|
|
60
|
+
*
|
|
61
|
+
* @memberof EllipsoidalOccluder
|
|
62
|
+
*
|
|
63
|
+
* @return {Ellipsoid} The ellipsoid.
|
|
64
|
+
*/
|
|
65
|
+
EllipsoidalOccluder.prototype.getEllipsoid = function() {
|
|
66
|
+
return this._ellipsoid;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Sets the position of the camera.
|
|
71
|
+
*
|
|
72
|
+
* @memberof EllipsoidalOccluder
|
|
73
|
+
*
|
|
74
|
+
* @param {Cartesian3} cameraPosition The new position of the camera.
|
|
75
|
+
*/
|
|
76
|
+
EllipsoidalOccluder.prototype.setCameraPosition = function(cameraPosition) {
|
|
77
|
+
var ellipsoid = this._ellipsoid;
|
|
78
|
+
var cameraPositionInScaledSpace = ellipsoid.transformPositionToScaledSpace(cameraPosition, this._cameraPositionInScaledSpace);
|
|
79
|
+
var magnitudeCameraPositionInScaledSpace = Cartesian3.magnitude(cameraPositionInScaledSpace);
|
|
80
|
+
var distanceToLimbInScaledSpaceSquared = magnitudeCameraPositionInScaledSpace * magnitudeCameraPositionInScaledSpace - 1.0;
|
|
81
|
+
|
|
82
|
+
Cartesian3.clone(cameraPosition, this._cameraPosition);
|
|
83
|
+
this._cameraPositionInScaledSpace = cameraPositionInScaledSpace;
|
|
84
|
+
this._distanceToLimbInScaledSpaceSquared = distanceToLimbInScaledSpaceSquared;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Gets the position of the camera.
|
|
89
|
+
*
|
|
90
|
+
* @memberof EllipsoidalOccluder
|
|
91
|
+
*
|
|
92
|
+
* @returns {Cartesian3} The position of the camera.
|
|
93
|
+
*/
|
|
94
|
+
EllipsoidalOccluder.prototype.getCameraPosition = function() {
|
|
95
|
+
return this._cameraPosition;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
var scratchCartesian = new Cartesian3(0.0, 0.0, 0.0);
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Determines whether or not a point, the <code>occludee</code>, is hidden from view by the occluder.
|
|
102
|
+
*
|
|
103
|
+
* @memberof EllipsoidalOccluder
|
|
104
|
+
*
|
|
105
|
+
* @param {Cartesian3} occludee The point to test for visibility.
|
|
106
|
+
*
|
|
107
|
+
* @return {boolean} <code>true</code> if the occludee is visible; otherwise <code>false</code>.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* var cameraPosition = new Cartesian3(0, 0, 2.5);
|
|
111
|
+
* var ellipsoid = new Ellipsoid(1.0, 1.1, 0.9);
|
|
112
|
+
* var occluder = new EllipsoidalOccluder(ellipsoid, cameraPosition);
|
|
113
|
+
* var point = new Cartesian3(0, -3, -3);
|
|
114
|
+
* occluder.isPointVisible(point); //returns true
|
|
115
|
+
*/
|
|
116
|
+
EllipsoidalOccluder.prototype.isPointVisible = function(occludee) {
|
|
117
|
+
var ellipsoid = this._ellipsoid;
|
|
118
|
+
var occludeeScaledSpacePosition = ellipsoid.transformPositionToScaledSpace(occludee, scratchCartesian);
|
|
119
|
+
return this.isScaledSpacePointVisible(occludeeScaledSpacePosition);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Determines whether or not a point expressed in the ellipsoid scaled space, is hidden from view by the
|
|
124
|
+
* occluder. To transform a Cartesian X, Y, Z position in the coordinate system aligned with the ellipsoid
|
|
125
|
+
* into the scaled space, call {@link Ellipsoid#transformPositionToScaledSpace}.
|
|
126
|
+
*
|
|
127
|
+
* @memberof EllipsoidalOccluder
|
|
128
|
+
*
|
|
129
|
+
* @param {Cartesian3} occludeeScaledSpacePosition The point to test for visibility, represented in the scaled space.
|
|
130
|
+
*
|
|
131
|
+
* @return {boolean} <code>true</code> if the occludee is visible; otherwise <code>false</code>.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* var cameraPosition = new Cartesian3(0, 0, 2.5);
|
|
135
|
+
* var ellipsoid = new Ellipsoid(1.0, 1.1, 0.9);
|
|
136
|
+
* var occluder = new EllipsoidalOccluder(ellipsoid, cameraPosition);
|
|
137
|
+
* var point = new Cartesian3(0, -3, -3);
|
|
138
|
+
* var scaledSpacePoint = ellipsoid.transformPositionToScaledSpace(point);
|
|
139
|
+
* occluder.isScaledSpacePointVisible(scaledSpacePoint); //returns true
|
|
140
|
+
*/
|
|
141
|
+
EllipsoidalOccluder.prototype.isScaledSpacePointVisible = function(occludeeScaledSpacePosition) {
|
|
142
|
+
// Based on Cozzi and Stoner's paper, "GPU Ray Casting of Virtual Globes Supplement"
|
|
143
|
+
var q = this._cameraPositionInScaledSpace;
|
|
144
|
+
var wMagnitudeSquared = this._distanceToLimbInScaledSpaceSquared;
|
|
145
|
+
var b = Cartesian3.subtract(occludeeScaledSpacePosition, q, scratchCartesian);
|
|
146
|
+
var d = -b.dot(q);
|
|
147
|
+
return d < wMagnitudeSquared || d * d / b.magnitudeSquared() < wMagnitudeSquared;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
return EllipsoidalOccluder;
|
|
151
|
+
});
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./Cartesian3',
|
|
4
|
+
'./DeveloperError'
|
|
5
|
+
], function(
|
|
6
|
+
Cartesian3,
|
|
7
|
+
DeveloperError) {
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A fixed-point encoding of a {@link Cartesian3} with 64-bit floating-point components, as two {@link Cartesian3}
|
|
12
|
+
* values that, when converted to 32-bit floating-point and added, approximate the original input.
|
|
13
|
+
* <p>
|
|
14
|
+
* This is used to encode positions in vertex buffers for rendering without jittering artifacts
|
|
15
|
+
* as described in <a href="http://blogs.agi.com/insight3d/index.php/2008/09/03/precisions-precisions/">Precisions, Precisions</a>.
|
|
16
|
+
* </p>
|
|
17
|
+
*
|
|
18
|
+
* @alias EncodedCartesian3
|
|
19
|
+
* @constructor
|
|
20
|
+
*
|
|
21
|
+
* @see czm_modelViewRelativeToEye
|
|
22
|
+
* @see czm_modelViewProjectionRelativeToEye
|
|
23
|
+
*/
|
|
24
|
+
var EncodedCartesian3 = function() {
|
|
25
|
+
/**
|
|
26
|
+
* The high bits for each component. Bits 0 to 22 store the whole value. Bits 23 to 31 are not used.
|
|
27
|
+
* <p>
|
|
28
|
+
* The default is {@link Cartesian3.ZERO}.
|
|
29
|
+
* </p>
|
|
30
|
+
*
|
|
31
|
+
* @type Number
|
|
32
|
+
*/
|
|
33
|
+
this.high = Cartesian3.ZERO.clone();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The low bits for each component. Bits 7 to 22 store the whole value, and bits 0 to 6 store the fraction. Bits 23 to 31 are not used.
|
|
37
|
+
* <p>
|
|
38
|
+
* The default is {@link Cartesian3.ZERO}.
|
|
39
|
+
* </p>
|
|
40
|
+
*
|
|
41
|
+
* @type Number
|
|
42
|
+
*/
|
|
43
|
+
this.low = Cartesian3.ZERO.clone();
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Encodes a 64-bit floating-point value as two floating-point values that, when converted to
|
|
48
|
+
* 32-bit floating-point and added, approximate the original input. The returned object
|
|
49
|
+
* has <code>high</code> and <code>low</code> properties for the high and low bits, respectively.
|
|
50
|
+
* <p>
|
|
51
|
+
* The fixed-point encoding follows <a href="http://blogs.agi.com/insight3d/index.php/2008/09/03/precisions-precisions/">Precisions, Precisions</a>.
|
|
52
|
+
* </p>
|
|
53
|
+
* @memberof EncodedCartesian3
|
|
54
|
+
*
|
|
55
|
+
* @param {Number} value The floating-point value to encode.
|
|
56
|
+
* @param {Object} [result] The object onto which to store the result.
|
|
57
|
+
*
|
|
58
|
+
* @return {Object} The modified result parameter or a new instance if one was not provided.
|
|
59
|
+
*
|
|
60
|
+
* @exception {DeveloperError} value is required.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* var value = 1234567.1234567;
|
|
64
|
+
* var splitValue = EncodedCartesian3.encode(value);
|
|
65
|
+
*/
|
|
66
|
+
EncodedCartesian3.encode = function(value, result) {
|
|
67
|
+
if (typeof value === 'undefined') {
|
|
68
|
+
throw new DeveloperError('value is required');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (typeof result === 'undefined') {
|
|
72
|
+
result = {
|
|
73
|
+
high : 0.0,
|
|
74
|
+
low : 0.0
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
var doubleHigh;
|
|
79
|
+
if (value >= 0.0) {
|
|
80
|
+
doubleHigh = Math.floor(value / 65536.0) * 65536.0;
|
|
81
|
+
result.high = doubleHigh;
|
|
82
|
+
result.low = value - doubleHigh;
|
|
83
|
+
} else {
|
|
84
|
+
doubleHigh = Math.floor(-value / 65536.0) * 65536.0;
|
|
85
|
+
result.high = -doubleHigh;
|
|
86
|
+
result.low = value + doubleHigh;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return result;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var scratchEncode = {
|
|
93
|
+
high : 0.0,
|
|
94
|
+
low : 0.0
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Encodes a {@link Cartesian3} with 64-bit floating-point components as two {@link Cartesian3}
|
|
99
|
+
* values that, when converted to 32-bit floating-point and added, approximate the original input.
|
|
100
|
+
* <p>
|
|
101
|
+
* The fixed-point encoding follows <a href="http://blogs.agi.com/insight3d/index.php/2008/09/03/precisions-precisions/">Precisions, Precisions</a>.
|
|
102
|
+
* </p>
|
|
103
|
+
* @memberof EncodedCartesian3
|
|
104
|
+
*
|
|
105
|
+
* @param {Cartesian3} cartesian The cartesian to encode.
|
|
106
|
+
* @param {EncodedCartesian3} [result] The object onto which to store the result.
|
|
107
|
+
* @return {EncodedCartesian3} The modified result parameter or a new EncodedCartesian3 instance if one was not provided.
|
|
108
|
+
*
|
|
109
|
+
* @exception {DeveloperError} cartesian is required.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* var cart = new Cartesian3(-10000000.0, 0.0, 10000000.0);
|
|
113
|
+
* var encoded = EncodedCartesian3.fromCartesian(cart);
|
|
114
|
+
*/
|
|
115
|
+
EncodedCartesian3.fromCartesian = function(cartesian, result) {
|
|
116
|
+
if (typeof cartesian === 'undefined') {
|
|
117
|
+
throw new DeveloperError('cartesian is required');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (typeof result === 'undefined') {
|
|
121
|
+
result = new EncodedCartesian3();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
var high = result.high;
|
|
125
|
+
var low = result.low;
|
|
126
|
+
|
|
127
|
+
EncodedCartesian3.encode(cartesian.x, scratchEncode);
|
|
128
|
+
high.x = scratchEncode.high;
|
|
129
|
+
low.x = scratchEncode.low;
|
|
130
|
+
|
|
131
|
+
EncodedCartesian3.encode(cartesian.y, scratchEncode);
|
|
132
|
+
high.y = scratchEncode.high;
|
|
133
|
+
low.y = scratchEncode.low;
|
|
134
|
+
|
|
135
|
+
EncodedCartesian3.encode(cartesian.z, scratchEncode);
|
|
136
|
+
high.z = scratchEncode.high;
|
|
137
|
+
low.z = scratchEncode.low;
|
|
138
|
+
|
|
139
|
+
return result;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
var encodedP = new EncodedCartesian3();
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Encodes the provided <code>cartesian</code>, and writes it to an array with <code>high</code>
|
|
146
|
+
* components followed by <code>low</code> components, i.e. <code>[high.x, high.y, high.z, low.x, low.y, low.z]</code>.
|
|
147
|
+
* <p>
|
|
148
|
+
* This is used to create interleaved high-precision position vertex attributes.
|
|
149
|
+
* </p>
|
|
150
|
+
*
|
|
151
|
+
* @param {Cartesian3} cartesian The cartesian to encode.
|
|
152
|
+
* @param {Array} cartesianArray The array to write to.
|
|
153
|
+
* @param {Number} index The index into the array to start writing. Six elements will be written.
|
|
154
|
+
*
|
|
155
|
+
* @exception {DeveloperError} cartesian is required.
|
|
156
|
+
* @exception {DeveloperError} cartesianArray is required.
|
|
157
|
+
* @exception {DeveloperError} index must be a number greater than or equal to 0.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* var positions = [
|
|
161
|
+
* new Cartesian3(),
|
|
162
|
+
* // ...
|
|
163
|
+
* ];
|
|
164
|
+
* var encodedPositions = new Float32Array(2 * 3 * positions.length);
|
|
165
|
+
* var j = 0;
|
|
166
|
+
* for (var i = 0; i < positions.length; ++i) {
|
|
167
|
+
* EncodedCartesian3.writeElement(positions[i], encodedPositions, j);
|
|
168
|
+
* j += 6;
|
|
169
|
+
* }
|
|
170
|
+
*/
|
|
171
|
+
EncodedCartesian3.writeElements = function(cartesian, cartesianArray, index) {
|
|
172
|
+
if (typeof cartesian === 'undefined') {
|
|
173
|
+
throw new DeveloperError('cartesian is required');
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (typeof cartesianArray === 'undefined') {
|
|
177
|
+
throw new DeveloperError('cartesianArray is required');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (typeof index !== 'number' || index < 0) {
|
|
181
|
+
throw new DeveloperError('index must be a number greater than or equal to 0.');
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
EncodedCartesian3.fromCartesian(cartesian, encodedP);
|
|
185
|
+
var high = encodedP.high;
|
|
186
|
+
var low = encodedP.low;
|
|
187
|
+
|
|
188
|
+
cartesianArray[index] = high.x;
|
|
189
|
+
cartesianArray[index + 1] = high.y;
|
|
190
|
+
cartesianArray[index + 2] = high.z;
|
|
191
|
+
cartesianArray[index + 3] = low.x;
|
|
192
|
+
cartesianArray[index + 4] = low.y;
|
|
193
|
+
cartesianArray[index + 5] = low.z;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
return EncodedCartesian3;
|
|
197
|
+
});
|