mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
78 lines
1.4 KiB
JavaScript
78 lines
1.4 KiB
JavaScript
import html2canvas from './html2canvas.js';
|
|
|
|
/**
|
|
* @author mrdoob / http://mrdoob.com/
|
|
*/
|
|
|
|
THREE.HTMLGroup = function ( dom ) {
|
|
|
|
THREE.Group.call( this );
|
|
|
|
this.type = 'HTMLGroup';
|
|
|
|
/*
|
|
dom.addEventListener( 'mousemove', function ( event ) {
|
|
|
|
console.log( 'mousemove' );
|
|
|
|
} );
|
|
|
|
dom.addEventListener( 'click', function ( event ) {
|
|
|
|
console.log( 'click' );
|
|
|
|
} );
|
|
*/
|
|
|
|
};
|
|
|
|
THREE.HTMLGroup.prototype = Object.assign( Object.create( THREE.Group.prototype ), {
|
|
|
|
constructor: THREE.HTMLGroup
|
|
|
|
} );
|
|
|
|
THREE.HTMLMesh = function ( dom ) {
|
|
|
|
var texture = new THREE.HTMLTexture( dom );
|
|
|
|
var geometry = new THREE.PlaneGeometry( texture.image.width * 0.05, texture.image.height * 0.05 );
|
|
var material = new THREE.MeshBasicMaterial( { map: texture } );
|
|
|
|
THREE.Mesh.call( this, geometry, material );
|
|
|
|
this.type = 'HTMLMesh';
|
|
|
|
};
|
|
|
|
THREE.HTMLMesh.prototype = Object.assign( Object.create( THREE.Mesh.prototype ), {
|
|
|
|
constructor: THREE.HTMLMesh
|
|
|
|
} );
|
|
|
|
THREE.HTMLTexture = function ( dom ) {
|
|
|
|
THREE.CanvasTexture.call( this, html2canvas( dom ) );
|
|
|
|
this.dom = dom;
|
|
|
|
this.anisotropy = 16;
|
|
|
|
};
|
|
|
|
THREE.HTMLTexture.prototype = Object.assign( Object.create( THREE.CanvasTexture.prototype ), {
|
|
|
|
constructor: THREE.HTMLTexture,
|
|
|
|
update: function () {
|
|
|
|
console.log( 'yo!', this, this.dom );
|
|
|
|
this.image = html2canvas( this.dom );
|
|
this.needsUpdate = true;
|
|
|
|
}
|
|
|
|
} );
|