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,211 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./defaultValue',
|
|
4
|
+
'./DeveloperError',
|
|
5
|
+
'./freezeObject',
|
|
6
|
+
'./Math'
|
|
7
|
+
], function(
|
|
8
|
+
defaultValue,
|
|
9
|
+
DeveloperError,
|
|
10
|
+
freezeObject,
|
|
11
|
+
CesiumMath) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A position defined by longitude, latitude, and height.
|
|
16
|
+
* @alias Cartographic
|
|
17
|
+
* @constructor
|
|
18
|
+
*
|
|
19
|
+
* @param {Number} [longitude=0.0] The longitude, in radians.
|
|
20
|
+
* @param {Number} [latitude=0.0] The latitude, in radians.
|
|
21
|
+
* @param {Number} [height=0.0] The height, in meters, above the ellipsoid.
|
|
22
|
+
*
|
|
23
|
+
* @see Ellipsoid
|
|
24
|
+
*/
|
|
25
|
+
var Cartographic = function(longitude, latitude, height) {
|
|
26
|
+
/**
|
|
27
|
+
* The longitude, in radians.
|
|
28
|
+
* @type Number
|
|
29
|
+
*/
|
|
30
|
+
this.longitude = defaultValue(longitude, 0.0);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The latitude, in radians.
|
|
34
|
+
* @type Number
|
|
35
|
+
*/
|
|
36
|
+
this.latitude = defaultValue(latitude, 0.0);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The height, in meters, above the ellipsoid.
|
|
40
|
+
* @type Number
|
|
41
|
+
*/
|
|
42
|
+
this.height = defaultValue(height, 0.0);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new Cartographic instance from longitude and latitude
|
|
47
|
+
* specified in degrees. The values in the resulting object will
|
|
48
|
+
* be in radians.
|
|
49
|
+
* @memberof Cartographic
|
|
50
|
+
*
|
|
51
|
+
* @param {Number} [longitude=0.0] The longitude, in degrees.
|
|
52
|
+
* @param {Number} [latitude=0.0] The latitude, in degrees.
|
|
53
|
+
* @param {Number} [height=0.0] The height, in meters, above the ellipsoid.
|
|
54
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
55
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if one was not provided.
|
|
56
|
+
*/
|
|
57
|
+
Cartographic.fromDegrees = function(longitude, latitude, height, result) {
|
|
58
|
+
longitude = CesiumMath.toRadians(defaultValue(longitude, 0.0));
|
|
59
|
+
latitude = CesiumMath.toRadians(defaultValue(latitude, 0.0));
|
|
60
|
+
height = defaultValue(height, 0.0);
|
|
61
|
+
|
|
62
|
+
if (typeof result === 'undefined') {
|
|
63
|
+
return new Cartographic(longitude, latitude, height);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
result.longitude = longitude;
|
|
67
|
+
result.latitude = latitude;
|
|
68
|
+
result.height = height;
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Duplicates a Cartographic instance.
|
|
74
|
+
* @memberof Cartographic
|
|
75
|
+
*
|
|
76
|
+
* @param {Cartographic} cartographic The cartographic to duplicate.
|
|
77
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
78
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if one was not provided.
|
|
79
|
+
*
|
|
80
|
+
* @exception {DeveloperError} cartographic is required.
|
|
81
|
+
*/
|
|
82
|
+
Cartographic.clone = function(cartographic, result) {
|
|
83
|
+
if (typeof cartographic === 'undefined') {
|
|
84
|
+
throw new DeveloperError('cartographic is required');
|
|
85
|
+
}
|
|
86
|
+
if (typeof result === 'undefined') {
|
|
87
|
+
return new Cartographic(cartographic.longitude, cartographic.latitude, cartographic.height);
|
|
88
|
+
}
|
|
89
|
+
result.longitude = cartographic.longitude;
|
|
90
|
+
result.latitude = cartographic.latitude;
|
|
91
|
+
result.height = cartographic.height;
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Compares the provided cartographics componentwise and returns
|
|
97
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
98
|
+
* @memberof Cartographic
|
|
99
|
+
*
|
|
100
|
+
* @param {Cartographic} [left] The first cartographic.
|
|
101
|
+
* @param {Cartographic} [right] The second cartographic.
|
|
102
|
+
* @return {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
|
|
103
|
+
*/
|
|
104
|
+
Cartographic.equals = function(left, right) {
|
|
105
|
+
return (left === right) ||
|
|
106
|
+
((typeof left !== 'undefined') &&
|
|
107
|
+
(typeof right !== 'undefined') &&
|
|
108
|
+
(left.longitude === right.longitude) &&
|
|
109
|
+
(left.latitude === right.latitude) &&
|
|
110
|
+
(left.height === right.height));
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Compares the provided cartographics componentwise and returns
|
|
115
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
116
|
+
* <code>false</code> otherwise.
|
|
117
|
+
* @memberof Cartographic
|
|
118
|
+
*
|
|
119
|
+
* @param {Cartographic} [left] The first cartographic.
|
|
120
|
+
* @param {Cartographic} [right] The second cartographic.
|
|
121
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
122
|
+
* @return {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
|
|
123
|
+
*
|
|
124
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
125
|
+
*/
|
|
126
|
+
Cartographic.equalsEpsilon = function(left, right, epsilon) {
|
|
127
|
+
if (typeof epsilon !== 'number') {
|
|
128
|
+
throw new DeveloperError('epsilon is required and must be a number.');
|
|
129
|
+
}
|
|
130
|
+
return (left === right) ||
|
|
131
|
+
((typeof left !== 'undefined') &&
|
|
132
|
+
(typeof right !== 'undefined') &&
|
|
133
|
+
(Math.abs(left.longitude - right.longitude) <= epsilon) &&
|
|
134
|
+
(Math.abs(left.latitude - right.latitude) <= epsilon) &&
|
|
135
|
+
(Math.abs(left.height - right.height) <= epsilon));
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Creates a string representing the provided cartographic in the format '(longitude, latitude, height)'.
|
|
140
|
+
* @memberof Cartographic
|
|
141
|
+
*
|
|
142
|
+
* @param {Cartographic} cartographic The cartographic to stringify.
|
|
143
|
+
* @return {String} A string representing the provided cartographic in the format '(longitude, latitude, height)'.
|
|
144
|
+
*
|
|
145
|
+
* @exception {DeveloperError} cartographic is required.
|
|
146
|
+
*/
|
|
147
|
+
Cartographic.toString = function(cartographic) {
|
|
148
|
+
if (typeof cartographic === 'undefined') {
|
|
149
|
+
throw new DeveloperError('cartographic is required');
|
|
150
|
+
}
|
|
151
|
+
return '(' + cartographic.longitude + ', ' + cartographic.latitude + ', ' + cartographic.height + ')';
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* An immutable Cartographic instance initialized to (0.0, 0.0, 0.0).
|
|
156
|
+
*
|
|
157
|
+
* @memberof Cartographic
|
|
158
|
+
*/
|
|
159
|
+
Cartographic.ZERO = freezeObject(new Cartographic(0.0, 0.0, 0.0));
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Duplicates this instance.
|
|
163
|
+
* @memberof Cartographic
|
|
164
|
+
*
|
|
165
|
+
* @param {Cartographic} [result] The object onto which to store the result.
|
|
166
|
+
* @return {Cartographic} The modified result parameter or a new Cartographic instance if one was not provided.
|
|
167
|
+
*/
|
|
168
|
+
Cartographic.prototype.clone = function(result) {
|
|
169
|
+
return Cartographic.clone(this, result);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Compares the provided against this cartographic componentwise and returns
|
|
174
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
175
|
+
* @memberof Cartographic
|
|
176
|
+
*
|
|
177
|
+
* @param {Cartographic} [right] The second cartographic.
|
|
178
|
+
* @return {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
|
|
179
|
+
*/
|
|
180
|
+
Cartographic.prototype.equals = function(right) {
|
|
181
|
+
return Cartographic.equals(this, right);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Compares the provided against this cartographic componentwise and returns
|
|
186
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
187
|
+
* <code>false</code> otherwise.
|
|
188
|
+
* @memberof Cartographic
|
|
189
|
+
*
|
|
190
|
+
* @param {Cartographic} [right] The second cartographic.
|
|
191
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
192
|
+
* @return {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
|
|
193
|
+
*
|
|
194
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
195
|
+
*/
|
|
196
|
+
Cartographic.prototype.equalsEpsilon = function(right, epsilon) {
|
|
197
|
+
return Cartographic.equalsEpsilon(this, right, epsilon);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Creates a string representing this cartographic in the format '(longitude, latitude, height)'.
|
|
202
|
+
* @memberof Cartographic
|
|
203
|
+
*
|
|
204
|
+
* @return {String} A string representing the provided cartographic in the format '(longitude, latitude, height)'.
|
|
205
|
+
*/
|
|
206
|
+
Cartographic.prototype.toString = function() {
|
|
207
|
+
return Cartographic.toString(this);
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
return Cartographic;
|
|
211
|
+
});
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DeveloperError',
|
|
4
|
+
'./Matrix4',
|
|
5
|
+
'./Cartesian3',
|
|
6
|
+
'./Cartesian4',
|
|
7
|
+
'./HermiteSpline'
|
|
8
|
+
],
|
|
9
|
+
function(
|
|
10
|
+
DeveloperError,
|
|
11
|
+
Matrix4,
|
|
12
|
+
Cartesian3,
|
|
13
|
+
Cartesian4,
|
|
14
|
+
HermiteSpline) {
|
|
15
|
+
"use strict";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A Catmull-Rom spline is a cubic spline where the tangent at control points,
|
|
19
|
+
* except the first and last, are computed using the previous and next control points.
|
|
20
|
+
* Catmull-Rom splines are in the class C<sup>1</sup>.
|
|
21
|
+
*
|
|
22
|
+
* @alias CatmullRomSpline
|
|
23
|
+
* @constructor
|
|
24
|
+
*
|
|
25
|
+
* @param {Array} controlPoints The array of control points. Each element of the array should be an object with <code>point</code> and <code>time</code> properties.
|
|
26
|
+
* @param {Cartesian3} firstTangent The tangent of the curve at the first control point.
|
|
27
|
+
* If the tangent is not given, it will be estimated.
|
|
28
|
+
* @param {Cartesian3} lastTangent The tangent of the curve at the last control point.
|
|
29
|
+
* If the tangent is not given, it will be estimated.
|
|
30
|
+
*
|
|
31
|
+
* @exception {DeveloperError} controlPoints is required.
|
|
32
|
+
* @exception {DeveloperError} controlPoints must be an array of at least length 3.
|
|
33
|
+
*
|
|
34
|
+
* @see HermiteSpline
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // spline above the earth from Philadelphia to Los Angeles
|
|
38
|
+
* var controlPoints = [
|
|
39
|
+
* {point: new Cartesian3(1235398.0, -4810983.0, 4146266.0), time: 0.0},
|
|
40
|
+
* {point: new Cartesian3(1372574.0, -5345182.0, 4606657.0), time: 1.5},
|
|
41
|
+
* {point: new Cartesian3(-757983.0, -5542796.0, 4514323.0), time: 3.0},
|
|
42
|
+
* {point: new Cartesian3(-2821260.0, -5248423.0, 4021290.0), time: 4.5},
|
|
43
|
+
* {point: new Cartesian3(-2539788.0, -4724797.0, 3620093.0), time: 6.0}
|
|
44
|
+
* ];
|
|
45
|
+
* var spline = new CatmullRomSpline(controlPoints);
|
|
46
|
+
*/
|
|
47
|
+
var CatmullRomSpline = function(controlPoints, firstTangent, lastTangent) {
|
|
48
|
+
if (!controlPoints || !(controlPoints instanceof Array) || controlPoints.length < 3) {
|
|
49
|
+
throw new DeveloperError('controlPoints is required and must be an array of objects with point and time properties, with a length of at least 3.');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this._points = controlPoints;
|
|
53
|
+
this._lastTimeIndex = 0;
|
|
54
|
+
|
|
55
|
+
if (firstTangent) {
|
|
56
|
+
this._ti = Cartesian3.clone(firstTangent);
|
|
57
|
+
} else {
|
|
58
|
+
var controlPoint0 = Cartesian3.clone(controlPoints[0].point);
|
|
59
|
+
var controlPoint1 = Cartesian3.clone(controlPoints[1].point);
|
|
60
|
+
var controlPoint2 = Cartesian3.clone(controlPoints[2].point);
|
|
61
|
+
|
|
62
|
+
this._ti = controlPoint1
|
|
63
|
+
.multiplyByScalar(2.0)
|
|
64
|
+
.subtract(controlPoint2)
|
|
65
|
+
.subtract(controlPoint0)
|
|
66
|
+
.multiplyByScalar(0.5);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (firstTangent) {
|
|
70
|
+
this._to = Cartesian3.clone(lastTangent);
|
|
71
|
+
} else {
|
|
72
|
+
var n = controlPoints.length - 1;
|
|
73
|
+
|
|
74
|
+
var controlPointn0 = Cartesian3.clone(controlPoints[n].point);
|
|
75
|
+
var controlPointn1 = Cartesian3.clone(controlPoints[n - 1].point);
|
|
76
|
+
var controlPointn2 = Cartesian3.clone(controlPoints[n - 2].point);
|
|
77
|
+
|
|
78
|
+
this._to = controlPointn0
|
|
79
|
+
.subtract(controlPointn1.multiplyByScalar(2.0))
|
|
80
|
+
.add(controlPointn2)
|
|
81
|
+
.multiplyByScalar(0.5);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
CatmullRomSpline.catmullRomCoefficientMatrix = new Matrix4(
|
|
86
|
+
-0.5, 1.0, -0.5, 0.0,
|
|
87
|
+
1.5, -2.5, 0.0, 1.0,
|
|
88
|
+
-1.5, 2.0, 0.5, 0.0,
|
|
89
|
+
0.5, -0.5, 0.0, 0.0);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns the array of control points.
|
|
93
|
+
*
|
|
94
|
+
* @memberof CatmullRomSpline
|
|
95
|
+
* @return {Array} The array of control points.
|
|
96
|
+
*/
|
|
97
|
+
CatmullRomSpline.prototype.getControlPoints = function() {
|
|
98
|
+
return this._points;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Returns the tangent of the first control point.
|
|
103
|
+
*
|
|
104
|
+
* @memberof CatmullRomSpline
|
|
105
|
+
*
|
|
106
|
+
* @return {Cartesian3} The tangent of the first control point.
|
|
107
|
+
*
|
|
108
|
+
* @see CatmullRomSpline#getEndTangent
|
|
109
|
+
*/
|
|
110
|
+
CatmullRomSpline.prototype.getStartTangent = function() {
|
|
111
|
+
return this._ti;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Returns the tangent of the last control point.
|
|
116
|
+
*
|
|
117
|
+
* @memberof CatmullRomSpline
|
|
118
|
+
*
|
|
119
|
+
* @return {Cartesian3} The tangent of the last control point.
|
|
120
|
+
*
|
|
121
|
+
* @see CatmullRomSpline#getStartTangent
|
|
122
|
+
*/
|
|
123
|
+
CatmullRomSpline.prototype.getEndTangent = function() {
|
|
124
|
+
return this._to;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
CatmullRomSpline.prototype._findIndex = function(time) {
|
|
128
|
+
// Take advantage of temporal coherence by checking current, next and previous intervals
|
|
129
|
+
// for containment of time.
|
|
130
|
+
var i = this._lastTimeIndex || 0;
|
|
131
|
+
if (time >= this._points[i].time) {
|
|
132
|
+
if (i + 1 < this._points.length && time < this._points[i + 1].time) {
|
|
133
|
+
return i;
|
|
134
|
+
} else if (i + 2 < this._points.length && time < this._points[i + 2].time) {
|
|
135
|
+
this._lastTimeIndex = i + 1;
|
|
136
|
+
return this._lastTimeIndex;
|
|
137
|
+
}
|
|
138
|
+
} else if (i - 1 >= 0 && time >= this._points[i - 1].time) {
|
|
139
|
+
this._lastTimeIndex = i - 1;
|
|
140
|
+
return this._lastTimeIndex;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// The above failed so do a linear search. For the use cases so far, the
|
|
144
|
+
// length of the list is less than 10. In the future, if there is a bottle neck,
|
|
145
|
+
// it might be here.
|
|
146
|
+
for (i = 0; i < this._points.length - 1; ++i) {
|
|
147
|
+
if (time >= this._points[i].time && time < this._points[i + 1].time) {
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (i === this._points.length - 1) {
|
|
153
|
+
i = this._points.length - 2;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
this._lastTimeIndex = i;
|
|
157
|
+
return this._lastTimeIndex;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Evaluates the curve at a given time.
|
|
162
|
+
*
|
|
163
|
+
* @memberof CatmullRomSpline
|
|
164
|
+
*
|
|
165
|
+
* @param {Number} time The time at which to evaluate the curve.
|
|
166
|
+
*
|
|
167
|
+
* @exception {DeveloperError} time is required.
|
|
168
|
+
* @exception {DeveloperError} time must be in the range <code>[a<sub>0</sub>, a<sub>n</sub>]</code>,
|
|
169
|
+
* where <code>a<sub>0</sub></code> and <code>a<sub>n</sub></code> are the time properties of first and
|
|
170
|
+
* last elements in the array given during construction, respectively.
|
|
171
|
+
*
|
|
172
|
+
* @return {Cartesian3} The point on the curve at the given <code>time</code>.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* // spline above the earth from Philadelphia to Los Angeles
|
|
176
|
+
* var controlPoints = [
|
|
177
|
+
* {point: new Cartesian3(1235398.0, -4810983.0, 4146266.0), time: 0.0},
|
|
178
|
+
* {point: new Cartesian3(1372574.0, -5345182.0, 4606657.0), time: 1.5},
|
|
179
|
+
* {point: new Cartesian3(-757983.0, -5542796.0, 4514323.0), time: 3.0},
|
|
180
|
+
* {point: new Cartesian3(-2821260.0, -5248423.0, 4021290.0), time: 4.5},
|
|
181
|
+
* {point: new Cartesian3(-2539788.0, -4724797.0, 3620093.0), time: 6.0}
|
|
182
|
+
* ];
|
|
183
|
+
* var spline = new CatmullRomSpline(controlPoints);
|
|
184
|
+
*
|
|
185
|
+
* // some position above Los Angeles
|
|
186
|
+
* var position = spline.evaluate(5.0);
|
|
187
|
+
*/
|
|
188
|
+
CatmullRomSpline.prototype.evaluate = function(time) {
|
|
189
|
+
if (typeof time === 'undefined') {
|
|
190
|
+
throw new DeveloperError('time is required.');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (time < this._points[0].time || time > this._points[this._points.length - 1].time) {
|
|
194
|
+
throw new DeveloperError('time is out of range.');
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
var i = this._findIndex(time);
|
|
198
|
+
var u = (time - this._points[i].time) / (this._points[i + 1].time - this._points[i].time);
|
|
199
|
+
|
|
200
|
+
var timeVec = new Cartesian3(0.0, u * u, u);
|
|
201
|
+
timeVec.x = timeVec.y * u;
|
|
202
|
+
|
|
203
|
+
var p0, p1, p2, p3, coefs;
|
|
204
|
+
if (i === 0) {
|
|
205
|
+
p0 = this._points[0].point;
|
|
206
|
+
p1 = this._points[1].point;
|
|
207
|
+
p2 = this._ti;
|
|
208
|
+
p3 = this._points[2].point.subtract(p0).multiplyByScalar(0.5);
|
|
209
|
+
coefs = HermiteSpline.hermiteCoefficientMatrix.multiplyByPoint(timeVec);
|
|
210
|
+
} else if (i === this._points.length - 2) {
|
|
211
|
+
p0 = this._points[i].point;
|
|
212
|
+
p1 = this._points[i + 1].point;
|
|
213
|
+
p2 = p1.subtract(this._points[i - 1].point).multiplyByScalar(0.5);
|
|
214
|
+
p3 = this._to;
|
|
215
|
+
coefs = HermiteSpline.hermiteCoefficientMatrix.multiplyByPoint(timeVec);
|
|
216
|
+
} else {
|
|
217
|
+
p0 = this._points[i - 1].point;
|
|
218
|
+
p1 = this._points[i].point;
|
|
219
|
+
p2 = this._points[i + 1].point;
|
|
220
|
+
p3 = this._points[i + 2].point;
|
|
221
|
+
coefs = CatmullRomSpline.catmullRomCoefficientMatrix.multiplyByPoint(timeVec);
|
|
222
|
+
}
|
|
223
|
+
p0 = p0.multiplyByScalar(coefs.x);
|
|
224
|
+
p1 = p1.multiplyByScalar(coefs.y);
|
|
225
|
+
p2 = p2.multiplyByScalar(coefs.z);
|
|
226
|
+
p3 = p3.multiplyByScalar(coefs.w);
|
|
227
|
+
|
|
228
|
+
return p0.add(p1.add(p2.add(p3)));
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
return CatmullRomSpline;
|
|
232
|
+
});
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./DeveloperError',
|
|
4
|
+
'./JulianDate',
|
|
5
|
+
'./ClockStep',
|
|
6
|
+
'./ClockRange'
|
|
7
|
+
], function(
|
|
8
|
+
DeveloperError,
|
|
9
|
+
JulianDate,
|
|
10
|
+
ClockStep,
|
|
11
|
+
ClockRange) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A simple clock for keeping track of simulated time.
|
|
16
|
+
* @alias Clock
|
|
17
|
+
* @constructor
|
|
18
|
+
*
|
|
19
|
+
* @param {Object} [template] The template object containing the properties to be set on the clock.
|
|
20
|
+
* @exception {DeveloperError} startTime must come before stopTime.
|
|
21
|
+
*
|
|
22
|
+
* @see ClockStep
|
|
23
|
+
* @see ClockRange
|
|
24
|
+
* @see JulianDate
|
|
25
|
+
* @see AnimationController
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* //Create a clock that loops on Christmas day 2012 and runs
|
|
29
|
+
* //in real-time. currentTime will default to startTime.
|
|
30
|
+
* var clock = new Clock({
|
|
31
|
+
* startTime : JulianDate.fromIso8601("12-25-2012");
|
|
32
|
+
* stopTime : JulianDate.fromIso8601("12-26-2012");
|
|
33
|
+
* clockRange : ClockRange.LOOP;
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
var Clock = function(template) {
|
|
37
|
+
var t = template;
|
|
38
|
+
if (typeof t === 'undefined') {
|
|
39
|
+
t = {};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var startTime = t.startTime;
|
|
43
|
+
var startTimeUndefined = typeof startTime === 'undefined';
|
|
44
|
+
|
|
45
|
+
var stopTime = t.stopTime;
|
|
46
|
+
var stopTimeUndefined = typeof stopTime === 'undefined';
|
|
47
|
+
|
|
48
|
+
var currentTime = t.currentTime;
|
|
49
|
+
var currentTimeUndefined = typeof currentTime === 'undefined';
|
|
50
|
+
|
|
51
|
+
if (startTimeUndefined && stopTimeUndefined && currentTimeUndefined) {
|
|
52
|
+
currentTime = new JulianDate();
|
|
53
|
+
startTime = currentTime.clone();
|
|
54
|
+
stopTime = currentTime.addDays(1.0);
|
|
55
|
+
} else if (startTimeUndefined && stopTimeUndefined) {
|
|
56
|
+
startTime = currentTime.clone();
|
|
57
|
+
stopTime = currentTime.addDays(1.0);
|
|
58
|
+
} else if (startTimeUndefined && currentTimeUndefined) {
|
|
59
|
+
startTime = stopTime.addDays(-1.0);
|
|
60
|
+
currentTime = startTime.clone();
|
|
61
|
+
} else if (currentTimeUndefined && stopTimeUndefined) {
|
|
62
|
+
currentTime = startTime.clone();
|
|
63
|
+
stopTime = startTime.addDays(1.0);
|
|
64
|
+
} else if (currentTimeUndefined) {
|
|
65
|
+
currentTime = startTime.clone();
|
|
66
|
+
} else if (stopTimeUndefined) {
|
|
67
|
+
stopTime = currentTime.addDays(1.0);
|
|
68
|
+
} else if (startTimeUndefined) {
|
|
69
|
+
startTime = currentTime.clone();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (startTime.greaterThan(stopTime)) {
|
|
73
|
+
throw new DeveloperError('startTime must come before stopTime.');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
var multiplier = t.multiplier;
|
|
77
|
+
if (typeof multiplier === 'undefined') {
|
|
78
|
+
multiplier = 1.0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var clockStep = t.clockStep;
|
|
82
|
+
if (typeof clockStep === 'undefined') {
|
|
83
|
+
clockStep = ClockStep.SYSTEM_CLOCK_DEPENDENT;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
var clockRange = t.clockRange;
|
|
87
|
+
if (typeof clockRange === 'undefined') {
|
|
88
|
+
clockRange = ClockRange.UNBOUNDED;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The start time of the clock.
|
|
93
|
+
* @type JulianDate
|
|
94
|
+
*/
|
|
95
|
+
this.startTime = startTime;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The stop time of the clock.
|
|
99
|
+
* @type JulianDate
|
|
100
|
+
*/
|
|
101
|
+
this.stopTime = stopTime;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The current time.
|
|
105
|
+
* @type JulianDate
|
|
106
|
+
*/
|
|
107
|
+
this.currentTime = currentTime;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Determines how much time advances when tick is called, negative values allow for advancing backwards.
|
|
111
|
+
* If <code>clockStep</code> is set to ClockStep.TICK_DEPENDENT this is the number of seconds to advance.
|
|
112
|
+
* If <code>clockStep</code> is set to ClockStep.SYSTEM_CLOCK_DEPENDENT this value is multiplied by the
|
|
113
|
+
* elapsed system time since the last call to tick.
|
|
114
|
+
* @type Number
|
|
115
|
+
*/
|
|
116
|
+
this.multiplier = multiplier;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Determines if calls to <code>tick</code> are frame dependent or system clock dependent.
|
|
120
|
+
* @type ClockStep
|
|
121
|
+
*/
|
|
122
|
+
this.clockStep = clockStep;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Determines how tick should behave when <code>startTime</code> or <code>stopTime</code> is reached.
|
|
126
|
+
* @type ClockRange
|
|
127
|
+
*/
|
|
128
|
+
this.clockRange = clockRange;
|
|
129
|
+
|
|
130
|
+
this._lastCpuTime = new Date().getTime();
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Advances the clock from the currentTime based on the current configuration options.
|
|
135
|
+
* @memberof Clock
|
|
136
|
+
*
|
|
137
|
+
* @param {Number} [secondsToTick] optional parameter to force the clock to tick the provided number of seconds,
|
|
138
|
+
* regardless of the value of <code>clockStep</code> and <code>multiplier</code>.
|
|
139
|
+
* @returns {JulianDate} The new value of the <code>currentTime</code> property.
|
|
140
|
+
*/
|
|
141
|
+
Clock.prototype.tick = function(secondsToTick) {
|
|
142
|
+
return this._tick(secondsToTick, this.multiplier);
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Advances the clock in the opposite direction of the current <code>multiplier</code>.
|
|
147
|
+
* If <code>multiplier</code> is positive this will advance the clock backwards one tick.
|
|
148
|
+
* If <code>multiplier</code> is negative this will advance the clock forward one tick.
|
|
149
|
+
* @memberof Clock
|
|
150
|
+
*
|
|
151
|
+
* @returns {JulianDate} The new value of Clock.currentTime
|
|
152
|
+
*/
|
|
153
|
+
Clock.prototype.reverseTick = function() {
|
|
154
|
+
return this._tick(undefined, -this.multiplier);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
Clock.prototype._tick = function(secondsToTick, multiplier) {
|
|
158
|
+
var startTime = this.startTime;
|
|
159
|
+
var stopTime = this.stopTime;
|
|
160
|
+
var currentTime = this.currentTime;
|
|
161
|
+
var currentCpuTime = new Date().getTime();
|
|
162
|
+
|
|
163
|
+
if (typeof secondsToTick === 'undefined') {
|
|
164
|
+
if (this.clockStep === ClockStep.TICK_DEPENDENT) {
|
|
165
|
+
currentTime = currentTime.addSeconds(multiplier);
|
|
166
|
+
} else {
|
|
167
|
+
var milliseconds = currentCpuTime - this._lastCpuTime;
|
|
168
|
+
currentTime = currentTime.addSeconds(multiplier * (milliseconds / 1000.0));
|
|
169
|
+
}
|
|
170
|
+
} else {
|
|
171
|
+
currentTime = currentTime.addSeconds(secondsToTick);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (this.clockRange === ClockRange.CLAMPED) {
|
|
175
|
+
if (currentTime.lessThan(startTime)) {
|
|
176
|
+
currentTime = startTime;
|
|
177
|
+
} else if (currentTime.greaterThan(stopTime)) {
|
|
178
|
+
currentTime = stopTime;
|
|
179
|
+
}
|
|
180
|
+
} else if (this.clockRange === ClockRange.LOOP) {
|
|
181
|
+
while (currentTime.lessThan(startTime)) {
|
|
182
|
+
currentTime = stopTime.addSeconds(startTime.getSecondsDifference(currentTime));
|
|
183
|
+
}
|
|
184
|
+
while (currentTime.greaterThan(stopTime)) {
|
|
185
|
+
currentTime = startTime.addSeconds(stopTime.getSecondsDifference(currentTime));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
this.currentTime = currentTime;
|
|
190
|
+
this._lastCpuTime = currentCpuTime;
|
|
191
|
+
return currentTime;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
return Clock;
|
|
195
|
+
});
|