mirror of
https://github.com/wahyd4/three.js.git
synced 2026-08-21 10:56:01 +10:00
* `CanvasRenderer` and `SVGRenderer` basic lighting support (`*ColorStroke`/`*ColorFill` only) * `Renderer` > `Projector`. `CanvasRenderer`, `SVGRenderer` and `DOMRenderer` do not extend anymore * Interactivity base code (hdi folder). To be refactored... ([mindlapse](http://github.com/mindlapse)) * Added `computeCentroids` method to `Geometry` * Included `Stats.js` directly in the `/examples` folder to avoid the need of internet for playing around
58 lines
1.1 KiB
JavaScript
58 lines
1.1 KiB
JavaScript
/**
|
|
* @author mr.doob / http://mrdoob.com/
|
|
*/
|
|
|
|
THREE.DOMRenderer = function () {
|
|
|
|
THREE.Renderer.call( this );
|
|
|
|
var _renderList = null,
|
|
_projector = new THREE.Projector(),
|
|
_div = document.createElement( 'div' ),
|
|
_width, _height, _widthHalf, _heightHalf;
|
|
|
|
this.domElement = _div;
|
|
|
|
this.setSize = function ( width, height ) {
|
|
|
|
_width = width; _height = height;
|
|
_widthHalf = _width / 2; _heightHalf = _height / 2;
|
|
|
|
};
|
|
|
|
this.render = function ( scene, camera ) {
|
|
|
|
var e, el, m, ml, element, material, dom, v1x, v1y;
|
|
|
|
_renderList = _projector.projectScene( scene, camera );
|
|
|
|
for ( e = 0, el = _renderList.length; e < el; e++ ) {
|
|
|
|
element = _renderList[ e ];
|
|
|
|
if ( element instanceof THREE.RenderableParticle ) {
|
|
|
|
v1x = element.x * _widthHalf + _widthHalf; v1y = element.y * _heightHalf + _heightHalf;
|
|
|
|
for ( m = 0, ml = element.material.length; m < ml; m++ ) {
|
|
|
|
material = element.material[ m ];
|
|
|
|
if ( material instanceof THREE.ParticleDOMMaterial ) {
|
|
|
|
dom = material.domElement;
|
|
dom.style.left = v1x + 'px';
|
|
dom.style.top = v1y + 'px';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|