@anov/3d-ability 0.0.81 → 0.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -115,17 +115,6 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
115
115
  _this2["".concat(lastType, "Objects")].forEach(function (object) {
116
116
  object.visible = false;
117
117
  });
118
-
119
- // if (type === 'Real') {
120
- // this.oldObjects.forEach((object) => {
121
- // object.visible = true
122
- // })
123
-
124
- // this.RealObjects.forEach((object) => {
125
- // object.visible = false
126
- // })
127
- // }
128
-
129
118
  _this2.dispatchEvent({
130
119
  type: 'onStyleChanged',
131
120
  style: type
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","Object3D","Vector3","gsap","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToRealFade","MaterialSwitchSystem","_Object3D","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","progress","value","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","generate","_createClass","key","uniforms","allHide","oldObjects","forEach","object","visible","RealObjects","FrameObjects","PureObjects","FresnelObjects","switchType","type","_this$frame","_this2","frame","kill","concat","lastType","to","duration","ease","onComplete","dispatchEvent","style","addObject","_this3","objects","set","uuid","finalObject","clone","generateFinalObject","add","pureObject","generatePureObject","frameObject","generateFrameObject","traverse","child","originalMaterial","has","material","realObject","generateRealObject","getMaxSize","removeObject","delete","get","fresnelObject","removeFromParent","box3","expandByObject","size","getSize","Math","max","x","z"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import { Box3, Color, Group, MeshBasicMaterial, Object3D, Vector3, gsap } from '@anov/3d-core'\nimport { disposeMaterial, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = 'Real'\n public originalMaterial = new Map()\n\n private objects = new Map<string, Object3D>()\n private oldObjects = new Map<string, Object3D>()\n private RealObjects = new Map<string, Object3D>()\n private FrameObjects = new Map<string, Object3D>()\n private PureObjects = new Map<string, Object3D>()\n private FresnelObjects = new Map<string, Object3D>()\n\n private frame: gsap.core.Tween | null = null\n public uniforms = {\n progress: { value: 0.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: false },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n }\n\n constructor() {\n super()\n\n this.generate()\n }\n\n private generate() {\n this.uniforms.progress.value = 1.0\n\n this.uniforms.isRealFadeIn.value = true\n this.uniforms.isFresnelFadeIn.value = false\n this.uniforms.isPureFadeIn.value = false\n this.uniforms.isFrameFadeIn.value = false\n }\n\n private allHide() {\n this.oldObjects.forEach((object) => {\n object.visible = false\n })\n\n this.RealObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FrameObjects.forEach((object) => {\n object.visible = false\n })\n\n this.PureObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FresnelObjects.forEach((object) => {\n object.visible = false\n })\n }\n\n /**\n * switch type\n * @param type\n */\n public switchType(type: MaterialSwitchType) {\n if (this.type === type)\n return\n\n this.frame?.kill()\n\n this.allHide()\n\n this[`${type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this[`${this.type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${type}FadeIn`].value = true\n\n const lastType = this.type\n\n this.frame = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: 2.0,\n ease: 'linear',\n onComplete: () => {\n this[`${lastType}Objects`].forEach((object) => {\n object.visible = false\n })\n\n // if (type === 'Real') {\n // this.oldObjects.forEach((object) => {\n // object.visible = true\n // })\n\n // this.RealObjects.forEach((object) => {\n // object.visible = false\n // })\n // }\n\n this.dispatchEvent({\n type: 'onStyleChanged',\n style: type,\n })\n },\n })\n\n this.type = type\n }\n\n /**\n * add object\n * @param object\n */\n public addObject(object: Object3D) {\n this.switchType('Real')\n\n this.objects.set(object.uuid, object)\n\n const finalObject = object.clone()\n this.generateFinalObject(finalObject)\n this.FresnelObjects.set(object.uuid, finalObject)\n this.add(finalObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.PureObjects.set(object.uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.FrameObjects.set(object.uuid, frameObject)\n this.add(frameObject)\n\n object.traverse((child: any) => {\n if (child.type === 'Mesh') {\n // only record the first material\n if (!this.originalMaterial.has(child.uuid))\n this.originalMaterial.set(child.uuid, child.material.clone())\n }\n })\n\n const realObject = object\n this.generateRealObject(realObject)\n this.RealObjects.set(object.uuid, realObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n\n this.allHide()\n this.RealObjects.forEach((object) => {\n object.visible = true\n })\n }\n\n /**\n * remove object\n * @param object\n */\n public removeObject(object: Object3D) {\n this.objects.delete(object.uuid)\n\n const realObject = this.RealObjects.get(object.uuid)\n const frameObject = this.FrameObjects.get(object.uuid)\n const pureObject = this.PureObjects.get(object.uuid)\n const fresnelObject = this.FresnelObjects.get(object.uuid)\n\n realObject.removeFromParent()\n frameObject.removeFromParent()\n pureObject.removeFromParent()\n fresnelObject.removeFromParent()\n\n this.RealObjects.delete(object.uuid)\n this.FrameObjects.delete(object.uuid)\n this.PureObjects.delete(object.uuid)\n this.FresnelObjects.delete(object.uuid)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n /**\n * get max size\n * @param object\n * @returns\n */\n private getMaxSize() {\n const box3 = new Box3()\n this.RealObjects.forEach((object) => {\n box3.expandByObject(object)\n })\n\n const size = box3.getSize(new Vector3())\n const maxSize = Math.max(size.x, size.z)\n return maxSize\n }\n\n /**\n * generate final object\n * @param object\n */\n private generateFinalObject(object: Object3D) {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n /**\n * generate real object\n * @param object\n */\n private generateRealObject(object: Object3D) {\n injectToRealFade(object, this.uniforms)\n }\n\n /**\n * generate pure object\n * @param object\n */\n private generatePureObject(object: Object3D) {\n injectToBaseWrite(object, this.uniforms)\n }\n\n /**\n * generate frame object\n * @param object\n */\n private generateFrameObject(object: Object3D) {\n injectToFrameFade(object, this.uniforms)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,IAAI,EAAmCC,QAAQ,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9F,SAA0BC,iBAAiB,EAAEC,qBAAqB,EAAEC,iBAAiB,EAAEC,gBAAgB;AAKvG;AACA;AACA;AACA,WAAaC,oBAAoB,0BAAAC,SAAA;EAAAC,SAAA,CAAAF,oBAAA,EAAAC,SAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,oBAAA;EAqB/B,SAAAA,qBAAA,EAAc;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,oBAAA;IACZK,KAAA,GAAAF,MAAA,CAAAI,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,WArByB,MAAM;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,uBACd,IAAIK,GAAG,CAAC,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,cAEjB,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,iBACxB,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,kBAC1B,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,mBAC1B,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,kBAC5B,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,qBACxB,IAAIK,GAAG,CAAmB,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,YAEZ,IAAI;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,eAC1B;MAChBM,QAAQ,EAAE;QAAEC,KAAK,EAAE;MAAI,CAAC;MACxBC,eAAe,EAAE;QAAED,KAAK,EAAE;MAAM,CAAC;MACjCE,YAAY,EAAE;QAAEF,KAAK,EAAE;MAAM,CAAC;MAC9BG,YAAY,EAAE;QAAEH,KAAK,EAAE;MAAM,CAAC;MAC9BI,aAAa,EAAE;QAAEJ,KAAK,EAAE;MAAM,CAAC;MAC/BK,OAAO,EAAE;QAAEL,KAAK,EAAE;MAAE;IACtB,CAAC;IAKCP,KAAA,CAAKa,QAAQ,CAAC,CAAC;IAAA,OAAAb,KAAA;EACjB;EAACc,YAAA,CAAAnB,oBAAA;IAAAoB,GAAA;IAAAR,KAAA,EAED,SAAAM,SAAA,EAAmB;MACjB,IAAI,CAACG,QAAQ,CAACV,QAAQ,CAACC,KAAK,GAAG,GAAG;MAElC,IAAI,CAACS,QAAQ,CAACP,YAAY,CAACF,KAAK,GAAG,IAAI;MACvC,IAAI,CAACS,QAAQ,CAACR,eAAe,CAACD,KAAK,GAAG,KAAK;MAC3C,IAAI,CAACS,QAAQ,CAACN,YAAY,CAACH,KAAK,GAAG,KAAK;MACxC,IAAI,CAACS,QAAQ,CAACL,aAAa,CAACJ,KAAK,GAAG,KAAK;IAC3C;EAAC;IAAAQ,GAAA;IAAAR,KAAA,EAED,SAAAU,QAAA,EAAkB;MAChB,IAAI,CAACC,UAAU,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;QAClCA,MAAM,CAACC,OAAO,GAAG,KAAK;MACxB,CAAC,CAAC;MAEF,IAAI,CAACC,WAAW,CAACH,OAAO,CAAC,UAACC,MAAM,EAAK;QACnCA,MAAM,CAACC,OAAO,GAAG,KAAK;MACxB,CAAC,CAAC;MAEF,IAAI,CAACE,YAAY,CAACJ,OAAO,CAAC,UAACC,MAAM,EAAK;QACpCA,MAAM,CAACC,OAAO,GAAG,KAAK;MACxB,CAAC,CAAC;MAEF,IAAI,CAACG,WAAW,CAACL,OAAO,CAAC,UAACC,MAAM,EAAK;QACnCA,MAAM,CAACC,OAAO,GAAG,KAAK;MACxB,CAAC,CAAC;MAEF,IAAI,CAACI,cAAc,CAACN,OAAO,CAAC,UAACC,MAAM,EAAK;QACtCA,MAAM,CAACC,OAAO,GAAG,KAAK;MACxB,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;EAHE;IAAAN,GAAA;IAAAR,KAAA,EAIA,SAAAmB,WAAkBC,IAAwB,EAAE;MAAA,IAAAC,WAAA;QAAAC,MAAA;MAC1C,IAAI,IAAI,CAACF,IAAI,KAAKA,IAAI,EACpB;MAEF,CAAAC,WAAA,OAAI,CAACE,KAAK,cAAAF,WAAA,eAAVA,WAAA,CAAYG,IAAI,CAAC,CAAC;MAElB,IAAI,CAACd,OAAO,CAAC,CAAC;MAEd,IAAI,IAAAe,MAAA,CAAIL,IAAI,aAAU,CAACR,OAAO,CAAC,UAACC,MAAM,EAAK;QACzCA,MAAM,CAACC,OAAO,GAAG,IAAI;MACvB,CAAC,CAAC;MAEF,IAAI,IAAAW,MAAA,CAAI,IAAI,CAACL,IAAI,aAAU,CAACR,OAAO,CAAC,UAACC,MAAM,EAAK;QAC9CA,MAAM,CAACC,OAAO,GAAG,IAAI;MACvB,CAAC,CAAC;MAEF,IAAI,CAACL,QAAQ,CAACV,QAAQ,CAACC,KAAK,GAAG,GAAG;MAClC,IAAI,CAACS,QAAQ,MAAAgB,MAAA,CAAM,IAAI,CAACL,IAAI,YAAS,CAACpB,KAAK,GAAG,KAAK;MACnD,IAAI,CAACS,QAAQ,MAAAgB,MAAA,CAAML,IAAI,YAAS,CAACpB,KAAK,GAAG,IAAI;MAE7C,IAAM0B,QAAQ,GAAG,IAAI,CAACN,IAAI;MAE1B,IAAI,CAACG,KAAK,GAAGxC,IAAI,CAAC4C,EAAE,CAAC,IAAI,CAAClB,QAAQ,CAACV,QAAQ,EAAE;QAC3CC,KAAK,EAAE,GAAG;QACV4B,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,SAAAA,WAAA,EAAM;UAChBR,MAAI,IAAAG,MAAA,CAAIC,QAAQ,aAAU,CAACd,OAAO,CAAC,UAACC,MAAM,EAAK;YAC7CA,MAAM,CAACC,OAAO,GAAG,KAAK;UACxB,CAAC,CAAC;;UAEF;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;;UAEAQ,MAAI,CAACS,aAAa,CAAC;YACjBX,IAAI,EAAE,gBAAgB;YACtBY,KAAK,EAAEZ;UACT,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;MAEF,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB;;IAEA;AACF;AACA;AACA;EAHE;IAAAZ,GAAA;IAAAR,KAAA,EAIA,SAAAiC,UAAiBpB,MAAgB,EAAE;MAAA,IAAAqB,MAAA;MACjC,IAAI,CAACf,UAAU,CAAC,MAAM,CAAC;MAEvB,IAAI,CAACgB,OAAO,CAACC,GAAG,CAACvB,MAAM,CAACwB,IAAI,EAAExB,MAAM,CAAC;MAErC,IAAMyB,WAAW,GAAGzB,MAAM,CAAC0B,KAAK,CAAC,CAAC;MAClC,IAAI,CAACC,mBAAmB,CAACF,WAAW,CAAC;MACrC,IAAI,CAACpB,cAAc,CAACkB,GAAG,CAACvB,MAAM,CAACwB,IAAI,EAAEC,WAAW,CAAC;MACjD,IAAI,CAACG,GAAG,CAACH,WAAW,CAAC;MAErB,IAAMI,UAAU,GAAG7B,MAAM,CAAC0B,KAAK,CAAC,CAAC;MACjC,IAAI,CAACI,kBAAkB,CAACD,UAAU,CAAC;MACnC,IAAI,CAACzB,WAAW,CAACmB,GAAG,CAACvB,MAAM,CAACwB,IAAI,EAAEK,UAAU,CAAC;MAC7C,IAAI,CAACD,GAAG,CAACC,UAAU,CAAC;MAEpB,IAAME,WAAW,GAAG/B,MAAM,CAAC0B,KAAK,CAAC,CAAC;MAClC,IAAI,CAACM,mBAAmB,CAACD,WAAW,CAAC;MACrC,IAAI,CAAC5B,YAAY,CAACoB,GAAG,CAACvB,MAAM,CAACwB,IAAI,EAAEO,WAAW,CAAC;MAC/C,IAAI,CAACH,GAAG,CAACG,WAAW,CAAC;MAErB/B,MAAM,CAACiC,QAAQ,CAAC,UAACC,KAAU,EAAK;QAC9B,IAAIA,KAAK,CAAC3B,IAAI,KAAK,MAAM,EAAE;UACzB;UACA,IAAI,CAACc,MAAI,CAACc,gBAAgB,CAACC,GAAG,CAACF,KAAK,CAACV,IAAI,CAAC,EACxCH,MAAI,CAACc,gBAAgB,CAACZ,GAAG,CAACW,KAAK,CAACV,IAAI,EAAEU,KAAK,CAACG,QAAQ,CAACX,KAAK,CAAC,CAAC,CAAC;QACjE;MACF,CAAC,CAAC;MAEF,IAAMY,UAAU,GAAGtC,MAAM;MACzB,IAAI,CAACuC,kBAAkB,CAACD,UAAU,CAAC;MACnC,IAAI,CAACpC,WAAW,CAACqB,GAAG,CAACvB,MAAM,CAACwB,IAAI,EAAEc,UAAU,CAAC;MAE7C,IAAI,CAAC1C,QAAQ,CAACJ,OAAO,CAACL,KAAK,GAAG,IAAI,CAACqD,UAAU,CAAC,CAAC;MAE/C,IAAI,CAAC3C,OAAO,CAAC,CAAC;MACd,IAAI,CAACK,WAAW,CAACH,OAAO,CAAC,UAACC,MAAM,EAAK;QACnCA,MAAM,CAACC,OAAO,GAAG,IAAI;MACvB,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;EAHE;IAAAN,GAAA;IAAAR,KAAA,EAIA,SAAAsD,aAAoBzC,MAAgB,EAAE;MACpC,IAAI,CAACsB,OAAO,CAACoB,MAAM,CAAC1C,MAAM,CAACwB,IAAI,CAAC;MAEhC,IAAMc,UAAU,GAAG,IAAI,CAACpC,WAAW,CAACyC,GAAG,CAAC3C,MAAM,CAACwB,IAAI,CAAC;MACpD,IAAMO,WAAW,GAAG,IAAI,CAAC5B,YAAY,CAACwC,GAAG,CAAC3C,MAAM,CAACwB,IAAI,CAAC;MACtD,IAAMK,UAAU,GAAG,IAAI,CAACzB,WAAW,CAACuC,GAAG,CAAC3C,MAAM,CAACwB,IAAI,CAAC;MACpD,IAAMoB,aAAa,GAAG,IAAI,CAACvC,cAAc,CAACsC,GAAG,CAAC3C,MAAM,CAACwB,IAAI,CAAC;MAE1Dc,UAAU,CAACO,gBAAgB,CAAC,CAAC;MAC7Bd,WAAW,CAACc,gBAAgB,CAAC,CAAC;MAC9BhB,UAAU,CAACgB,gBAAgB,CAAC,CAAC;MAC7BD,aAAa,CAACC,gBAAgB,CAAC,CAAC;MAEhC,IAAI,CAAC3C,WAAW,CAACwC,MAAM,CAAC1C,MAAM,CAACwB,IAAI,CAAC;MACpC,IAAI,CAACrB,YAAY,CAACuC,MAAM,CAAC1C,MAAM,CAACwB,IAAI,CAAC;MACrC,IAAI,CAACpB,WAAW,CAACsC,MAAM,CAAC1C,MAAM,CAACwB,IAAI,CAAC;MACpC,IAAI,CAACnB,cAAc,CAACqC,MAAM,CAAC1C,MAAM,CAACwB,IAAI,CAAC;MAEvC,IAAI,CAAC5B,QAAQ,CAACJ,OAAO,CAACL,KAAK,GAAG,IAAI,CAACqD,UAAU,CAAC,CAAC;IACjD;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA7C,GAAA;IAAAR,KAAA,EAKA,SAAAqD,WAAA,EAAqB;MACnB,IAAMM,IAAI,GAAG,IAAI/E,IAAI,CAAC,CAAC;MACvB,IAAI,CAACmC,WAAW,CAACH,OAAO,CAAC,UAACC,MAAM,EAAK;QACnC8C,IAAI,CAACC,cAAc,CAAC/C,MAAM,CAAC;MAC7B,CAAC,CAAC;MAEF,IAAMgD,IAAI,GAAGF,IAAI,CAACG,OAAO,CAAC,IAAIhF,OAAO,CAAC,CAAC,CAAC;MACxC,IAAMuB,OAAO,GAAG0D,IAAI,CAACC,GAAG,CAACH,IAAI,CAACI,CAAC,EAAEJ,IAAI,CAACK,CAAC,CAAC;MACxC,OAAO7D,OAAO;IAChB;;IAEA;AACF;AACA;AACA;EAHE;IAAAG,GAAA;IAAAR,KAAA,EAIA,SAAAwC,oBAA4B3B,MAAgB,EAAE;MAC5C5B,qBAAqB,CAAC4B,MAAM,EAAE,IAAI,CAACJ,QAAQ,CAAC;IAC9C;;IAEA;AACF;AACA;AACA;EAHE;IAAAD,GAAA;IAAAR,KAAA,EAIA,SAAAoD,mBAA2BvC,MAAgB,EAAE;MAC3C1B,gBAAgB,CAAC0B,MAAM,EAAE,IAAI,CAACJ,QAAQ,CAAC;IACzC;;IAEA;AACF;AACA;AACA;EAHE;IAAAD,GAAA;IAAAR,KAAA,EAIA,SAAA2C,mBAA2B9B,MAAgB,EAAE;MAC3C7B,iBAAiB,CAAC6B,MAAM,EAAE,IAAI,CAACJ,QAAQ,CAAC;IAC1C;;IAEA;AACF;AACA;AACA;EAHE;IAAAD,GAAA;IAAAR,KAAA,EAIA,SAAA6C,oBAA4BhC,MAAgB,EAAE;MAC5C3B,iBAAiB,CAAC2B,MAAM,EAAE,IAAI,CAACJ,QAAQ,CAAC;IAC1C;EAAC;EAAA,OAAArB,oBAAA;AAAA,EApOuCP,QAAQ"}
1
+ {"version":3,"names":["Box3","Object3D","Vector3","gsap","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToRealFade","MaterialSwitchSystem","_Object3D","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","progress","value","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","generate","_createClass","key","uniforms","allHide","oldObjects","forEach","object","visible","RealObjects","FrameObjects","PureObjects","FresnelObjects","switchType","type","_this$frame","_this2","frame","kill","concat","lastType","to","duration","ease","onComplete","dispatchEvent","style","addObject","_this3","objects","set","uuid","finalObject","clone","generateFinalObject","add","pureObject","generatePureObject","frameObject","generateFrameObject","traverse","child","originalMaterial","has","material","realObject","generateRealObject","getMaxSize","removeObject","delete","get","fresnelObject","removeFromParent","box3","expandByObject","size","getSize","Math","max","x","z"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import { Box3, Color, Group, MeshBasicMaterial, Object3D, Vector3, gsap } from '@anov/3d-core'\nimport { disposeMaterial, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = 'Real'\n public originalMaterial = new Map()\n\n private objects = new Map<string, Object3D>()\n private oldObjects = new Map<string, Object3D>()\n private RealObjects = new Map<string, Object3D>()\n private FrameObjects = new Map<string, Object3D>()\n private PureObjects = new Map<string, Object3D>()\n private FresnelObjects = new Map<string, Object3D>()\n\n private frame: gsap.core.Tween | null = null\n public uniforms = {\n progress: { value: 0.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: false },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n }\n\n constructor() {\n super()\n\n this.generate()\n }\n\n private generate() {\n this.uniforms.progress.value = 1.0\n\n this.uniforms.isRealFadeIn.value = true\n this.uniforms.isFresnelFadeIn.value = false\n this.uniforms.isPureFadeIn.value = false\n this.uniforms.isFrameFadeIn.value = false\n }\n\n private allHide() {\n this.oldObjects.forEach((object) => {\n object.visible = false\n })\n\n this.RealObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FrameObjects.forEach((object) => {\n object.visible = false\n })\n\n this.PureObjects.forEach((object) => {\n object.visible = false\n })\n\n this.FresnelObjects.forEach((object) => {\n object.visible = false\n })\n }\n\n /**\n * switch type\n * @param type\n */\n public switchType(type: MaterialSwitchType) {\n if (this.type === type)\n return\n\n this.frame?.kill()\n\n this.allHide()\n\n this[`${type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this[`${this.type}Objects`].forEach((object) => {\n object.visible = true\n })\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${type}FadeIn`].value = true\n\n const lastType = this.type\n\n this.frame = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: 2.0,\n ease: 'linear',\n onComplete: () => {\n this[`${lastType}Objects`].forEach((object) => {\n object.visible = false\n })\n\n this.dispatchEvent({\n type: 'onStyleChanged',\n style: type,\n })\n },\n })\n\n this.type = type\n }\n\n /**\n * add object\n * @param object\n */\n public addObject(object: Object3D) {\n this.switchType('Real')\n\n this.objects.set(object.uuid, object)\n\n const finalObject = object.clone()\n this.generateFinalObject(finalObject)\n this.FresnelObjects.set(object.uuid, finalObject)\n this.add(finalObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.PureObjects.set(object.uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.FrameObjects.set(object.uuid, frameObject)\n this.add(frameObject)\n\n object.traverse((child: any) => {\n if (child.type === 'Mesh') {\n // only record the first material\n if (!this.originalMaterial.has(child.uuid))\n this.originalMaterial.set(child.uuid, child.material.clone())\n }\n })\n\n const realObject = object\n this.generateRealObject(realObject)\n this.RealObjects.set(object.uuid, realObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n\n this.allHide()\n this.RealObjects.forEach((object) => {\n object.visible = true\n })\n }\n\n /**\n * remove object\n * @param object\n */\n public removeObject(object: Object3D) {\n this.objects.delete(object.uuid)\n\n const realObject = this.RealObjects.get(object.uuid)\n const frameObject = this.FrameObjects.get(object.uuid)\n const pureObject = this.PureObjects.get(object.uuid)\n const fresnelObject = this.FresnelObjects.get(object.uuid)\n\n realObject.removeFromParent()\n frameObject.removeFromParent()\n pureObject.removeFromParent()\n fresnelObject.removeFromParent()\n\n this.RealObjects.delete(object.uuid)\n this.FrameObjects.delete(object.uuid)\n this.PureObjects.delete(object.uuid)\n this.FresnelObjects.delete(object.uuid)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n /**\n * get max size\n * @param object\n * @returns\n */\n private getMaxSize() {\n const box3 = new Box3()\n this.RealObjects.forEach((object) => {\n box3.expandByObject(object)\n })\n\n const size = box3.getSize(new Vector3())\n const maxSize = Math.max(size.x, size.z)\n return maxSize\n }\n\n /**\n * generate final object\n * @param object\n */\n private generateFinalObject(object: Object3D) {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n /**\n * generate real object\n * @param object\n */\n private generateRealObject(object: Object3D) {\n injectToRealFade(object, this.uniforms)\n }\n\n /**\n * generate pure object\n * @param object\n */\n private generatePureObject(object: Object3D) {\n injectToBaseWrite(object, this.uniforms)\n }\n\n /**\n * generate frame object\n * @param object\n */\n private generateFrameObject(object: Object3D) {\n injectToFrameFade(object, this.uniforms)\n }\n}\n"],"mappings":"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"}
@@ -14,6 +14,6 @@ export default class LinkMesh extends ObjectLayer {
14
14
  get vspace(): [number, number];
15
15
  set vspace(newValue: [number, number]);
16
16
  get hspace(): [number, number];
17
- get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
17
+ get mesh(): Group | Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]>;
18
18
  setupAnimation(): void;
19
19
  }
@@ -8,6 +8,6 @@ export default class ParticleMesh extends ObjectLayer {
8
8
  _mesh: Group | Mesh;
9
9
  constructor();
10
10
  get ready(): Promise<boolean>;
11
- get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
11
+ get mesh(): Group | Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]>;
12
12
  setupAnimation(): void;
13
13
  }
@@ -21,7 +21,7 @@ export default class TitleMesh extends ObjectLayer {
21
21
  _style: string;
22
22
  constructor(option: TextOption);
23
23
  get ready(): Promise<boolean>;
24
- get mesh(): Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]> | Group;
24
+ get mesh(): Group | Mesh<import("@anov/3d-core").BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>, import("@anov/3d-core").Material | import("@anov/3d-core").Material[]>;
25
25
  get value(): string;
26
26
  set value(newValue: string);
27
27
  addReloadListener(callback: any): void;
@@ -12,7 +12,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12
12
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
14
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
- import { Box3, EventDispatcher, Group, MathUtils, Plane, Quaternion, TWEEN, Vector3, use } from '@anov/3d-core';
15
+ import { Box3, EventDispatcher, Group, MathUtils, Plane, Quaternion, TWEEN, Vector3, use, utils } from '@anov/3d-core';
16
16
  import FollowControls from "./FollowOrbitControls";
17
17
  /**
18
18
  * CameraExpand, 主要提供了一些PerspectiveCamera的拓展能力
@@ -53,9 +53,11 @@ export var PerspectiveCameraExpand = /*#__PURE__*/function (_EventDispatcher) {
53
53
  value: function bindEvent() {
54
54
  var _this2 = this;
55
55
  this.controls.addEventListener('start', function () {
56
+ utils.storeManagement.set('enableEvents', false);
56
57
  _this2._isCameraChange = true;
57
58
  });
58
59
  this.controls.addEventListener('end', function () {
60
+ utils.storeManagement.set('enableEvents', true);
59
61
  _this2._isCameraChange = false;
60
62
  });
61
63
  this.controls.addEventListener('change', function () {
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","EventDispatcher","Group","MathUtils","Plane","Quaternion","TWEEN","Vector3","use","FollowControls","PerspectiveCameraExpand","_EventDispatcher","_inherits","_super","_createSuper","camera","controls","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","bindEvent","_createClass","key","get","_isTransitionPeriod","_isCameraChange","value","_this2","addEventListener","dispatchEvent","type","position","target","caclCurrentPos","currentPos","distanceCoefficient","arguments","length","undefined","distance","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","clone","sub","normalize","lastPosition","multiplyScalar","add","lastLookat","caclSingleCoordinate","prevTarget","prevPosition","lastTarget","focus","params","_this3","Promise","res","_params$pitch","pitch","_params$yaw","yaw","_params$distance","duration","onUpdate","_params$distanceCoeff","moveOptions","_ref","_params$isTrigger","isTrigger","_ref2","lookat","onComplate","_params$duration","toArray","userInput","Array","isArray","_this3$caclCurrentPos","motion","fromArray","set","_this4","_","_ref3","_ref4","_params$duration2","x","y","z","targetPosition","cameraPosition","currentDirection","plane","radToDeg","normal","angleTo","rotationParent","setPitch","deg","direction","quaternion","pitchQuat","setFromAxisAngle","degToRad","multiply","applyQuaternion","distanceTo","copy","setYaw","caclPositionByFollow","axisX","axisY","axisZ","anglePitch","angleYaw","quaternionX","quaternionY","addScaledVector","follow","option","_this5","followId","_ref5","_ref5$relativeRotatio","relativeRotation","_ref5$pitch","_ref5$yaw","_ref5$distance","container","rotation","scale","oldCameraParent","parent","needUpdateRotation","enabled","followControls","renderer","domElement","curPosition","radius","cancelMotion","useframe","update","cancel","remove","dispose","followCancelMap","cancelFollow","cancelAllFollow","forEach","_this6","options","currentPoition","currentPositionInterpolation","requestAnimationFrame","render","scene","tween","stop","Tween","t","p","to","onStart","easing","Easing","Quadratic","InOut","_ref6","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../../src/core/Camera/PerspectiveCamera/CameraExpand.ts"],"sourcesContent":["import type { Object3D, OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, EventDispatcher, Group, MathUtils, Plane, Quaternion, TWEEN, Vector3, use } from '@anov/3d-core'\nimport FollowControls from './FollowOrbitControls'\nimport type { CameraExpandInterface, FollowParamsOption, vector3Array } from '.'\n\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\n/**\n * CameraExpand, 主要提供了一些PerspectiveCamera的拓展能力\n */\nexport class PerspectiveCameraExpand extends EventDispatcher implements CameraExpandInterface {\n private _isTransitionPeriod = false\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private tween: any\n private _isCameraChange = false\n private followId = 0\n private followCancelMap: Map<number, () => void> = new Map()\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n super()\n\n this.camera = camera\n this.controls = controls\n this.sceneControl = sceneControl\n\n this.bindEvent()\n }\n\n get isTransitionPeriod() {\n return this._isTransitionPeriod\n }\n\n get isCameraChange() {\n return this._isCameraChange\n }\n\n private bindEvent() {\n this.controls.addEventListener('start', () => {\n this._isCameraChange = true\n })\n\n this.controls.addEventListener('end', () => {\n this._isCameraChange = false\n })\n\n this.controls.addEventListener('change', () => {\n this.dispatchEvent({\n type: 'change',\n position: this.camera.position,\n target: this.controls.target,\n })\n })\n }\n\n /**\n * calculate last position from position box\n * if distance is not defined, calculate distance from box size\n * @param currentPos\n * @param distanceCoefficient\n * @param distance\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], distanceCoefficient = 1, distance?: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize()\n\n const lastPosition = directionVector.multiplyScalar(distance ?? cameraToCenterDistance * distanceCoefficient).add(center)\n const lastLookat = center\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclSingleCoordinate, when use focus and target is single point\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3, distance: number) {\n const directionVector = prevPosition.clone().sub(prevTarget).normalize()\n const lastPosition = directionVector.multiplyScalar(distance).add(lastTarget)\n\n return lastPosition\n }\n\n /**\n * camera focus\n * @param params\n * @returns\n */\n public focus(params: {\n target: vector3Array | vector3Array[] | string\n pitch?: number\n yaw?: number\n distance?: number // distance from target\n duration?: number\n isTrigger?: boolean\n distanceCoefficient?: number\n onUpdate?: (args: { position: Vector3; target: Vector3 }) => void\n }) {\n return new Promise<\n {\n position: number[]\n target: number[]\n duration: number\n userInput: boolean\n pitch: number\n }\n >((res) => {\n const { target: position, pitch = 0, yaw = 0, distance = 20, duration, onUpdate, distanceCoefficient = 1 } = params\n\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n onUpdate && onUpdate({ position, target: lookat })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n // if target is multiple points\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, distanceCoefficient, distance)\n\n this.motion(\n lastPosition,\n lastLookat,\n pitch,\n yaw,\n moveOptions(),\n )\n }\n // if target is single point\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos), distance)\n const lastLookat = new Vector3().fromArray(currentPos)\n\n this.motion(\n lastPosition,\n lastLookat,\n pitch,\n yaw,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera, main set position and target\n * @param params\n * @returns\n */\n public set(params: {\n position: vector3Array\n target: vector3Array\n isTrigger?: boolean\n duration?: number\n onUpdate?: (args: { position: Vector3; target: Vector3 }) => void\n }) {\n const { position, target, isTrigger, duration } = params\n\n return new Promise<{\n position: number[]\n target: number[]\n isTrigger: boolean\n duration: number\n userInput: boolean\n }>((res, _) => {\n this.motion(\n new Vector3(position[0], position[1], position[2]),\n new Vector3(target[0], target[1], target[2]),\n 0,\n 0,\n {\n isTrigger: isTrigger ?? true,\n duration: (duration && duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n params.onUpdate && params.onUpdate({ position, target: lookat })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get camera position and target\n * @returns\n */\n public get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * get current pitch\n */\n public get pitch() {\n const targetPosition = this.controls.target\n const cameraPosition = this.camera.position\n\n const currentDirection = cameraPosition.clone().sub(targetPosition)\n const plane = new Plane(new Vector3(0, 1, 0), 0)\n\n return -(MathUtils.radToDeg(plane.normal.angleTo(currentDirection)) - 90)\n }\n\n /**\n * get current yaw\n * @returns\n */\n public get yaw() {\n return (this.camera as (PerspectiveCamera & { rotationParent: { y: number } })).rotationParent.y\n }\n\n /**\n * set pitch, similar to ue\n * @param deg\n */\n public setPitch(deg: number) {\n if (deg > 90)\n deg = 90\n if (deg < -90)\n deg = -90\n\n const direction = new Vector3(0, 0, 1)\n const quaternion = new Quaternion()\n\n const pitchQuat = new Quaternion()\n pitchQuat.setFromAxisAngle(new Vector3(1, 0, 0), MathUtils.degToRad(-deg))\n quaternion.multiply(pitchQuat)\n\n direction.applyQuaternion(quaternion)\n direction.normalize()\n\n const distance = this.camera.position.distanceTo(this.controls.target)\n const cameraPosition = this.controls.target.clone().add(direction.multiplyScalar(distance))\n this.camera.position.copy(cameraPosition)\n }\n\n /**\n * set yaw, similar to ue\n * @param deg\n */\n public setYaw(deg: number) {\n if (deg > 180)\n deg = 180\n if (deg < -180)\n deg = -180\n\n // @ts-ignore\n this.camera.rotationParent.y = MathUtils.degToRad(deg)\n }\n\n /**\n * cacl Position By Follow\n * @param pitch\n * @param yaw\n * @param distance\n * @returns\n */\n private caclPositionByFollow(pitch = 30, yaw = 0, distance = 60) {\n const axisX = new Vector3(1, 0, 0)\n const axisY = new Vector3(0, 1, 0)\n const axisZ = new Vector3(0, 0, -1)\n const position = new Vector3(0, 0, 0)\n\n const anglePitch = MathUtils.degToRad(pitch)\n const angleYaw = MathUtils.degToRad(yaw)\n\n const quaternionX = new Quaternion().setFromAxisAngle(axisX, anglePitch)\n const quaternionY = new Quaternion().setFromAxisAngle(axisY, angleYaw)\n\n position.addScaledVector(axisZ, distance)\n position.applyQuaternion(quaternionX)\n position.applyQuaternion(quaternionY)\n\n return position\n }\n\n /**\n * follow 3d object, not only use in camera\n * @param target\n * @param camera\n * @param option\n * @returns\n */\n public follow(target: Object3D, camera: PerspectiveCamera, option?: FollowParamsOption) {\n const followId = this.followId++\n const { relativeRotation = false, pitch = 30, yaw = 0, distance = 10 } = option || {}\n const container = new Group()\n\n container.rotation.copy(target.rotation)\n container.scale.copy(target.scale)\n\n const oldCameraParent = camera.parent\n\n let needUpdateRotation = true\n\n container.add(camera)\n target.parent.add(container)\n\n this.controls.enabled = false\n\n const followControls = new FollowControls(this.camera, this.sceneControl.renderer.domElement)\n const curPosition = this.caclPositionByFollow(pitch, yaw, distance)\n\n camera.position.copy(curPosition)\n followControls.radius = camera.position.distanceTo(target.position)\n\n followControls.addEventListener('start', () => {\n relativeRotation && (needUpdateRotation = false)\n })\n\n this.controls.target.copy(target.position)\n followControls.target = target.position\n\n const cancelMotion = use.useframe(() => {\n container.position.copy(target.position)\n container.scale.copy(target.scale)\n needUpdateRotation && container.rotation.copy(target.rotation)\n\n this.controls.target.copy(target.position)\n\n followControls.target = target.position\n followControls.update()\n })\n\n const cancel = () => {\n this.controls.enabled = true\n\n oldCameraParent.add(camera)\n target.parent.remove(container)\n\n cancelMotion()\n followControls.dispose()\n }\n\n this.followCancelMap.set(followId, cancel)\n\n return followId\n }\n\n /**\n * cancel follow\n * @param followId\n */\n public cancelFollow(followId: number) {\n const cancel = this.followCancelMap.get(followId)\n cancel && cancel()\n }\n\n /**\n * cancel all follow\n */\n public cancelAllFollow() {\n this.followCancelMap.forEach((cancel) => {\n cancel()\n })\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param pitch\n * @param yaw\n * @param options\n * @returns\n */\n private motion(position: Vector3, target: Vector3, pitch = 0, yaw = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n if (pitch) {\n // @ts-ignore\n this.camera.rotationParent.x = MathUtils.degToRad(pitch)\n }\n\n if (yaw) {\n // @ts-ignore\n this.camera.rotationParent.y = MathUtils.degToRad(yaw)\n }\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween(\n // @ts-ignore\n { t: 0, lookat: this.controls.target.clone(), p: this.camera.rotationParent.x, yaw: this.camera.rotationParent.y })\n // @ts-ignore\n .to({ t: 1, lookat: target, p: MathUtils.degToRad(pitch), y: MathUtils.degToRad(yaw) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this._isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n if (yaw)\n // @ts-ignore\n this.camera.rotationParent.y = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this._isTransitionPeriod = false\n })\n })\n .start()\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","EventDispatcher","Group","MathUtils","Plane","Quaternion","TWEEN","Vector3","use","utils","FollowControls","PerspectiveCameraExpand","_EventDispatcher","_inherits","_super","_createSuper","camera","controls","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","bindEvent","_createClass","key","get","_isTransitionPeriod","_isCameraChange","value","_this2","addEventListener","storeManagement","set","dispatchEvent","type","position","target","caclCurrentPos","currentPos","distanceCoefficient","arguments","length","undefined","distance","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","clone","sub","normalize","lastPosition","multiplyScalar","add","lastLookat","caclSingleCoordinate","prevTarget","prevPosition","lastTarget","focus","params","_this3","Promise","res","_params$pitch","pitch","_params$yaw","yaw","_params$distance","duration","onUpdate","_params$distanceCoeff","moveOptions","_ref","_params$isTrigger","isTrigger","_ref2","lookat","onComplate","_params$duration","toArray","userInput","Array","isArray","_this3$caclCurrentPos","motion","fromArray","_this4","_","_ref3","_ref4","_params$duration2","x","y","z","targetPosition","cameraPosition","currentDirection","plane","radToDeg","normal","angleTo","rotationParent","setPitch","deg","direction","quaternion","pitchQuat","setFromAxisAngle","degToRad","multiply","applyQuaternion","distanceTo","copy","setYaw","caclPositionByFollow","axisX","axisY","axisZ","anglePitch","angleYaw","quaternionX","quaternionY","addScaledVector","follow","option","_this5","followId","_ref5","_ref5$relativeRotatio","relativeRotation","_ref5$pitch","_ref5$yaw","_ref5$distance","container","rotation","scale","oldCameraParent","parent","needUpdateRotation","enabled","followControls","renderer","domElement","curPosition","radius","cancelMotion","useframe","update","cancel","remove","dispose","followCancelMap","cancelFollow","cancelAllFollow","forEach","_this6","options","currentPoition","currentPositionInterpolation","requestAnimationFrame","render","scene","tween","stop","Tween","t","p","to","onStart","easing","Easing","Quadratic","InOut","_ref6","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../../src/core/Camera/PerspectiveCamera/CameraExpand.ts"],"sourcesContent":["import type { Object3D, OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, EventDispatcher, Group, MathUtils, Plane, Quaternion, TWEEN, Vector3, use, utils } from '@anov/3d-core'\nimport FollowControls from './FollowOrbitControls'\nimport type { CameraExpandInterface, FollowParamsOption, vector3Array } from '.'\n\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\n/**\n * CameraExpand, 主要提供了一些PerspectiveCamera的拓展能力\n */\nexport class PerspectiveCameraExpand extends EventDispatcher implements CameraExpandInterface {\n private _isTransitionPeriod = false\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private tween: any\n private _isCameraChange = false\n private followId = 0\n private followCancelMap: Map<number, () => void> = new Map()\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n super()\n\n this.camera = camera\n this.controls = controls\n this.sceneControl = sceneControl\n\n this.bindEvent()\n }\n\n get isTransitionPeriod() {\n return this._isTransitionPeriod\n }\n\n get isCameraChange() {\n return this._isCameraChange\n }\n\n private bindEvent() {\n this.controls.addEventListener('start', () => {\n utils.storeManagement.set('enableEvents', false)\n this._isCameraChange = true\n })\n\n this.controls.addEventListener('end', () => {\n utils.storeManagement.set('enableEvents', true)\n this._isCameraChange = false\n })\n\n this.controls.addEventListener('change', () => {\n this.dispatchEvent({\n type: 'change',\n position: this.camera.position,\n target: this.controls.target,\n })\n })\n }\n\n /**\n * calculate last position from position box\n * if distance is not defined, calculate distance from box size\n * @param currentPos\n * @param distanceCoefficient\n * @param distance\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], distanceCoefficient = 1, distance?: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize()\n\n const lastPosition = directionVector.multiplyScalar(distance ?? cameraToCenterDistance * distanceCoefficient).add(center)\n const lastLookat = center\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclSingleCoordinate, when use focus and target is single point\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3, distance: number) {\n const directionVector = prevPosition.clone().sub(prevTarget).normalize()\n const lastPosition = directionVector.multiplyScalar(distance).add(lastTarget)\n\n return lastPosition\n }\n\n /**\n * camera focus\n * @param params\n * @returns\n */\n public focus(params: {\n target: vector3Array | vector3Array[] | string\n pitch?: number\n yaw?: number\n distance?: number // distance from target\n duration?: number\n isTrigger?: boolean\n distanceCoefficient?: number\n onUpdate?: (args: { position: Vector3; target: Vector3 }) => void\n }) {\n return new Promise<\n {\n position: number[]\n target: number[]\n duration: number\n userInput: boolean\n pitch: number\n }\n >((res) => {\n const { target: position, pitch = 0, yaw = 0, distance = 20, duration, onUpdate, distanceCoefficient = 1 } = params\n\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n onUpdate && onUpdate({ position, target: lookat })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n // if target is multiple points\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, distanceCoefficient, distance)\n\n this.motion(\n lastPosition,\n lastLookat,\n pitch,\n yaw,\n moveOptions(),\n )\n }\n // if target is single point\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos), distance)\n const lastLookat = new Vector3().fromArray(currentPos)\n\n this.motion(\n lastPosition,\n lastLookat,\n pitch,\n yaw,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera, main set position and target\n * @param params\n * @returns\n */\n public set(params: {\n position: vector3Array\n target: vector3Array\n isTrigger?: boolean\n duration?: number\n onUpdate?: (args: { position: Vector3; target: Vector3 }) => void\n }) {\n const { position, target, isTrigger, duration } = params\n\n return new Promise<{\n position: number[]\n target: number[]\n isTrigger: boolean\n duration: number\n userInput: boolean\n }>((res, _) => {\n this.motion(\n new Vector3(position[0], position[1], position[2]),\n new Vector3(target[0], target[1], target[2]),\n 0,\n 0,\n {\n isTrigger: isTrigger ?? true,\n duration: (duration && duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n params.onUpdate && params.onUpdate({ position, target: lookat })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get camera position and target\n * @returns\n */\n public get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * get current pitch\n */\n public get pitch() {\n const targetPosition = this.controls.target\n const cameraPosition = this.camera.position\n\n const currentDirection = cameraPosition.clone().sub(targetPosition)\n const plane = new Plane(new Vector3(0, 1, 0), 0)\n\n return -(MathUtils.radToDeg(plane.normal.angleTo(currentDirection)) - 90)\n }\n\n /**\n * get current yaw\n * @returns\n */\n public get yaw() {\n return (this.camera as (PerspectiveCamera & { rotationParent: { y: number } })).rotationParent.y\n }\n\n /**\n * set pitch, similar to ue\n * @param deg\n */\n public setPitch(deg: number) {\n if (deg > 90)\n deg = 90\n if (deg < -90)\n deg = -90\n\n const direction = new Vector3(0, 0, 1)\n const quaternion = new Quaternion()\n\n const pitchQuat = new Quaternion()\n pitchQuat.setFromAxisAngle(new Vector3(1, 0, 0), MathUtils.degToRad(-deg))\n quaternion.multiply(pitchQuat)\n\n direction.applyQuaternion(quaternion)\n direction.normalize()\n\n const distance = this.camera.position.distanceTo(this.controls.target)\n const cameraPosition = this.controls.target.clone().add(direction.multiplyScalar(distance))\n this.camera.position.copy(cameraPosition)\n }\n\n /**\n * set yaw, similar to ue\n * @param deg\n */\n public setYaw(deg: number) {\n if (deg > 180)\n deg = 180\n if (deg < -180)\n deg = -180\n\n // @ts-ignore\n this.camera.rotationParent.y = MathUtils.degToRad(deg)\n }\n\n /**\n * cacl Position By Follow\n * @param pitch\n * @param yaw\n * @param distance\n * @returns\n */\n private caclPositionByFollow(pitch = 30, yaw = 0, distance = 60) {\n const axisX = new Vector3(1, 0, 0)\n const axisY = new Vector3(0, 1, 0)\n const axisZ = new Vector3(0, 0, -1)\n const position = new Vector3(0, 0, 0)\n\n const anglePitch = MathUtils.degToRad(pitch)\n const angleYaw = MathUtils.degToRad(yaw)\n\n const quaternionX = new Quaternion().setFromAxisAngle(axisX, anglePitch)\n const quaternionY = new Quaternion().setFromAxisAngle(axisY, angleYaw)\n\n position.addScaledVector(axisZ, distance)\n position.applyQuaternion(quaternionX)\n position.applyQuaternion(quaternionY)\n\n return position\n }\n\n /**\n * follow 3d object, not only use in camera\n * @param target\n * @param camera\n * @param option\n * @returns\n */\n public follow(target: Object3D, camera: PerspectiveCamera, option?: FollowParamsOption) {\n const followId = this.followId++\n const { relativeRotation = false, pitch = 30, yaw = 0, distance = 10 } = option || {}\n const container = new Group()\n\n container.rotation.copy(target.rotation)\n container.scale.copy(target.scale)\n\n const oldCameraParent = camera.parent\n\n let needUpdateRotation = true\n\n container.add(camera)\n target.parent.add(container)\n\n this.controls.enabled = false\n\n const followControls = new FollowControls(this.camera, this.sceneControl.renderer.domElement)\n const curPosition = this.caclPositionByFollow(pitch, yaw, distance)\n\n camera.position.copy(curPosition)\n followControls.radius = camera.position.distanceTo(target.position)\n\n followControls.addEventListener('start', () => {\n relativeRotation && (needUpdateRotation = false)\n })\n\n this.controls.target.copy(target.position)\n followControls.target = target.position\n\n const cancelMotion = use.useframe(() => {\n container.position.copy(target.position)\n container.scale.copy(target.scale)\n needUpdateRotation && container.rotation.copy(target.rotation)\n\n this.controls.target.copy(target.position)\n\n followControls.target = target.position\n followControls.update()\n })\n\n const cancel = () => {\n this.controls.enabled = true\n\n oldCameraParent.add(camera)\n target.parent.remove(container)\n\n cancelMotion()\n followControls.dispose()\n }\n\n this.followCancelMap.set(followId, cancel)\n\n return followId\n }\n\n /**\n * cancel follow\n * @param followId\n */\n public cancelFollow(followId: number) {\n const cancel = this.followCancelMap.get(followId)\n cancel && cancel()\n }\n\n /**\n * cancel all follow\n */\n public cancelAllFollow() {\n this.followCancelMap.forEach((cancel) => {\n cancel()\n })\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param pitch\n * @param yaw\n * @param options\n * @returns\n */\n private motion(position: Vector3, target: Vector3, pitch = 0, yaw = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n if (pitch) {\n // @ts-ignore\n this.camera.rotationParent.x = MathUtils.degToRad(pitch)\n }\n\n if (yaw) {\n // @ts-ignore\n this.camera.rotationParent.y = MathUtils.degToRad(yaw)\n }\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween(\n // @ts-ignore\n { t: 0, lookat: this.controls.target.clone(), p: this.camera.rotationParent.x, yaw: this.camera.rotationParent.y })\n // @ts-ignore\n .to({ t: 1, lookat: target, p: MathUtils.degToRad(pitch), y: MathUtils.degToRad(yaw) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this._isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n if (yaw)\n // @ts-ignore\n this.camera.rotationParent.y = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this._isTransitionPeriod = false\n })\n })\n .start()\n }\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d-ability",
3
- "version": "0.0.81",
3
+ "version": "0.0.83",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "package.json"
17
17
  ],
18
18
  "peerDependencies": {
19
- "@anov/3d-core": "^0.0.56"
19
+ "@anov/3d-core": "^0.0.58"
20
20
  },
21
21
  "dependencies": {
22
22
  "@types/suncalc": "^1.9.2",
@@ -32,7 +32,7 @@
32
32
  "devDependencies": {
33
33
  "@types/javascript-state-machine": "^2.4.6",
34
34
  "@types/lodash": "^4.14.196",
35
- "@anov/3d-core": "^0.0.56"
35
+ "@anov/3d-core": "^0.0.58"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "father build",