001 package com.croftsoft.core.math.matrix;
002
003 /***********************************************************************
004 * Implementation of interface Matrix3x3Mut.
005 *
006 * @version
007 * $Id: Matrix3x3Imp.java,v 1.5 2008/05/09 19:48:45 croft Exp $
008 * @since
009 * 2008-04-25
010 * @author
011 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
012 ***********************************************************************/
013
014 public final class Matrix3x3Imp
015 extends MatrixImp
016 implements Matrix3x3Mut
017 ////////////////////////////////////////////////////////////////////////
018 ////////////////////////////////////////////////////////////////////////
019 {
020
021 public Matrix3x3Imp ( )
022 ////////////////////////////////////////////////////////////////////////
023 {
024 super ( 3, 3 );
025 }
026
027 public Matrix3x3Imp ( final Matrix matrix )
028 ////////////////////////////////////////////////////////////////////////
029 {
030 super ( 3, 3 );
031
032 if ( matrix.getRowCount ( ) != 3 )
033 {
034 throw new IllegalArgumentException ( "rowCount != 3" );
035 }
036
037 if ( matrix.getColumnCount ( ) != 3 )
038 {
039 throw new IllegalArgumentException ( "columnCount != 3" );
040 }
041
042 for ( int row = 0; row < 3; row++ )
043 {
044 for ( int column = 0; column < 3; column++ )
045 {
046 set ( row, column, matrix.get ( row, column ) );
047 }
048 }
049 }
050
051 public Matrix3x3Imp ( final double [ ] [ ] values )
052 ////////////////////////////////////////////////////////////////////////
053 {
054 super ( values );
055
056 if ( rowCount != 3 )
057 {
058 throw new IllegalArgumentException ( "rowCount != 3" );
059 }
060
061 if ( columnCount != 3 )
062 {
063 throw new IllegalArgumentException ( "columnCount != 3" );
064 }
065 }
066
067 public Matrix3x3Imp (
068 final double v00,
069 final double v01,
070 final double v02,
071 final double v10,
072 final double v11,
073 final double v12,
074 final double v20,
075 final double v21,
076 final double v22 )
077 ////////////////////////////////////////////////////////////////////////
078 {
079 super ( 3, 3 );
080
081 set ( 0, 0, v00 );
082
083 set ( 0, 1, v01 );
084
085 set ( 0, 2, v02 );
086
087 set ( 1, 0, v10 );
088
089 set ( 1, 1, v11 );
090
091 set ( 1, 2, v12 );
092
093 set ( 2, 0, v20 );
094
095 set ( 2, 1, v21 );
096
097 set ( 2, 2, v22 );
098 }
099
100 ////////////////////////////////////////////////////////////////////////
101 ////////////////////////////////////////////////////////////////////////
102
103 public Matrix3x3Mut multiply3x3 ( final Matrix3x3 matrix3x3 )
104 ////////////////////////////////////////////////////////////////////////
105 {
106 return Matrix3x3Lib.multiply3x3 ( this, matrix3x3 );
107 }
108
109 public double [ ] toEulerAngles ( )
110 ////////////////////////////////////////////////////////////////////////
111 {
112 return Matrix3x3Lib.toEulerAngles ( this );
113 }
114
115 public Matrix3x3Mut transpose3x3 ( )
116 ////////////////////////////////////////////////////////////////////////
117 {
118 return Matrix3x3Lib.transpose3x3 ( this );
119 }
120
121 ////////////////////////////////////////////////////////////////////////
122 ////////////////////////////////////////////////////////////////////////
123 }