diff --git a/src/d3/RenderChain.js b/src/d3/RenderChain.js new file mode 100644 index 0000000..b61d05f --- /dev/null +++ b/src/d3/RenderChain.js @@ -0,0 +1,19 @@ +export default class RenderChain { + constructor(renderer, scene, camera) { + this._renderer = renderer; + this._scene = scene; + this._camera = camera; + } + + setSize(width, height) { + this._renderer.setSize(width, height); + + // adjust aspect ratio of camera + this._camera.aspect = width / height; + this._camera.updateProjectionMatrix(); + } + + render() { + this._renderer.render(this._scene, this._camera); + } +} diff --git a/src/d3/index.js b/src/d3/index.js index 8e55fa6..c9895d4 100644 --- a/src/d3/index.js +++ b/src/d3/index.js @@ -1,7 +1,8 @@ import createSceneData from './createSceneData.js'; import createScene from './createScene.js'; +import RenderChain from './RenderChain.js'; import ToonShaderRenderChain from './ToonShaderRenderChain.js'; import ShapeMesh from './ShapeMesh.js'; import ShapesManager from './ShapesManager.js'; -export { createSceneData, createScene, ToonShaderRenderChain, ShapeMesh, ShapesManager }; +export { createSceneData, createScene, RenderChain, ToonShaderRenderChain, ShapeMesh, ShapesManager };