11import {
2- BoxGeometry ,
2+ CylinderGeometry ,
33 CanvasTexture ,
44 Color ,
55 Euler ,
@@ -11,6 +11,7 @@ import {
1111 Raycaster ,
1212 Sprite ,
1313 SpriteMaterial ,
14+ SRGBColorSpace ,
1415 Vector2 ,
1516 Vector3 ,
1617 Vector4
@@ -27,9 +28,10 @@ class ViewHelper extends Object3D {
2728 this . animating = false ;
2829 this . center = new Vector3 ( ) ;
2930
30- const color1 = new Color ( '#ff3653' ) ;
31- const color2 = new Color ( '#8adb00' ) ;
32- const color3 = new Color ( '#2c8fff' ) ;
31+ const color1 = new Color ( '#ff4466' ) ;
32+ const color2 = new Color ( '#88ff44' ) ;
33+ const color3 = new Color ( '#4488ff' ) ;
34+ const color4 = new Color ( '#000000' ) ;
3335
3436 const interactiveObjects = [ ] ;
3537 const raycaster = new Raycaster ( ) ;
@@ -39,7 +41,7 @@ class ViewHelper extends Object3D {
3941 const orthoCamera = new OrthographicCamera ( - 2 , 2 , 2 , - 2 , 0 , 4 ) ;
4042 orthoCamera . position . set ( 0 , 0 , 2 ) ;
4143
42- const geometry = new BoxGeometry ( 0.8 , 0.05 , 0.05 ) . translate ( 0.4 , 0 , 0 ) ;
44+ const geometry = new CylinderGeometry ( 0.04 , 0.04 , 0.8 , 5 ) . rotateZ ( - Math . PI / 2 ) . translate ( 0.4 , 0 , 0 ) ;
4345
4446 const xAxis = new Mesh ( geometry , getAxisMaterial ( color1 ) ) ;
4547 const yAxis = new Mesh ( geometry , getAxisMaterial ( color2 ) ) ;
@@ -52,28 +54,35 @@ class ViewHelper extends Object3D {
5254 this . add ( zAxis ) ;
5355 this . add ( yAxis ) ;
5456
55- const posXAxisHelper = new Sprite ( getSpriteMaterial ( color1 , 'X' ) ) ;
56- posXAxisHelper . userData . type = 'posX' ;
57- const posYAxisHelper = new Sprite ( getSpriteMaterial ( color2 , 'Y' ) ) ;
58- posYAxisHelper . userData . type = 'posY' ;
59- const posZAxisHelper = new Sprite ( getSpriteMaterial ( color3 , 'Z' ) ) ;
60- posZAxisHelper . userData . type = 'posZ' ;
61- const negXAxisHelper = new Sprite ( getSpriteMaterial ( color1 ) ) ;
62- negXAxisHelper . userData . type = 'negX' ;
63- const negYAxisHelper = new Sprite ( getSpriteMaterial ( color2 ) ) ;
64- negYAxisHelper . userData . type = 'negY' ;
65- const negZAxisHelper = new Sprite ( getSpriteMaterial ( color3 ) ) ;
66- negZAxisHelper . userData . type = 'negZ' ;
57+ const spriteMaterial1 = getSpriteMaterial ( color1 ) ;
58+ const spriteMaterial2 = getSpriteMaterial ( color2 ) ;
59+ const spriteMaterial3 = getSpriteMaterial ( color3 ) ;
60+ const spriteMaterial4 = getSpriteMaterial ( color4 ) ;
61+
62+ const posXAxisHelper = new Sprite ( spriteMaterial1 ) ;
63+ const posYAxisHelper = new Sprite ( spriteMaterial2 ) ;
64+ const posZAxisHelper = new Sprite ( spriteMaterial3 ) ;
65+ const negXAxisHelper = new Sprite ( spriteMaterial4 ) ;
66+ const negYAxisHelper = new Sprite ( spriteMaterial4 ) ;
67+ const negZAxisHelper = new Sprite ( spriteMaterial4 ) ;
6768
6869 posXAxisHelper . position . x = 1 ;
6970 posYAxisHelper . position . y = 1 ;
7071 posZAxisHelper . position . z = 1 ;
7172 negXAxisHelper . position . x = - 1 ;
72- negXAxisHelper . scale . setScalar ( 0.8 ) ;
7373 negYAxisHelper . position . y = - 1 ;
74- negYAxisHelper . scale . setScalar ( 0.8 ) ;
7574 negZAxisHelper . position . z = - 1 ;
76- negZAxisHelper . scale . setScalar ( 0.8 ) ;
75+
76+ negXAxisHelper . material . opacity = 0.2 ;
77+ negYAxisHelper . material . opacity = 0.2 ;
78+ negZAxisHelper . material . opacity = 0.2 ;
79+
80+ posXAxisHelper . userData . type = 'posX' ;
81+ posYAxisHelper . userData . type = 'posY' ;
82+ posZAxisHelper . userData . type = 'posZ' ;
83+ negXAxisHelper . userData . type = 'negX' ;
84+ negYAxisHelper . userData . type = 'negY' ;
85+ negZAxisHelper . userData . type = 'negZ' ;
7786
7887 this . add ( posXAxisHelper ) ;
7988 this . add ( posYAxisHelper ) ;
@@ -101,42 +110,6 @@ class ViewHelper extends Object3D {
101110 point . set ( 0 , 0 , 1 ) ;
102111 point . applyQuaternion ( camera . quaternion ) ;
103112
104- if ( point . x >= 0 ) {
105-
106- posXAxisHelper . material . opacity = 1 ;
107- negXAxisHelper . material . opacity = 0.5 ;
108-
109- } else {
110-
111- posXAxisHelper . material . opacity = 0.5 ;
112- negXAxisHelper . material . opacity = 1 ;
113-
114- }
115-
116- if ( point . y >= 0 ) {
117-
118- posYAxisHelper . material . opacity = 1 ;
119- negYAxisHelper . material . opacity = 0.5 ;
120-
121- } else {
122-
123- posYAxisHelper . material . opacity = 0.5 ;
124- negYAxisHelper . material . opacity = 1 ;
125-
126- }
127-
128- if ( point . z >= 0 ) {
129-
130- posZAxisHelper . material . opacity = 1 ;
131- negZAxisHelper . material . opacity = 0.5 ;
132-
133- } else {
134-
135- posZAxisHelper . material . opacity = 0.5 ;
136- negZAxisHelper . material . opacity = 1 ;
137-
138- }
139-
140113 //
141114
142115 const x = domElement . offsetWidth - dim ;
@@ -298,29 +271,21 @@ class ViewHelper extends Object3D {
298271
299272 }
300273
301- function getSpriteMaterial ( color , text = null ) {
274+ function getSpriteMaterial ( color ) {
302275
303276 const canvas = document . createElement ( 'canvas' ) ;
304277 canvas . width = 64 ;
305278 canvas . height = 64 ;
306279
307280 const context = canvas . getContext ( '2d' ) ;
308281 context . beginPath ( ) ;
309- context . arc ( 32 , 32 , 16 , 0 , 2 * Math . PI ) ;
282+ context . arc ( 32 , 32 , 14 , 0 , 2 * Math . PI ) ;
310283 context . closePath ( ) ;
311284 context . fillStyle = color . getStyle ( ) ;
312285 context . fill ( ) ;
313286
314- if ( text !== null ) {
315-
316- context . font = '24px Arial' ;
317- context . textAlign = 'center' ;
318- context . fillStyle = '#000000' ;
319- context . fillText ( text , 32 , 41 ) ;
320-
321- }
322-
323287 const texture = new CanvasTexture ( canvas ) ;
288+ texture . colorSpace = SRGBColorSpace ;
324289
325290 return new SpriteMaterial ( { map : texture , toneMapped : false } ) ;
326291
0 commit comments