Create, Compete & Win at Redbrick Connect 2024! πŸŽ‰

Object3D

3D κ³΅κ°„μ˜ λŒ€λΆ€λΆ„μ˜ 객체가 μƒμ†λ°›λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€.

μ•„λž˜ λ‚΄μš© 이외에도 THREE.Object3D의 λ‹€μ–‘ν•œ 속성과 λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

속성

.castShadow

object.castShadow : Boolean

objectκ°€ 그림자λ₯Ό μƒμ„±ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
기본값은 falseμž…λ‹ˆλ‹€.

.children

object.children : Array

object의 μžμ‹ 객체듀을 λ°°μ—΄λ‘œ λ°˜ν™˜ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
개체λ₯Ό μˆ˜λ™μœΌλ‘œ κ·Έλ£Ήν™”ν•˜λŠ” 방법에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 그룹을 μ°Έμ‘°ν•˜μ„Έμš”.

.parent

object.parent : Object3D

object의 객체의 λΆ€λͺ¨ 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
κ°μ²΄λŠ” μ΅œλŒ€ ν•˜λ‚˜μ˜ λΆ€λͺ¨λ§Œ κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

.position

object.position : Vector3

객체의 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ†μ„±μž…λ‹ˆλ‹€.
이 속성을 톡해 객체의 μœ„μΉ˜λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
기본값은 β€˜(0, 0, 0)β€˜μž…λ‹ˆλ‹€.

.quaternion

object.quaternion : Quaternion

객체의 νšŒμ „μ„ λ‚˜νƒ€λ‚΄λŠ” λ˜λ‹€λ₯Έ λ°©μ‹μž…λ‹ˆλ‹€.
이 속성을 톡해 객체의 νšŒμ „ μƒνƒœλ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
Quaternion은 Euler 각도와 달리 νšŒμ „μ„ 보닀 μ •ν™•ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.receiveShadow

object.receiveShadow : Boolean

객체가 그림자λ₯Ό 받을 수 μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ„€μ •ν•˜λŠ” μ†μ„±μž…λ‹ˆλ‹€.
이 속성은 THREE.Mesh κ°μ²΄λ‚˜ 그와 μœ μ‚¬ν•œ κ°μ²΄λ“€μ—μ„œ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
기본값은 falseμž…λ‹ˆλ‹€.

.rotation

object.rotation : Euler

객체의 νšŒμ „μ„ λ‚˜νƒ€λ‚΄λŠ” μ†μ„±μœΌλ‘œ, λΌλ””μ•ˆ λ‹¨μœ„μž…λ‹ˆλ‹€.
이 속성을 톡해 객체의 νšŒμ „ 각도λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

.scale

object.scale : Vector3

객체의 크기λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ†μ„±μž…λ‹ˆλ‹€.
이 속성을 톡해 객체의 크기λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
객체의 ν¬κΈ°λŠ” μ”¬μ˜ μ’Œν‘œκ³„μ— 따라 μƒλŒ€μ μœΌλ‘œ μ„€μ •λ©λ‹ˆλ‹€. λ”°λΌμ„œ 객체가 λ‹€λ₯Έ 객체의 μžμ‹μΌ 경우 λΆ€λͺ¨ 객체의 크기에 영ν–₯을 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
기본값은 Vector3( 1, 1, 1 )μž…λ‹ˆλ‹€.

.visible

object.visible : Boolean

객체의 κ°€μ‹œμ„± μ—¬λΆ€λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μžˆλŠ” μ†μ„±μž…λ‹ˆλ‹€.
이 속성을 톡해 객체가 화면에 ν‘œμ‹œλ˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
기본값은 trueμž…λ‹ˆλ‹€.

λ©”μ†Œλ“œ

.add()

parentObject.add ( childObject : Object3D, ... ) : this

객체λ₯Ό λ‹€λ₯Έ 객체의 μžμ‹μœΌλ‘œ μΆ”κ°€ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
μž„μ˜μ˜ 개수의 개체λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
λΆ€λͺ¨ 객체가 이동, νšŒμ „, 크기 μ‘°μ • λ“±μ˜ λ³€ν™”λ₯Ό ν•˜λ”λΌλ„ μžμ‹ κ°μ²΄λŠ” λ…λ¦½μ μœΌλ‘œ κ·Έ μœ„μΉ˜μ™€ νšŒμ „μ„ μœ μ§€ν•©λ‹ˆλ‹€.
κ°œμ²΄λŠ” μ΅œλŒ€ ν•˜λ‚˜μ˜ λΆ€λͺ¨λ₯Ό κ°€μ§ˆ 수 μžˆμœΌλ―€λ‘œ 이미 λΆ€λͺ¨λ₯Ό 가지고 μžˆμ—ˆλ‹€λ©΄ 제거된 ν›„ μƒˆ λΆ€λͺ¨λ₯Ό κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

.attach()

parentObject.attach ( childObject : Object3D ) : this

객체λ₯Ό λ‹€λ₯Έ 객체의 μžμ‹μœΌλ‘œ μΆ”κ°€ν•˜λ©΄μ„œ, λΆ€λͺ¨ 객체의 세계 λ³€ν™˜(Transform)을 μœ μ§€ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
λ”°λΌμ„œ λΆ€λͺ¨ 객체가 이동, νšŒμ „, 크기 μ‘°μ • λ“±μ˜ λ³€ν™”λ₯Ό ν•˜λ©΄, μžμ‹ 객체도 κ·Έ λ³€ν™”λ₯Ό λ°˜μ˜ν•˜μ—¬ ν•¨κ»˜ μ΄λ™ν•˜κ±°λ‚˜ νšŒμ „ν•©λ‹ˆλ‹€.
add()λŠ” 주둜 씬에 객체λ₯Ό μΆ”κ°€ν•  λ•Œ μ‚¬μš©ν•˜λ©°, attach()λŠ” 객체 κ°„μ˜ 계측 관계λ₯Ό ꡬ성할 λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

.clone()

originalObject.clone(recursive: Boolean) : Object3D

recursive - true인 경우 이 객체의 μžμ‹ 객체듀도 λ³΅μ œλ©λ‹ˆλ‹€. 기본값은 trueμž…λ‹ˆλ‹€.

객체λ₯Ό λ³΅μ œν•˜μ—¬ μƒˆλ‘œμš΄ 객체λ₯Ό 생성해 λ°˜ν™˜ν•©λ‹ˆλ‹€.
원본 객체의 κΈ°ν•˜ν•™μ  λͺ¨μ–‘, 재질, μœ„μΉ˜, νšŒμ „, 크기 등을 ν¬ν•¨ν•œ 속성듀을 λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ Physics와 Behavior 속성은 λ³΅μ‚¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ˜ν•œ .clone()을 μ‚¬μš©ν•˜μ—¬ λ³΅μ œν•œ μ˜€λΈŒμ νŠΈλŠ” API ν™•μž₯의 Object3D에 μ†ν•œ λ©”μ†Œλ“œλŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
ν•΄λ‹Ή λ©”μ†Œλ“œλ“€μ„ μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ .cloneWithMethods()λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

볡제된 κ°μ²΄λŠ” 원본 객체와 μ™„μ „νžˆ λ…λ¦½μ μ΄λ―€λ‘œ, 볡제 ν›„μ˜ 객체 λ³€ν™”λŠ” 원본 객체에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

⚠️

λ³΅μ œν•œ μ˜€λΈŒμ νŠΈλŠ” WORLD에 μžμ‹μœΌλ‘œ μΆ”κ°€ν•΄ μ£Όμ–΄μ•Ό μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

EX
const obj = WORLD.getObject("obj");
const clone_obj = obj.clone();
WORLD.add(clone_obj);
clone_obj.position.set(10, 1, 10);

.copy()

originalObject.copy (targetObject : Object3D, recursive : Boolean ) : this

recursive - true인 경우 이 객체의 μžμ‹ 객체듀도 λ³΅μ‚¬λ©λ‹ˆλ‹€. 기본값은 trueμž…λ‹ˆλ‹€.

객체의 속성을 λ‹€λ₯Έ 객체둜 λ³΅μ‚¬ν•΄μ„œ μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“€μ–΄λ‚΄ λ°˜ν™˜ν•©λ‹ˆλ‹€.
이 κ³Όμ •μ—μ„œ κΈ°μ‘΄ 객체(targetObject)λŠ” λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

.getObjectById()

object.getObjectById ( id : Integer ) : Object3D

id β€” 객체 μΈμŠ€ν„΄μŠ€μ˜ 고유 번호

ν•΄λ‹Ή 객체 μžμ²΄λΆ€ν„° μ‹œμž‘ν•˜μ—¬ μžμ‹ κ°μ²΄κΉŒμ§€ κ²€μƒ‰ν•˜κ³ , μΌμΉ˜ν•˜λŠ” IDκ°€ μžˆλŠ” 첫 번째 ν•­λͺ©μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
찾지 λͺ»ν•˜λ©΄ null을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

IDλŠ” μ‹œκ°„μˆœμœΌλ‘œ 1, 2, 3, β€¦μœΌλ‘œ ν• λ‹Ήλ˜μ–΄ μ€‘λ³΅λ˜μ§€ μ•Šκ³  μœ μΌν•œ 값이며, μƒˆλ‘œμš΄ κ°μ²΄λ§ˆλ‹€ 1μ”© μ¦κ°€ν•©λ‹ˆλ‹€.

.getObjectByProperty()

.getObjectByProperty( propertyName : String, value : Any ) : Object3D

propertyName - 검색할 속성 μ΄λ¦„μž…λ‹ˆλ‹€.
value - 검색할 μ†μ„±μ˜ κ°’μž…λ‹ˆλ‹€. ν•΄λ‹Ή 속성이 μ§€μ •ν•œ κ°’κ³Ό μΌμΉ˜ν•˜λŠ” 객체λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€.

νŠΉμ • 속성 값을 κΈ°μ€€μœΌλ‘œ 씬 κ·Έλž˜ν”„μ—μ„œ 객체λ₯Ό κ²€μƒ‰ν•˜λŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€. 검색 결과둜 μΌμΉ˜ν•˜λŠ” 첫 번째 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. μΌμΉ˜ν•˜λŠ” 객체가 μ—†μœΌλ©΄ null을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

.getWorldDirection()

object.getWorldDirection( target : Vector3 ) : Vector3

target λ°©ν–₯을 이 객체가 λ°”λΌλ³΄λŠ” λ°©ν–₯κ³Ό λ™μΌν•˜κ²Œ μ„€μ •ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ λ°©ν–₯을 κ³„μ‚°ν•˜κΈ° μœ„ν•΄ 씬 κ·Έλž˜ν”„λ₯Ό 따라 μƒμœ„ 객체의 λ³€ν™˜μ„ λͺ¨λ‘ κ³ λ €ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 객체의 λΆ€λͺ¨κ°€ νšŒμ „ν•˜κ±°λ‚˜ μ΄λ™ν•œ κ²½μš°μ—λ„ μ •ν™•ν•œ μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ λ°©ν–₯을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
씬에 ν¬ν•¨λ˜μ§€ μ•Šμ€ 객체에 λŒ€ν•΄ 이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.getWorldPosition()

object.getWorldPosition( target : Vector3 ) : Vector3

target μ›”λ“œ μ’Œν‘œλ₯Ό object의 μ›”λ“œ μ’Œν‘œμ™€ λ™μΌν•˜κ²Œ μ„€μ •ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 μ›”λ“œ μ’Œν‘œλ₯Ό κ³„μ‚°ν•˜κΈ° μœ„ν•΄ 씬 κ·Έλž˜ν”„λ₯Ό 따라 μƒμœ„ 객체의 λ³€ν™˜μ„ λͺ¨λ‘ κ³ λ €ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 객체의 λΆ€λͺ¨κ°€ νšŒμ „ν•˜κ±°λ‚˜ μ΄λ™ν•œ κ²½μš°μ—λ„ μ •ν™•ν•œ μ›”λ“œ μ’Œν‘œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
씬에 ν¬ν•¨λ˜μ§€ μ•Šμ€ 객체에 λŒ€ν•΄ 이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.getWorldQuaternion()

object.getWorldQuaternion ( target : Quaternion ) : Quaternion

target νšŒμ „κ°’μ„ object의 νšŒμ „κ°’κ³Ό λ™μΌν•˜κ²Œ μ„€μ •ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ μΏΌν„°λ‹ˆμ–Έμ„ κ³„μ‚°ν•˜κΈ° μœ„ν•΄ 씬 κ·Έλž˜ν”„λ₯Ό 따라 μƒμœ„ 객체의 λ³€ν™˜μ„ λͺ¨λ‘ κ³ λ €ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 객체의 λΆ€λͺ¨κ°€ νšŒμ „ν•˜κ±°λ‚˜ μ΄λ™ν•œ κ²½μš°μ—λ„ μ •ν™•ν•œ μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ μΏΌν„°λ‹ˆμ–Έμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
씬에 ν¬ν•¨λ˜μ§€ μ•Šμ€ 객체에 λŒ€ν•΄ 이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.getWorldScale()

object.getWorldScale( target : Vector3 ) : Vector3

target μŠ€μΌ€μΌμ„ 이 객체의 μŠ€μΌ€μΌκ³Ό λ™μΌν•˜κ²Œ μ„€μ •ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ μŠ€μΌ€μΌμ„ κ³„μ‚°ν•˜κΈ° μœ„ν•΄ 씬 κ·Έλž˜ν”„λ₯Ό 따라 μƒμœ„ 객체의 λ³€ν™˜μ„ λͺ¨λ‘ κ³ λ €ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 객체의 λΆ€λͺ¨κ°€ 크기λ₯Ό μ‘°μ •ν•œ κ²½μš°μ—λ„ μ •ν™•ν•œ μ›”λ“œ κ³΅κ°„μ—μ„œμ˜ μŠ€μΌ€μΌμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
씬에 ν¬ν•¨λ˜μ§€ μ•Šμ€ 객체에 λŒ€ν•΄ 이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.lookAt()

object.lookAt ( target : Vector3 ) : undefined
object.lookAt ( x : Float, y : Float, z : Float ) : undefined

target - THREE.Vector3 νƒ€μž…μ˜ λ²‘ν„°λ‘œ, 객체가 바라볼 λŒ€μƒμ˜ μœ„μΉ˜λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
x, y, z - λ²‘ν„°μ˜ x, y, z 값을 μ„ νƒμ μœΌλ‘œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

objectλ₯Ό νŠΉμ • 지점(벑터)을 ν–₯ν•˜λ„λ‘ νšŒμ „μ‹œν‚€λŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 둜컬 μ’Œν‘œκ³„ κΈ°μ€€μœΌλ‘œ νšŒμ „μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λΆ€λͺ¨ 객체의 λ³€ν™˜μ— 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.

.raycast()

.raycast( raycaster : Raycaster, intersects : Array ) : undefined

raycaster - THREE.Raycaster κ°μ²΄μž…λ‹ˆλ‹€. 이 κ°μ²΄λŠ” κ΄‘μ„ μ˜ 좜발점(origin)κ³Ό λ°©ν–₯(direction)을 μ„€μ •ν•˜μ—¬ 광선을 μ •μ˜ν•©λ‹ˆλ‹€.
intersects - ꡐ차점(intersection) 정보λ₯Ό μ €μž₯ν•  λ°°μ—΄μž…λ‹ˆλ‹€. 광선이 객체와 ꡐ차할 경우, ꡐ차점에 λŒ€ν•œ 정보가 이 배열에 μΆ”κ°€λ©λ‹ˆλ‹€.

광선이 νŠΉμ • 객체에 μΆ©λŒν–ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό κ²€μ‚¬ν•˜κ³ , μΆ©λŒν•œ 객체λ₯Ό μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
κ΄‘μ„ κ³Ό 객체 μ‚¬μ΄μ˜ μΆ©λŒμ„ μ •ν™•νžˆ κ³„μ‚°ν•˜κΈ° μœ„ν•΄ 객체의 메쉬가 ν•„μš”ν•©λ‹ˆλ‹€. 기본적인 THREE.Mesh λ˜λŠ” 이λ₯Ό μƒμ†λ°›λŠ” 객체듀이 좩돌 검사에 μ‚¬μš©λ©λ‹ˆλ‹€.
Mesh, Line 및 Points와 같은 ν•˜μœ„ ν΄λž˜μŠ€λŠ” λ ˆμ΄μΊμŠ€νŒ…μ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 이 λ©”μ„œλ“œλ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€.

.remove()

parentObject.remove ( childObject : Object3D, ... ) : this

객체λ₯Ό λΆ€λͺ¨ κ°μ²΄λ‘œλΆ€ν„° μ œκ±°ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
μž„μ˜μ˜ 수의 객체λ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 제거된 κ°μ²΄λŠ” λ‹€μ‹œ λ‹€λ₯Έ λΆ€λͺ¨ 객체에 μΆ”κ°€ν•˜κ±°λ‚˜ 씬에 λ‹€μ‹œ μΆ”κ°€ν•΄μ•Όλ§Œ λ‹€μ‹œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.removeFromParent()

childObject.removeFromParent () : this

λΆ€λͺ¨ κ°œμ²΄μ—μ„œ 이 개체λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

.rotateOnAxis()

object.rotateOnAxis ( axis : Vector3, angle : Float ) : this

axis - THREE.Vector3 νƒ€μž…μ˜ λ²‘ν„°λ‘œ, νšŒμ „μ˜ 좕을 μ •μ˜ν•©λ‹ˆλ‹€.
angle - νšŒμ „ κ°λ„λ‘œ, λΌλ””μ•ˆ λ‹¨μœ„λ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

객체의 둜컬 μ’Œν‘œκ³„μ—μ„œ μ§€μ •λœ μΆ•(axis)을 κΈ°μ€€μœΌλ‘œ νšŒμ „μ‹œν‚€λŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€.
객체의 둜컬 μ’Œν‘œκ³„λ₯Ό κΈ°μ€€μœΌλ‘œ νšŒμ „ν•˜λ―€λ‘œ, λΆ€λͺ¨ 객체의 λ³€ν™˜μ— 영ν–₯을 받지 μ•ŠμŠ΅λ‹ˆλ‹€.

.rotateOnWorldAxis()

object.rotateOnWorldAxis( axis : Vector3, angle : Float) : this

axis - THREE.Vector3 νƒ€μž…μ˜ λ²‘ν„°λ‘œ, νšŒμ „μ˜ 좕을 μ›”λ“œ μ’Œν‘œκ³„μ—μ„œ μ •μ˜ν•©λ‹ˆλ‹€.
angle - νšŒμ „ κ°λ„λ‘œ, λΌλ””μ•ˆ λ‹¨μœ„λ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

객체λ₯Ό μ›”λ“œ μ’Œν‘œκ³„μ˜ νŠΉμ • 좕을 κΈ°μ€€μœΌλ‘œ νšŒμ „μ‹œν‚΅λ‹ˆλ‹€.
이 λ©”μ†Œλ“œλŠ” 객체의 νšŒμ „μ„ 객체 자체의 둜컬 좕이 μ•„λ‹ˆλΌ μ›”λ“œ μ’Œν‘œκ³„μ—μ„œ μ§€μ •λœ 좕을 κΈ°μ€€μœΌλ‘œ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 객체의 λΆ€λͺ¨ 객체의 λ³€ν™˜μ— 영ν–₯을 받지 μ•Šκ³  μ§€μ •λœ 좕을 κΈ°μ€€μœΌλ‘œ νšŒμ „ν•©λ‹ˆλ‹€.

.traverse()

object.traverse ( callback : Function ) : undefined

callback - 각 객체에 λŒ€ν•΄ 호좜될 콜백 ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” objectλ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ λ°›μŠ΅λ‹ˆλ‹€.

객체의 계측 ꡬ쑰λ₯Ό μˆœνšŒν•˜λ©° 각 객체에 λŒ€ν•΄ μ§€μ •λœ 콜백 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” λ©”μ†Œλ“œ μž…λ‹ˆλ‹€.