|
@@ -1262,6 +1262,18 @@ var TransformControlsGizmo = function (options) {
|
|
|
handles = handles.concat( this.gizmo[ this.mode ].children );
|
|
|
handles = handles.concat( this.helper[ this.mode ].children );
|
|
|
|
|
|
+ var eyeDistance = this.worldPosition.distanceTo( this.cameraPosition );
|
|
|
+
|
|
|
+ //俯视图的透视和距离无关,因此在两种相机切换切换时大小过渡比较困难
|
|
|
+ if(player.mode == "transitioning" && (player.modeTran.split('-')[0] == "floorplan" || player.modeTran.split('-')[1] == "floorplan")){
|
|
|
+ eyeDistance = Math.min(eyeDistance, 6.5)//从一开始很小的距离过渡到俯视图50的高度,会变得很大。
|
|
|
+ }else if(player.mode == "floorplan"){
|
|
|
+ var flcamera = player.cameraControls.cameras.floorplan;
|
|
|
+ eyeDistance = (flcamera.right - flcamera.left ) / flcamera.aspect ;
|
|
|
+ }
|
|
|
+
|
|
|
+ let scale = eyeDistance * this.size / 7
|
|
|
+
|
|
|
for ( var i = 0; i < handles.length; i ++ ) {
|
|
|
|
|
|
var handle = handles[ i ];
|
|
@@ -1271,19 +1283,8 @@ var TransformControlsGizmo = function (options) {
|
|
|
handle.visible = true;
|
|
|
handle.rotation.set( 0, 0, 0 );
|
|
|
handle.position.copy( this.worldPosition );
|
|
|
-
|
|
|
- var eyeDistance = this.worldPosition.distanceTo( this.cameraPosition );
|
|
|
-
|
|
|
- //俯视图的透视和距离无关,因此在两种相机切换切换时大小过渡比较困难
|
|
|
- if(player.mode == "transitioning" && (player.modeTran.split('-')[0] == "floorplan" || player.modeTran.split('-')[1] == "floorplan")){
|
|
|
- eyeDistance = Math.min(eyeDistance, 6.5)//从一开始很小的距离过渡到俯视图50的高度,会变得很大。
|
|
|
- }else if(player.mode == "floorplan"){
|
|
|
- var flcamera = player.cameraControls.cameras.floorplan;
|
|
|
- eyeDistance = (flcamera.right - flcamera.left ) / flcamera.aspect ;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- handle.scale.set( 1, 1, 1 ).multiplyScalar( eyeDistance * this.size / 7 );
|
|
|
+
|
|
|
+ handle.scale.set( 1, 1, 1 ).multiplyScalar( scale );
|
|
|
|
|
|
// TODO: simplify helpers and consider decoupling from gizmo
|
|
|
|