diff --git a/docs/examples/en/controls/TransformControls.html b/docs/examples/en/controls/TransformControls.html index 1ba151d6587d22..b0ba2ffc809d32 100644 --- a/docs/examples/en/controls/TransformControls.html +++ b/docs/examples/en/controls/TransformControls.html @@ -100,6 +100,12 @@
+ The contorl's raycaster used to implement interactivity. This object is exposed so it's possible to configure the raycaster's + [page:Raycaster.layers layers] property. +
+By default, 3D objects are continuously rotated. If you set this property to a numeric value (radians), you can define in which diff --git a/docs/examples/ko/controls/TransformControls.html b/docs/examples/ko/controls/TransformControls.html index 77bceca47dbbef..6b51576c4188d4 100644 --- a/docs/examples/ko/controls/TransformControls.html +++ b/docs/examples/ko/controls/TransformControls.html @@ -16,7 +16,7 @@
- 어떤 유형 (객체 또는 속성 변경) 의 변경이 수행할 경우 호출됩니다. 속성 변경은 이벤트 리스너를 추가 할 수 있는 별도의 이벤트입니다. + 어떤 유형 (객체 또는 속성 변경) 의 변경이 수행할 경우 호출됩니다. 속성 변경은 이벤트 리스너를 추가 할 수 있는 별도의 이벤트입니다. 이벤트의 타입은 "propertyname-changed" 입니다.
@@ -76,7 +76,7 @@- HTMLDOMElement는 마우스 / 터치 이벤트를 사용하는데 이용됩니다. 이것은 생성자에 의해 설정되어야 합니다; + HTMLDOMElement는 마우스 / 터치 이벤트를 사용하는데 이용됩니다. 이것은 생성자에 의해 설정되어야 합니다; 생성자를 통해 설정되지 않을 경우 새 이벤트 리스너에 설정되지 않습니다.
@@ -100,6 +100,12 @@+ The contorl's raycaster used to implement interactivity. This object is exposed so it's possible to configure the raycaster's + [page:Raycaster.layers layers] property. +
+기본적으로, 3D 객체는 연속적으로 회전합니다. 해당 프로퍼티에 값을 설정하면 (라디안), 3D 객체를 각 단계별로 회전 할 때마다 정의할 수 있습니다. 기본값은 *null* 입니다. diff --git a/docs/examples/zh/controls/TransformControls.html b/docs/examples/zh/controls/TransformControls.html index 219a9c32336989..c1d14b6a3e43e2 100644 --- a/docs/examples/zh/controls/TransformControls.html +++ b/docs/examples/zh/controls/TransformControls.html @@ -99,6 +99,12 @@
+ The contorl's raycaster used to implement interactivity. This object is exposed so it's possible to configure the raycaster's + [page:Raycaster.layers layers] property. +
+默认情况下,3D对象是可以被连续旋转的。如果你将该值设为一个数值(弧度),则你将可以定义每次旋转3D对象时的步幅。 diff --git a/examples/js/controls/TransformControls.js b/examples/js/controls/TransformControls.js index de4ddeb2d69ced..77503d4a075d34 100644 --- a/examples/js/controls/TransformControls.js +++ b/examples/js/controls/TransformControls.js @@ -9,6 +9,7 @@ THREE.TransformControls = function ( camera, domElement ) { THREE.Object3D.call( this ); + this.raycaster = new THREE.Raycaster(); this.visible = false; this.domElement = domElement; @@ -46,8 +47,6 @@ THREE.TransformControls = function ( camera, domElement ) { // Reusable utility variables - var raycaster = new THREE.Raycaster(); - function intersectObjectWithRay( object, raycaster, includeInvisible ) { var allIntersections = raycaster.intersectObject( object, true ); @@ -239,6 +238,8 @@ THREE.TransformControls = function ( camera, domElement ) { if ( this.object === undefined || this.dragging === true ) return; + var raycaster = this.raycaster; + raycaster.setFromCamera( pointer, this.camera ); var intersect = intersectObjectWithRay( _gizmo.picker[ this.mode ], raycaster ); @@ -261,6 +262,8 @@ THREE.TransformControls = function ( camera, domElement ) { if ( this.axis !== null ) { + var raycaster = this.raycaster; + raycaster.setFromCamera( pointer, this.camera ); var planeIntersect = intersectObjectWithRay( _plane, raycaster, true ); @@ -316,6 +319,7 @@ THREE.TransformControls = function ( camera, domElement ) { var mode = this.mode; var object = this.object; var space = this.space; + var raycaster = this.raycaster; if ( mode === 'scale' ) { diff --git a/examples/jsm/controls/TransformControls.js b/examples/jsm/controls/TransformControls.js index 53f7f4bc7a2509..e46dbfcd8f3c47 100644 --- a/examples/jsm/controls/TransformControls.js +++ b/examples/jsm/controls/TransformControls.js @@ -32,6 +32,7 @@ var TransformControls = function ( camera, domElement ) { Object3D.call( this ); + this.raycaster = new Raycaster(); this.visible = false; this.domElement = domElement; @@ -69,8 +70,6 @@ var TransformControls = function ( camera, domElement ) { // Reusable utility variables - var raycaster = new Raycaster(); - function intersectObjectWithRay( object, raycaster, includeInvisible ) { var allIntersections = raycaster.intersectObject( object, true ); @@ -262,6 +261,8 @@ var TransformControls = function ( camera, domElement ) { if ( this.object === undefined || this.dragging === true ) return; + var raycaster = this.raycaster; + raycaster.setFromCamera( pointer, this.camera ); var intersect = intersectObjectWithRay( _gizmo.picker[ this.mode ], raycaster ); @@ -284,6 +285,8 @@ var TransformControls = function ( camera, domElement ) { if ( this.axis !== null ) { + var raycaster = this.raycaster; + raycaster.setFromCamera( pointer, this.camera ); var planeIntersect = intersectObjectWithRay( _plane, raycaster, true ); @@ -339,6 +342,7 @@ var TransformControls = function ( camera, domElement ) { var mode = this.mode; var object = this.object; var space = this.space; + var raycaster = this.raycaster; if ( mode === 'scale' ) {