Facebook
From Bitty Teal, 1 Year ago, written in JavaScript.
This paste is a reply to IleSelector from Marcos Pimienta - go back
Embed
Viewing differences between IleSelector and Re: IleSelector
import { HighlightLayer, StandardMaterial, SceneLoader, Vector3, Color3, Space, GizmoManager, UtilityLayerRenderer, type Scene, MeshBuilder, CreatePlane, RotationGizmo, InstancedMesh, Mesh } from "@babylonjs/core";
import { objectToString } from "@vue/shared";

interface Ile {
  id: number | string;
  object?: Mesh;
}

const iles: Ile[] = [];

function ileLoad( position: Vector3, rotation: number, scene: Scene){
  const highlightLayer = new HighlightLayer("highlight", scene);
  const plane: any = MeshBuilder.CreatePlane('select',{size: 1, width: 0.5, height: 2.5, sideOrientation: 2});
  highlightLayer.addMesh(plane, Color3.Green());
  let mat1 = new StandardMaterial("mat1", scene);
  mat1.alpha = 0;
  plane.material = mat1;
  plane.rotation.x = Math.PI/2;
  plane.rotate(new Vector3(1, 1, 1), rotation * Math.PI, Space.WORLD);
  plane.translate(position, 1, Space.WORLD);


  iles.push(
      { id: 1,
        object: plane.createInstance(`plane${1}`),
      },
      { id: 2,
        object: plane.createInstance(`plane${2}`),
      },
      { id: 3,
        object: plane.createInstance(`plane${3}`),
      },
      { id: 4,
        object: plane.createInstance(`plane${4}`),
      },
      { id: 5,
        object: plane.createInstance(`plane${5}`),
      },
    )
      iles[0].object?.translate(new Vector3(0.64, 0, 0), 1, Space.WORLD);
      iles[1].object?.translate(new Vector3(1.28, 0, 0), 1, Space.WORLD);
      iles[2].object?.translate(new Vector3(1.88, 0, 0), 1, Space.WORLD);
      iles[3].object?.translate(new Vector3(2.5, 0, 0), 1, Space.WORLD);
      iles[4].object?.translate(new Vector3(3.15, 0, 0), 1, Space.WORLD);
      ileSelect(1, iles, scene);
  return iles;
}

function ileSelect( index: number, Selectors: Ile[], scene: Scene){
  Selectors.forEach((Selector)=>{
    Selector.object?.setEnabled(false);
  })
  Selectors[index].object?.setEnabled(true);
}

export { ileSelect, ileLoad };