Click or drag to resize

Matrix Class

Represents an arbitrarily sized matrix of double-precision floating point numbers. If you are working with a 4x4 matrix, then you may want to use the Transform class instead.
Inheritance Hierarchy
SystemObject
  Rhino.GeometryMatrix

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public class Matrix : IDisposable

The Matrix type exposes the following members.

Constructors
  NameDescription
Public methodMatrix(Transform)
Initializes a new instance of the matrix based on a 4x4 matrix Transform.
Public methodMatrix(Int32, Int32)
Initializes a new instance of the matrix.
Top
Properties
  NameDescription
Public propertyColumnCount
Gets the amount of columns.
Public propertyIsColumnOrthogonal
Gets a value indicating whether the matrix is column orthogonal.
Public propertyIsColumnOrthoNormal
Gets a value indicating whether the matrix is column orthonormal.
Public propertyIsRowOrthogonal
Gets a value indicating whether the matrix is row orthogonal.
Public propertyIsRowOrthoNormal
Gets a value indicating whether the matrix is row orthonormal.
Public propertyIsSquare
Gets a value indicating whether this matrix has the same number of rows and columns. 0x0 matrices are not considered square.
Public propertyIsValid
Gets a value indicating whether this matrix is valid.
Public propertyItem
Gets or sets the matrix value at the given row and column indices.
Public propertyRowCount
Gets the amount of rows.
Top
Methods
  NameDescription
Public methodBackSolve
Solves M*x=b where M is upper triangular with a unit diagonal and b is a column of values.
Public methodBackSolvePoints
Solves M*x=b where M is upper triangular with a unit diagonal and b is a column of 3d points.
Public methodDispose
Actively reclaims unmanaged resources that this instance uses.
Protected methodDispose(Boolean)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

Public methodDuplicate
Create a duplicate of this matrix.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Overrides ObjectFinalize.)
Public methodGetHashCode
Gets the hash code for this matrix. The hash code will change when the matrix changes so you cannot change matrices while they are stored in hash tables.
(Overrides ObjectGetHashCode.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInvert
Modifies this matrix to become its own inverse.

Matrix might be non-invertible (singular) and the return value will be false.

Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodRowReduce(Double, Point3d, Double)
Row reduces a matrix as the first step in solving M*X=b where b is a column of 3d points.
Public methodRowReduce(Double, Double, Double)
Row reduces a matrix to calculate rank and determinant.
Public methodRowReduce(Double, Double, Double)
Row reduces a matrix as the first step in solving M*X=b where b is a column of values.
Public methodScale
Modifies the current matrix by multiplying its values by a number.
Public methodSetDiagonal
Sets diagonal value and zeros off all non-diagonal values.
Public methodSwapColumns
Exchanges two columns.
Public methodSwapRows
Exchanges two rows.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTranspose
Modifies this matrix to be its transpose.

This is like swapping rows with columns.

http://en.wikipedia.org/wiki/Transpose

Public methodZero
Sets all values inside the matrix to zero.
Top
Operators
  NameDescription
Public operatorStatic memberAddition
Adds two matrices and returns a new sum matrix.
Public operatorStatic memberMultiply
Multiplies two matrices and returns a new product matrix.
Top
See Also