DOMRenderer.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * @author mr.doob / http://mrdoob.com/
  3. */
  4. THREE.DOMRenderer = function () {
  5. THREE.Renderer.call( this );
  6. var _renderList = null,
  7. _projector = new THREE.Projector(),
  8. _div = document.createElement( 'div' ),
  9. _width, _height, _widthHalf, _heightHalf;
  10. this.domElement = _div;
  11. this.setSize = function ( width, height ) {
  12. _width = width; _height = height;
  13. _widthHalf = _width / 2; _heightHalf = _height / 2;
  14. };
  15. this.render = function ( scene, camera ) {
  16. var e, el, m, ml, element, material, dom, v1x, v1y;
  17. _renderList = _projector.projectScene( scene, camera );
  18. for ( e = 0, el = _renderList.length; e < el; e++ ) {
  19. element = _renderList[ e ];
  20. if ( element instanceof THREE.RenderableParticle ) {
  21. v1x = element.x * _widthHalf + _widthHalf; v1y = element.y * _heightHalf + _heightHalf;
  22. for ( m = 0, ml = element.material.length; m < ml; m++ ) {
  23. material = element.material[ m ];
  24. if ( material instanceof THREE.ParticleDOMMaterial ) {
  25. dom = material.domElement;
  26. dom.style.left = v1x + 'px';
  27. dom.style.top = v1y + 'px';
  28. }
  29. }
  30. }
  31. }
  32. };
  33. }