[name]

이 클래스는 three.js의 대부분의 객체에 대한 기본 클래스이며 3D 공간에서 객체를 조작하기 위한 일련의 속성 및 메서드를 제공합니다.

[page:.add]( object ) 메서드를 사용해 객체를 그룹핑해서 오브젝트를 자식으로 추가하는 데에 사용할 수도 있지만, [page:Group]를 사용하는 것이 더 낫습니다.

생성자

[name]()

전달인자를 받지 않는 생성자입니다.

프로퍼티

[property:AnimationClip animations]

객체의 애니메이션 클립 배열입니다.

[property:Boolean castShadow]

객체가 섀도우 맵으로 렌더링 되는지의 여부입니다. 기본값은 *false*입니다.

[property:Array children]

객체의 자식 배열입니다. 수동으로 객체를 그룹핑하는 내용은 [page:Group]을 참고하세요.

[property:Material customDepthMaterial]

뎁스맵에 렌더링할 때 사용되는 깊이 재질 커스텀입니다. 메쉬 구조체에서만 사용할 수 있습니다. When shadow-casting with a [page:DirectionalLight] 혹은 [page:SpotLight]를 통해 섀도우 캐스팅을 할 때, (a) 꼭짓점의 쉐이더 위치를 수정하거나, (b) displacement map을 사용하거나, (c) alphaTest를 통해 알파 맵을 사용하거나, (d) alphaTest로 투명 텍스쳐를 사용하거나 할 때 적절한 섀도우의 customDepthMaterial를 특정해야 합니다. 기본값은 *undefined*입니다.

[property:Material customDistanceMaterial]

[page:.customDepthMaterial customDepthMaterial]와 같지만, [page:PointLight]와 함게 쓰입니다. 기본값은 *undefined*입니다.

[property:Boolean frustumCulled]

이 값이 설정되면, 매 프레임마다 객체를 렌더링하기 전에 객체가 카메라의 절두체에 속해 있는지를 체크합니다. `false`로 설정하면 카메라 절두체에 속해있지 않더라도 객체는 매 프레임마다 렌더링될 것입니다. 기본값은 `true`입니다.

[property:Integer id]

읽기전용 – 이 객체 인스턴스의 고유 번호입니다.

[property:Layers layers]

객체의 레이어 멤버 속성입니다. 객체는 사용중인 [page:Camera] 에 공통적으로 최소 한 개의 레이어가 있을 때만 볼 수 있습니다. 이 프로퍼티는 [page:Raycaster]를 사용해 레이-인터섹션 테스트를 할 때 원치 않는 객체를 필터링하는 용도로도 사용할 수 있습니다.

[property:Matrix4 matrix]

로컬 변형 매트릭스입니다.

[property:Boolean matrixAutoUpdate]

이 값을 설정하면 위치의 매트릭스를 계산하고 (회전 및 쿼터니언), 매 프레임마다 확대/축소하고 matrixWorld 프로퍼티를 재계산합니다. 기본값은 [page:Object3D.DefaultMatrixAutoUpdate] (true)입니다.

[property:Matrix4 matrixWorld]

객체의 글로벌 변형입니다. Object3D가 부모를 가지고 있지 않다면, 로컬 변형 [page:.matrix]와 동일합니다.

[property:Boolean matrixWorldNeedsUpdate]

이 값을 설정하면 When this is set, it calculates the 해당 프레임의 matrixWorld를 계산하고 이 프로퍼티를 false로 초기화합니다. 기본값은 *false*입니다.

[property:Matrix4 modelViewMatrix]

이 값은 쉐이더로 전달되고 객체의 위치를 계산하는 데에 사용됩니다.

[property:String name]

객체의 임시 이름입니다(고유할 필요는 없습니다). 기본값은 빈 문자열입니다.

[property:Matrix3 normalMatrix]

이 값은 쉐이더로 전달되고 객체의 광원을 계산합니다. 이 객체 modelViewMatrix의 왼쪽 위 3x3 서브매트릭스의 역 매트릭스입니다.

이 특별한 매트릭스를 사용하는 이유는 단순히 modelViewMatrix만을 사용하면 유닛이 아닌 법선의 길이가 결과로 나오거나(스케일링 시) 수직이 아닌 방향의 결과가 나올 수 있기 때문입니다(비균일 스케일링 시).

한편, modelViewMatrix의 이동 파트는 법선의 계산과는 상관이 없습니다. Matrix3으로 충분합니다.

[property:Function onAfterRender]

3D 객체가 렌더링된 후 즉시 실행되는 선택적 콜백입니다. 이 함수는 렌더러, 장면, 카메라, 기하학, 재질, 그룹 등의 매개 변수를 사용하여 호출됩니다.

이 콜백은 *렌더링 가능한* 3D 객체에만 실행됩니다. [page:Mesh], [page:Line], [page:Points] 혹은 [page:Sprite]같은 기하학 및 재질로 시각적 표현을 정의하는 3D 객체들에 한정됩니다. [page:Object3D], [page:Group] 혹은 [page:Bone] 인스턴스는 렌더링할 수 없으므로 이러한 객체에 대해서는 콜백이 실행되지 않습니다.

[property:Function onBeforeRender]

3D 객체가 렌더링되기 바로 전에 실행되는 선택적 콜백입니다. 이 함수는 렌더러, 장면, 카메라, 기하학, 재질, 그룹 등의 매개 변수를 사용하여 호출됩니다.

이 콜백은 *렌더링 가능한* 3D 객체에만 실행됩니다. [page:Mesh], [page:Line], [page:Points] 혹은 [page:Sprite]같은 기하학 및 재질로 시각적 표현을 정의하는 3D 객체들에 한정됩니다. [page:Object3D], [page:Group] 혹은 [page:Bone] 인스턴스는 렌더링할 수 없으므로 이러한 객체에 대해서는 콜백이 실행되지 않습니다.

[property:Object3D parent]

[link:https://en.wikipedia.org/wiki/Scene_graph scene graph]에 있는 객체의 부모입니다. 객체는 최대 한 개의 부모만 가질 수 있습니다.

[property:Vector3 position]

객체의 로컬 위치를 나타내는 [page:Vector3]입니다. 기본값은 (0, 0, 0)입니다.

[property:Quaternion quaternion]

객체의 로컬 회전을 나타낸 [page:Quaternion Quaternion]입니다.

[property:Boolean receiveShadow]

재질이 그림자를 받는지에 대한 프로퍼티입니다. 기본값은 *false*입니다.

[property:Number renderOrder]

이 값을 사용하면 불투명한 객체와 투명한 객체가 독립적으로 정렬되어 있더라도 [link:https://en.wikipedia.org/wiki/Scene_graph scene graph] 객체의 기본 렌더링 순서를 재정의할 수 있습니다. 이 프로퍼티가 [page:Group Group]의 인스턴스로 설정되면 모든 하위 객체들은 함께 정렬 및 렌더링 될 것입니다. 정렬은 renderOrder가 가장 낮은 것부터 가장 높은 순서입니다. 기본값은 *0*입니다.

[property:Euler rotation]

객체의 로컬 회전 라디안([link:https://en.wikipedia.org/wiki/Euler_angles Euler angles]를 참고하세요)입니다.

[property:Vector3 scale]

객체의 로컬 스케일입니다. 기본값은 [page:Vector3]( 1, 1, 1 )입니다.

[property:Vector3 up]

[page:.lookAt lookAt] 메서드에서 사용되며, 결과의 방향을 결정합니다.
기본값은 [page:Object3D.DefaultUp]값, ( 0, 1, 0 )입니다.

[property:Object userData]

Object3D에 대한 사용자 지정 데이터를 저장하는 데 사용할 수 있는 객체입니다. 함수는 복제되지 않으므로 해당 함수에 대한 참조를 포함해서는 안 됩니다.

[property:String uuid]

이 객체 인스턴스의 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]입니다. 자동으로 할당되며, 수정할 수 없습니다.

[property:Boolean visible]

*true*면 객체가 렌더링됩니다. 기본값은 *true*입니다.

정적 프로퍼티

정적 프로퍼티와 메서드는 해당 클래스의 인스턴스가 아니라 클래스 별로 정의됩니다. 이는 [page:Object3D.DefaultUp] 혹은 [page:Object3D.DefaultMatrixAutoUpdate]를 변경하면 변경이 이루어진 시점 이후의(이미 만들어진 Object3Ds는 영향을 받지 않습니다) 모든 Object3D(및 파생 클래스)의 [page:.up up]과 [page:.matrixAutoUpdate matrixAutoUpdate] 값을 변경시킬 것입니다.

[property:Vector3 DefaultUp]

The default 오브젝트의 기본값 [page:.up up] 방향이며 [page:DirectionalLight], [page:HemisphereLight] 및 [page:Spotlight]의 기본 위치값으로도 사용됩니다(위에서 아래로 내려오는 빛을 만듭니다).
기본값으로 ( 0, 1, 0 ) 을 설정합니다.

[property:Boolean DefaultMatrixAutoUpdate]

새로 만들어진 Object3D의 [page:.matrixAutoUpdate matrixAutoUpdate] 기본 세팅입니다.

메서드

[page:EventDispatcher EventDispatcher] 메서드들은 이 클래스에서 사용 가능합니다.

[method:this add]( [param:Object3D object], ... )

*object*를 이 객체의 자식으로 추가합니다. 임의 개수의 객체를 추가할 수 있습니다. 객체에는 상위 항목이 하나 이상 있을 수 있으므로 여기에 전달된 객체의 현재 상위 항목이 모두 제거됩니다.

수동으로 객체 그룹핑을 하는 내용은 [page:Group]를 참고하세요.

[method:undefined applyMatrix4]( [param:Matrix4 matrix] )

매트릭스 변환을 객체에 적용하고 객체의 위치, 회전 및 스케일을 업데이트합니다.

[method:this applyQuaternion]( [param:Quaternion quaternion] )

쿼터니언으로 표시된 회전을 객체에 적용합니다

[method:this attach]( [param:Object3D object] )

자식에 *object*를 추가하지만 객체의 월드 변형은 유지합니다.

[method:Object3D clone]( [param:Boolean recursive] )

recursive -- true면 객체의 자식들도 복제됩니다. 기본값은 true입니다.

해당 객체의 사본을 리턴하고 자식까지 복제할 수도 있습니다.

[method:this copy]( [param:Object3D object], [param:Boolean recursive] )

recursive -- true면 객체의 자식들도 복제됩니다. 기본값은 true입니다.

이 객체에 넘겨받은 객체를 복사합니다. 주의: 이벤트리스너와 사용자정의 콜백([page:.onAfterRender] 및 [page:.onBeforeRender])은 복제되지 않습니다.

[method:Object3D getObjectById]( [param:Integer id] )

id -- 객체 인스턴스의 고유 번호입니다.

객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 ID의 첫 번째 항목을 리턴합니다. ID는 순차적으로 증가하며: 1, 2, 3, ... 새 객체마다 하나씩 증가합니다.

[method:Object3D getObjectByName]( [param:String name] )

name -- 자식의 Object3D.name 프로퍼티와 일치하는 문자열입니다.

객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 이름의 첫 번째 항목을 리턴합니다.
대부분의 객체는 기본값으로 이름이 빈 문자열입니다. 이 메서드를 사용하기 위해서는 직접 이름을 지정해야 합니다.

[method:Object3D getObjectByProperty]( [param:String name], [param:Any value] )

name -- 검색하고자하는 이름 프로퍼티.
value -- 프로퍼티의 값.

객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 값의 첫 번째 항목을 리턴합니다.

[method:Vector3 getWorldPosition]( [param:Vector3 target] )

[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다.

객체의 월드 스페이스에서의 벡터를 리턴합니다.

[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )

[page:Quaternion target] — 결과값은 이 Quaternion에 복제됩니다.

객체의 월드 스페이스에서의 회전값을 쿼터니언으로 리턴합니다.

[method:Vector3 getWorldScale]( [param:Vector3 target] )

[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다.

객체에 적용되는 월드 스페이스에서의 각 축의 스케일 벡터값을 리턴합니다.

[method:Vector3 getWorldDirection]( [param:Vector3 target] )

[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다.

객체의 월드 스페이스에서의 z축 양수 방향 벡터를 리턴합니다.

[method:Vector3 localToWorld]( [param:Vector3 vector] )

vector - 이 객체의 로컬 스페이스에서의 위치를 나타내는 벡터입니다.

이 객체의 로컬 스페이스를 월드 스페이스로 전환합니다.

[method:undefined lookAt]( [param:Vector3 vector] )
[method:undefined lookAt]( [param:Float x], [param:Float y], [param:Float z] )

vector - 로컬 스페이스에서의 위치를 나타내는 벡터입니다.

부가적으로, 월드 스페이스의 [page:.x x], [page:.y y] 및 [page:.z z] 위치 컴포넌트를 설정할 수 있습니다.

월드 스페이스의 한 점으로 객체의 면을 회전시킵니다.

이 메서드는 비균일 스케일 부모를 가진 객체들은 지원하지 않습니다.

[method:Array raycast]( [param:Raycaster raycaster], [param:Array intersects] )

객체와 레이캐스팅 사이의 인터섹션을 구하는 추상 (빈) 메서드입니다. Subclasses such as [page:Mesh], [page:Line], 및 [page:Points] 같은 서브클래스들은 레이캐스팅을 사용하는 순서에 따라 이 메서드를 실행합니다.

[method:this remove]( [param:Object3D object], ... )

이 객체의 자식 중 *object*를 제거합니다. 임의 갯수의 객체를 제거할 수 있습니다.

[method:this removeFromParent]()

Removes this object from its current parent.

[method:this clear]()

모든 자식 객체를 제거합니다.

[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )

axis -- 객체 스페이스의 정규화 벡터입니다.
angle -- 라디안 각도입니다.

객체를 객체 스페이스의 축에 맞춰 회전시킵니다. 해당 축은 정규화되었다고 가정합니다.

[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )

axis -- 월드 스페이스의 정규화 벡터입니다.
angle -- 라디안 각도입니다.

객체를 월드 스페이스의 축에 맞춰 회전시킵니다. 해당 축은 정규화되었다고 가정합니다. 부모의 회전은 고려하지 않습니다.

[method:this rotateX]( [param:Float rad] )

rad - 회전시킬 라디안 각도입니다.

로컬 스페이스에서 x 축을 기준으로 회전시킵니다.

[method:this rotateY]( [param:Float rad] )

rad - 회전시킬 라디안 각도입니다.

로컬 스페이스에서 y 축을 기준으로 회전시킵니다.

[method:this rotateZ]( [param:Float rad] )

rad - 회전시킬 라디안 각도입니다.

로컬 스페이스에서 z 축을 기준으로 회전시킵니다.

[method:undefined setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )

axis -- 오브젝트 스페이스의 정규화 벡터입니다.
angle -- 라디안 각도입니다

[page:.quaternion]에서 [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] )를 호출합니다.

[method:undefined setRotationFromEuler]( [param:Euler euler] )

euler -- 회전 정도를 나타내는 오일러 각입니다.
[page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler])를 호출합니다.

[method:undefined setRotationFromMatrix]( [param:Matrix4 m] )

m -- 매트릭스의 회전 컴포넌트만큼 쿼터니언을 회전시킵니다.
[page:.quaternion]에서 [page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])를 호출합니다.

m의 상위 3x3은 순수 회전 매트릭스(예를 들어 스케일이 없는 매트릭스)로 가정합니다.

[method:undefined setRotationFromQuaternion]( [param:Quaternion q] )

q -- 정규화 쿼터니언입니다.

[page:.quaternion]에 해당 쿼터니언을 복사합니다.

[method:Object toJSON]( [param:Object meta] )

meta -- 객체의 재질, 텍스쳐 및 이미지 같은 메타데이터를 포함하고 있는 객체입니다.
객체를 three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format]으로 변환합니다.

[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )

axis -- 객체 스페이스에서의 정규화 벡터입니다.
distance -- 이동할 거리입니다.

객체 스페이스의 축을 따라 객체를 거리만큼 이동합니다. 축은 정규화되었다고 가정합니다.

[method:this translateX]( [param:Float distance] )

객체 스페이스에서 *distance*만큼 객체를 x축으로 이동시킵니다.

[method:this translateY]( [param:Float distance] )

객체 스페이스에서 *distance*만큼 객체를 y축으로 이동시킵니다.

[method:this translateZ]( [param:Float distance] )

객체 스페이스에서 *distance*만큼 객체를 z축으로 이동시킵니다.

[method:undefined traverse]( [param:Function callback] )

callback - object3D 객체의 첫 번째 인자 함수입니다.

이 객체와 모든 자식들의 콜백을 실행합니다.
주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.

[method:undefined traverseVisible]( [param:Function callback] )

callback - object3D 객체의 첫 번째 인자 함수입니다.

Like traverse와 비슷하지만, 보이는 객체들의 콜백만 실행됩니다. 보이지 않는 객체들의 자식들은 실행되지 않습니다.
주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.

[method:undefined traverseAncestors]( [param:Function callback] )

callback - object3D 객체의 첫 번째 인자 함수입니다.

모든 부모의 콜백을 실행합니다.
주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.

[method:undefined updateMatrix]()

로컬 변형을 업데이트합니다.

[method:undefined updateMatrixWorld]( [param:Boolean force] )

객체와 자식들의 글로벌 변형을 업데이트합니다.

[method:undefined updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )

updateParents - 재귀적으로 부모의 글로벌 변형을 업데이트합니다.
updateChildren - 재귀적으로 자식의 글로벌 변형을 업데이트합니다.

객체의 글로벌 변형을 업데이트합니다.

[method:Vector3 worldToLocal]( [param:Vector3 vector] )

vector - 월드 스페이스의 위치를 나타내는 벡터입니다.

월드 스페이스의 벡터를 객체의 로컬 스페이스로 변환합니다.

소스코드

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]