Object3D.html 16.8 KB
Newer Older
1 2 3
<!DOCTYPE html>
<html lang="en">
	<head>
M
Mr.doob 已提交
4
		<meta charset="utf-8" />
M
Mr.doob 已提交
5
		<base href="../../../" />
M
Mr.doob 已提交
6 7 8
		<script src="list.js"></script>
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
9 10 11 12
	</head>
	<body>
		<h1>[name]</h1>

13
		<p class="desc">
L
Lewy Blue 已提交
14
			This is the base class for most objects in three.js and provides a set of properties and methods
L
looeee 已提交
15 16 17 18
			for manipulating objects in 3D space.<br /><br />

			Note that this can be used for grouping objects via the [page:.add]( object ) method
			which adds the object as a child, however it is better to use [page:Group] for this.
19
		</p>
20 21 22 23


		<h2>Constructor</h2>

C
cjshannon 已提交
24

25
		<h3>[name]()</h3>
26
		<p>
G
Greg Tatum 已提交
27
		The constructor takes no arguments.
28
		</p>
29 30 31 32


		<h2>Properties</h2>

L
looeee 已提交
33
		<h3>[property:Boolean castShadow]</h3>
34
		<p>Whether the object gets rendered into shadow map. Default is *false*.</p>
35

L
looeee 已提交
36
		<h3>[property:Object3D children]</h3>
37
		<p>Array with object's children. See [page:Group] for info on manually grouping objects.</p>
38

39 40 41 42 43 44 45 46 47 48
		<h3>[property:Material customDepthMaterial]</h3>
		<p>
		Custom depth material to be used when rendering to the depth map. Can only be used in context of meshes.
		When shadow-casting with a [page:DirectionalLight] or [page:SpotLight], if you are (a) modifying vertex positions in the vertex shader,
		(b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a transparent texture with alphaTest,
		you must specify a customDepthMaterial for proper shadows. Default is *undefined*.
		</p>

		<h3>[property:Material customDistanceMaterial]</h3>
		<p>
49
		Same as [page:.customDepthMaterial customDepthMaterial], but used with [page:PointLight]. Default is *undefined*.
50 51
		</p>

L
looeee 已提交
52
		<h3>[property:Boolean frustumCulled]</h3>
53
		<p>
L
looeee 已提交
54
		When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object.
55
		Otherwise the object gets rendered every frame even if it isn't visible. Default is *true*.
56
		</p>
M
Mr.doob 已提交
57

L
looeee 已提交
58
		<h3>[property:Integer id]</h3>
59
		<p>readonly – Unique number for this object instance.</p>
M
Mr.doob 已提交
60

L
looeee 已提交
61
		<h3>[property:Layers layers]</h3>
62
		<p>
L
looeee 已提交
63
		The layer membership of the object. The object is only visible if it has at least one
64 65
		layer in common with the [page:Camera] in use. This property can also be used to filter out
		unwanted objects in ray-intersection tests when using [page:Raycaster].
66
		</p>
67

L
looeee 已提交
68
		<h3>[property:Matrix4 matrix]</h3>
69
		<p>The local transform matrix.</p>
70

L
looeee 已提交
71
		<h3>[property:Boolean matrixAutoUpdate]</h3>
72
		<p>
L
looeee 已提交
73
		When this is set, it calculates the matrix of position, (rotation or quaternion) and
74
		scale every frame and also recalculates the matrixWorld property. Default is [page:Object3D.DefaultMatrixAutoUpdate] (true).
75
		</p>
76

L
looeee 已提交
77
		<h3>[property:Matrix4 matrixWorld]</h3>
78
		<p>
J
Jing Ma 已提交
79
		The global transform of the object. If the Object3D has no parent, then it's identical to
L
looeee 已提交
80
		the local transform [page:.matrix].
81
		</p>
82

L
looeee 已提交
83
		<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
84
		<p>
L
looeee 已提交
85 86
		When this is set, it calculates the matrixWorld in that frame and resets this property
		 to false. Default is *false*.
87
		</p>
88

L
looeee 已提交
89
		<h3>[property:Matrix4 modelViewMatrix]</h3>
90
		<p>This is passed to the shader and used to calculate the position of the object.</p>
91

L
looeee 已提交
92
		<h3>[property:String name]</h3>
93
		<p>Optional name of the object (doesn't need to be unique). Default is an empty string.</p>
L
looeee 已提交
94 95

		<h3>[property:Matrix3 normalMatrix]</h3>
96
		<p>
97 98 99 100 101
		This is passed to the shader and used to calculate lighting for the object. It is the transpose of the inverse of the upper left 3x3 sub-matrix of this object's modelViewMatrix.<br /><br />

		The reason for this special matrix is that simply using the modelViewMatrix could result in a non-unit length of normals (on scaling) or in a non-perpendicular direction (on non-uniform scaling).<br /><br />

		On the other hand the translation part of the modelViewMatrix is not relevant for the calculation of normals. Thus a Matrix3 is sufficient.
102
		</p>
L
looeee 已提交
103

104
		<h3>[property:Function onAfterRender]</h3>
105
		<p>
L
looeee 已提交
106 107 108
		An optional callback that is executed immediately after the Object3D is rendered.
		This function is called with the following parameters: renderer, scene, camera, geometry,
		material, group.
109
		</p>
L
looeee 已提交
110

111
		<h3>[property:Function onBeforeRender]</h3>
112
		<p>
L
looeee 已提交
113 114 115
		An optional callback that is executed immediately before the Object3D is rendered.
		This function is called with the following parameters: renderer, scene, camera, geometry,
		material, group.
116
		</p>
117

L
looeee 已提交
118
		<h3>[property:Object3D parent]</h3>
119 120
		<p>Object's parent in the [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]. An object can have at most
		one parent.</p>
L
looeee 已提交
121 122

		<h3>[property:Vector3 position]</h3>
123
		<p>A [page:Vector3] representing the object's local position. Default is (0, 0, 0).</p>
L
looeee 已提交
124 125

		<h3>[property:Quaternion quaternion]</h3>
126
		<p>Object's local rotation as a [page:Quaternion Quaternion].</p>
L
looeee 已提交
127

128
		<h3>[property:Boolean receiveShadow]</h3>
129
		<p>Whether the material receives shadows. Default is *false*.</p>
130

L
looeee 已提交
131
		<h3>[property:Number renderOrder]</h3>
132
		<p>
L
looeee 已提交
133
		This value allows the default rendering order of [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]
134 135
		objects to be overridden although opaque and transparent objects remain sorted independently. When this property
		is set for an instance of [page:Group Group], all descendants objects will be sorted and rendered together.
L
looeee 已提交
136
		Sorting is from lowest to highest renderOrder. Default value is *0*.
137
		</p>
138

L
looeee 已提交
139
		<h3>[property:Euler rotation]</h3>
140
		<p>
L
looeee 已提交
141
		Object's local rotation (see [link:https://en.wikipedia.org/wiki/Euler_angles Euler angles]), in radians.
142
		</p>
143

L
looeee 已提交
144
		<h3>[property:Vector3 scale]</h3>
145 146 147
		<p>
		The object's local scale. Default is [page:Vector3]( 1, 1, 1 ).
		</p>
148

L
looeee 已提交
149
		<h3>[property:Vector3 up]</h3>
150
		<p>
L
Lewy Blue 已提交
151 152
		This is used by the [page:.lookAt lookAt] method, for example, to determine the orientation of the result.<br />
		Default is [page:Object3D.DefaultUp] - that is, ( 0, 1, 0 ).
153
		</p>
L
looeee 已提交
154

155
		<h3>[property:Object userData]</h3>
156
		<p>
J
Jing Ma 已提交
157
		An object that can be used to store custom data about the Object3D. It should not hold
L
looeee 已提交
158
		references to functions as these will not be cloned.
159
		</p>
C
cjshannon 已提交
160

L
looeee 已提交
161
		<h3>[property:String uuid]</h3>
162
		<p>
L
looeee 已提交
163 164
		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance.
		This gets automatically assigned, so this shouldn't be edited.
165
		</p>
166

L
looeee 已提交
167
		<h3>[property:Boolean visible]</h3>
168
		<p>Object gets rendered if *true*. Default is *true*.</p>
L
looeee 已提交
169 170 171



172

173
		<h2>Static Properties</h2>
174
		<p>
175 176 177 178 179
			Static properties and methods are defined per class rather than per instance of that class.
			This means that changing [page:Object3D.DefaultUp] or [page:Object3D.DefaultMatrixAutoUpdate]
			will change the values of [page:.up up] and [page:.matrixAutoUpdate matrixAutoUpdate] for
			<em>every</em>	instance of Object3D (or derived classes)	created after the change has
			been made (already created Object3Ds will not be affected).
180
		</p>
181 182

		<h3>[property:Vector3 DefaultUp]</h3>
183
		<p>
184 185
			The default [page:.up up] direction for objects, also used as the default position for [page:DirectionalLight],
			[page:HemisphereLight] and [page:Spotlight] (which creates lights shining from the top down).<br />
J
Jing Ma 已提交
186
			Set to ( 0, 1, 0 ) by default.
187
		</p>
188

189
		<h3>[property:Boolean DefaultMatrixAutoUpdate]</h3>
190
		<p>
J
Jing Ma 已提交
191
			The default setting for [page:.matrixAutoUpdate matrixAutoUpdate] for newly created Object3Ds.<br />
C
cjshannon 已提交
192

193
		</p>
A
aardgoose 已提交
194

195

196
		<h2>Methods</h2>
197

G
Greg Tatum 已提交
198
		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
199

200
		<h3>[method:this add]( [param:Object3D object], ... )</h3>
201
		<p>
202
		Adds *object* as child of this object. An arbitrary number of objects may be added. Any current parent on an
203
		object passed in here will be removed, since an object can have at most one parent.<br /><br />
204

L
looeee 已提交
205
		See [page:Group] for info on manually grouping objects.
206
		</p>
207

208
		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
209
		<p>Applies the matrix transform to the object and updates the object's position, rotation and scale.</p>
W
WestLangley 已提交
210

211
		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
212
		<p>Applies the rotation represented by the quaternion to the object.</p>
L
looeee 已提交
213

W
WestLangley 已提交
214 215 216
		<h3>[method:this attach]( [param:Object3D object] )</h3>
		<p>Adds *object* as a child of this, while maintaining the object's world transform.</p>

217
		<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
218
		<p>
L
looeee 已提交
219 220
		recursive -- if true, descendants of the object are also cloned. Default is true.<br /><br />

J
Jing Ma 已提交
221
		Returns a clone of this object and optionally all descendants.
222
		</p>
L
looeee 已提交
223

224
		<h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3>
225
		<p>
L
looeee 已提交
226 227 228
		recursive -- if true, descendants of the object are also copied. Default is true.<br /><br />

		Copy the given object into this object.
229

M
Mr.doob 已提交
230
		Note: event listeners and user-defined callbacks ([page:.onAfterRender] and [page:.onBeforeRender]) are not copied.
231
		</p>
232

233
		<h3>[method:Object3D getObjectById]( [param:Integer id] )</h3>
234
		<p>
L
looeee 已提交
235 236
		id -- Unique number of the object instance<br /><br />

U
unknown 已提交
237
		Searches through an object and its children, starting with the object itself, and returns the first with a matching id.<br />
L
looeee 已提交
238
		Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.
239
		</p>
L
looeee 已提交
240

241
		<h3>[method:Object3D getObjectByName]( [param:String name] )</h3>
242
		<p>
J
Jing Ma 已提交
243
		name -- String to match to the children's Object3D.name property. <br /><br />
L
looeee 已提交
244

U
unknown 已提交
245
		Searches through an object and its children, starting with the object itself, and returns the first with a matching name.<br />
246
		Note that for most objects the name is an empty string by default. You will
L
looeee 已提交
247
		have to set it manually to make use of this method.
248
		</p>
249

250
		<h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Float value] )</h3>
251
		<p>
L
looeee 已提交
252 253 254
		name -- the property name to search for. <br />
		value -- value of the given property. <br /><br />

U
unknown 已提交
255
		Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.
256
		</p>
L
looeee 已提交
257

M
Mr.doob 已提交
258
		<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
259
		<p>
W
WestLangley 已提交
260
		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
L
looeee 已提交
261 262

		Returns a vector representing the position of the object in world space.
263
		</p>
264

M
Mr.doob 已提交
265
		<h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3>
266
		<p>
W
WestLangley 已提交
267
		[page:Quaternion target] — the result will be copied into this Quaternion. <br /><br />
L
looeee 已提交
268 269

		Returns a quaternion representing the rotation of the object in world space.
270
		</p>
L
looeee 已提交
271

M
Mr.doob 已提交
272
		<h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3>
273
		<p>
W
WestLangley 已提交
274
		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
L
looeee 已提交
275 276

		Returns a vector of the scaling factors applied to the object for each axis in world space.
277
		</p>
L
looeee 已提交
278

M
Mr.doob 已提交
279
		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
280
		<p>
W
WestLangley 已提交
281
		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
L
looeee 已提交
282 283

		Returns a vector representing the direction of object's positive z-axis in world space.
284
		</p>
285

L
looeee 已提交
286

287
		<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
288
		<p>
T
Tentone 已提交
289
		vector - A vector representing a position in local (object) space.<br /><br />
290

L
looeee 已提交
291
		Converts the vector from local space to world space.
292
		</p>
293

L
linbingquan 已提交
294
		<h3>[method:null lookAt]( [param:Vector3 vector] )<br />
295
		[method:null lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
296
		<p>
L
looeee 已提交
297
		vector - A vector representing a position in world space.<br /><br />
W
WestLangley 已提交
298 299 300 301
		Optionally, the [page:.x x], [page:.y y] and [page:.z z] components of the world space position.<br /><br />

		Rotates the object to face a point in world space.<br /><br />

W
WestLangley 已提交
302
		This method does not support objects having non-uniformly-scaled parent(s).
303
		</p>
L
looeee 已提交
304

305
		<h3>[method:Array raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3>
306
		<p>
L
looeee 已提交
307 308 309
		Abstract (empty) method to get intersections between a casted ray and this object.
		Subclasses such as [page:Mesh], [page:Line], and [page:Points] implement this method in order
		to use raycasting.
310
		</p>
311

312
		<h3>[method:this remove]( [param:Object3D object], ... )</h3>
313
		<p>
314
		Removes *object* as child of this object. An arbitrary number of objects may be removed.
315
		</p>
316

317
		<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
318
		<p>
L
looeee 已提交
319 320
		axis -- A normalized vector in object space. <br />
		angle -- The angle in radians.<br /><br />
321

L
looeee 已提交
322
		Rotate an object along an axis in object space. The axis is assumed to be normalized.
323
		</p>
324

325
		<h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
326
		<p>
327 328 329 330 331
		axis -- A normalized vector in world space. <br />
		angle -- The angle in radians.<br /><br />

		Rotate an object along an axis in world space. The axis is assumed to be normalized.
		Method Assumes no rotated parent.
332
		</p>
333

334
		<h3>[method:this rotateX]( [param:Float rad] )</h3>
335
		<p>
L
looeee 已提交
336
		rad - the angle to rotate in radians.<br /><br />
337

L
looeee 已提交
338
		Rotates the object around x axis in local space.
339
		</p>
340

341
		<h3>[method:this rotateY]( [param:Float rad] )</h3>
342
		<p>
L
looeee 已提交
343
		rad - the angle to rotate in radians.<br /><br />
344

L
looeee 已提交
345
		Rotates the object around y axis in local space.
346
		</p>
347

348
		<h3>[method:this rotateZ]( [param:Float rad] )</h3>
349
		<p>
L
looeee 已提交
350
		rad - the angle to rotate in radians.<br /><br />
C
cjshannon 已提交
351

L
looeee 已提交
352
		Rotates the object around z axis in local space.
353
		</p>
354

355
		<h3>[method:null setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
356
		<p>
L
looeee 已提交
357 358
			axis -- A normalized vector in object space. <br />
			angle -- angle in radians<br /><br />
359

L
looeee 已提交
360 361
			Calls [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] )
			on the [page:.quaternion].
362
		</p>
363

364
		<h3>[method:null setRotationFromEuler]( [param:Euler euler] )</h3>
365
		<p>
L
looeee 已提交
366
			euler -- Euler angle specifying rotation amount.<br />
367

L
looeee 已提交
368 369
			Calls [page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler])
			on the [page:.quaternion].
370
		</p>
L
looeee 已提交
371

372
		<h3>[method:null setRotationFromMatrix]( [param:Matrix4 m] )</h3>
373
		<p>
L
looeee 已提交
374 375 376 377 378 379
			m -- rotate the quaternion by the rotation component of the matrix.<br />

			Calls [page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])
			on the [page:.quaternion].<br /><br />

			Note that this assumes that the upper 3x3 of m is a pure rotation matrix (i.e, unscaled).
380
		</p>
381

382
		<h3>[method:null setRotationFromQuaternion]( [param:Quaternion q] )</h3>
383
		<p>
L
looeee 已提交
384 385 386
			q -- normalized Quaternion.<br /><br />

			Copy the given quaternion into [page:.quaternion].
387
		</p>
L
looeee 已提交
388

389
		<h3>[method:Object toJSON]( [param:object meta] )</h3>
390
		<p>
391 392
		meta -- object containing metadata such as materials, textures or images for the object.<br />
		Convert the object to three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
393
		</p>
394

395
		<h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3>
396
		<p>
G
Greg Tatum 已提交
397
		axis -- A normalized vector in object space.<br />
L
looeee 已提交
398 399 400
		distance -- The distance to translate.<br /><br />

		Translate an object by distance along an axis in object space. The axis is assumed to be normalized.
401
		</p>
L
looeee 已提交
402

403
		<h3>[method:this translateX]( [param:Float distance] )</h3>
H
haolly 已提交
404
		<p>Translates object along x axis in object space by *distance* units.</p>
L
looeee 已提交
405

406
		<h3>[method:this translateY]( [param:Float distance] )</h3>
H
haolly 已提交
407
		<p>Translates object along y axis in object space by *distance* units.</p>
L
looeee 已提交
408

409
		<h3>[method:this translateZ]( [param:Float distance] )</h3>
H
haolly 已提交
410
		<p>Translates object along z axis in object space by *distance* units.</p>
L
looeee 已提交
411

412
		<h3>[method:null traverse]( [param:Function callback] )</h3>
413
		<p>
L
looeee 已提交
414 415 416
		callback - A function with as first argument an object3D object.<br /><br />

		Executes the callback on this object and all descendants.
417
		</p>
418

419
		<h3>[method:null traverseVisible]( [param:Function callback] )</h3>
420
		<p>
L
looeee 已提交
421 422 423 424
		callback - A function with as first argument an object3D object.<br /><br />

		Like traverse, but the callback will only be executed for visible objects.
		Descendants of invisible objects are not traversed.
425
		</p>
L
looeee 已提交
426

427
		<h3>[method:null traverseAncestors]( [param:Function callback] )</h3>
428
		<p>
L
looeee 已提交
429 430 431
		callback - A function with as first argument an object3D object.<br /><br />

		Executes the callback on all ancestors.
432
		</p>
C
cjshannon 已提交
433

L
looeee 已提交
434
		<h3>[method:null updateMatrix]()</h3>
435
		<p>Updates the local transform.</p>
L
looeee 已提交
436

437
		<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
G
Guilherme Avila 已提交
438
		<p>Updates the global transform of the object and its descendants.</p>
L
looeee 已提交
439

440 441
		<h3>[method:null updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
		<p>
442 443
		updateParents - recursively updates global transform of ancestors.<br />
		updateChildren - recursively updates global transform of descendants.<br /><br />
444

445
		Updates the global transform of the object.
446
		</p>
L
looeee 已提交
447

448
		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
449
		<p>
L
looeee 已提交
450 451 452
		vector - A world vector.<br /><br />

		Updates the vector from world space to local space.
453
		</p>
454

455 456
		<h2>Source</h2>

M
Mugen87 已提交
457 458 459
		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
460 461
	</body>
</html>