threepipe
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

script.ts 1.2KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {_testFinish, IObject3D, PickingPlugin, ThreeViewer} from 'threepipe'
  2. import {TweakpaneUiPlugin} from '@threepipe/plugin-tweakpane'
  3. async function init() {
  4. const viewer = new ThreeViewer({
  5. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  6. msaa: true,
  7. })
  8. const picking = viewer.addPluginSync(PickingPlugin)
  9. picking.hoverEnabled = true
  10. await viewer.setEnvironmentMap('https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr')
  11. await viewer.load<IObject3D>('https://threejs.org/examples/models/gltf/DamagedHelmet/glTF/DamagedHelmet.gltf')
  12. const ui = viewer.addPluginSync(new TweakpaneUiPlugin(true))
  13. ui.setupPluginUi(PickingPlugin)
  14. picking.addEventListener('hitObject', (e)=>{
  15. console.log('Hit object', e, e.intersects.selectedObject)
  16. // set to null to prevent selection
  17. // e.intersects.selectedObject = null
  18. })
  19. picking.addEventListener('selectedObjectChanged', (e)=>{
  20. console.log('Selected Object Changed', e)
  21. })
  22. picking.addEventListener('hoverObjectChanged', (e)=>{
  23. console.log('Hover Object Changed', e)
  24. })
  25. }
  26. init().finally(_testFinish)