Browse Source

标签

master
lxc 2 years ago
parent
commit
7e3d7516df
  1. 20
      editor/js/menus/Menubar.Models.js

20
editor/js/menus/Menubar.Models.js

@ -106,8 +106,8 @@ function MenubarModels(editor) {
option.onClick(function () { option.onClick(function () {
add2dlable("中国"); add2dlable("中国");
return ; return;
let selectobj = editor.selected; let selectobj = editor.selected;
if (!!!selectobj) { if (!!!selectobj) {
alert("none"); alert("none");
@ -117,7 +117,7 @@ function MenubarModels(editor) {
// debugger // debugger
// const moonDiv = document.createElement('div'); // const moonDiv = document.createElement('div');
// moonDiv.className = 'label'; // moonDiv.className = 'label';
// moonDiv.textContent = 'Moon11111111111111111'; // moonDiv.textContent = 'Moon11111111111111111';
// moonDiv.style.marginTop = '-1em'; // moonDiv.style.marginTop = '-1em';
// let moonLabel = new CSS2DObject(moonDiv); // let moonLabel = new CSS2DObject(moonDiv);
@ -161,8 +161,8 @@ function MenubarModels(editor) {
return container; return container;
} }
function add2dlable(text){ function add2dlable(text) {
let labelCanvas = document.createElement('canvas'); let labelCanvas = document.createElement('canvas');
const context = labelCanvas.getContext('2d'); const context = labelCanvas.getContext('2d');
context.font = 'Bold 20px Arial'; context.font = 'Bold 20px Arial';
const labelWidth = context.measureText(text).width; const labelWidth = context.measureText(text).width;
@ -171,7 +171,7 @@ function add2dlable(text){
context.font = 'Bold 20px Arial'; context.font = 'Bold 20px Arial';
context.fillStyle = 'rgba( 255, 0, 0, 1 )'; context.fillStyle = 'rgba( 255, 0, 0, 1 )';
context.fillText(text, 0, 20); context.fillText(text, 0,20);
const labelTexture = new THREE.Texture(labelCanvas); const labelTexture = new THREE.Texture(labelCanvas);
labelTexture.magFilter = THREE.LinearFilter; labelTexture.magFilter = THREE.LinearFilter;
labelTexture.minFilter = THREE.LinearFilter; labelTexture.minFilter = THREE.LinearFilter;
@ -182,24 +182,26 @@ function add2dlable(text){
}); });
labelMaterial.transparent = true; labelMaterial.transparent = true;
const labelPlane = new THREE.PlaneGeometry(labelCanvas.width, labelCanvas.height); const labelPlane = new THREE.PlaneGeometry(labelCanvas.width, labelCanvas.height);
let labelMesh = new THREE.Mesh(labelPlane, labelMaterial); let labelMesh = new THREE.Mesh(labelPlane, labelMaterial);
labelMesh.name='标签'
editor.execute(new AddObjectCommand(editor, labelMesh)); editor.execute(new AddObjectCommand(editor, labelMesh));
} }
function AddSceneTextCSS2DLabel(obj) { function AddSceneTextCSS2DLabel(obj) {
const labelDiv = document.createElement('div'); const labelDiv = document.createElement('div');
labelDiv.className = 'label'; labelDiv.className = 'label';
labelDiv.identifierName = 'label'; labelDiv.identifierName = 'label';
labelDiv.textContent = '显示内容 Test ...'; labelDiv.textContent = '显示内容 Test ...';
labelDiv.style.marginTop = '-1em'; labelDiv.style.marginTop = '-1em';
const css2dLabel = new CSS2DObject(labelDiv); const css2dLabel = new CSS2DObject(labelDiv);
css2dLabel.position.set(0, 1, 0); css2dLabel.position.set(0, 1, 0);
labelDiv.style.pointerEvents = 'none';//避免HTML标签遮挡三维场景的鼠标事件 labelDiv.style.pointerEvents = 'none';//避免HTML标签遮挡三维场景的鼠标事件
css2dLabel.name = 'CSS2DLabel'; css2dLabel.name = 'CSS2DLabel';
obj.add(css2dLabel); obj.add(css2dLabel);
editor.signals.render.dispatch(); editor.signals.render.dispatch();
} }

Loading…
Cancel
Save