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,1099 @@
|
|
|
1
|
+
/*global define*/
|
|
2
|
+
define([
|
|
3
|
+
'./Cartesian3',
|
|
4
|
+
'./defaultValue',
|
|
5
|
+
'./DeveloperError',
|
|
6
|
+
'./freezeObject'
|
|
7
|
+
], function(
|
|
8
|
+
Cartesian3,
|
|
9
|
+
defaultValue,
|
|
10
|
+
DeveloperError,
|
|
11
|
+
freezeObject) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A 3x3 matrix, indexable as a column-major order array.
|
|
16
|
+
* Constructor parameters are in row-major order for code readability.
|
|
17
|
+
* @alias Matrix3
|
|
18
|
+
* @constructor
|
|
19
|
+
*
|
|
20
|
+
* @param {Number} [column0Row0=0.0] The value for column 0, row 0.
|
|
21
|
+
* @param {Number} [column1Row0=0.0] The value for column 1, row 0.
|
|
22
|
+
* @param {Number} [column2Row0=0.0] The value for column 2, row 0.
|
|
23
|
+
* @param {Number} [column0Row1=0.0] The value for column 0, row 1.
|
|
24
|
+
* @param {Number} [column1Row1=0.0] The value for column 1, row 1.
|
|
25
|
+
* @param {Number} [column2Row1=0.0] The value for column 2, row 1.
|
|
26
|
+
* @param {Number} [column0Row2=0.0] The value for column 0, row 2.
|
|
27
|
+
* @param {Number} [column1Row2=0.0] The value for column 1, row 2.
|
|
28
|
+
* @param {Number} [column2Row2=0.0] The value for column 2, row 2.
|
|
29
|
+
*
|
|
30
|
+
* @see Matrix3.fromColumnMajor
|
|
31
|
+
* @see Matrix3.fromRowMajorArray
|
|
32
|
+
* @see Matrix3.fromQuaternion
|
|
33
|
+
* @see Matrix3.fromScale
|
|
34
|
+
* @see Matrix3.fromUniformScale
|
|
35
|
+
* @see Matrix2
|
|
36
|
+
* @see Matrix4
|
|
37
|
+
*/
|
|
38
|
+
var Matrix3 = function(column0Row0, column1Row0, column2Row0,
|
|
39
|
+
column0Row1, column1Row1, column2Row1,
|
|
40
|
+
column0Row2, column1Row2, column2Row2) {
|
|
41
|
+
this[0] = defaultValue(column0Row0, 0.0);
|
|
42
|
+
this[1] = defaultValue(column0Row1, 0.0);
|
|
43
|
+
this[2] = defaultValue(column0Row2, 0.0);
|
|
44
|
+
this[3] = defaultValue(column1Row0, 0.0);
|
|
45
|
+
this[4] = defaultValue(column1Row1, 0.0);
|
|
46
|
+
this[5] = defaultValue(column1Row2, 0.0);
|
|
47
|
+
this[6] = defaultValue(column2Row0, 0.0);
|
|
48
|
+
this[7] = defaultValue(column2Row1, 0.0);
|
|
49
|
+
this[8] = defaultValue(column2Row2, 0.0);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Duplicates a Matrix3 instance.
|
|
54
|
+
* @memberof Matrix3
|
|
55
|
+
*
|
|
56
|
+
* @param {Matrix3} matrix The matrix to duplicate.
|
|
57
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
58
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
59
|
+
*
|
|
60
|
+
* @exception {DeveloperError} matrix is required.
|
|
61
|
+
*/
|
|
62
|
+
Matrix3.clone = function(values, result) {
|
|
63
|
+
if (typeof values === 'undefined') {
|
|
64
|
+
throw new DeveloperError('values is required');
|
|
65
|
+
}
|
|
66
|
+
if (typeof result === 'undefined') {
|
|
67
|
+
return new Matrix3(values[0], values[3], values[6],
|
|
68
|
+
values[1], values[4], values[7],
|
|
69
|
+
values[2], values[5], values[8]);
|
|
70
|
+
}
|
|
71
|
+
result[0] = values[0];
|
|
72
|
+
result[1] = values[1];
|
|
73
|
+
result[2] = values[2];
|
|
74
|
+
result[3] = values[3];
|
|
75
|
+
result[4] = values[4];
|
|
76
|
+
result[5] = values[5];
|
|
77
|
+
result[6] = values[6];
|
|
78
|
+
result[7] = values[7];
|
|
79
|
+
result[8] = values[8];
|
|
80
|
+
return result;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Creates a Matrix3 instance from a column-major order array.
|
|
85
|
+
* @memberof Matrix3
|
|
86
|
+
* @function
|
|
87
|
+
*
|
|
88
|
+
* @param {Array} values The column-major order array.
|
|
89
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
90
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
91
|
+
*
|
|
92
|
+
* @exception {DeveloperError} values is required.
|
|
93
|
+
*/
|
|
94
|
+
Matrix3.fromColumnMajorArray = Matrix3.clone;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Creates a Matrix3 instance from a row-major order array.
|
|
98
|
+
* The resulting matrix will be in column-major order.
|
|
99
|
+
* @memberof Matrix3
|
|
100
|
+
*
|
|
101
|
+
* @param {Array} values The row-major order array.
|
|
102
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
103
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
104
|
+
*
|
|
105
|
+
* @exception {DeveloperError} values is required.
|
|
106
|
+
*/
|
|
107
|
+
Matrix3.fromRowMajorArray = function(values, result) {
|
|
108
|
+
if (typeof values === 'undefined') {
|
|
109
|
+
throw new DeveloperError('values is required.');
|
|
110
|
+
}
|
|
111
|
+
if (typeof result === 'undefined') {
|
|
112
|
+
return new Matrix3(values[0], values[1], values[2],
|
|
113
|
+
values[3], values[4], values[5],
|
|
114
|
+
values[6], values[7], values[8]);
|
|
115
|
+
}
|
|
116
|
+
result[0] = values[0];
|
|
117
|
+
result[1] = values[3];
|
|
118
|
+
result[2] = values[6];
|
|
119
|
+
result[3] = values[1];
|
|
120
|
+
result[4] = values[4];
|
|
121
|
+
result[5] = values[7];
|
|
122
|
+
result[6] = values[2];
|
|
123
|
+
result[7] = values[5];
|
|
124
|
+
result[8] = values[8];
|
|
125
|
+
return result;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Computes a 3x3 rotation matrix from the provided quaternion.
|
|
130
|
+
* @memberof Matrix3
|
|
131
|
+
*
|
|
132
|
+
* @param {Quaternion} quaternion the quaternion to use.
|
|
133
|
+
*
|
|
134
|
+
* @return {Matrix3} The 3x3 rotation matrix from this quaternion.
|
|
135
|
+
*/
|
|
136
|
+
Matrix3.fromQuaternion = function(quaternion, result) {
|
|
137
|
+
if (typeof quaternion === 'undefined') {
|
|
138
|
+
throw new DeveloperError('quaternion is required');
|
|
139
|
+
}
|
|
140
|
+
var x2 = quaternion.x * quaternion.x;
|
|
141
|
+
var xy = quaternion.x * quaternion.y;
|
|
142
|
+
var xz = quaternion.x * quaternion.z;
|
|
143
|
+
var xw = quaternion.x * quaternion.w;
|
|
144
|
+
var y2 = quaternion.y * quaternion.y;
|
|
145
|
+
var yz = quaternion.y * quaternion.z;
|
|
146
|
+
var yw = quaternion.y * quaternion.w;
|
|
147
|
+
var z2 = quaternion.z * quaternion.z;
|
|
148
|
+
var zw = quaternion.z * quaternion.w;
|
|
149
|
+
var w2 = quaternion.w * quaternion.w;
|
|
150
|
+
|
|
151
|
+
var m00 = x2 - y2 - z2 + w2;
|
|
152
|
+
var m01 = 2.0 * (xy + zw);
|
|
153
|
+
var m02 = 2.0 * (xz - yw);
|
|
154
|
+
|
|
155
|
+
var m10 = 2.0 * (xy - zw);
|
|
156
|
+
var m11 = -x2 + y2 - z2 + w2;
|
|
157
|
+
var m12 = 2.0 * (yz + xw);
|
|
158
|
+
|
|
159
|
+
var m20 = 2.0 * (xz + yw);
|
|
160
|
+
var m21 = 2.0 * (yz - xw);
|
|
161
|
+
var m22 = -x2 - y2 + z2 + w2;
|
|
162
|
+
|
|
163
|
+
if (typeof result === 'undefined') {
|
|
164
|
+
return new Matrix3(m00, m01, m02,
|
|
165
|
+
m10, m11, m12,
|
|
166
|
+
m20, m21, m22);
|
|
167
|
+
}
|
|
168
|
+
result[0] = m00;
|
|
169
|
+
result[1] = m10;
|
|
170
|
+
result[2] = m20;
|
|
171
|
+
result[3] = m01;
|
|
172
|
+
result[4] = m11;
|
|
173
|
+
result[5] = m21;
|
|
174
|
+
result[6] = m02;
|
|
175
|
+
result[7] = m12;
|
|
176
|
+
result[8] = m22;
|
|
177
|
+
return result;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Computes a Matrix3 instance representing a non-uniform scale.
|
|
182
|
+
* @memberof Matrix3
|
|
183
|
+
*
|
|
184
|
+
* @param {Cartesian3} scale The x, y, and z scale factors.
|
|
185
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
186
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
187
|
+
*
|
|
188
|
+
* @exception {DeveloperError} scale is required.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* // Creates
|
|
192
|
+
* // [7.0, 0.0, 0.0]
|
|
193
|
+
* // [0.0, 8.0, 0.0]
|
|
194
|
+
* // [0.0, 0.0, 9.0]
|
|
195
|
+
* var m = Matrix3.fromScale(new Cartesian3(7.0, 8.0, 9.0));
|
|
196
|
+
*/
|
|
197
|
+
Matrix3.fromScale = function(scale, result) {
|
|
198
|
+
if (typeof scale === 'undefined') {
|
|
199
|
+
throw new DeveloperError('scale is required.');
|
|
200
|
+
}
|
|
201
|
+
if (typeof result === 'undefined') {
|
|
202
|
+
return new Matrix3(
|
|
203
|
+
scale.x, 0.0, 0.0,
|
|
204
|
+
0.0, scale.y, 0.0,
|
|
205
|
+
0.0, 0.0, scale.z);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
result[0] = scale.x;
|
|
209
|
+
result[1] = 0.0;
|
|
210
|
+
result[2] = 0.0;
|
|
211
|
+
result[3] = 0.0;
|
|
212
|
+
result[4] = scale.y;
|
|
213
|
+
result[5] = 0.0;
|
|
214
|
+
result[6] = 0.0;
|
|
215
|
+
result[7] = 0.0;
|
|
216
|
+
result[8] = scale.z;
|
|
217
|
+
return result;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Computes a Matrix3 instance representing a uniform scale.
|
|
222
|
+
* @memberof Matrix3
|
|
223
|
+
*
|
|
224
|
+
* @param {Number} scale The uniform scale factor.
|
|
225
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
226
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
227
|
+
*
|
|
228
|
+
* @exception {DeveloperError} scale is required.
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* // Creates
|
|
232
|
+
* // [2.0, 0.0, 0.0]
|
|
233
|
+
* // [0.0, 2.0, 0.0]
|
|
234
|
+
* // [0.0, 0.0, 2.0]
|
|
235
|
+
* var m = Matrix3.fromUniformScale(2.0);
|
|
236
|
+
*/
|
|
237
|
+
Matrix3.fromUniformScale = function(scale, result) {
|
|
238
|
+
if (typeof scale !== 'number') {
|
|
239
|
+
throw new DeveloperError('scale is required.');
|
|
240
|
+
}
|
|
241
|
+
if (typeof result === 'undefined') {
|
|
242
|
+
return new Matrix3(
|
|
243
|
+
scale, 0.0, 0.0,
|
|
244
|
+
0.0, scale, 0.0,
|
|
245
|
+
0.0, 0.0, scale);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
result[0] = scale;
|
|
249
|
+
result[1] = 0.0;
|
|
250
|
+
result[2] = 0.0;
|
|
251
|
+
result[3] = 0.0;
|
|
252
|
+
result[4] = scale;
|
|
253
|
+
result[5] = 0.0;
|
|
254
|
+
result[6] = 0.0;
|
|
255
|
+
result[7] = 0.0;
|
|
256
|
+
result[8] = scale;
|
|
257
|
+
return result;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Creates a rotation matrix around the x-axis.
|
|
262
|
+
*
|
|
263
|
+
* @param {Number} angle The angle, in radians, of the rotation. Positive angles are counterclockwise.
|
|
264
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
265
|
+
*
|
|
266
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
267
|
+
*
|
|
268
|
+
* @exception {DeveloperError} angle is required.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* // Rotate a point 45 degrees counterclockwise around the x-axis.
|
|
272
|
+
* var p = new Cartesian3(5, 6, 7);
|
|
273
|
+
* var m = Matrix3.fromRotationX(CesiumMath.toRadians(45.0));
|
|
274
|
+
* var rotated = m.multiplyByVector(p);
|
|
275
|
+
*/
|
|
276
|
+
Matrix3.fromRotationX = function(angle, result) {
|
|
277
|
+
if (typeof angle === 'undefined') {
|
|
278
|
+
throw new DeveloperError('angle is required.');
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
var cosAngle = Math.cos(angle);
|
|
282
|
+
var sinAngle = Math.sin(angle);
|
|
283
|
+
|
|
284
|
+
if (typeof result === 'undefined') {
|
|
285
|
+
return new Matrix3(
|
|
286
|
+
1.0, 0.0, 0.0,
|
|
287
|
+
0.0, cosAngle, -sinAngle,
|
|
288
|
+
0.0, sinAngle, cosAngle);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
result[0] = 1.0;
|
|
292
|
+
result[1] = 0.0;
|
|
293
|
+
result[2] = 0.0;
|
|
294
|
+
result[3] = 0.0;
|
|
295
|
+
result[4] = cosAngle;
|
|
296
|
+
result[5] = sinAngle;
|
|
297
|
+
result[6] = 0.0;
|
|
298
|
+
result[7] = -sinAngle;
|
|
299
|
+
result[8] = cosAngle;
|
|
300
|
+
|
|
301
|
+
return result;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Creates a rotation matrix around the y-axis.
|
|
306
|
+
*
|
|
307
|
+
* @param {Number} angle The angle, in radians, of the rotation. Positive angles are counterclockwise.
|
|
308
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
309
|
+
*
|
|
310
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
311
|
+
*
|
|
312
|
+
* @exception {DeveloperError} angle is required.
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* // Rotate a point 45 degrees counterclockwise around the y-axis.
|
|
316
|
+
* var p = new Cartesian3(5, 6, 7);
|
|
317
|
+
* var m = Matrix3.fromRotationY(CesiumMath.toRadians(45.0));
|
|
318
|
+
* var rotated = m.multiplyByVector(p);
|
|
319
|
+
*/
|
|
320
|
+
Matrix3.fromRotationY = function(angle, result) {
|
|
321
|
+
if (typeof angle === 'undefined') {
|
|
322
|
+
throw new DeveloperError('angle is required.');
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
var cosAngle = Math.cos(angle);
|
|
326
|
+
var sinAngle = Math.sin(angle);
|
|
327
|
+
|
|
328
|
+
if (typeof result === 'undefined') {
|
|
329
|
+
return new Matrix3(
|
|
330
|
+
cosAngle, 0.0, sinAngle,
|
|
331
|
+
0.0, 1.0, 0.0,
|
|
332
|
+
-sinAngle, 0.0, cosAngle);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
result[0] = cosAngle;
|
|
336
|
+
result[1] = 0.0;
|
|
337
|
+
result[2] = -sinAngle;
|
|
338
|
+
result[3] = 0.0;
|
|
339
|
+
result[4] = 1.0;
|
|
340
|
+
result[5] = 0.0;
|
|
341
|
+
result[6] = sinAngle;
|
|
342
|
+
result[7] = 0.0;
|
|
343
|
+
result[8] = cosAngle;
|
|
344
|
+
|
|
345
|
+
return result;
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Creates a rotation matrix around the z-axis.
|
|
350
|
+
*
|
|
351
|
+
* @param {Number} angle The angle, in radians, of the rotation. Positive angles are counterclockwise.
|
|
352
|
+
* @param {Matrix3} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
353
|
+
*
|
|
354
|
+
* @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
|
|
355
|
+
*
|
|
356
|
+
* @exception {DeveloperError} angle is required.
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* // Rotate a point 45 degrees counterclockwise around the z-axis.
|
|
360
|
+
* var p = new Cartesian3(5, 6, 7);
|
|
361
|
+
* var m = Matrix3.fromRotationZ(CesiumMath.toRadians(45.0));
|
|
362
|
+
* var rotated = m.multiplyByVector(p);
|
|
363
|
+
*/
|
|
364
|
+
Matrix3.fromRotationZ = function(angle, result) {
|
|
365
|
+
if (typeof angle === 'undefined') {
|
|
366
|
+
throw new DeveloperError('angle is required.');
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
var cosAngle = Math.cos(angle);
|
|
370
|
+
var sinAngle = Math.sin(angle);
|
|
371
|
+
|
|
372
|
+
if (typeof result === 'undefined') {
|
|
373
|
+
return new Matrix3(
|
|
374
|
+
cosAngle, -sinAngle, 0.0,
|
|
375
|
+
sinAngle, cosAngle, 0.0,
|
|
376
|
+
0.0, 0.0, 1.0);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
result[0] = cosAngle;
|
|
380
|
+
result[1] = sinAngle;
|
|
381
|
+
result[2] = 0.0;
|
|
382
|
+
result[3] = -sinAngle;
|
|
383
|
+
result[4] = cosAngle;
|
|
384
|
+
result[5] = 0.0;
|
|
385
|
+
result[6] = 0.0;
|
|
386
|
+
result[7] = 0.0;
|
|
387
|
+
result[8] = 1.0;
|
|
388
|
+
|
|
389
|
+
return result;
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Creates an Array from the provided Matrix3 instance.
|
|
394
|
+
* The array will be in column-major order.
|
|
395
|
+
* @memberof Matrix3
|
|
396
|
+
*
|
|
397
|
+
* @param {Matrix3} matrix The matrix to use..
|
|
398
|
+
* @param {Array} [result] The Array onto which to store the result.
|
|
399
|
+
* @return {Array} The modified Array parameter or a new Array instance if one was not provided.
|
|
400
|
+
*
|
|
401
|
+
* @exception {DeveloperError} matrix is required.
|
|
402
|
+
*/
|
|
403
|
+
Matrix3.toArray = function(matrix, result) {
|
|
404
|
+
if (typeof matrix === 'undefined') {
|
|
405
|
+
throw new DeveloperError('matrix is required');
|
|
406
|
+
}
|
|
407
|
+
if (typeof result === 'undefined') {
|
|
408
|
+
return [matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5], matrix[6], matrix[7], matrix[8]];
|
|
409
|
+
}
|
|
410
|
+
result[0] = matrix[0];
|
|
411
|
+
result[1] = matrix[1];
|
|
412
|
+
result[2] = matrix[2];
|
|
413
|
+
result[3] = matrix[3];
|
|
414
|
+
result[4] = matrix[4];
|
|
415
|
+
result[5] = matrix[5];
|
|
416
|
+
result[6] = matrix[6];
|
|
417
|
+
result[7] = matrix[7];
|
|
418
|
+
result[8] = matrix[8];
|
|
419
|
+
return result;
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Computes the array index of the element at the provided row and column.
|
|
424
|
+
* @memberof Matrix3
|
|
425
|
+
*
|
|
426
|
+
* @param {Number} row The zero-based index of the row.
|
|
427
|
+
* @param {Number} column The zero-based index of the column.
|
|
428
|
+
* @return {Number} The index of the element at the provided row and column.
|
|
429
|
+
*
|
|
430
|
+
* @exception {DeveloperError} row is required and must be 0, 1, or 2.
|
|
431
|
+
* @exception {DeveloperError} column is required and must be 0, 1, or 2.
|
|
432
|
+
*
|
|
433
|
+
* @example
|
|
434
|
+
* var myMatrix = new Matrix3();
|
|
435
|
+
* var column1Row0Index = Matrix3.getElementIndex(1, 0);
|
|
436
|
+
* var column1Row0 = myMatrix[column1Row0Index]
|
|
437
|
+
* myMatrix[column1Row0Index] = 10.0;
|
|
438
|
+
*/
|
|
439
|
+
Matrix3.getElementIndex = function(column, row) {
|
|
440
|
+
if (typeof row !== 'number' || row < 0 || row > 2) {
|
|
441
|
+
throw new DeveloperError('row is required and must be 0, 1, or 2.');
|
|
442
|
+
}
|
|
443
|
+
if (typeof column !== 'number' || column < 0 || column > 2) {
|
|
444
|
+
throw new DeveloperError('column is required and must be 0, 1, or 2.');
|
|
445
|
+
}
|
|
446
|
+
return column * 3 + row;
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Retrieves a copy of the matrix column at the provided index as a Cartesian3 instance.
|
|
451
|
+
* @memberof Matrix3
|
|
452
|
+
*
|
|
453
|
+
* @param {Matrix3} matrix The matrix to use.
|
|
454
|
+
* @param {Number} index The zero-based index of the column to retrieve.
|
|
455
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
456
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
457
|
+
*
|
|
458
|
+
* @exception {DeveloperError} matrix is required.
|
|
459
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
460
|
+
*
|
|
461
|
+
* @see Cartesian3
|
|
462
|
+
*/
|
|
463
|
+
Matrix3.getColumn = function(matrix, index, result) {
|
|
464
|
+
if (typeof matrix === 'undefined') {
|
|
465
|
+
throw new DeveloperError('matrix is required.');
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
if (typeof index !== 'number' || index < 0 || index > 2) {
|
|
469
|
+
throw new DeveloperError('index is required and must be 0, 1, or 2.');
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
var startIndex = index * 3;
|
|
473
|
+
var x = matrix[startIndex];
|
|
474
|
+
var y = matrix[startIndex + 1];
|
|
475
|
+
var z = matrix[startIndex + 2];
|
|
476
|
+
|
|
477
|
+
if (typeof result === 'undefined') {
|
|
478
|
+
return new Cartesian3(x, y, z);
|
|
479
|
+
}
|
|
480
|
+
result.x = x;
|
|
481
|
+
result.y = y;
|
|
482
|
+
result.z = z;
|
|
483
|
+
return result;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian3 instance.
|
|
488
|
+
* @memberof Matrix3
|
|
489
|
+
*
|
|
490
|
+
* @param {Matrix3} matrix The matrix to use.
|
|
491
|
+
* @param {Number} index The zero-based index of the column to set.
|
|
492
|
+
* @param {Cartesian3} cartesian The Cartesian whose values will be assigned to the specified column.
|
|
493
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
494
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
495
|
+
*
|
|
496
|
+
* @exception {DeveloperError} matrix is required.
|
|
497
|
+
* @exception {DeveloperError} cartesian is required.
|
|
498
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
499
|
+
*
|
|
500
|
+
* @see Cartesian3
|
|
501
|
+
*/
|
|
502
|
+
Matrix3.setColumn = function(matrix, index, cartesian, result) {
|
|
503
|
+
if (typeof matrix === 'undefined') {
|
|
504
|
+
throw new DeveloperError('matrix is required');
|
|
505
|
+
}
|
|
506
|
+
if (typeof cartesian === 'undefined') {
|
|
507
|
+
throw new DeveloperError('cartesian is required');
|
|
508
|
+
}
|
|
509
|
+
if (typeof index !== 'number' || index < 0 || index > 2) {
|
|
510
|
+
throw new DeveloperError('index is required and must be 0, 1, or 2.');
|
|
511
|
+
}
|
|
512
|
+
result = Matrix3.clone(matrix, result);
|
|
513
|
+
var startIndex = index * 3;
|
|
514
|
+
result[startIndex] = cartesian.x;
|
|
515
|
+
result[startIndex + 1] = cartesian.y;
|
|
516
|
+
result[startIndex + 2] = cartesian.z;
|
|
517
|
+
return result;
|
|
518
|
+
};
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* Retrieves a copy of the matrix row at the provided index as a Cartesian3 instance.
|
|
522
|
+
* @memberof Matrix3
|
|
523
|
+
*
|
|
524
|
+
* @param {Matrix3} matrix The matrix to use.
|
|
525
|
+
* @param {Number} index The zero-based index of the row to retrieve.
|
|
526
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
527
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
528
|
+
*
|
|
529
|
+
* @exception {DeveloperError} matrix is required.
|
|
530
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
531
|
+
*
|
|
532
|
+
* @see Cartesian3
|
|
533
|
+
*/
|
|
534
|
+
Matrix3.getRow = function(matrix, index, result) {
|
|
535
|
+
if (typeof matrix === 'undefined') {
|
|
536
|
+
throw new DeveloperError('matrix is required.');
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
if (typeof index !== 'number' || index < 0 || index > 2) {
|
|
540
|
+
throw new DeveloperError('index is required and must be 0, 1, or 2.');
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
var x = matrix[index];
|
|
544
|
+
var y = matrix[index + 3];
|
|
545
|
+
var z = matrix[index + 6];
|
|
546
|
+
|
|
547
|
+
if (typeof result === 'undefined') {
|
|
548
|
+
return new Cartesian3(x, y, z);
|
|
549
|
+
}
|
|
550
|
+
result.x = x;
|
|
551
|
+
result.y = y;
|
|
552
|
+
result.z = z;
|
|
553
|
+
return result;
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian3 instance.
|
|
558
|
+
* @memberof Matrix3
|
|
559
|
+
*
|
|
560
|
+
* @param {Matrix3} matrix The matrix to use.
|
|
561
|
+
* @param {Number} index The zero-based index of the row to set.
|
|
562
|
+
* @param {Cartesian3} cartesian The Cartesian whose values will be assigned to the specified row.
|
|
563
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
564
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
565
|
+
*
|
|
566
|
+
* @exception {DeveloperError} matrix is required.
|
|
567
|
+
* @exception {DeveloperError} cartesian is required.
|
|
568
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
569
|
+
*
|
|
570
|
+
* @see Cartesian3
|
|
571
|
+
*/
|
|
572
|
+
Matrix3.setRow = function(matrix, index, cartesian, result) {
|
|
573
|
+
if (typeof matrix === 'undefined') {
|
|
574
|
+
throw new DeveloperError('matrix is required');
|
|
575
|
+
}
|
|
576
|
+
if (typeof cartesian === 'undefined') {
|
|
577
|
+
throw new DeveloperError('cartesian is required');
|
|
578
|
+
}
|
|
579
|
+
if (typeof index !== 'number' || index < 0 || index > 2) {
|
|
580
|
+
throw new DeveloperError('index is required and must be 0, 1, or 2.');
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
result = Matrix3.clone(matrix, result);
|
|
584
|
+
result[index] = cartesian.x;
|
|
585
|
+
result[index + 3] = cartesian.y;
|
|
586
|
+
result[index + 6] = cartesian.z;
|
|
587
|
+
return result;
|
|
588
|
+
};
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Computes the product of two matrices.
|
|
592
|
+
* @memberof Matrix3
|
|
593
|
+
*
|
|
594
|
+
* @param {Matrix3} left The first matrix.
|
|
595
|
+
* @param {Matrix3} right The second matrix.
|
|
596
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
597
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
598
|
+
*
|
|
599
|
+
* @exception {DeveloperError} left is required.
|
|
600
|
+
* @exception {DeveloperError} right is required.
|
|
601
|
+
*/
|
|
602
|
+
Matrix3.multiply = function(left, right, result) {
|
|
603
|
+
if (typeof left === 'undefined') {
|
|
604
|
+
throw new DeveloperError('left is required');
|
|
605
|
+
}
|
|
606
|
+
if (typeof right === 'undefined') {
|
|
607
|
+
throw new DeveloperError('right is required');
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
var column0Row0 = left[0] * right[0] + left[3] * right[1] + left[6] * right[2];
|
|
611
|
+
var column0Row1 = left[1] * right[0] + left[4] * right[1] + left[7] * right[2];
|
|
612
|
+
var column0Row2 = left[2] * right[0] + left[5] * right[1] + left[8] * right[2];
|
|
613
|
+
|
|
614
|
+
var column1Row0 = left[0] * right[3] + left[3] * right[4] + left[6] * right[5];
|
|
615
|
+
var column1Row1 = left[1] * right[3] + left[4] * right[4] + left[7] * right[5];
|
|
616
|
+
var column1Row2 = left[2] * right[3] + left[5] * right[4] + left[8] * right[5];
|
|
617
|
+
|
|
618
|
+
var column2Row0 = left[0] * right[6] + left[3] * right[7] + left[6] * right[8];
|
|
619
|
+
var column2Row1 = left[1] * right[6] + left[4] * right[7] + left[7] * right[8];
|
|
620
|
+
var column2Row2 = left[2] * right[6] + left[5] * right[7] + left[8] * right[8];
|
|
621
|
+
|
|
622
|
+
if (typeof result === 'undefined') {
|
|
623
|
+
return new Matrix3(column0Row0, column1Row0, column2Row0,
|
|
624
|
+
column0Row1, column1Row1, column2Row1,
|
|
625
|
+
column0Row2, column1Row2, column2Row2);
|
|
626
|
+
}
|
|
627
|
+
result[0] = column0Row0;
|
|
628
|
+
result[1] = column0Row1;
|
|
629
|
+
result[2] = column0Row2;
|
|
630
|
+
result[3] = column1Row0;
|
|
631
|
+
result[4] = column1Row1;
|
|
632
|
+
result[5] = column1Row2;
|
|
633
|
+
result[6] = column2Row0;
|
|
634
|
+
result[7] = column2Row1;
|
|
635
|
+
result[8] = column2Row2;
|
|
636
|
+
return result;
|
|
637
|
+
};
|
|
638
|
+
|
|
639
|
+
/**
|
|
640
|
+
* Computes the product of a matrix and a column vector.
|
|
641
|
+
* @memberof Matrix3
|
|
642
|
+
*
|
|
643
|
+
* @param {Matrix3} matrix The matrix.
|
|
644
|
+
* @param {Cartesian3} cartesian The column.
|
|
645
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
646
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
647
|
+
*
|
|
648
|
+
* @exception {DeveloperError} matrix is required.
|
|
649
|
+
* @exception {DeveloperError} cartesian is required.
|
|
650
|
+
*/
|
|
651
|
+
Matrix3.multiplyByVector = function(matrix, cartesian, result) {
|
|
652
|
+
if (typeof matrix === 'undefined') {
|
|
653
|
+
throw new DeveloperError('matrix is required');
|
|
654
|
+
}
|
|
655
|
+
if (typeof cartesian === 'undefined') {
|
|
656
|
+
throw new DeveloperError('cartesian is required');
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
var vX = cartesian.x;
|
|
660
|
+
var vY = cartesian.y;
|
|
661
|
+
var vZ = cartesian.z;
|
|
662
|
+
|
|
663
|
+
var x = matrix[0] * vX + matrix[3] * vY + matrix[6] * vZ;
|
|
664
|
+
var y = matrix[1] * vX + matrix[4] * vY + matrix[7] * vZ;
|
|
665
|
+
var z = matrix[2] * vX + matrix[5] * vY + matrix[8] * vZ;
|
|
666
|
+
|
|
667
|
+
if (typeof result === 'undefined') {
|
|
668
|
+
return new Cartesian3(x, y, z);
|
|
669
|
+
}
|
|
670
|
+
result.x = x;
|
|
671
|
+
result.y = y;
|
|
672
|
+
result.z = z;
|
|
673
|
+
return result;
|
|
674
|
+
};
|
|
675
|
+
|
|
676
|
+
/**
|
|
677
|
+
* Computes the product of a matrix and a scalar.
|
|
678
|
+
* @memberof Matrix3
|
|
679
|
+
*
|
|
680
|
+
* @param {Matrix3} matrix The matrix.
|
|
681
|
+
* @param {Number} scalar The number to multiply by.
|
|
682
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
683
|
+
* @return {Matrix3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
684
|
+
*
|
|
685
|
+
* @exception {DeveloperError} matrix is required.
|
|
686
|
+
* @exception {DeveloperError} scalar is required and must be a number.
|
|
687
|
+
*/
|
|
688
|
+
Matrix3.multiplyByScalar = function(matrix, scalar, result) {
|
|
689
|
+
if (typeof matrix === 'undefined') {
|
|
690
|
+
throw new DeveloperError('matrix is required');
|
|
691
|
+
}
|
|
692
|
+
if (typeof scalar !== 'number') {
|
|
693
|
+
throw new DeveloperError('scalar is required and must be a number');
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
if (typeof result === 'undefined') {
|
|
697
|
+
return new Matrix3(matrix[0] * scalar, matrix[3] * scalar, matrix[6] * scalar,
|
|
698
|
+
matrix[1] * scalar, matrix[4] * scalar, matrix[7] * scalar,
|
|
699
|
+
matrix[2] * scalar, matrix[5] * scalar, matrix[8] * scalar);
|
|
700
|
+
}
|
|
701
|
+
result[0] = matrix[0] * scalar;
|
|
702
|
+
result[1] = matrix[1] * scalar;
|
|
703
|
+
result[2] = matrix[2] * scalar;
|
|
704
|
+
result[3] = matrix[3] * scalar;
|
|
705
|
+
result[4] = matrix[4] * scalar;
|
|
706
|
+
result[5] = matrix[5] * scalar;
|
|
707
|
+
result[6] = matrix[6] * scalar;
|
|
708
|
+
result[7] = matrix[7] * scalar;
|
|
709
|
+
result[8] = matrix[8] * scalar;
|
|
710
|
+
return result;
|
|
711
|
+
};
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Creates a negated copy of the provided matrix.
|
|
715
|
+
* @memberof Matrix3
|
|
716
|
+
*
|
|
717
|
+
* @param {Matrix3} matrix The matrix to negate.
|
|
718
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
719
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
720
|
+
*
|
|
721
|
+
* @exception {DeveloperError} matrix is required.
|
|
722
|
+
*/
|
|
723
|
+
Matrix3.negate = function(matrix, result) {
|
|
724
|
+
if (typeof matrix === 'undefined') {
|
|
725
|
+
throw new DeveloperError('matrix is required');
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
if (typeof result === 'undefined') {
|
|
729
|
+
return new Matrix3(-matrix[0], -matrix[3], -matrix[6],
|
|
730
|
+
-matrix[1], -matrix[4], -matrix[7],
|
|
731
|
+
-matrix[2], -matrix[5], -matrix[8]);
|
|
732
|
+
}
|
|
733
|
+
result[0] = -matrix[0];
|
|
734
|
+
result[1] = -matrix[1];
|
|
735
|
+
result[2] = -matrix[2];
|
|
736
|
+
result[3] = -matrix[3];
|
|
737
|
+
result[4] = -matrix[4];
|
|
738
|
+
result[5] = -matrix[5];
|
|
739
|
+
result[6] = -matrix[6];
|
|
740
|
+
result[7] = -matrix[7];
|
|
741
|
+
result[8] = -matrix[8];
|
|
742
|
+
return result;
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* Computes the transpose of the provided matrix.
|
|
747
|
+
* @memberof Matrix3
|
|
748
|
+
*
|
|
749
|
+
* @param {Matrix3} matrix The matrix to transpose.
|
|
750
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
751
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
752
|
+
*
|
|
753
|
+
* @exception {DeveloperError} matrix is required.
|
|
754
|
+
*/
|
|
755
|
+
Matrix3.transpose = function(matrix, result) {
|
|
756
|
+
if (typeof matrix === 'undefined') {
|
|
757
|
+
throw new DeveloperError('matrix is required');
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
var column0Row0 = matrix[0];
|
|
761
|
+
var column0Row1 = matrix[3];
|
|
762
|
+
var column0Row2 = matrix[6];
|
|
763
|
+
var column1Row0 = matrix[1];
|
|
764
|
+
var column1Row1 = matrix[4];
|
|
765
|
+
var column1Row2 = matrix[7];
|
|
766
|
+
var column2Row0 = matrix[2];
|
|
767
|
+
var column2Row1 = matrix[5];
|
|
768
|
+
var column2Row2 = matrix[8];
|
|
769
|
+
|
|
770
|
+
if (typeof result === 'undefined') {
|
|
771
|
+
return new Matrix3(column0Row0, column1Row0, column2Row0,
|
|
772
|
+
column0Row1, column1Row1, column2Row1,
|
|
773
|
+
column0Row2, column1Row2, column2Row2);
|
|
774
|
+
}
|
|
775
|
+
result[0] = column0Row0;
|
|
776
|
+
result[1] = column0Row1;
|
|
777
|
+
result[2] = column0Row2;
|
|
778
|
+
result[3] = column1Row0;
|
|
779
|
+
result[4] = column1Row1;
|
|
780
|
+
result[5] = column1Row2;
|
|
781
|
+
result[6] = column2Row0;
|
|
782
|
+
result[7] = column2Row1;
|
|
783
|
+
result[8] = column2Row2;
|
|
784
|
+
return result;
|
|
785
|
+
};
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* Compares the provided matrices componentwise and returns
|
|
789
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
790
|
+
* @memberof Matrix3
|
|
791
|
+
*
|
|
792
|
+
* @param {Matrix3} [left] The first matrix.
|
|
793
|
+
* @param {Matrix3} [right] The second matrix.
|
|
794
|
+
* @return {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
|
|
795
|
+
*/
|
|
796
|
+
Matrix3.equals = function(left, right) {
|
|
797
|
+
return (left === right) ||
|
|
798
|
+
(typeof left !== 'undefined' &&
|
|
799
|
+
typeof right !== 'undefined' &&
|
|
800
|
+
left[0] === right[0] &&
|
|
801
|
+
left[1] === right[1] &&
|
|
802
|
+
left[2] === right[2] &&
|
|
803
|
+
left[3] === right[3] &&
|
|
804
|
+
left[4] === right[4] &&
|
|
805
|
+
left[5] === right[5] &&
|
|
806
|
+
left[6] === right[6] &&
|
|
807
|
+
left[7] === right[7] &&
|
|
808
|
+
left[8] === right[8]);
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
/**
|
|
812
|
+
* Compares the provided matrices componentwise and returns
|
|
813
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
814
|
+
* <code>false</code> otherwise.
|
|
815
|
+
* @memberof Matrix3
|
|
816
|
+
*
|
|
817
|
+
* @param {Matrix3} [left] The first matrix.
|
|
818
|
+
* @param {Matrix3} [right] The second matrix.
|
|
819
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
820
|
+
* @return {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
|
|
821
|
+
*
|
|
822
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
823
|
+
*/
|
|
824
|
+
Matrix3.equalsEpsilon = function(left, right, epsilon) {
|
|
825
|
+
if (typeof epsilon !== 'number') {
|
|
826
|
+
throw new DeveloperError('epsilon is required and must be a number');
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
return (left === right) ||
|
|
830
|
+
(typeof left !== 'undefined' &&
|
|
831
|
+
typeof right !== 'undefined' &&
|
|
832
|
+
Math.abs(left[0] - right[0]) <= epsilon &&
|
|
833
|
+
Math.abs(left[1] - right[1]) <= epsilon &&
|
|
834
|
+
Math.abs(left[2] - right[2]) <= epsilon &&
|
|
835
|
+
Math.abs(left[3] - right[3]) <= epsilon &&
|
|
836
|
+
Math.abs(left[4] - right[4]) <= epsilon &&
|
|
837
|
+
Math.abs(left[5] - right[5]) <= epsilon &&
|
|
838
|
+
Math.abs(left[6] - right[6]) <= epsilon &&
|
|
839
|
+
Math.abs(left[7] - right[7]) <= epsilon &&
|
|
840
|
+
Math.abs(left[8] - right[8]) <= epsilon);
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* An immutable Matrix3 instance initialized to the identity matrix.
|
|
845
|
+
* @memberof Matrix3
|
|
846
|
+
*/
|
|
847
|
+
Matrix3.IDENTITY = freezeObject(new Matrix3(1.0, 0.0, 0.0,
|
|
848
|
+
0.0, 1.0, 0.0,
|
|
849
|
+
0.0, 0.0, 1.0));
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* The index into Matrix3 for column 0, row 0.
|
|
853
|
+
* @memberof Matrix3
|
|
854
|
+
*/
|
|
855
|
+
Matrix3.COLUMN0ROW0 = 0;
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* The index into Matrix3 for column 0, row 1.
|
|
859
|
+
* @memberof Matrix3
|
|
860
|
+
*/
|
|
861
|
+
Matrix3.COLUMN0ROW1 = 1;
|
|
862
|
+
|
|
863
|
+
/**
|
|
864
|
+
* The index into Matrix3 for column 0, row 2.
|
|
865
|
+
* @memberof Matrix3
|
|
866
|
+
*/
|
|
867
|
+
Matrix3.COLUMN0ROW2 = 2;
|
|
868
|
+
|
|
869
|
+
/**
|
|
870
|
+
* The index into Matrix3 for column 1, row 0.
|
|
871
|
+
* @memberof Matrix3
|
|
872
|
+
*/
|
|
873
|
+
Matrix3.COLUMN1ROW0 = 3;
|
|
874
|
+
|
|
875
|
+
/**
|
|
876
|
+
* The index into Matrix3 for column 1, row 1.
|
|
877
|
+
* @memberof Matrix3
|
|
878
|
+
*/
|
|
879
|
+
Matrix3.COLUMN1ROW1 = 4;
|
|
880
|
+
|
|
881
|
+
/**
|
|
882
|
+
* The index into Matrix3 for column 1, row 2.
|
|
883
|
+
* @memberof Matrix3
|
|
884
|
+
*/
|
|
885
|
+
Matrix3.COLUMN1ROW2 = 5;
|
|
886
|
+
|
|
887
|
+
/**
|
|
888
|
+
* The index into Matrix3 for column 2, row 0.
|
|
889
|
+
* @memberof Matrix3
|
|
890
|
+
*/
|
|
891
|
+
Matrix3.COLUMN2ROW0 = 6;
|
|
892
|
+
|
|
893
|
+
/**
|
|
894
|
+
* The index into Matrix3 for column 2, row 1.
|
|
895
|
+
* @memberof Matrix3
|
|
896
|
+
*/
|
|
897
|
+
Matrix3.COLUMN2ROW1 = 7;
|
|
898
|
+
|
|
899
|
+
/**
|
|
900
|
+
* The index into Matrix3 for column 2, row 2.
|
|
901
|
+
* @memberof Matrix3
|
|
902
|
+
*/
|
|
903
|
+
Matrix3.COLUMN2ROW2 = 8;
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Duplicates the provided Matrix3 instance.
|
|
907
|
+
* @memberof Matrix3
|
|
908
|
+
*
|
|
909
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
910
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
911
|
+
*/
|
|
912
|
+
Matrix3.prototype.clone = function(result) {
|
|
913
|
+
return Matrix3.clone(this, result);
|
|
914
|
+
};
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Creates an Array from this Matrix3 instance.
|
|
918
|
+
* @memberof Matrix3
|
|
919
|
+
*
|
|
920
|
+
* @param {Array} [result] The Array onto which to store the result.
|
|
921
|
+
* @return {Array} The modified Array parameter or a new Array instance if one was not provided.
|
|
922
|
+
*/
|
|
923
|
+
Matrix3.prototype.toArray = function(result) {
|
|
924
|
+
return Matrix3.toArray(this, result);
|
|
925
|
+
};
|
|
926
|
+
|
|
927
|
+
/**
|
|
928
|
+
* Retrieves a copy of the matrix column at the provided index as a Cartesian3 instance.
|
|
929
|
+
* @memberof Matrix3
|
|
930
|
+
*
|
|
931
|
+
* @param {Number} index The zero-based index of the column to retrieve.
|
|
932
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
933
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
934
|
+
*
|
|
935
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
936
|
+
*
|
|
937
|
+
* @see Cartesian3
|
|
938
|
+
*/
|
|
939
|
+
Matrix3.prototype.getColumn = function(index, result) {
|
|
940
|
+
return Matrix3.getColumn(this, index, result);
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
/**
|
|
944
|
+
* Computes a new matrix that replaces the specified column in this matrix with the provided Cartesian3 instance.
|
|
945
|
+
* @memberof Matrix3
|
|
946
|
+
*
|
|
947
|
+
* @param {Number} index The zero-based index of the column to set.
|
|
948
|
+
* @param {Cartesian3} cartesian The Cartesian whose values will be assigned to the specified column.
|
|
949
|
+
*
|
|
950
|
+
* @exception {DeveloperError} cartesian is required.
|
|
951
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
952
|
+
*
|
|
953
|
+
* @see Cartesian3
|
|
954
|
+
*/
|
|
955
|
+
Matrix3.prototype.setColumn = function(index, cartesian, result) {
|
|
956
|
+
return Matrix3.setColumn(this, index, cartesian, result);
|
|
957
|
+
};
|
|
958
|
+
|
|
959
|
+
/**
|
|
960
|
+
* Retrieves a copy of the matrix row at the provided index as a Cartesian3 instance.
|
|
961
|
+
* @memberof Matrix3
|
|
962
|
+
*
|
|
963
|
+
* @param {Number} index The zero-based index of the row to retrieve.
|
|
964
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
965
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
966
|
+
*
|
|
967
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
968
|
+
*
|
|
969
|
+
* @see Cartesian3
|
|
970
|
+
*/
|
|
971
|
+
Matrix3.prototype.getRow = function(index, result) {
|
|
972
|
+
return Matrix3.getRow(this, index, result);
|
|
973
|
+
};
|
|
974
|
+
|
|
975
|
+
/**
|
|
976
|
+
* Computes a new matrix that replaces the specified row in this matrix with the provided Cartesian3 instance.
|
|
977
|
+
* @memberof Matrix3
|
|
978
|
+
*
|
|
979
|
+
* @param {Number} index The zero-based index of the row to set.
|
|
980
|
+
* @param {Cartesian3} cartesian The Cartesian whose values will be assigned to the specified row.
|
|
981
|
+
*
|
|
982
|
+
* @exception {DeveloperError} cartesian is required.
|
|
983
|
+
* @exception {DeveloperError} index is required and must be 0, 1, or 2.
|
|
984
|
+
*
|
|
985
|
+
* @see Cartesian3
|
|
986
|
+
*/
|
|
987
|
+
Matrix3.prototype.setRow = function(index, cartesian, result) {
|
|
988
|
+
return Matrix3.setRow(this, index, cartesian, result);
|
|
989
|
+
};
|
|
990
|
+
|
|
991
|
+
/**
|
|
992
|
+
* Computes the product of this matrix and the provided matrix.
|
|
993
|
+
* @memberof Matrix3
|
|
994
|
+
*
|
|
995
|
+
* @param {Matrix3} right The right hand side matrix.
|
|
996
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
997
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
998
|
+
*
|
|
999
|
+
* @exception {DeveloperError} right is required.
|
|
1000
|
+
*/
|
|
1001
|
+
Matrix3.prototype.multiply = function(right, result) {
|
|
1002
|
+
return Matrix3.multiply(this, right, result);
|
|
1003
|
+
};
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* Computes the product of this matrix and a column vector.
|
|
1007
|
+
* @memberof Matrix3
|
|
1008
|
+
*
|
|
1009
|
+
* @param {Cartesian3} cartesian The column.
|
|
1010
|
+
* @param {Cartesian3} [result] The object onto which to store the result.
|
|
1011
|
+
* @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
1012
|
+
*
|
|
1013
|
+
* @exception {DeveloperError} cartesian is required.
|
|
1014
|
+
*/
|
|
1015
|
+
Matrix3.prototype.multiplyByVector = function(cartesian, result) {
|
|
1016
|
+
return Matrix3.multiplyByVector(this, cartesian, result);
|
|
1017
|
+
};
|
|
1018
|
+
|
|
1019
|
+
/**
|
|
1020
|
+
* Computes the product of this matrix and a scalar.
|
|
1021
|
+
* @memberof Matrix3
|
|
1022
|
+
*
|
|
1023
|
+
* @param {Number} scalar The number to multiply by.
|
|
1024
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
1025
|
+
* @return {Matrix3} The modified result parameter or a new Cartesian3 instance if one was not provided.
|
|
1026
|
+
*
|
|
1027
|
+
* @exception {DeveloperError} scalar is required and must be a number.
|
|
1028
|
+
*/
|
|
1029
|
+
Matrix3.prototype.multiplyByScalar = function(scalar, result) {
|
|
1030
|
+
return Matrix3.multiplyByScalar(this, scalar, result);
|
|
1031
|
+
};
|
|
1032
|
+
/**
|
|
1033
|
+
* Creates a negated copy of this matrix.
|
|
1034
|
+
* @memberof Matrix3
|
|
1035
|
+
*
|
|
1036
|
+
* @param {Matrix3} matrix The matrix to negate.
|
|
1037
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
1038
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
1039
|
+
*
|
|
1040
|
+
* @exception {DeveloperError} matrix is required.
|
|
1041
|
+
*/
|
|
1042
|
+
Matrix3.prototype.negate = function(result) {
|
|
1043
|
+
return Matrix3.negate(this, result);
|
|
1044
|
+
};
|
|
1045
|
+
|
|
1046
|
+
/**
|
|
1047
|
+
* Computes the transpose of this matrix.
|
|
1048
|
+
* @memberof Matrix3
|
|
1049
|
+
*
|
|
1050
|
+
* @param {Matrix3} [result] The object onto which to store the result.
|
|
1051
|
+
* @return {Matrix3} The modified result parameter or a new Matrix3 instance if one was not provided.
|
|
1052
|
+
*/
|
|
1053
|
+
Matrix3.prototype.transpose = function(result) {
|
|
1054
|
+
return Matrix3.transpose(this, result);
|
|
1055
|
+
};
|
|
1056
|
+
|
|
1057
|
+
/**
|
|
1058
|
+
* Compares this matrix to the provided matrix componentwise and returns
|
|
1059
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
1060
|
+
* @memberof Matrix3
|
|
1061
|
+
*
|
|
1062
|
+
* @param {Matrix3} [right] The right hand side matrix.
|
|
1063
|
+
* @return {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
1064
|
+
*/
|
|
1065
|
+
Matrix3.prototype.equals = function(right) {
|
|
1066
|
+
return Matrix3.equals(this, right);
|
|
1067
|
+
};
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* Compares this matrix to the provided matrix componentwise and returns
|
|
1071
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
1072
|
+
* <code>false</code> otherwise.
|
|
1073
|
+
* @memberof Matrix3
|
|
1074
|
+
*
|
|
1075
|
+
* @param {Matrix3} [right] The right hand side matrix.
|
|
1076
|
+
* @param {Number} epsilon The epsilon to use for equality testing.
|
|
1077
|
+
* @return {Boolean} <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
|
|
1078
|
+
*
|
|
1079
|
+
* @exception {DeveloperError} epsilon is required and must be a number.
|
|
1080
|
+
*/
|
|
1081
|
+
Matrix3.prototype.equalsEpsilon = function(right, epsilon) {
|
|
1082
|
+
return Matrix3.equalsEpsilon(this, right, epsilon);
|
|
1083
|
+
};
|
|
1084
|
+
|
|
1085
|
+
/**
|
|
1086
|
+
* Creates a string representing this Matrix with each row being
|
|
1087
|
+
* on a separate line and in the format '(column0, column1, column2)'.
|
|
1088
|
+
* @memberof Matrix3
|
|
1089
|
+
*
|
|
1090
|
+
* @return {String} A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2)'.
|
|
1091
|
+
*/
|
|
1092
|
+
Matrix3.prototype.toString = function() {
|
|
1093
|
+
return '(' + this[0] + ', ' + this[3] + ', ' + this[6] + ')\n' +
|
|
1094
|
+
'(' + this[1] + ', ' + this[4] + ', ' + this[7] + ')\n' +
|
|
1095
|
+
'(' + this[2] + ', ' + this[5] + ', ' + this[8] + ')';
|
|
1096
|
+
};
|
|
1097
|
+
|
|
1098
|
+
return Matrix3;
|
|
1099
|
+
});
|