macaw-threejs
Version:
Macaw Three.js is ready to use library to connect Three.js with your project.<br/> Under the hood is a fully optimized, clean Three.js set up to make it easy to implement effects for images (future text, etc.). With effects out of the box, you don't even
2 lines (1 loc) • 1.48 kB
JavaScript
import*as e from"three";import{MacawComposer as r}from"./Composer/index.js";import{MacawObserver as s}from"./Observer/index.js";import{MacawResize as t}from"./Resize/index.js";import{MacawScene as o}from"./Scene/index.js";import{MacawScroll as i}from"./Scroll/index.js";import{STORAGE_DEFAULTS as n}from"../constants.js";import{RenderController as c}from"../controllers/Render/index.js";import{EffectController as l}from"../controllers/Effect/index.js";import{GeneralController as h}from"../controllers/General/index.js";import{ShaderController as f}from"../controllers/Shader/index.js";class m{constructor(m){const{sceneSettings:d,container:a}=m;this.storage=n,this.utils={vector2:new e.Vector2},this.scene=new o({settings:d,container:a,core:this}),this.scroll=new i({core:this}),this.resize=new t({core:this}),this.observer=new s({core:this}),this.controllers={effect:new l({core:this}),render:new c({core:this}),general:new h({core:this}),shader:new f},this.composer=new r({core:this});const{addEffect:p,removeEffect:j}=this.controllers.effect;this.addEffect=p.bind(this.controllers.effect),this.removeEffect=j.bind(this.controllers.effect),this._init()}cleanUp(){this.resize.cleanUp(),this.scroll.cleanUp(),this.observer.cleanUp(),this.storage.meshImages.forEach((e=>{e.cleanUp()}))}_init(){this.scroll.scroll(),this.resize.resize(),this.scroll.setupScroll(),this.resize.setup(),this.controllers.render.render(),this.controllers.render.manualRender()}}export{m as MacawCore};