Files
openlayers/master/examples/Matrix4.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

11813 lines
214 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<title>Matrix4 - Cesium Documentation</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/node-dark.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
<script src="javascript/all.js"></script>
<!-- Syntax Highlighting -->
<link rel="stylesheet" href="styles/shCore.css" media="all"></link>
<link rel="stylesheet" href="styles/shThemeDefault.css" media="all"></link>
<script src="javascript/shCore.js"></script>
<script src="javascript/shBrushJScript.js"></script>
</head>
<body>
<div class="nav">
<div class="menu">
<a href="http://cesium.agi.com/"><img src="images/CesiumLogo.jpg" class="menuLogo"/></a>
<div class="rightLinks indexLinks">
<a href="index.html">top</a>
</div>
<div class="indexLinks">
<a id="allLink">all</a>
<a id="jsIndexLink">js</a>
<a id="glslIndexLink">glsl</a>
</div>
<div class="divider"></div>
<form name="filterForm" method="get" onsubmit="return false;">
<input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input>
<input type="hidden" id="filterType" value="all"/>
</form>
<ul id="ClassList"><div id="classItems"><li><a href="AnimationCollection.html">AnimationCollection</a></li><li><a href="AnimationController.html">AnimationController</a></li><li><a href="ArcGisMapServerImageryProvider.html">ArcGisMapServerImageryProvider</a></li><li><a href="AxisAlignedBoundingBox.html">AxisAlignedBoundingBox</a></li><li><a href="Billboard.html">Billboard</a></li><li><a href="BillboardCollection.html">BillboardCollection</a></li><li><a href="BingMapsImageryProvider.html">BingMapsImageryProvider</a></li><li><a href="BoundingRectangle.html">BoundingRectangle</a></li><li><a href="BoundingSphere.html">BoundingSphere</a></li><li><a href="Buffer.html">Buffer</a></li><li><a href="Camera.html">Camera</a></li><li><a href="CameraController.html">CameraController</a></li><li><a href="CameraEventAggregator.html">CameraEventAggregator</a></li><li><a href="Cartesian2.html">Cartesian2</a></li><li><a href="Cartesian3.html">Cartesian3</a></li><li><a href="Cartesian4.html">Cartesian4</a></li><li><a href="Cartographic.html">Cartographic</a></li><li><a href="CatmullRomSpline.html">CatmullRomSpline</a></li><li><a href="CentralBody.html">CentralBody</a></li><li><a href="CesiumViewerWidget.html">CesiumViewerWidget</a></li><li><a href="Clock.html">Clock</a></li><li><a href="Color.html">Color</a></li><li><a href="Command.html">Command</a></li><li><a href="CommandLists.html">CommandLists</a></li><li><a href="ComplexConicSensorVolume.html">ComplexConicSensorVolume</a></li><li><a href="CompositeDynamicObjectCollection.html">CompositeDynamicObjectCollection</a></li><li><a href="CompositePrimitive.html">CompositePrimitive</a></li><li><a href="Context.html">Context</a></li><li><a href="CubeMap.html">CubeMap</a></li><li><a href="CubeMapFace.html">CubeMapFace</a></li><li><a href="CustomSensorVolume.html">CustomSensorVolume</a></li><li><a href="DefaultProxy.html">DefaultProxy</a></li><li><a href="Deferred.html">Deferred</a></li><li><a href="DeveloperError.html">DeveloperError</a></li><li><a href="DiscardMissingTileImagePolicy.html">DiscardMissingTileImagePolicy</a></li><li><a href="DynamicBillboard.html">DynamicBillboard</a></li><li><a href="DynamicBillboardVisualizer.html">DynamicBillboardVisualizer</a></li><li><a href="DynamicColorMaterial.html">DynamicColorMaterial</a></li><li><a href="DynamicCone.html">DynamicCone</a></li><li><a href="DynamicConeVisualizer.html">DynamicConeVisualizer</a></li><li><a href="DynamicConeVisualizerUsingCustomSensor.html">DynamicConeVisualizerUsingCustomSensor</a></li><li><a href="DynamicDirectionsProperty.html">DynamicDirectionsProperty</a></li><li><a href="DynamicEllipsoid.html">DynamicEllipsoid</a></li><li><a href="DynamicEllipsoidVisualizer.html">DynamicEllipsoidVisualizer</a></li><li><a href="DynamicImageMaterial.html">DynamicImageMaterial</a></li><li><a href="DynamicLabel.html">DynamicLabel</a></li><li><a href="DynamicLabelVisualizer.html">DynamicLabelVisualizer</a></li><li><a href="DynamicMaterialProperty.html">DynamicMaterialProperty</a></li><li><a href="DynamicObject.html">DynamicObject</a></li><li><a href="DynamicObjectCollection.html">DynamicObjectCollection</a></li><li><a href="DynamicPath.html">DynamicPath</a></li><li><a href="DynamicPathVisualizer.html">DynamicPathVisualizer</a></li><li><a href="DynamicPoint.html">DynamicPoint</a></li><li><a href="DynamicPointVisualizer.html">DynamicPointVisualizer</a></li><li><a href="DynamicPolygon.html">DynamicPolygon</a></li><li><a href="DynamicPolygonVisualizer.html">DynamicPolygonVisualizer</a></li><li><a href="DynamicPolyline.html">DynamicPolyline</a></li><li><a href="DynamicPolylineVisualizer.html">DynamicPolylineVisualizer</a></li><li><a href="DynamicPositionProperty.html">DynamicPositionProperty</a></li><li><a href="DynamicProperty.html">DynamicProperty</a></li><li><a href="DynamicPyramid.html">DynamicPyramid</a></li><li><a href="DynamicPyramidVisualizer.html">DynamicPyramidVisualizer</a></li><li><a href="DynamicVertexPositionsProperty.html">DynamicVertexPositionsProperty</a></li><li><a href="Ellipsoid.html">Ellipsoid</a></li><li><a href="EllipsoidalOccluder.html">EllipsoidalOccluder</a></li><li><a href="EllipsoidPrimitive.html">EllipsoidPrimitive</a></li><li><a href="EllipsoidTangentPlane.html">EllipsoidTangentPlane</a></li><li><a href="EncodedCartesian3.html">EncodedCartesian3</a></li><li><a href="Enumeration.html">Enumeration</a></li><li><a href="Event.html">Event</a></li><li><a href="Extent.html">Extent</a></li><li><a href="Framebuffer.html">Framebuffer</a></li><li><a href="FrameState.html">FrameState</a></li><li><a href="FrustumCommands.html">FrustumCommands</a></li><li><a href="GeographicProjection.html">GeographicProjection</a></li><li><a href="GeographicTilingScheme.html">GeographicTilingScheme</a></li><li><a href="GregorianDate.html">GregorianDate</a></li><li><a href="HermiteSpline.html">HermiteSpline</a></li><li><a href="ImageryLayer.html">ImageryLayer</a></li><li><a href="ImageryLayerCollection.html">ImageryLayerCollection</a></li><li><a href="ImageryProvider.html">ImageryProvider</a></li><li><a href="Interval.html">Interval</a></li><li><a href="JulianDate.html">JulianDate</a></li><li><a href="Label.html">Label</a></li><li><a href="LabelCollection.html">LabelCollection</a></li><li><a href="LeapSecond.html">LeapSecond</a></li><li><a href="Material.html">Material</a></li><li><a href="Matrix2.html">Matrix2</a></li><li><a href="Matrix3.html">Matrix3</a></li><li><a href="Matrix4.html">Matrix4</a></li><li><a href="NeverTileDiscardPolicy.html">NeverTileDiscardPolicy</a></li><li><a href="Occluder.html">Occluder</a></li><li><a href="OpenStreetMapImageryProvider.html">OpenStreetMapImageryProvider</a></li><li><a href="OrientationInterpolator.html">OrientationInterpolator</a></li><li><a href="OrthographicFrustum.html">OrthographicFrustum</a></li><li><a href="PerformanceDisplay.html">PerformanceDisplay</a></li><li><a href="PerspectiveFrustum.html">PerspectiveFrustum</a></li><li><a href="PerspectiveOffCenterFrustum.html">PerspectiveOffCenterFrustum</a></li><li><a href="PickFramebuffer.html">PickFramebuffer</a></li><li><a href="Polygon.html">Polygon</a></li><li><a href="Polyline.html">Polyline</a></li><li><a href="PolylineCollection.html">PolylineCollection</a></li><li><a href="Promise.html">Promise</a></li><li><a href="Quaternion.html">Quaternion</a></li><li><a href="Queue.html">Queue</a></li><li><a href="Ray.html">Ray</a></li><li><a href="RectangularPyramidSensorVolume.html">RectangularPyramidSensorVolume</a></li><li><a href="ReferenceProperty.html">ReferenceProperty</a></li><li><a href="RequestErrorEvent.html">RequestErrorEvent</a></li><li><a href="RuntimeError.html">RuntimeError</a></li><li><a href="Scene.html">Scene</a></li><li><a href="SceneTransitioner.html">SceneTransitioner</a></li><li><a href="ScreenSpaceCameraController.html">ScreenSpaceCameraController</a></li><li><a href="ScreenSpaceEventHandler.html">ScreenSpaceEventHandler</a></li><li><a href="SensorVolumeCollection.html">SensorVolumeCollection</a></li><li><a href="ShaderCache.html">ShaderCache</a></li><li><a href="ShaderProgram.html">ShaderProgram</a></li><li><a href="SingleTileImageryProvider.html">SingleTileImageryProvider</a></li><li><a href="SkyAtmosphere.html">SkyAtmosphere</a></li><li><a href="SkyBox.html">SkyBox</a></li><li><a href="Spherical.html">Spherical</a></li><li><a href="TaskProcessor.html">TaskProcessor</a></li><li><a href="Texture.html">Texture</a></li><li><a href="Texture2DPool.html">Texture2DPool</a></li><li><a href="TextureAtlas.html">TextureAtlas</a></li><li><a href="TextureAtlasBuilder.html">TextureAtlasBuilder</a></li><li><a href="TileDiscardPolicy.html">TileDiscardPolicy</a></li><li><a href="TileMapServiceImageryProvider.html">TileMapServiceImageryProvider</a></li><li><a href="TilingScheme.html">TilingScheme</a></li><li><a href="TimeInterval.html">TimeInterval</a></li><li><a href="TimeIntervalCollection.html">TimeIntervalCollection</a></li><li><a href="Uniform.html">Uniform</a></li><li><a href="UniformArray.html">UniformArray</a></li><li><a href="UniformState.html">UniformState</a></li><li><a href="VertexArray.html">VertexArray</a></li><li><a href="VertexArrayFacade.html">VertexArrayFacade</a></li><li><a href="ViewportQuad.html">ViewportQuad</a></li><li><a href="VisualizerCollection.html">VisualizerCollection</a></li><li><a href="WebMapServiceImageryProvider.html">WebMapServiceImageryProvider</a></li><li><a href="WebMercatorProjection.html">WebMercatorProjection</a></li><li><a href="WebMercatorTilingScheme.html">WebMercatorTilingScheme</a></li><li><a href="binarySearch.html">binarySearch</a></li><li><a href="BingMapsStyle.html">BingMapsStyle</a></li><li><a href="BlendEquation.html">BlendEquation</a></li><li><a href="BlendFunction.html">BlendFunction</a></li><li><a href="BlendingState.html">BlendingState</a></li><li><a href="BoxTessellator.html">BoxTessellator</a></li><li><a href="BufferUsage.html">BufferUsage</a></li><li><a href="CameraColumbusViewMode.html">CameraColumbusViewMode</a></li><li><a href="CameraEventType.html">CameraEventType</a></li><li><a href="CameraFlightPath.html">CameraFlightPath</a></li><li><a href="CesiumMath.html">CesiumMath</a></li><li><a href="ClockRange.html">ClockRange</a></li><li><a href="ClockStep.html">ClockStep</a></li><li><a href="combine.html">combine</a></li><li><a href="computeSunPosition.html">computeSunPosition</a></li><li><a href="createGuid.html">createGuid</a></li><li><a href="createTaskProcessorWorker.html">createTaskProcessorWorker</a></li><li><a href="CubeMapEllipsoidTessellator.html">CubeMapEllipsoidTessellator</a></li><li><a href="CubicRealPolynomial.html">CubicRealPolynomial</a></li><li><a href="CullFace.html">CullFace</a></li><li><a href="CzmlBoolean.html">CzmlBoolean</a></li><li><a href="CzmlCartesian2.html">CzmlCartesian2</a></li><li><a href="CzmlCartesian3.html">CzmlCartesian3</a></li><li><a href="CzmlCartographic.html">CzmlCartographic</a></li><li><a href="CzmlColor.html">CzmlColor</a></li><li><a href="CzmlDefaults.html">CzmlDefaults</a></li><li><a href="CzmlHorizontalOrigin.html">CzmlHorizontalOrigin</a></li><li><a href="CzmlImage.html">CzmlImage</a></li><li><a href="CzmlLabelStyle.html">CzmlLabelStyle</a></li><li><a href="CzmlNumber.html">CzmlNumber</a></li><li><a href="CzmlString.html">CzmlString</a></li><li><a href="CzmlUnitCartesian3.html">CzmlUnitCartesian3</a></li><li><a href="CzmlUnitQuaternion.html">CzmlUnitQuaternion</a></li><li><a href="CzmlUnitSpherical.html">CzmlUnitSpherical</a></li><li><a href="CzmlVerticalOrigin.html">CzmlVerticalOrigin</a></li><li><a href="defaultValue.html">defaultValue</a></li><li><a href="DepthFunction.html">DepthFunction</a></li><li><a href="destroyObject.html">destroyObject</a></li><li><a href="ExtentTessellator.html">ExtentTessellator</a></li><li><a href="FAR.html">FAR</a></li><li><a href="FeatureDetection.html">FeatureDetection</a></li><li><a href="freezeObject.html">freezeObject</a></li><li><a href="Fullscreen.html">Fullscreen</a></li><li><a href="getImagePixels.html">getImagePixels</a></li><li><a href="HermitePolynomialApproximation.html">HermitePolynomialApproximation</a></li><li><a href="HorizontalOrigin.html">HorizontalOrigin</a></li><li><a href="IndexDatatype.html">IndexDatatype</a></li><li><a href="Intersect.html">Intersect</a></li><li><a href="IntersectionTests.html">IntersectionTests</a></li><li><a href="Iso8601.html">Iso8601</a></li><li><a href="jsonp.html">jsonp</a></li><li><a href="KeyboardEventModifier.html">KeyboardEventModifier</a></li><li><a href="LabelStyle.html">LabelStyle</a></li><li><a href="LagrangePolynomialApproximation.html">LagrangePolynomialApproximation</a></li><li><a href="LinearApproximation.html">LinearApproximation</a></li><li><a href="loadArrayBuffer.html">loadArrayBuffer</a></li><li><a href="loadCubeMap.html">loadCubeMap</a></li><li><a href="loadImage.html">loadImage</a></li><li><a href="loadJson.html">loadJson</a></li><li><a href="loadText.html">loadText</a></li><li><a href="loadXML.html">loadXML</a></li><li><a href="MeshFilters.html">MeshFilters</a></li><li><a href="MipmapHint.html">MipmapHint</a></li><li><a href="PixelDatatype.html">PixelDatatype</a></li><li><a href="PixelFormat.html">PixelFormat</a></li><li><a href="PlaneTessellator.html">PlaneTessellator</a></li><li><a href="pointInsideTriangle2D.html">pointInsideTriangle2D</a></li><li><a href="PolygonPipeline.html">PolygonPipeline</a></li><li><a href="PolylinePipeline.html">PolylinePipeline</a></li><li><a href="PrimitiveType.html">PrimitiveType</a></li><li><a href="processCzml.html">processCzml</a></li><li><a href="Projections.html">Projections</a></li><li><a href="QuadraticRealPolynomial.html">QuadraticRealPolynomial</a></li><li><a href="QuarticRealPolynomial.html">QuarticRealPolynomial</a></li><li><a href="RenderbufferFormat.html">RenderbufferFormat</a></li><li><a href="requestAnimationFrame.html">requestAnimationFrame</a></li><li><a href="SceneMode.html">SceneMode</a></li><li><a href="ScreenSpaceEventType.html">ScreenSpaceEventType</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="StencilFunction.html">StencilFunction</a></li><li><a href="StencilOperation.html">StencilOperation</a></li><li><a href="TextureMagnificationFilter.html">TextureMagnificationFilter</a></li><li><a href="TextureMinificationFilter.html">TextureMinificationFilter</a></li><li><a href="TextureWrap.html">TextureWrap</a></li><li><a href="TimeConstants.html">TimeConstants</a></li><li><a href="TimeStandard.html">TimeStandard</a></li><li><a href="Tipsify.html">Tipsify</a></li><li><a href="Transforms.html">Transforms</a></li><li><a href="TridiagonalSystemSolver.html">TridiagonalSystemSolver</a></li><li><a href="UniformDatatype.html">UniformDatatype</a></li><li><a href="VertexLayout.html">VertexLayout</a></li><li><a href="VerticalOrigin.html">VerticalOrigin</a></li><li><a href="Visibility.html">Visibility</a></li><li><a href="WindingOrder.html">WindingOrder</a></li><li><a href="ComponentDatatype.html">ComponentDatatype</a></li></div><div id="glslItems"><li><a href="czm_cellular.html">czm_cellular</a></li><li><a href="czm_columbusView.html">czm_columbusView</a></li><li><a href="czm_columbusViewMorph.html">czm_columbusViewMorph</a></li><li><a href="czm_complement.html">czm_complement</a></li><li><a href="czm_cone.html">czm_cone</a></li><li><a href="czm_coneContainsPoint.html">czm_coneContainsPoint</a></li><li><a href="czm_degreesPerRadian.html">czm_degreesPerRadian</a></li><li><a href="czm_eastNorthUpToEyeCoordinates.html">czm_eastNorthUpToEyeCoordinates</a></li><li><a href="czm_ellipsoid.html">czm_ellipsoid</a></li><li><a href="czm_ellipsoidContainsPoint.html">czm_ellipsoidContainsPoint</a></li><li><a href="czm_ellipsoidNew.html">czm_ellipsoidNew</a></li><li><a href="czm_ellipsoidSilhouetteCone.html">czm_ellipsoidSilhouetteCone</a></li><li><a href="czm_ellipsoidSilhouetteConeNew.html">czm_ellipsoidSilhouetteConeNew</a></li><li><a href="czm_ellipsoidSilhouetteConeNormal.html">czm_ellipsoidSilhouetteConeNormal</a></li><li><a href="czm_ellipsoidSilhouetteHalfspace.html">czm_ellipsoidSilhouetteHalfspace</a></li><li><a href="czm_ellipsoidSilhouetteHalfspaceNew.html">czm_ellipsoidSilhouetteHalfspaceNew</a></li><li><a href="czm_ellipsoidWgs84TextureCoordinates.html">czm_ellipsoidWgs84TextureCoordinates</a></li><li><a href="czm_emptyRaySegment.html">czm_emptyRaySegment</a></li><li><a href="czm_encodedCameraPositionMCHigh.html">czm_encodedCameraPositionMCHigh</a></li><li><a href="czm_encodedCameraPositionMCLow.html">czm_encodedCameraPositionMCLow</a></li><li><a href="czm_entireFrustum.html">czm_entireFrustum</a></li><li><a href="czm_epsilon1.html">czm_epsilon1</a></li><li><a href="czm_epsilon2.html">czm_epsilon2</a></li><li><a href="czm_epsilon3.html">czm_epsilon3</a></li><li><a href="czm_epsilon4.html">czm_epsilon4</a></li><li><a href="czm_epsilon5.html">czm_epsilon5</a></li><li><a href="czm_epsilon6.html">czm_epsilon6</a></li><li><a href="czm_epsilon7.html">czm_epsilon7</a></li><li><a href="czm_equalsEpsilon.html">czm_equalsEpsilon</a></li><li><a href="czm_eyeOffset.html">czm_eyeOffset</a></li><li><a href="czm_eyeToWindowCoordinates.html">czm_eyeToWindowCoordinates</a></li><li><a href="czm_frameNumber.html">czm_frameNumber</a></li><li><a href="czm_fullRaySegment.html">czm_fullRaySegment</a></li><li><a href="czm_geodeticSurfaceNormal.html">czm_geodeticSurfaceNormal</a></li><li><a href="czm_getDefaultMaterial.html">czm_getDefaultMaterial</a></li><li><a href="czm_getWgs84EllipsoidEC.html">czm_getWgs84EllipsoidEC</a></li><li><a href="czm_halfspace.html">czm_halfspace</a></li><li><a href="czm_infiniteProjection.html">czm_infiniteProjection</a></li><li><a href="czm_infinity.html">czm_infinity</a></li><li><a href="czm_insertAt.html">czm_insertAt</a></li><li><a href="czm_intersection.html">czm_intersection</a></li><li><a href="czm_inverseModel.html">czm_inverseModel</a></li><li><a href="czm_inverseModelView.html">czm_inverseModelView</a></li><li><a href="czm_inverseNormal.html">czm_inverseNormal</a></li><li><a href="czm_inverseProjection.html">czm_inverseProjection</a></li><li><a href="czm_inverseView.html">czm_inverseView</a></li><li><a href="czm_inverseViewRotation.html">czm_inverseViewRotation</a></li><li><a href="czm_isEmpty.html">czm_isEmpty</a></li><li><a href="czm_isFull.html">czm_isFull</a></li><li><a href="czm_latitudeToWebMercatorFraction.html">czm_latitudeToWebMercatorFraction</a></li><li><a href="czm_luminance.html">czm_luminance</a></li><li><a href="czm_material.html">czm_material</a></li><li><a href="czm_materialInput.html">czm_materialInput</a></li><li><a href="czm_model.html">czm_model</a></li><li><a href="czm_modelToWindowCoordinates.html">czm_modelToWindowCoordinates</a></li><li><a href="czm_modelView.html">czm_modelView</a></li><li><a href="czm_modelViewInfiniteProjection.html">czm_modelViewInfiniteProjection</a></li><li><a href="czm_modelViewProjection.html">czm_modelViewProjection</a></li><li><a href="czm_modelViewProjectionRelativeToEye.html">czm_modelViewProjectionRelativeToEye</a></li><li><a href="czm_modelViewRelativeToEye.html">czm_modelViewRelativeToEye</a></li><li><a href="czm_moonDirectionEC.html">czm_moonDirectionEC</a></li><li><a href="czm_morphing.html">czm_morphing</a></li><li><a href="czm_multiplyWithColorBalance.html">czm_multiplyWithColorBalance</a></li><li><a href="czm_normal.html">czm_normal</a></li><li><a href="czm_oneOverPi.html">czm_oneOverPi</a></li><li><a href="czm_oneOverTwoPi.html">czm_oneOverTwoPi</a></li><li><a href="czm_phong.html">czm_phong</a></li><li><a href="czm_pi.html">czm_pi</a></li><li><a href="czm_piOverFour.html">czm_piOverFour</a></li><li><a href="czm_piOverSix.html">czm_piOverSix</a></li><li><a href="czm_piOverThree.html">czm_piOverThree</a></li><li><a href="czm_piOverTwo.html">czm_piOverTwo</a></li><li><a href="czm_pointAlongRay.html">czm_pointAlongRay</a></li><li><a href="czm_projection.html">czm_projection</a></li><li><a href="czm_quadraticRealPolynomialRealRoots.html">czm_quadraticRealPolynomialRealRoots</a></li><li><a href="czm_quadraticRoots.html">czm_quadraticRoots</a></li><li><a href="czm_radiansPerDegree.html">czm_radiansPerDegree</a></li><li><a href="czm_ray.html">czm_ray</a></li><li><a href="czm_rayConeIntersectionInterval.html">czm_rayConeIntersectionInterval</a></li><li><a href="czm_rayConeIntersectNormal.html">czm_rayConeIntersectNormal</a></li><li><a href="czm_rayEllipsoidIntersectionInterval.html">czm_rayEllipsoidIntersectionInterval</a></li><li><a href="czm_rayEllipsoidSilhouetteConeIntersectionInterval.html">czm_rayEllipsoidSilhouetteConeIntersectionInterval</a></li><li><a href="czm_rayEllipsoidSilhouetteHalfspaceIntersectionInterval.html">czm_rayEllipsoidSilhouetteHalfspaceIntersectionInterval</a></li><li><a href="czm_rayHalfspaceIntersectionInterval.html">czm_rayHalfspaceIntersectionInterval</a></li><li><a href="czm_raySegment.html">czm_raySegment</a></li><li><a href="czm_raySegmentCollection.html">czm_raySegmentCollection</a></li><li><a href="czm_raySegmentCollectionCapacity.html">czm_raySegmentCollectionCapacity</a></li><li><a href="czm_raySegmentCollectionNew.html">czm_raySegmentCollectionNew</a></li><li><a href="czm_raySphereIntersectionInterval.html">czm_raySphereIntersectionInterval</a></li><li><a href="czm_removeAt.html">czm_removeAt</a></li><li><a href="czm_scene2D.html">czm_scene2D</a></li><li><a href="czm_scene3D.html">czm_scene3D</a></li><li><a href="czm_snoise.html">czm_snoise</a></li><li><a href="czm_sphere.html">czm_sphere</a></li><li><a href="czm_sphereNormal.html">czm_sphereNormal</a></li><li><a href="global.html#czm_subtraction">czm_subtraction</a></li><li><a href="czm_sunDirectionEC.html">czm_sunDirectionEC</a></li><li><a href="czm_sunDirectionWC.html">czm_sunDirectionWC</a></li><li><a href="czm_temeToPseudoFixed.html">czm_temeToPseudoFixed</a></li><li><a href="czm_threePiOver2.html">czm_threePiOver2</a></li><li><a href="czm_translateRelativeToEye.html">czm_translateRelativeToEye</a></li><li><a href="czm_transpose.html">czm_transpose</a></li><li><a href="czm_twoPi.html">czm_twoPi</a></li><li><a href="czm_view.html">czm_view</a></li><li><a href="czm_viewerPositionWC.html">czm_viewerPositionWC</a></li><li><a href="czm_viewport.html">czm_viewport</a></li><li><a href="czm_viewportOrthographic.html">czm_viewportOrthographic</a></li><li><a href="czm_viewportTransformation.html">czm_viewportTransformation</a></li><li><a href="czm_viewProjection.html">czm_viewProjection</a></li><li><a href="czm_viewRotation.html">czm_viewRotation</a></li><li><a href="czm_webMercatorMaxLatitude.html">czm_webMercatorMaxLatitude</a></li><li><a href="czm_windowToEyeCoordinates.html">czm_windowToEyeCoordinates</a></li></div></ul>
</div>
</div>
<div class="nav navStatic"></div>
<div id="main">
<h1 class="page-title">Matrix4</h1>
<section>
<header>
<h2>
Matrix4
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="Matrix4"><span class="type-signature"></span>new Matrix4</h4>
</dt>
<dd>
<p class="description">
A 4x4 matrix, indexable as a column-major order array.
Constructor parameters are in row-major order for code readability.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>column0Row0</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 0, row 0.</td>
</tr>
<tr>
<td class="name"><code>column1Row0</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 1, row 0.</td>
</tr>
<tr>
<td class="name"><code>column2Row0</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 2, row 0.</td>
</tr>
<tr>
<td class="name"><code>column3Row0</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 3, row 0.</td>
</tr>
<tr>
<td class="name"><code>column0Row1</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 0, row 1.</td>
</tr>
<tr>
<td class="name"><code>column1Row1</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 1, row 1.</td>
</tr>
<tr>
<td class="name"><code>column2Row1</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 2, row 1.</td>
</tr>
<tr>
<td class="name"><code>column3Row1</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 3, row 1.</td>
</tr>
<tr>
<td class="name"><code>column0Row2</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 0, row 2.</td>
</tr>
<tr>
<td class="name"><code>column1Row2</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 1, row 2.</td>
</tr>
<tr>
<td class="name"><code>column2Row2</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 2, row 2.</td>
</tr>
<tr>
<td class="name"><code>column3Row2</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 3, row 2.</td>
</tr>
<tr>
<td class="name"><code>column0Row3</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 0, row 3.</td>
</tr>
<tr>
<td class="name"><code>column1Row3</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 1, row 3.</td>
</tr>
<tr>
<td class="name"><code>column2Row3</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 2, row 3.</td>
</tr>
<tr>
<td class="name"><code>column3Row3</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The value for column 3, row 3.</td>
</tr>
</tbody>
</table>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 60</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Matrix4.html#fromColumnMajorArray">Matrix4.fromColumnMajorArray</a></li>
<li><a href="Matrix4.html#fromRowMajorArray">Matrix4.fromRowMajorArray</a></li>
<li><a href="Matrix4.html#fromRotationTranslation">Matrix4.fromRotationTranslation</a></li>
<li><a href="Matrix4.html#fromTranslation">Matrix4.fromTranslation</a></li>
<li><a href="Matrix4.html#fromScale">Matrix4.fromScale</a></li>
<li><a href="Matrix4.html#fromUniformScale">Matrix4.fromUniformScale</a></li>
<li><a href="Matrix4.html#fromCamera">Matrix4.fromCamera</a></li>
<li><a href="Matrix4.html#computePerspectiveFieldOfView">Matrix4.computePerspectiveFieldOfView</a></li>
<li><a href="Matrix4.html#computeOrthographicOffCenter">Matrix4.computeOrthographicOffCenter</a></li>
<li><a href="Matrix4.html#computePerspectiveOffCenter">Matrix4.computePerspectiveOffCenter</a></li>
<li><a href="Matrix4.html#computeInfinitePerspectiveOffCenter">Matrix4.computeInfinitePerspectiveOffCenter</a></li>
<li><a href="Matrix4.html#computeViewportTransformation">Matrix4.computeViewportTransformation</a></li>
<li><a href="Matrix2.html">Matrix2</a></li>
<li><a href="Matrix3.html">Matrix3</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="COLUMN0ROW0"><span class="type-signature">&lt;static> </span>COLUMN0ROW0<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 0, row 0.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1769</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN0ROW1"><span class="type-signature">&lt;static> </span>COLUMN0ROW1<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 0, row 1.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1775</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN0ROW2"><span class="type-signature">&lt;static> </span>COLUMN0ROW2<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 0, row 2.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1781</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN0ROW3"><span class="type-signature">&lt;static> </span>COLUMN0ROW3<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 0, row 3.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1787</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN1ROW0"><span class="type-signature">&lt;static> </span>COLUMN1ROW0<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 1, row 0.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1793</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN1ROW1"><span class="type-signature">&lt;static> </span>COLUMN1ROW1<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 1, row 1.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1799</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN1ROW2"><span class="type-signature">&lt;static> </span>COLUMN1ROW2<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 1, row 2.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1805</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN1ROW3"><span class="type-signature">&lt;static> </span>COLUMN1ROW3<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 1, row 3.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1811</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN2ROW0"><span class="type-signature">&lt;static> </span>COLUMN2ROW0<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 2, row 0.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1817</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN2ROW1"><span class="type-signature">&lt;static> </span>COLUMN2ROW1<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 2, row 1.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1823</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN2ROW2"><span class="type-signature">&lt;static> </span>COLUMN2ROW2<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 2, row 2.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1829</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN2ROW3"><span class="type-signature">&lt;static> </span>COLUMN2ROW3<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 2, row 3.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1835</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN3ROW0"><span class="type-signature">&lt;static> </span>COLUMN3ROW0<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 3, row 0.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1841</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN3ROW1"><span class="type-signature">&lt;static> </span>COLUMN3ROW1<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 3, row 1.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1847</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN3ROW2"><span class="type-signature">&lt;static> </span>COLUMN3ROW2<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 3, row 2.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1853</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="COLUMN3ROW3"><span class="type-signature">&lt;static> </span>COLUMN3ROW3<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
The index into Matrix4 for column 3, row 3.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1859</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="IDENTITY"><span class="type-signature">&lt;static> </span>IDENTITY<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
An immutable Matrix4 instance initialized to the identity matrix.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1760</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="clone"><span class="type-signature"></span>clone</h4>
</dt>
<dd>
<p class="description">
Duplicates the provided Matrix4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1868</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="equals"><span class="type-signature"></span>equals</h4>
</dt>
<dd>
<p class="description">
Compares this matrix to the provided matrix componentwise and returns
<code>true</code> if they are equal, <code>false</code> otherwise.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The right hand side matrix.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Boolean</span>
<code>true</code> if they are equal, <code>false</code> otherwise.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2070</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="equalsEpsilon"><span class="type-signature"></span>equalsEpsilon</h4>
</dt>
<dd>
<p class="description">
Compares this matrix to the provided matrix componentwise and returns
<code>true</code> if they are within the provided epsilon,
<code>false</code> otherwise.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The right hand side matrix.</td>
</tr>
<tr>
<td class="name"><code>epsilon</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The epsilon to use for equality testing.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: epsilon is required and must be a number.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Boolean</span>
<code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2086</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getColumn"><span class="type-signature"></span>getColumn</h4>
</dt>
<dd>
<p class="description">
Retrieves a copy of the matrix column at the provided index as a Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the column to retrieve.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1895</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getRotation"><span class="type-signature"></span>getRotation</h4>
</dt>
<dd>
<p class="description">
Gets the upper left 3x3 rotation matrix of this matrix, assuming the matrix is a affine transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix3.html">Matrix3</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix3.html">Matrix3</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2126</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Matrix3.html">Matrix3</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getRow"><span class="type-signature"></span>getRow</h4>
</dt>
<dd>
<p class="description">
Retrieves a copy of the matrix row at the provided index as a Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the row to retrieve.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1927</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getTranslation"><span class="type-signature"></span>getTranslation</h4>
</dt>
<dd>
<p class="description">
Gets the translation portion of this matrix, assuming the matrix is a affine transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian3.html">Cartesian3</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2113</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian3.html">Cartesian3</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="inverse"><span class="type-signature"></span>inverse</h4>
</dt>
<dd>
<p class="description">
Computes the inverse of this matrix using Cramers Rule.
If the determinant is zero, the matrix can not be inverted, and an exception is thrown.
If the matrix is an affine transformation matrix, it is more efficient
to invert it with #inverseTransformation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="RuntimeError.html">RuntimeError</a></span>
: matrix is not invertible because its determinate is zero.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2142</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="inverseTransformation"><span class="type-signature"></span>inverseTransformation</h4>
</dt>
<dd>
<p class="description">
Computes the inverse of this matrix assuming it is
an affine transformation matrix, where the upper left 3x3 elements
are a rotation matrix, and the upper three elements in the fourth
column are the translation. The bottom row is assumed to be [0, 0, 0, 1].
The matrix is not verified to be in the proper form.
This method is faster than computing the inverse for a general 4x4
matrix using #inverse.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2159</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiply"><span class="type-signature"></span>multiply</h4>
</dt>
<dd>
<p class="description">
Computes the product of this matrix and the provided matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The right hand side matrix.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: right is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1957</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByPoint"><span class="type-signature"></span>multiplyByPoint</h4>
</dt>
<dd>
<p class="description">
Computes the product of a matrix and a <a href="Cartesian3.html">Cartesian3</a>. This is equivalent to calling <a href="Matrix4.html#multiplyByVector">Matrix4#multiplyByVector</a>
with a <a href="Cartesian4.html">Cartesian4</a> with a <code>w</code> component of one.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The point.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2020</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByScalar"><span class="type-signature"></span>multiplyByScalar</h4>
</dt>
<dd>
<p class="description">
Computes the product of this matrix and a scalar.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scalar</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number to multiply by.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scalar is required and must be a number.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2034</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByTranslation"><span class="type-signature"></span>multiplyByTranslation</h4>
</dt>
<dd>
<p class="description">
Multiplies this matrix, assuming it is a transformation matrix (with a bottom row of
<code>[0.0, 0.0, 0.0, 1.0]</code>), by an implicit translation matrix defined by a <a href="Cartesian3.html">Cartesian3</a>.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>translation</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The translation on the right-hand side of the multiplication.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: translation is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1974</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByUniformScale"><span class="type-signature"></span>multiplyByUniformScale</h4>
</dt>
<dd>
<p class="description">
Multiplies this matrix, assuming it is a transformation matrix (with a bottom row of
<code>[0.0, 0.0, 0.0, 1.0]</code>), by an implicit uniform scale matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scale</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The scale on the right-hand side of the multiplication.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scale is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1991</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByVector"><span class="type-signature"></span>multiplyByVector</h4>
</dt>
<dd>
<p class="description">
Computes the product of this matrix and a column vector.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The vector.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2005</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="negate"><span class="type-signature"></span>negate</h4>
</dt>
<dd>
<p class="description">
Computes a negated copy of this matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to negate.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2047</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="setColumn"><span class="type-signature"></span>setColumn</h4>
</dt>
<dd>
<p class="description">
Computes a new matrix that replaces the specified column in this matrix with the provided Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="description last">The zero-based index of the column to set.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="description last">The Cartesian whose values will be assigned to the specified column.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1911</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="setRow"><span class="type-signature"></span>setRow</h4>
</dt>
<dd>
<p class="description">
Computes a new matrix that replaces the specified row in this matrix with the provided Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="description last">The zero-based index of the row to set.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="description last">The Cartesian whose values will be assigned to the specified row.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1943</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="toArray"><span class="type-signature"></span>toArray</h4>
</dt>
<dd>
<p class="description">
Computes an Array from this Matrix4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
Array
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The Array onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Array</span>
The modified Array parameter or a new Array instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1879</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="toString"><span class="type-signature"></span>toString</h4>
</dt>
<dd>
<p class="description">
Computes a string representing this Matrix with each row being
on a separate line and in the format '(column0, column1, column2, column3)'.
</p>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">String</span>
A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2097</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="transpose"><span class="type-signature"></span>transpose</h4>
</dt>
<dd>
<p class="description">
Computes the transpose of this matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 2058</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="clone"><span class="type-signature">&lt;static> </span>clone</h4>
</dt>
<dd>
<p class="description">
Duplicates a Matrix4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to duplicate.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 92</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="computeInfinitePerspectiveOffCenter"><span class="type-signature">&lt;static> </span>computeInfinitePerspectiveOffCenter</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing an infinite off center perspective transformation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the left of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the right of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>bottom</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters below of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>top</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters above of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>near</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the near plane in meters.</td>
</tr>
<tr>
<td class="name"><code>far</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the far plane in meters.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: left is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: right is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: bottom is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: top is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: near is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 667</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="computeOrthographicOffCenter"><span class="type-signature">&lt;static> </span>computeOrthographicOffCenter</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing an orthographic transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the left of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the right of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>bottom</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters below of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>top</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters above of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>near</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the near plane in meters.</td>
</tr>
<tr>
<td class="name"><code>far</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the far plane in meters.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: left is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: right is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: bottom is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: top is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: near is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: far is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 517</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="computePerspectiveFieldOfView"><span class="type-signature">&lt;static> </span>computePerspectiveFieldOfView</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing a perspective transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>fovY</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The field of view along the Y axis in radians.</td>
</tr>
<tr>
<td class="name"><code>aspectRatio</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The aspect ratio.</td>
</tr>
<tr>
<td class="name"><code>near</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the near plane in meters.</td>
</tr>
<tr>
<td class="name"><code>far</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the far plane in meters.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: fovY must be in [0, PI).
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: aspectRatio must be greater than zero.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: near must be greater than zero.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: far must be greater than zero.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 447</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="computePerspectiveOffCenter"><span class="type-signature">&lt;static> </span>computePerspectiveOffCenter</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing an off center perspective transformation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the left of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters to the right of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>bottom</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters below of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>top</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number of meters above of the camera that will be in view.</td>
</tr>
<tr>
<td class="name"><code>near</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the near plane in meters.</td>
</tr>
<tr>
<td class="name"><code>far</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The distance to the far plane in meters.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: left is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: right is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: bottom is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: top is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: near is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: far is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 594</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="computeViewportTransformation"><span class="type-signature">&lt;static> </span>computeViewportTransformation</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance that transforms from normalized device coordinates to window coordinates.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>viewport</code></td>
<td class="type">
Object
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{ x : 0.0, y : 0.0, width : 0.0, height : 0.0 }
</td>
<td class="description last">The viewport's corners as shown in Example 1.</td>
</tr>
<tr>
<td class="name"><code>nearDepthRange</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0.0
</td>
<td class="description last">The near plane distance in window coordinates.</td>
</tr>
<tr>
<td class="name"><code>farDepthRange</code></td>
<td class="type">
Number
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
1.0
</td>
<td class="description last">The far plane distance in window coordinates.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">// Example 1. Create viewport transformation using an explicit viewport and depth range.
var m = Matrix4.computeViewportTransformation({
x : 0.0,
y : 0.0,
width : 1024.0,
height : 768.0
}, 0.0, 1.0);
// Example 2. Create viewport transformation using the context's viewport.
var m = Matrix4.computeViewportTransformation(context.getViewport());</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 744</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="czm_viewportTransformation.html">czm_viewportTransformation</a></li>
<li>Context#getViewport</li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="equals"><span class="type-signature">&lt;static> </span>equals</h4>
</dt>
<dd>
<p class="description">
Compares the provided matrices componentwise and returns
<code>true</code> if they are equal, <code>false</code> otherwise.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The first matrix.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The second matrix.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Boolean</span>
<code>true</code> if left and right are equal, <code>false</code> otherwise.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1444</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="equalsEpsilon"><span class="type-signature">&lt;static> </span>equalsEpsilon</h4>
</dt>
<dd>
<p class="description">
Compares the provided matrices componentwise and returns
<code>true</code> if they are within the provided epsilon,
<code>false</code> otherwise.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The first matrix.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The second matrix.</td>
</tr>
<tr>
<td class="name"><code>epsilon</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The epsilon to use for equality testing.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: epsilon is required and must be a number.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Boolean</span>
<code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1479</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromCamera"><span class="type-signature">&lt;static> </span>fromCamera</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance from a Camera.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>camera</code></td>
<td class="type">
<a href="Camera.html">Camera</a>
</td>
<td class="attributes">
</td>
<td class="description last">The camera to use.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: camera is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: camera.eye is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: camera.target is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: camera.up is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 350</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromColumnMajorArray"><span class="type-signature">&lt;static> </span>fromColumnMajorArray</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance from a column-major order array.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>values</code></td>
<td class="type">
Array
</td>
<td class="attributes">
</td>
<td class="description last">The column-major order array.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: values is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 132</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromRotationTranslation"><span class="type-signature">&lt;static> </span>fromRotationTranslation</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance from a Matrix3 representing the rotation
and a Cartesian3 representing the translation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>rotation</code></td>
<td class="type">
<a href="Matrix3.html">Matrix3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The upper left portion of the matrix representing the rotation.</td>
</tr>
<tr>
<td class="name"><code>translation</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The upper right portion of the matrix representing the translation.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: rotation is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: translation is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 187</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromRowMajorArray"><span class="type-signature">&lt;static> </span>fromRowMajorArray</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance from a row-major order array.
The resulting matrix will be in column-major order.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>values</code></td>
<td class="type">
Array
</td>
<td class="attributes">
</td>
<td class="description last">The row-major order array.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: values is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 145</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromScale"><span class="type-signature">&lt;static> </span>fromScale</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing a non-uniform scale.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scale</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The x, y, and z scale factors.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scale is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">// Creates
// [7.0, 0.0, 0.0, 0.0]
// [0.0, 8.0, 0.0, 0.0]
// [0.0, 0.0, 9.0, 0.0]
// [0.0, 0.0, 0.0, 1.0]
var m = Matrix4.fromScale(new Cartesian3(7.0, 8.0, 9.0));</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 254</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromTranslation"><span class="type-signature">&lt;static> </span>fromTranslation</h4>
</dt>
<dd>
<p class="description">
Creates a Matrix4 instance from a Cartesian3 representing the translation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>translation</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The upper right portion of the matrix representing the translation.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: translation is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 232</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Matrix4.html#multiplyByTranslation">Matrix4.multiplyByTranslation</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="fromUniformScale"><span class="type-signature">&lt;static> </span>fromUniformScale</h4>
</dt>
<dd>
<p class="description">
Computes a Matrix4 instance representing a uniform scale.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scale</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The uniform scale factor.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object in which the result will be stored, if undefined a new instance will be created.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scale is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
The modified result parameter, or a new Matrix4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">// Creates
// [2.0, 0.0, 0.0, 0.0]
// [0.0, 2.0, 0.0, 0.0]
// [0.0, 0.0, 2.0, 0.0]
// [0.0, 0.0, 0.0, 1.0]
var m = Matrix4.fromScale(2.0);</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 303</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getColumn"><span class="type-signature">&lt;static> </span>getColumn</h4>
</dt>
<dd>
<p class="description">
Retrieves a copy of the matrix column at the provided index as a Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the column to retrieve.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 871</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getElementIndex"><span class="type-signature">&lt;static> </span>getElementIndex</h4>
</dt>
<dd>
<p class="description">
Computes the array index of the element at the provided row and column.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>row</code></td>
<td class="type">
Number
</td>
<td class="description last">The zero-based index of the row.</td>
</tr>
<tr>
<td class="name"><code>column</code></td>
<td class="type">
Number
</td>
<td class="description last">The zero-based index of the column.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: row is required and must be 0, 1, 2, or 3.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: column is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Number</span>
The index of the element at the provided row and column.
</div>
<h5>Example</h5>
<pre class="code brush: js">var myMatrix = new Matrix4();
var column1Row0Index = Matrix4.getElementIndex(1, 0);
var column1Row0 = myMatrix[column1Row0Index]
myMatrix[column1Row0Index] = 10.0;</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 847</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getRotation"><span class="type-signature">&lt;static> </span>getRotation</h4>
</dt>
<dd>
<p class="description">
Gets the upper left 3x3 rotation matrix of the provided matrix, assuming the matrix is a affine transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix3.html">Matrix3</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix3.html">Matrix3</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1542</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Matrix3.html">Matrix3</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getRow"><span class="type-signature">&lt;static> </span>getRow</h4>
</dt>
<dd>
<p class="description">
Retrieves a copy of the matrix row at the provided index as a Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the row to retrieve.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 945</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="getTranslation"><span class="type-signature">&lt;static> </span>getTranslation</h4>
</dt>
<dd>
<p class="description">
Gets the translation portion of the provided matrix, assuming the matrix is a affine transformation matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian3.html">Cartesian3</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1517</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian3.html">Cartesian3</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="inverse"><span class="type-signature">&lt;static> </span>inverse</h4>
</dt>
<dd>
<p class="description">
Computes the inverse of the provided matrix using Cramers Rule.
If the determinant is zero, the matrix can not be inverted, and an exception is thrown.
If the matrix is an affine transformation matrix, it is more efficient
to invert it with #inverseTransformation.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to invert.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="RuntimeError.html">RuntimeError</a></span>
: matrix is not invertible because its determinate is zero.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1577</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="inverseTransformation"><span class="type-signature">&lt;static> </span>inverseTransformation</h4>
</dt>
<dd>
<p class="description">
Computes the inverse of the provided matrix assuming it is
an affine transformation matrix, where the upper left 3x3 elements
are a rotation matrix, and the upper three elements in the fourth
column are the translation. The bottom row is assumed to be [0, 0, 0, 1].
The matrix is not verified to be in the proper form.
This method is faster than computing the inverse for a general 4x4
matrix using #inverse.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to invert.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian3 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1702</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiply"><span class="type-signature">&lt;static> </span>multiply</h4>
</dt>
<dd>
<p class="description">
Computes the product of two matrices.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>left</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The first matrix.</td>
</tr>
<tr>
<td class="name"><code>right</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The second matrix.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: left is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: right is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1016</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByPoint"><span class="type-signature">&lt;static> </span>multiplyByPoint</h4>
</dt>
<dd>
<p class="description">
Computes the product of a matrix and a <a href="Cartesian3.html">Cartesian3</a>. This is equivalent to calling <a href="Matrix4.html#multiplyByVector">Matrix4.multiplyByVector</a>
with a <a href="Cartesian4.html">Cartesian4</a> with a <code>w</code> component of one.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The point.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">Cartesian3 p = new Cartesian3(1.0, 2.0, 3.0);
Matrix4.multiplyByPoint(matrix, p, result);
// A shortcut for
// Cartesian3 p = ...
// Matrix4.multiplyByVector(matrix, new Cartesian4(p.x, p.y, p.z, 1.0), result);</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1290</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByScalar"><span class="type-signature">&lt;static> </span>multiplyByScalar</h4>
</dt>
<dd>
<p class="description">
Computes the product of a matrix and a scalar.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix.</td>
</tr>
<tr>
<td class="name"><code>scalar</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The number to multiply by.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scalar is required and must be a number.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1315</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByTranslation"><span class="type-signature">&lt;static> </span>multiplyByTranslation</h4>
</dt>
<dd>
<p class="description">
Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
by an implicit translation matrix defined by a <a href="Cartesian3.html">Cartesian3</a>. This is an optimization
for <code>Matrix4.multiply(m, Matrix4.fromTranslation(position), m);</code> with less allocations and arithmetic operations.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix on the left-hand side.</td>
</tr>
<tr>
<td class="name"><code>translation</code></td>
<td class="type">
<a href="Cartesian3.html">Cartesian3</a>
</td>
<td class="attributes">
</td>
<td class="description last">The translation on the right-hand side.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: translation is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">// Instead of Matrix4.multiply(m, Matrix4.fromTranslation(position), m);
Matrix4.multiplyByTranslation(m, position, m);</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1125</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li>Matrix4#fromTranslation</li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByUniformScale"><span class="type-signature">&lt;static> </span>multiplyByUniformScale</h4>
</dt>
<dd>
<p class="description">
Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
by an implicit uniform scale matrix. This is an optimization
for <code>Matrix4.multiply(m, Matrix4.fromScale(scale), m);</code> with less allocations and arithmetic operations.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix on the left-hand side.</td>
</tr>
<tr>
<td class="name"><code>scale</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The uniform scale on the right-hand side.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: scale is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<h5>Example</h5>
<pre class="code brush: js">// Instead of Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);
Matrix4.multiplyByUniformScale(m, scale, m);</pre>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1189</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li>Matrix4#fromUniformScale</li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="multiplyByVector"><span class="type-signature">&lt;static> </span>multiplyByVector</h4>
</dt>
<dd>
<p class="description">
Computes the product of a matrix and a column vector.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The vector.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Cartesian4.html">Cartesian4</a></span>
The modified result parameter or a new Cartesian4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1240</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="negate"><span class="type-signature">&lt;static> </span>negate</h4>
</dt>
<dd>
<p class="description">
Computes a negated copy of the provided matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to negate.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1358</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="setColumn"><span class="type-signature">&lt;static> </span>setColumn</h4>
</dt>
<dd>
<p class="description">
Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the column to set.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The Cartesian whose values will be assigned to the specified column.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 912</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="setRow"><span class="type-signature">&lt;static> </span>setRow</h4>
</dt>
<dd>
<p class="description">
Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian4 instance.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use.</td>
</tr>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
Number
</td>
<td class="attributes">
</td>
<td class="description last">The zero-based index of the row to set.</td>
</tr>
<tr>
<td class="name"><code>cartesian</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The Cartesian whose values will be assigned to the specified row.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Cartesian4.html">Cartesian4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: cartesian is required.
</div>
</li>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: index is required and must be 0, 1, 2, or 3.
</div>
</li>
</ul>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 985</li></ul></dd>
-->
<h5>See:</h5>
<ul class="see-list">
<li><a href="Cartesian4.html">Cartesian4</a></li>
</ul>
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="toArray"><span class="type-signature">&lt;static> </span>toArray</h4>
</dt>
<dd>
<p class="description">
Computes an Array from the provided Matrix4 instance.
The array will be in column-major order.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to use..</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
Array
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The Array onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type">Array</span>
The modified Array parameter or a new Array instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 801</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
<dt>
<h4 class="name" id="transpose"><span class="type-signature">&lt;static> </span>transpose</h4>
</dt>
<dd>
<p class="description">
Computes the transpose of the provided matrix.
</p>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>matrix</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
</td>
<td class="description last">The matrix to transpose.</td>
</tr>
<tr>
<td class="name"><code>result</code></td>
<td class="type">
<a href="Matrix4.html">Matrix4</a>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">The object onto which to store the result.</td>
</tr>
</tbody>
</table>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: matrix is required.
</div>
<h5>Returns:</h5>
<div class="param-desc">
<span class="param-type"><a href="Matrix4.html">Matrix4</a></span>
The modified result parameter or a new Matrix4 instance if one was not provided.
</div>
<dl class="details">
<!--
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>../../Source/Core/Matrix4.js, line 1398</li></ul></dd>
-->
</dl>
<div class="hr"></div>
</dd>
</dl>
</article>
</section>
<footer>
Documentation generated by <a href="https://github.com/micmath/jsdoc">JSDoc 3</a> on Fri Jan 18 2013 11:23:16 GMT-0500 (EST)
</footer>
</div>
<br clear="both">
<script type="text/javascript">
codeview.classFilter.Init();
if (window.frameElement) {
document.body.className = "embedded";
var ele = document.createElement('a');
ele.className = "popout";
ele.target = "_blank";
ele.href = window.location.href;
ele.innerHTML = "&raquo;";
ele.title = "Pop out";
document.getElementById('main').appendChild(ele);
}
var searchTerm = (document.URL.split('='))[1];
var show = (document.URL.split('='))[2];
if (show) {
document.getElementById("filterType").value = show;
}
if(searchTerm){
searchTerm = searchTerm.split('&')[0] || '';
document.filterForm.classFilter.value = searchTerm;
}
else {
searchTerm="";
}
codeview.filter(searchTerm);
SyntaxHighlighter.all();
</script>
<script src="javascript/indexLinks.js"></script>
</body>
</html>