瀏覽代碼

ViewHelper: Move to sprites.

Mugen87 5 年之前
父節點
當前提交
325b933887
共有 1 個文件被更改,包括 32 次插入8 次删除
  1. 32 8
      editor/js/Viewport.ViewHelper.js

+ 32 - 8
editor/js/Viewport.ViewHelper.js

@@ -14,14 +14,12 @@ function ViewHelper() {
 	var axesHelper = new THREE.AxesHelper();
 	this.add( axesHelper );
 
-	var geometry = new THREE.SphereBufferGeometry( 0.2 );
-
-	var posXAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0xff0000, transparent: true } ) );
-	var posYAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x00ff00, transparent: true } ) );
-	var posZAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x0000ff, transparent: true } ) );
-	var negXAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0xff0000, transparent: true } ) );
-	var negYAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x00ff00, transparent: true } ) );
-	var negZAxisHelper = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x0000ff, transparent: true } ) );
+	var posXAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#ff0000', 'X' ) } ) );
+	var posYAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#00ff00', 'Y' ) } ) );
+	var posZAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#0000ff', 'Z' ) } ) );
+	var negXAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#ff0000' ) } ) );
+	var negYAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#00ff00' ) } ) );
+	var negZAxisHelper = new THREE.Sprite( new THREE.SpriteMaterial( { map: generateTexture( '#0000ff' ) } ) );
 
 	posXAxisHelper.position.x = 1;
 	posYAxisHelper.position.y = 1;
@@ -101,6 +99,32 @@ function ViewHelper() {
 
 	};
 
+	function generateTexture( color, text = null ) {
+
+		var canvas = document.createElement( 'canvas' );
+		canvas.width = 128;
+		canvas.height = 128;
+
+		var context = canvas.getContext( '2d' );
+		context.beginPath();
+		context.arc( 64, 64, 32, 0, 2 * Math.PI );
+		context.closePath();
+		context.fillStyle = color;
+		context.fill();
+
+		if ( text !== null ) {
+
+			context.font = '48px Arial';
+			context.textAlign = 'center';
+			context.fillStyle = '#000000';
+			context.fillText( text, 64, 84 );
+
+		}
+
+		return new THREE.CanvasTexture( canvas );
+
+	}
+
 }
 
 ViewHelper.prototype = Object.assign( Object.create( THREE.Object3D.prototype ), {