UNPKG

@mingo_zh/data-room-ui

Version:
45 lines (41 loc) 2.08 kB
import * as BABYLON from 'babylonjs' export function showAxis (scene, size) { var makeTextPlane = function (text, color, size) { var dynamicTexture = new BABYLON.DynamicTexture('DynamicTexture', 50, scene, true) dynamicTexture.hasAlpha = true dynamicTexture.drawText(text, 5, 40, 'bold 36px Arial', color, 'transparent', true) var plane = new BABYLON.MeshBuilder.CreatePlane('TextPlane', { size: size }, scene) plane.material = new BABYLON.StandardMaterial('TextPlaneMaterial', scene) plane.material.backFaceCulling = false plane.material.specularColor = new BABYLON.Color3(0, 0, 0) plane.material.diffuseTexture = dynamicTexture return plane } const axisX = BABYLON.MeshBuilder.CreateLines('axisX', { points: [ new BABYLON.Vector3.Zero(), new BABYLON.Vector3(size, 0, 0), new BABYLON.Vector3(size * 0.95, 0.05 * size, 0), new BABYLON.Vector3(size, 0, 0), new BABYLON.Vector3(size * 0.95, -0.05 * size, 0) ] }, scene) axisX.color = new BABYLON.Color3(1, 0, 0) const xChar = makeTextPlane('X', 'red', size / 10) xChar.position = new BABYLON.Vector3(0.9 * size, -0.05 * size, 0) const axisY = BABYLON.MeshBuilder.CreateLines('axisY', { points: [ new BABYLON.Vector3.Zero(), new BABYLON.Vector3(0, size, 0), new BABYLON.Vector3(-0.05 * size, size * 0.95, 0), new BABYLON.Vector3(0, size, 0), new BABYLON.Vector3(0.05 * size, size * 0.95, 0) ] }, scene) axisY.color = new BABYLON.Color3(0, 1, 0); const yChar = makeTextPlane('Y', 'green', size / 10) yChar.position = new BABYLON.Vector3(0, 0.9 * size, -0.05 * size) const axisZ = BABYLON.MeshBuilder.CreateLines('axisZ', { points: [ new BABYLON.Vector3.Zero(), new BABYLON.Vector3(0, 0, size), new BABYLON.Vector3(0, -0.05 * size, size * 0.95), new BABYLON.Vector3(0, 0, size), new BABYLON.Vector3(0, 0.05 * size, size * 0.95) ] }, scene) axisZ.color = new BABYLON.Color3(0, 0, 1) const zChar = makeTextPlane('Z', 'blue', size / 10) zChar.position = new BABYLON.Vector3(0, 0.05 * size, 0.9 * size) }