File: Matrix3.html

package info (click to toggle)
three.js 111%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 15,212 kB
  • sloc: javascript: 133,174; makefile: 24; sh: 1
file content (206 lines) | stat: -rw-r--r-- 7,482 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="list.js"></script>
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<p class="desc">
			A class representing a 3x3 [link:https://en.wikipedia.org/wiki/Matrix_(mathematics) matrix].
		</p>

		<h2>Example</h2>
		<code>
var m = new Matrix3();
		</code>

		<h2>A Note on Row-Major and Column-Major Ordering</h2>
		<p>
			The [page:set]() method takes arguments in [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order row-major]
			order, while internally they are stored in the [page:.elements elements] array in column-major order.<br /><br />

			This means that calling
		<code>
m.set( 11, 12, 13,
       21, 22, 23,
       31, 32, 33 );
		</code>
		will result in the [page:.elements elements] array containing:
		<code>
m.elements = [ 11, 21, 31,
              12, 22, 32,
              13, 23, 33 ];
		</code>
		and internally all calculations are performed using column-major ordering. However, as the actual ordering
		makes no difference mathematically and most people are used to thinking about matrices in row-major order,
		the three.js documentation shows matrices in row-major order. Just bear in mind that if you are reading the source
		code, you'll have to take the [link:https://en.wikipedia.org/wiki/Transpose transpose] of any matrices outlined here to make sense of the calculations.
		</p>

		<h2>Constructor</h2>


		<h3>[name]()</h3>
		<p>
		Creates and initializes the [name] to the 3x3
		[link:https://en.wikipedia.org/wiki/Identity_matrix identity matrix].
		</p>



		<h2>Properties</h2>

		<h3>[property:Array elements]</h3>
		<p>
		A [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order column-major]
		 list of matrix values.
		</p>

		<h3>[property:Boolean isMatrix3]</h3>
		<p>
			Used to check whether this or derived classes are Matrix3s. Default is *true*.<br /><br />

			You should not change this, as it used internally for optimisation.
		</p>



		<h2>Methods</h2>

		<h3>[method:Array applyToBufferAttribute]( [param:BufferAttribute attribute] )</h3>
		<p>
		[page:BufferAttribute attribute] - An attribute of floats that represent 3D vectors.<br /><br />

		Multiplies (applies) this matrix to every 3D vector in the [page:BufferAttribute attribute].
		</p>


		<h3>[method:Matrix3 clone]()</h3>
		<p>Creates a new Matrix3 and with identical elements to this one.</p>

		<h3>[method:this copy]( [param:Matrix3 m] )</h3>
		<p>Copies the elements of matrix [page:Matrix3 m] into this matrix.</p>

		<h3>[method:Float determinant]()</h3>
		<p>
		Computes and returns the
		[link:https://en.wikipedia.org/wiki/Determinant determinant] of this matrix.
		</p>

		<h3>[method:Boolean equals]( [param:Matrix3 m] )</h3>
		<p>Return true if this matrix and [page:Matrix3 m] are equal.</p>

		<h3>[method:this fromArray]( [param:Array array], [param:Integer offset] )</h3>
		<p>
		[page:Array array] - the array to read the elements from.<br />
		[page:Integer offset] - (optional) index of first element in the array. Default is 0.<br /><br />

		Sets the elements of this matrix based on an array in
		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] format.
		</p>

		<h3>[method:this getInverse]( [param:Matrix3 m], [param:Boolean throwOnDegenerate] )</h3>
		<p>
		[page:Matrix3 m] - the matrix to take the inverse of.<br />
		[page:Boolean throwOnDegenerate] - (optional) If true, throw an error if the matrix is degenerate (not invertible).<br /><br />

		Set this matrix to the [link:https://en.wikipedia.org/wiki/Invertible_matrix inverse] of the passed matrix [page:Matrix3 m],
		using the [link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution analytic method].

		If [page:Boolean throwOnDegenerate] is not set and the matrix is not invertible, set this to the 3x3 identity matrix.
		</p>

		<h3>[method:this getNormalMatrix]( [param:Matrix4 m] )</h3>
		<p>
		[page:Matrix4 m] - [page:Matrix4]<br /><br />

		Sets this matrix as the upper left 3x3 of the [link:https://en.wikipedia.org/wiki/Normal_matrix normal matrix]
		of the passed [page:Matrix4 matrix4]. The normal matrix is the [link:https://en.wikipedia.org/wiki/Invertible_matrix inverse] [link:https://en.wikipedia.org/wiki/Transpose transpose]
	  of the matrix [page:Matrix4 m].
		</p>

		<h3>[method:this identity]()</h3>
		<p>
		Resets this matrix to the 3x3 identity matrix:
		<code>
1, 0, 0
0, 1, 0
0, 0, 1
		</code>

		</p>

		<h3>[method:this multiply]( [param:Matrix3 m] )</h3>
		<p>Post-multiplies this matrix by [page:Matrix3 m].</p>

		<h3>[method:this multiplyMatrices]( [param:Matrix3 a], [param:Matrix3 b] )</h3>
		<p>Sets this matrix to [page:Matrix3 a] x [page:Matrix3 b].</p>

		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
		<p>Multiplies every component of the matrix by the scalar value *s*.</p>

		<h3>[method:this set]( [param:Float n11], [param:Float n12], [param:Float n13], [param:Float n21], [param:Float n22], [param:Float n23], [param:Float n31], [param:Float n32], [param:Float n33] )</h3>
		<p>
		[page:Float n11] - value to put in row 1, col 1.<br />
		[page:Float n12] - value to put in row 1, col 2.<br />
		...<br />
		...<br />
		[page:Float n32] - value to put in row 3, col 2.<br />
		[page:Float n33] - value to put in row 3, col 3.<br /><br />

		Sets the 3x3 matrix values to the given
		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order row-major]
		sequence of values.
		</p>

		<h3>[method:this premultiply]( [param:Matrix3 m] )</h3>
		<p>Pre-multiplies this matrix by [page:Matrix3 m].</p>

		<h3>[method:this setFromMatrix4]( [param:Matrix4 m] )</h3>
		<p>Set this matrx to the upper 3x3 matrix of the Matrix4 [page:Matrix4 m].</p>

		<h3>[method:this setUvTransform]( [param:Float tx], [param:Float ty], [param:Float sx], [param:Float sy], [param:Float rotation], [param:Float cx], [param:Float cy] )</h3>
		<p>
		[page:Float tx] - offset x<br />
		[page:Float ty] - offset y<br />
		[page:Float sx] - repeat x<br />
		[page:Float sy] - repeat y<br />
		[page:Float rotation] - rotation (in radians)<br />
		[page:Float cx] - center x of rotation<br />
		[page:Float cy] - center y of rotation<br /><br />

		Sets the UV transform matrix from offset, repeat, rotation, and center.
		</p>

		<h3>[method:Array toArray]( [param:Array array], [param:Integer offset] )</h3>
		<p>
		[page:Array array] - (optional) array to store the resulting vector in. If not given a new array will be created.<br />
		[page:Integer offset] - (optional) offset in the array at which to put the result.<br /><br />

		Writes the elements of this matrix to an array in
		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] format.
		</p>

		<h3>[method:this transpose]()</h3>
		<p>[link:https://en.wikipedia.org/wiki/Transpose Transposes] this matrix in place.</p>

		<h3>[method:this transposeIntoArray]( [param:Array array] )</h3>
		<p>
		[page:Array array] -  array to store the resulting vector in.<br /><br />

		[link:https://en.wikipedia.org/wiki/Transpose Transposes] this matrix into the supplied array,
		and returns itself unchanged.
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>