@anov/3d-ability 0.0.7 → 0.0.12

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.
package/dist/index.d.ts CHANGED
@@ -18,10 +18,11 @@ import Camera from './camera/index';
18
18
  import { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve';
19
19
  import Fog2DMesh from './weather/fog2DMesh';
20
20
  import addColorifyPass from './postEffects/colorifyPass';
21
- import addBloomSelected from './postEffects/bloomPass';
21
+ import addBloom from './postEffects/bloomPass';
22
22
  import addBrightnessContrastPass from './postEffects/addBrightnessContrastPass';
23
23
  import addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass';
24
+ import createBloomSelectedTool from './postEffects/bloomSelect';
24
25
  export * from './scene';
25
26
  export { SceneControl, // todo remove
26
27
  createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects, // effect
27
- createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloomSelected, addBrightnessContrastPass, addMappingExposurePass, };
28
+ createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, };
package/dist/index.js CHANGED
@@ -18,13 +18,14 @@ import Camera from "./camera/index";
18
18
  import { RoundLineGeometry, createRoundLineWallMesh } from "./line/round-curve";
19
19
  import Fog2DMesh from "./weather/fog2DMesh";
20
20
  import addColorifyPass from "./postEffects/colorifyPass";
21
- import addBloomSelected from "./postEffects/bloomPass";
21
+ import addBloom from "./postEffects/bloomPass";
22
22
  import addBrightnessContrastPass from "./postEffects/addBrightnessContrastPass";
23
23
  import addMappingExposurePass from "./postEffects/addACESFilmicToneMappingPass";
24
+ import createBloomSelectedTool from "./postEffects/bloomSelect";
24
25
  export * from "./scene";
25
26
  export { SceneControl,
26
27
  // todo remove
27
28
  createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects,
28
29
  // effect
29
- createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloomSelected, addBrightnessContrastPass, addMappingExposurePass };
30
+ createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool };
30
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloomSelected","addBrightnessContrastPass","addMappingExposurePass"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloomSelected from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n HeatMap,\n initPostEffects, // effect\n createHighSelectedTool,\n GridMaterial,\n SkyBox,\n ViewHelper,\n Camera,\n RoundLineGeometry,\n createRoundLineWallMesh,\n Fog2DMesh,\n addColorifyPass,\n addBloomSelected,\n addBrightnessContrastPass,\n addMappingExposurePass,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAE7B;AAEA,SACE1B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EACdE,OAAO,EACPd,eAAe;AAAE;AACjBC,sBAAsB,EACtBE,YAAY,EACZY,MAAM,EACNX,UAAU,EACVY,MAAM,EACNC,iBAAiB,EACjBC,uBAAuB,EACvBC,SAAS,EACTC,eAAe,EACfC,gBAAgB,EAChBC,yBAAyB,EACzBC,sBAAsB"}
1
+ {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloom","addBrightnessContrastPass","addMappingExposurePass","createBloomSelectedTool"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloom from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\nimport createBloomSelectedTool from './postEffects/bloomSelect'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n HeatMap,\n initPostEffects, // effect\n createHighSelectedTool,\n GridMaterial,\n SkyBox,\n ViewHelper,\n Camera,\n RoundLineGeometry,\n createRoundLineWallMesh,\n Fog2DMesh,\n addColorifyPass,\n addBloom,\n addBrightnessContrastPass,\n addMappingExposurePass,\n createBloomSelectedTool,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,QAAQ;AACf,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAC7B,OAAOC,uBAAuB;AAE9B;AAEA,SACE3B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EACdE,OAAO,EACPd,eAAe;AAAE;AACjBC,sBAAsB,EACtBE,YAAY,EACZY,MAAM,EACNX,UAAU,EACVY,MAAM,EACNC,iBAAiB,EACjBC,uBAAuB,EACvBC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,yBAAyB,EACzBC,sBAAsB,EACtBC,uBAAuB"}
@@ -1,9 +1,9 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2
4
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
3
5
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
6
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
8
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
9
9
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -19,7 +19,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
19
19
  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; }
20
20
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
21
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
- import { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, utils } from '@anov/3d-core';
22
+ import { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, sRGBEncoding, utils } from '@anov/3d-core';
23
23
  import gsap from 'gsap';
24
24
  import { EAnimationType } from "../utils/type";
25
25
  import Poi from "../Poi";
@@ -47,13 +47,14 @@ var SpritePoi = /*#__PURE__*/function (_Poi) {
47
47
  _defineProperty(_assertThisInitialized(_this), "option", void 0);
48
48
  _defineProperty(_assertThisInitialized(_this), "animation", []);
49
49
  _this.data = data;
50
- _this.option = _objectSpread(_objectSpread({}, _default), option);
50
+ _this.option = option;
51
51
  _this.isSprite = true;
52
52
  _this.type = 'Sprite';
53
53
  _this.geometry = _this.getGeometry();
54
+ _this.option.animation && _this.setAnimation(_this.option.animation);
54
55
  // 创建Sprite
55
56
  _this.setMaterial();
56
- _this.option.animation && _this.setAnimation(_this.option.animation);
57
+
57
58
  // 执行动画
58
59
  _this.play();
59
60
  return _this;
@@ -74,7 +75,6 @@ var SpritePoi = /*#__PURE__*/function (_Poi) {
74
75
  value: function setMaterial() {
75
76
  var _this2 = this;
76
77
  var _ref = this.option,
77
- animation = _ref.animation,
78
78
  width = _ref.width,
79
79
  height = _ref.height;
80
80
  // 精灵的锚点
@@ -107,13 +107,19 @@ var SpritePoi = /*#__PURE__*/function (_Poi) {
107
107
  }
108
108
  case 8:
109
109
  if (texture) {
110
+ texture.encoding = sRGBEncoding; // 将纹理的编码设置为sRGB
110
111
  // 判断条件
111
- isFadeOrAppearAnimation = animation.type === EAnimationType.fadeIn || (animation === null || animation === void 0 ? void 0 : animation.type) === EAnimationType.appear; // 根据条件设置 opacity 的值
112
+ isFadeOrAppearAnimation = _this2.animation.some(function (item) {
113
+ if (item.type === EAnimationType.fadeIn) return true;
114
+ }); // 根据条件设置 opacity 的值
112
115
  opacity = isFadeOrAppearAnimation ? 0 : 1;
113
116
  texture.needsUpdate = true;
114
117
  _this2.material = new SpriteMaterial({
115
118
  map: texture,
116
- opacity: opacity
119
+ transparent: true,
120
+ // 设置为透明材质
121
+ opacity: opacity,
122
+ depthTest: false
117
123
  });
118
124
  _this2.visible = true;
119
125
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","Matrix4","SpriteMaterial","TextureLoader","Triangle","Vector2","Vector3","utils","gsap","EAnimationType","Poi","_default","animation","type","grow","duration","_viewWorldMatrix","createDomTexture","SpritePoi","data","option","isSprite","geometry","getGeometry","setMaterial","setAnimation","play","_geometry","float32Array","Float32Array","interleavedBuffer","setIndex","setAttribute","width","height","center","visible","initMaterial","HTMLElement","element","texture","load","isFadeOrAppearAnimation","fadeIn","appear","opacity","needsUpdate","material","map","Array","isArray","hasExecuted","isGrow","scale","onAfterRender","forEach","item","to","repeat","ease","initScale","fromArray","clone","setScalar","x","y","z","copy","cb","raycaster","intersects","camera","console","error","_worldScale","_mvPosition","setFromMatrixScale","matrixWorld","modelViewMatrix","multiplyMatrices","matrixWorldInverse","setFromMatrixPosition","isPerspectiveCamera","sizeAttenuation","multiplyScalar","rotation","sin","cos","Math","_vA","_vB","_vC","_uvA","_uvB","_uvC","transformVertex","set","_intersectPoint","intersect","ray","intersectTriangle","distance","origin","distanceTo","near","far","push","point","uv","getInterpolation","face","object","vertexPosition","mvPosition","_alignedPosition","_rotatedPosition","subVectors","addScalar","multiply","undefined","applyMatrix4"],"sources":["../../../src/poi/Sprite/index.ts"],"sourcesContent":["import type { PerspectiveCamera, Raycaster } from '@anov/3d-core'\nimport { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, utils } from '@anov/3d-core'\nimport gsap from 'gsap'\nimport { EAnimationType } from '../utils/type'\nimport type { IAnimation, IOption } from '../utils/type'\nimport { createContentElement, createTitleElement } from '../utils/element'\nimport Poi from '../Poi'\n\nconst _default = {\n animation: {\n type: EAnimationType.grow,\n duration: 0.3,\n },\n}\n\nconst _viewWorldMatrix = new Matrix4()\nconst { createDomTexture } = utils\n\nclass SpritePoi extends Poi {\n geometry!: BufferGeometry\n center!: Vector2\n material!: SpriteMaterial\n isSprite: boolean\n type: string\n\n data!: any\n option!: IOption\n animation: Array<any> = []\n\n constructor(data: any, option: IOption) {\n super(data, option)\n this.data = data\n this.option = { ..._default, ...option }\n\n this.isSprite = true\n this.type = 'Sprite'\n\n this.geometry = this.getGeometry()\n // 创建Sprite\n this.setMaterial()\n\n this.option.animation && this.setAnimation(this.option.animation)\n // 执行动画\n this.play()\n }\n\n private getGeometry() {\n const _geometry = new BufferGeometry()\n const float32Array = new Float32Array([\n -0.5, -0.5, 0, 0, 0,\n 0.5, -0.5, 0, 1, 0,\n 0.5, 0.5, 0, 1, 1,\n -0.5, 0.5, 0, 0, 1,\n ])\n\n const interleavedBuffer = new InterleavedBuffer(float32Array, 5)\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n return _geometry\n }\n\n private setMaterial() {\n const { animation, width, height } = this.option as {\n animation: IAnimation\n width: number\n height: number\n }\n // 精灵的锚点\n this.center = new Vector2(0.5, 0)\n\n this.visible = false\n // 异步生成材质\n const initMaterial = async () => {\n let texture\n // 直接传递DOM元素\n if (this.data instanceof HTMLElement) {\n const element: HTMLElement = this.data\n texture = await createDomTexture(element, { width, height })\n }\n else if (typeof this.data === 'string') {\n texture = new TextureLoader().load(this.data)\n }\n\n if (texture) {\n // 判断条件\n const isFadeOrAppearAnimation = animation.type === EAnimationType.fadeIn || animation?.type === EAnimationType.appear\n // 根据条件设置 opacity 的值\n const opacity = isFadeOrAppearAnimation ? 0 : 1\n\n texture.needsUpdate = true\n this.material = new SpriteMaterial({ map: texture, opacity })\n this.visible = true\n }\n }\n initMaterial()\n }\n\n // 设置动画属性\n setAnimation(animation: object | Array<any>) {\n if (!animation)\n return\n if (Array.isArray(animation))\n this.animation = animation\n else\n this.animation = [animation]\n }\n\n // 播放动画\n play() {\n let hasExecuted = false\n let isGrow = false\n const { scale } = this.option\n // 执行渐显、打印内容等操作\n this.onAfterRender = () => {\n if (hasExecuted)\n return\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n gsap.to(this.material, {\n opacity: 1,\n ...item,\n repeat: 0,\n ease: 'none',\n })\n break\n case EAnimationType.grow:\n isGrow = true\n const initScale = scale ? new Vector3().fromArray(scale) : this.scale.clone()\n this.scale.setScalar(0)\n gsap.to(this.scale, {\n x: initScale.x,\n y: initScale.y,\n z: initScale.z,\n ...item,\n repeat: 0,\n ease: 'power2.out',\n })\n break\n }\n })\n if (!isGrow && scale)\n this.scale.copy(new Vector3().fromArray(scale))\n\n hasExecuted = true\n }\n }\n\n addEventListener(type: string, cb: any) {\n super.addEventListener(type, cb)\n return () => super.removeEventListener(type, cb)\n }\n\n raycast(raycaster: Raycaster, intersects: any) {\n if (raycaster.camera === null)\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.')\n\n const _worldScale = /* @__PURE__ */ new Vector3()\n const _mvPosition = /* @__PURE__ */ new Vector3()\n _worldScale.setFromMatrixScale(this.matrixWorld)\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld)\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld)\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix)\n\n if ((raycaster.camera as PerspectiveCamera & { isPerspectiveCamera: boolean }).isPerspectiveCamera && this.material.sizeAttenuation === false)\n\n _worldScale.multiplyScalar(-_mvPosition.z)\n\n const rotation = this.material.rotation\n let sin, cos\n\n if (rotation !== 0) {\n cos = Math.cos(rotation)\n sin = Math.sin(rotation)\n }\n\n const center = this.center\n const _vA = /* @__PURE__ */ new Vector3()\n const _vB = /* @__PURE__ */ new Vector3()\n const _vC = /* @__PURE__ */ new Vector3()\n\n const _uvA = /* @__PURE__ */ new Vector2()\n const _uvB = /* @__PURE__ */ new Vector2()\n const _uvC = /* @__PURE__ */ new Vector2()\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n\n _uvA.set(0, 0)\n _uvB.set(1, 0)\n _uvC.set(1, 1)\n\n const _intersectPoint = /* @__PURE__ */ new Vector3()\n // check first triangle\n let intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint)\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n _uvB.set(0, 1)\n\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint)\n if (intersect === null)\n\n return\n }\n\n const distance = raycaster.ray.origin.distanceTo(_intersectPoint)\n\n if (distance < raycaster.near || distance > raycaster.far)\n return\n\n intersects.push({\n distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n face: null,\n object: this,\n\n })\n }\n}\n\nfunction transformVertex(vertexPosition: Vector3, mvPosition: Vector3, center: Vector2, scale: Vector3, sin: number | undefined, cos: number | undefined) {\n const _alignedPosition = /* @__PURE__ */ new Vector2()\n const _rotatedPosition = /* @__PURE__ */ new Vector2()\n // compute position in camera space\n _alignedPosition.subVectors(new Vector2(vertexPosition.x, vertexPosition.y), center).addScalar(0.5).multiply(new Vector2(scale.x, scale.y))\n\n // to check if rotation is not zero\n if (sin !== undefined && cos !== undefined) {\n _rotatedPosition.x = (cos * _alignedPosition.x) - (sin * _alignedPosition.y)\n _rotatedPosition.y = (sin * _alignedPosition.x) + (cos * _alignedPosition.y)\n }\n else {\n _rotatedPosition.copy(_alignedPosition)\n }\n\n vertexPosition.copy(mvPosition)\n vertexPosition.x += _rotatedPosition.x\n vertexPosition.y += _rotatedPosition.y\n\n // transform to world space\n vertexPosition.applyMatrix4(_viewWorldMatrix)\n}\n\nexport default SpritePoi"],"mappings":"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"}
1
+ {"version":3,"names":["BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","Matrix4","SpriteMaterial","TextureLoader","Triangle","Vector2","Vector3","sRGBEncoding","utils","gsap","EAnimationType","Poi","_default","animation","type","grow","duration","_viewWorldMatrix","createDomTexture","SpritePoi","data","option","isSprite","geometry","getGeometry","setAnimation","setMaterial","play","_geometry","float32Array","Float32Array","interleavedBuffer","setIndex","setAttribute","width","height","center","visible","initMaterial","HTMLElement","element","texture","load","encoding","isFadeOrAppearAnimation","some","item","fadeIn","opacity","needsUpdate","material","map","transparent","depthTest","Array","isArray","hasExecuted","isGrow","scale","onAfterRender","forEach","to","repeat","ease","initScale","fromArray","clone","setScalar","x","y","z","copy","cb","raycaster","intersects","camera","console","error","_worldScale","_mvPosition","setFromMatrixScale","matrixWorld","modelViewMatrix","multiplyMatrices","matrixWorldInverse","setFromMatrixPosition","isPerspectiveCamera","sizeAttenuation","multiplyScalar","rotation","sin","cos","Math","_vA","_vB","_vC","_uvA","_uvB","_uvC","transformVertex","set","_intersectPoint","intersect","ray","intersectTriangle","distance","origin","distanceTo","near","far","push","point","uv","getInterpolation","face","object","vertexPosition","mvPosition","_alignedPosition","_rotatedPosition","subVectors","addScalar","multiply","undefined","applyMatrix4"],"sources":["../../../src/poi/Sprite/index.ts"],"sourcesContent":["import type { PerspectiveCamera, Raycaster } from '@anov/3d-core'\nimport { BufferGeometry, InterleavedBuffer, InterleavedBufferAttribute, Matrix4, SpriteMaterial, TextureLoader, Triangle, Vector2, Vector3, sRGBEncoding, utils } from '@anov/3d-core'\nimport gsap from 'gsap'\nimport { EAnimationType } from '../utils/type'\nimport type { IAnimation, IOption } from '../utils/type'\nimport Poi from '../Poi'\n\nconst _default = {\n animation: {\n type: EAnimationType.grow,\n duration: 0.3,\n },\n}\n\nconst _viewWorldMatrix = new Matrix4()\nconst { createDomTexture } = utils\n\nclass SpritePoi extends Poi {\n geometry!: BufferGeometry\n center!: Vector2\n material!: SpriteMaterial\n isSprite: boolean\n type: string\n\n data!: any\n option!: IOption\n animation: Array<any> = []\n\n constructor(data: any, option: IOption) {\n super(data, option)\n this.data = data\n this.option = option\n\n this.isSprite = true\n this.type = 'Sprite'\n\n this.geometry = this.getGeometry()\n this.option.animation && this.setAnimation(this.option.animation)\n // 创建Sprite\n this.setMaterial()\n\n // 执行动画\n this.play()\n }\n\n private getGeometry() {\n const _geometry = new BufferGeometry()\n const float32Array = new Float32Array([\n -0.5, -0.5, 0, 0, 0,\n 0.5, -0.5, 0, 1, 0,\n 0.5, 0.5, 0, 1, 1,\n -0.5, 0.5, 0, 0, 1,\n ])\n\n const interleavedBuffer = new InterleavedBuffer(float32Array, 5)\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n return _geometry\n }\n\n private setMaterial() {\n const { width, height } = this.option as {\n animation: IAnimation\n width: number\n height: number\n }\n // 精灵的锚点\n this.center = new Vector2(0.5, 0)\n\n this.visible = false\n // 异步生成材质\n const initMaterial = async () => {\n let texture\n // 直接传递DOM元素\n if (this.data instanceof HTMLElement) {\n const element: HTMLElement = this.data\n texture = await createDomTexture(element, { width, height })\n }\n else if (typeof this.data === 'string') {\n texture = new TextureLoader().load(this.data)\n }\n\n if (texture) {\n texture.encoding = sRGBEncoding // 将纹理的编码设置为sRGB\n // 判断条件\n\n const isFadeOrAppearAnimation = this.animation.some((item) => {\n if (item.type === EAnimationType.fadeIn)\n return true\n })\n // 根据条件设置 opacity 的值\n const opacity = isFadeOrAppearAnimation ? 0 : 1\n\n texture.needsUpdate = true\n this.material = new SpriteMaterial({\n map: texture,\n transparent: true, // 设置为透明材质\n opacity,\n depthTest: false,\n })\n this.visible = true\n }\n }\n initMaterial()\n }\n\n // 设置动画属性\n setAnimation(animation: object | Array<any>) {\n if (!animation)\n return\n if (Array.isArray(animation))\n this.animation = animation\n else\n this.animation = [animation]\n }\n\n // 播放动画\n play() {\n let hasExecuted = false\n let isGrow = false\n const { scale } = this.option\n // 执行渐显、打印内容等操作\n this.onAfterRender = () => {\n if (hasExecuted)\n return\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n gsap.to(this.material, {\n opacity: 1,\n ...item,\n repeat: 0,\n ease: 'none',\n })\n break\n case EAnimationType.grow:\n isGrow = true\n const initScale = scale ? new Vector3().fromArray(scale) : this.scale.clone()\n this.scale.setScalar(0)\n gsap.to(this.scale, {\n x: initScale.x,\n y: initScale.y,\n z: initScale.z,\n ...item,\n repeat: 0,\n ease: 'power2.out',\n })\n break\n }\n })\n if (!isGrow && scale)\n this.scale.copy(new Vector3().fromArray(scale))\n\n hasExecuted = true\n }\n }\n\n addEventListener(type: string, cb: any) {\n super.addEventListener(type, cb)\n return () => super.removeEventListener(type, cb)\n }\n\n raycast(raycaster: Raycaster, intersects: any) {\n if (raycaster.camera === null)\n console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.')\n\n const _worldScale = /* @__PURE__ */ new Vector3()\n const _mvPosition = /* @__PURE__ */ new Vector3()\n _worldScale.setFromMatrixScale(this.matrixWorld)\n\n _viewWorldMatrix.copy(raycaster.camera.matrixWorld)\n this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld)\n\n _mvPosition.setFromMatrixPosition(this.modelViewMatrix)\n\n if ((raycaster.camera as PerspectiveCamera & { isPerspectiveCamera: boolean }).isPerspectiveCamera && this.material.sizeAttenuation === false)\n\n _worldScale.multiplyScalar(-_mvPosition.z)\n\n const rotation = this.material.rotation\n let sin, cos\n\n if (rotation !== 0) {\n cos = Math.cos(rotation)\n sin = Math.sin(rotation)\n }\n\n const center = this.center\n const _vA = /* @__PURE__ */ new Vector3()\n const _vB = /* @__PURE__ */ new Vector3()\n const _vC = /* @__PURE__ */ new Vector3()\n\n const _uvA = /* @__PURE__ */ new Vector2()\n const _uvB = /* @__PURE__ */ new Vector2()\n const _uvC = /* @__PURE__ */ new Vector2()\n transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n\n _uvA.set(0, 0)\n _uvB.set(1, 0)\n _uvC.set(1, 1)\n\n const _intersectPoint = /* @__PURE__ */ new Vector3()\n // check first triangle\n let intersect = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint)\n\n if (intersect === null) {\n // check second triangle\n transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos)\n _uvB.set(0, 1)\n\n intersect = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint)\n if (intersect === null)\n\n return\n }\n\n const distance = raycaster.ray.origin.distanceTo(_intersectPoint)\n\n if (distance < raycaster.near || distance > raycaster.far)\n return\n\n intersects.push({\n distance,\n point: _intersectPoint.clone(),\n uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n face: null,\n object: this,\n\n })\n }\n}\n\nfunction transformVertex(vertexPosition: Vector3, mvPosition: Vector3, center: Vector2, scale: Vector3, sin: number | undefined, cos: number | undefined) {\n const _alignedPosition = /* @__PURE__ */ new Vector2()\n const _rotatedPosition = /* @__PURE__ */ new Vector2()\n // compute position in camera space\n _alignedPosition.subVectors(new Vector2(vertexPosition.x, vertexPosition.y), center).addScalar(0.5).multiply(new Vector2(scale.x, scale.y))\n\n // to check if rotation is not zero\n if (sin !== undefined && cos !== undefined) {\n _rotatedPosition.x = (cos * _alignedPosition.x) - (sin * _alignedPosition.y)\n _rotatedPosition.y = (sin * _alignedPosition.x) + (cos * _alignedPosition.y)\n }\n else {\n _rotatedPosition.copy(_alignedPosition)\n }\n\n vertexPosition.copy(mvPosition)\n vertexPosition.x += _rotatedPosition.x\n vertexPosition.y += _rotatedPosition.y\n\n // transform to world space\n vertexPosition.applyMatrix4(_viewWorldMatrix)\n}\n\nexport default SpritePoi"],"mappings":"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"}
@@ -16,8 +16,7 @@ export interface IAnimation {
16
16
  export declare enum EAnimationType {
17
17
  fadeIn = "fadeIn",
18
18
  grow = "grow",
19
- print = "print",
20
- appear = "appear"
19
+ print = "print"
21
20
  }
22
21
  export declare type IEventType = {
23
22
  name: string;
@@ -1,9 +1,8 @@
1
- export var EAnimationType;
1
+ export var EAnimationType; // 打印(用于文字)
2
2
  (function (EAnimationType) {
3
3
  EAnimationType["fadeIn"] = "fadeIn";
4
4
  EAnimationType["grow"] = "grow";
5
5
  EAnimationType["print"] = "print";
6
- EAnimationType["appear"] = "appear";
7
6
  })(EAnimationType || (EAnimationType = {}));
8
7
  // 事件类型
9
8
  export var EventType = [{
@@ -1 +1 @@
1
- {"version":3,"names":["EAnimationType","EventType","name","orbitControls"],"sources":["../../../src/poi/utils/type.ts"],"sourcesContent":["export interface IOption {\n width?: number\n height?: number\n img?: string\n scale?: number[]\n style?: object // 支持所有CSS样式\n animation?: IAnimation | Array<IAnimation>\n}\nexport interface IAnimation {\n type?: EAnimationType\n duration?: number\n repeat?: number\n ease?: string\n yoyo?: boolean\n}\n\nexport enum EAnimationType {\n fadeIn = 'fadeIn', // 渐显\n grow = 'grow', // 生长\n print = 'print', // 打印(用于文字)\n appear = 'appear',\n}\n\nexport type IEventType = {\n name: string\n orbitControls: boolean\n}\n\n// 事件类型\nexport const EventType: Array<IEventType> = [\n { name: 'click', orbitControls: false },\n { name: 'dbclick', orbitControls: true },\n { name: 'mouseover', orbitControls: false },\n { name: 'mouseout', orbitControls: true },\n { name: 'mouseup', orbitControls: true },\n { name: 'mousedown', orbitControls: false },\n]"],"mappings":"AAgBA,WAAYA,cAAc;AAKzB,WALWA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAY1B;AACA,OAAO,IAAMC,SAA4B,GAAG,CAC1C;EAAEC,IAAI,EAAE,OAAO;EAAEC,aAAa,EAAE;AAAM,CAAC,EACvC;EAAED,IAAI,EAAE,SAAS;EAAEC,aAAa,EAAE;AAAK,CAAC,EACxC;EAAED,IAAI,EAAE,WAAW;EAAEC,aAAa,EAAE;AAAM,CAAC,EAC3C;EAAED,IAAI,EAAE,UAAU;EAAEC,aAAa,EAAE;AAAK,CAAC,EACzC;EAAED,IAAI,EAAE,SAAS;EAAEC,aAAa,EAAE;AAAK,CAAC,EACxC;EAAED,IAAI,EAAE,WAAW;EAAEC,aAAa,EAAE;AAAM,CAAC,CAC5C"}
1
+ {"version":3,"names":["EAnimationType","EventType","name","orbitControls"],"sources":["../../../src/poi/utils/type.ts"],"sourcesContent":["export interface IOption {\n width?: number\n height?: number\n img?: string\n scale?: number[]\n style?: object // 支持所有CSS样式\n animation?: IAnimation | Array<IAnimation>\n}\nexport interface IAnimation {\n type?: EAnimationType\n duration?: number\n repeat?: number\n ease?: string\n yoyo?: boolean\n}\n\nexport enum EAnimationType {\n fadeIn = 'fadeIn', // 渐显\n grow = 'grow', // 生长\n print = 'print', // 打印(用于文字)\n}\n\nexport type IEventType = {\n name: string\n orbitControls: boolean\n}\n\n// 事件类型\nexport const EventType: Array<IEventType> = [\n { name: 'click', orbitControls: false },\n { name: 'dbclick', orbitControls: true },\n { name: 'mouseover', orbitControls: false },\n { name: 'mouseout', orbitControls: true },\n { name: 'mouseup', orbitControls: true },\n { name: 'mousedown', orbitControls: false },\n]"],"mappings":"AAgBA,WAAYA,cAAc,EAGP;AAClB,WAJWA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAW1B;AACA,OAAO,IAAMC,SAA4B,GAAG,CAC1C;EAAEC,IAAI,EAAE,OAAO;EAAEC,aAAa,EAAE;AAAM,CAAC,EACvC;EAAED,IAAI,EAAE,SAAS;EAAEC,aAAa,EAAE;AAAK,CAAC,EACxC;EAAED,IAAI,EAAE,WAAW;EAAEC,aAAa,EAAE;AAAM,CAAC,EAC3C;EAAED,IAAI,EAAE,UAAU;EAAEC,aAAa,EAAE;AAAK,CAAC,EACzC;EAAED,IAAI,EAAE,SAAS;EAAEC,aAAa,EAAE;AAAK,CAAC,EACxC;EAAED,IAAI,EAAE,WAAW;EAAEC,aAAa,EAAE;AAAM,CAAC,CAC5C"}
@@ -1,5 +1,10 @@
1
+ declare type BloomPassOptions = {
2
+ threshold?: number;
3
+ strength?: number;
4
+ radius?: number;
5
+ };
1
6
  /**
2
- * create bloom selected
7
+ * create bloom pass
3
8
  */
4
- declare const addBloomSelected: () => () => void;
5
- export default addBloomSelected;
9
+ declare const addBloomPass: (bloomPass?: BloomPassOptions) => () => void;
10
+ export default addBloomPass;
@@ -1,26 +1,26 @@
1
- import { use } from '@anov/3d-core';
2
- import { BloomEffect, EffectComposer, EffectPass, RenderPass } from 'postprocessing';
1
+ import { Vector2, lib, use, utils } from '@anov/3d-core';
2
+ var UnrealBloomPass = lib.UnrealBloomPass;
3
3
  var useScene = use.useScene;
4
-
4
+ var storeManagement = utils.storeManagement;
5
5
  /**
6
- * create bloom selected
6
+ * create bloom pass
7
7
  */
8
- var addBloomSelected = function addBloomSelected() {
8
+ var addBloomPass = function addBloomPass(bloomPass) {
9
+ var _bloomPass$threshold, _bloomPass$strength, _bloomPass$radius;
9
10
  var _useScene = useScene(),
10
11
  scene = _useScene.scene,
11
- camera = _useScene.camera,
12
- renderer = _useScene.renderer;
12
+ camera = _useScene.camera;
13
+ var composer = storeManagement.get('composer');
13
14
  if (!scene || !camera) throw new Error('scene or camera is not defined,');
14
- var composer = new EffectComposer(renderer);
15
- composer.addPass(new RenderPass(scene, camera));
16
- composer.addPass(new EffectPass(camera, new BloomEffect({
17
- intensity: 1,
18
- luminanceThreshold: 0
19
- })));
20
- use.useframeAfter(function () {
21
- composer.render();
22
- });
23
- return function () {};
15
+ if (!composer) throw new Error('composer is not defined, please initPostEffects first');
16
+ var bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85);
17
+ bloom.threshold = (_bloomPass$threshold = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.threshold) !== null && _bloomPass$threshold !== void 0 ? _bloomPass$threshold : 0.85;
18
+ bloom.strength = (_bloomPass$strength = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.strength) !== null && _bloomPass$strength !== void 0 ? _bloomPass$strength : 1.5;
19
+ bloom.radius = (_bloomPass$radius = bloomPass === null || bloomPass === void 0 ? void 0 : bloomPass.radius) !== null && _bloomPass$radius !== void 0 ? _bloomPass$radius : 0.4;
20
+ composer.addPass(bloom);
21
+ return function () {
22
+ composer.removePass(bloom);
23
+ };
24
24
  };
25
- export default addBloomSelected;
25
+ export default addBloomPass;
26
26
  //# sourceMappingURL=bloomPass.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["use","BloomEffect","EffectComposer","EffectPass","RenderPass","useScene","addBloomSelected","scene","camera","renderer","Error","composer","addPass","intensity","luminanceThreshold","useframeAfter","render"],"sources":["../../src/postEffects/bloomPass.ts"],"sourcesContent":["import { use } from '@anov/3d-core'\nimport { BlendFunction, BloomEffect, EffectComposer, EffectPass, RenderPass, SelectiveBloomEffect } from 'postprocessing'\n\nconst { useScene } = use\n\n/**\n * create bloom selected\n */\nconst addBloomSelected = () => {\n const { scene, camera, renderer } = useScene()\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n const composer = new EffectComposer(renderer!)\n\n composer.addPass(new RenderPass(scene, camera))\n composer.addPass(new EffectPass(camera, new BloomEffect({\n intensity: 1,\n luminanceThreshold: 0,\n })))\n\n use.useframeAfter(() => {\n composer.render()\n })\n\n return () => {\n\n }\n}\n\nexport default addBloomSelected"],"mappings":"AAAA,SAASA,GAAG,QAAQ,eAAe;AACnC,SAAwBC,WAAW,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,QAA8B,gBAAgB;AAEzH,IAAQC,QAAQ,GAAKL,GAAG,CAAhBK,QAAQ;;AAEhB;AACA;AACA;AACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgB,GAAS;EAC7B,gBAAoCD,QAAQ,EAAE;IAAtCE,KAAK,aAALA,KAAK;IAAEC,MAAM,aAANA,MAAM;IAAEC,QAAQ,aAARA,QAAQ;EAE/B,IAAI,CAACF,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIE,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAMC,QAAQ,GAAG,IAAIT,cAAc,CAACO,QAAQ,CAAE;EAE9CE,QAAQ,CAACC,OAAO,CAAC,IAAIR,UAAU,CAACG,KAAK,EAAEC,MAAM,CAAC,CAAC;EAC/CG,QAAQ,CAACC,OAAO,CAAC,IAAIT,UAAU,CAACK,MAAM,EAAE,IAAIP,WAAW,CAAC;IACtDY,SAAS,EAAE,CAAC;IACZC,kBAAkB,EAAE;EACtB,CAAC,CAAC,CAAC,CAAC;EAEJd,GAAG,CAACe,aAAa,CAAC,YAAM;IACtBJ,QAAQ,CAACK,MAAM,EAAE;EACnB,CAAC,CAAC;EAEF,OAAO,YAAM,CAEb,CAAC;AACH,CAAC;AAED,eAAeV,gBAAgB"}
1
+ {"version":3,"names":["Vector2","lib","use","utils","UnrealBloomPass","useScene","storeManagement","addBloomPass","bloomPass","scene","camera","composer","get","Error","bloom","window","innerWidth","innerHeight","threshold","strength","radius","addPass","removePass"],"sources":["../../src/postEffects/bloomPass.ts"],"sourcesContent":["import { Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { UnrealBloomPass } = lib\nconst { useScene } = use\nconst { storeManagement } = utils\n\ntype BloomPassOptions = {\n threshold?: number\n strength?: number\n radius?: number\n}\n\n/**\n * create bloom pass\n */\nconst addBloomPass = (bloomPass?: BloomPassOptions) => {\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const bloom = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), 1.5, 0.4, 0.85)\n\n bloom.threshold = bloomPass?.threshold ?? 0.85\n bloom.strength = bloomPass?.strength ?? 1.5\n bloom.radius = bloomPass?.radius ?? 0.4\n\n composer.addPass(bloom)\n\n return () => {\n composer.removePass(bloom)\n }\n}\n\nexport default addBloomPass"],"mappings":"AAAA,SAASA,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAExD,IAAQC,eAAe,GAAKH,GAAG,CAAvBG,eAAe;AACvB,IAAQC,QAAQ,GAAKH,GAAG,CAAhBG,QAAQ;AAChB,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AAQvB;AACA;AACA;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAY,CAAIC,SAA4B,EAAK;EAAA;EACrD,gBAA0BH,QAAQ,EAAE;IAA5BI,KAAK,aAALA,KAAK;IAAEC,MAAM,aAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGL,eAAe,CAACM,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,KAAK,GAAG,IAAIV,eAAe,CAAC,IAAIJ,OAAO,CAACe,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;EAErGH,KAAK,CAACI,SAAS,2BAAGV,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEU,SAAS,uEAAI,IAAI;EAC9CJ,KAAK,CAACK,QAAQ,0BAAGX,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEW,QAAQ,qEAAI,GAAG;EAC3CL,KAAK,CAACM,MAAM,wBAAGZ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEY,MAAM,iEAAI,GAAG;EAEvCT,QAAQ,CAACU,OAAO,CAACP,KAAK,CAAC;EAEvB,OAAO,YAAM;IACXH,QAAQ,CAACW,UAAU,CAACR,KAAK,CAAC;EAC5B,CAAC;AACH,CAAC;AAED,eAAeP,YAAY"}
@@ -0,0 +1,11 @@
1
+ import type { Object3D } from '@anov/3d-core';
2
+ declare type HighParams = {
3
+ strength?: number;
4
+ radius?: number;
5
+ threshold?: number;
6
+ };
7
+ declare const createBloomSelectedTool: (highParams?: HighParams) => {
8
+ bloomSelected: (object3dArray: Object3D[]) => void;
9
+ clean: () => void;
10
+ };
11
+ export default createBloomSelectedTool;
@@ -0,0 +1,87 @@
1
+ import { Layers, MeshBasicMaterial, ShaderMaterial, Vector2, lib, use } from '@anov/3d-core';
2
+ var EffectComposer = lib.EffectComposer,
3
+ RenderPass = lib.RenderPass,
4
+ UnrealBloomPass = lib.UnrealBloomPass,
5
+ ShaderPass = lib.ShaderPass;
6
+ var createBloomSelectedTool = function createBloomSelectedTool(highParams) {
7
+ var _use$useScene = use.useScene(),
8
+ scene = _use$useScene.scene,
9
+ camera = _use$useScene.camera,
10
+ renderer = _use$useScene.renderer;
11
+ var _ref = highParams || {},
12
+ _ref$strength = _ref.strength,
13
+ strength = _ref$strength === void 0 ? 1.5 : _ref$strength,
14
+ _ref$radius = _ref.radius,
15
+ radius = _ref$radius === void 0 ? 0.4 : _ref$radius,
16
+ _ref$threshold = _ref.threshold,
17
+ threshold = _ref$threshold === void 0 ? 0.85 : _ref$threshold;
18
+ if (!scene || !camera || !renderer) throw new Error('scene or camera is not defined,');
19
+ var BLOOM_SCENE = 1;
20
+ var bloomLayer = new Layers();
21
+ bloomLayer.set(BLOOM_SCENE);
22
+ var renderScene = new RenderPass(scene, camera);
23
+ var bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold);
24
+ var bloomComposer = new EffectComposer(renderer);
25
+ bloomComposer.renderToScreen = false;
26
+ bloomComposer.addPass(renderScene);
27
+ bloomComposer.addPass(bloomPass);
28
+ var mixPass = new ShaderPass(new ShaderMaterial({
29
+ uniforms: {
30
+ baseTexture: {
31
+ value: null
32
+ },
33
+ bloomTexture: {
34
+ value: bloomComposer.renderTarget2.texture
35
+ }
36
+ },
37
+ vertexShader: "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n ",
38
+ fragmentShader: "\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n ",
39
+ defines: {}
40
+ }), 'baseTexture');
41
+ mixPass.needsSwap = true;
42
+ var finalComposer = new EffectComposer(renderer);
43
+ finalComposer.addPass(renderScene);
44
+ finalComposer.addPass(mixPass);
45
+ var materials = {};
46
+ var darkMaterial = new MeshBasicMaterial({
47
+ color: 'black'
48
+ });
49
+ var cleanBloomBefore = use.useframe(function () {
50
+ scene.traverse(function (obj) {
51
+ if (obj.isMesh && bloomLayer.test(obj.layers) === false) {
52
+ materials[obj.uuid] = obj.material;
53
+ obj.material = darkMaterial;
54
+ }
55
+ });
56
+ });
57
+ var cleanBloomAfter = use.useframeAfter(function () {
58
+ bloomComposer.render();
59
+ scene.traverse(function (obj) {
60
+ if (materials[obj.uuid]) {
61
+ obj.material = materials[obj.uuid];
62
+ delete materials[obj.uuid];
63
+ }
64
+ });
65
+ finalComposer.render();
66
+ });
67
+ var bloomSelected = function bloomSelected(object3dArray) {
68
+ object3dArray.forEach(function (object3d) {
69
+ if (object3d.type === 'Mesh') {
70
+ object3d.layers.enable(BLOOM_SCENE);
71
+ } else if (object3d.type === 'Group') {
72
+ object3d.traverse(function (child) {
73
+ if (child.type === 'Mesh') child.layers.enable(BLOOM_SCENE);
74
+ });
75
+ }
76
+ });
77
+ };
78
+ return {
79
+ bloomSelected: bloomSelected,
80
+ clean: function clean() {
81
+ cleanBloomBefore();
82
+ cleanBloomAfter();
83
+ }
84
+ };
85
+ };
86
+ export default createBloomSelectedTool;
87
+ //# sourceMappingURL=bloomSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Layers","MeshBasicMaterial","ShaderMaterial","Vector2","lib","use","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","createBloomSelectedTool","highParams","useScene","scene","camera","renderer","strength","radius","threshold","Error","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","mixPass","uniforms","baseTexture","value","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","finalComposer","materials","darkMaterial","color","cleanBloomBefore","useframe","traverse","obj","isMesh","test","layers","uuid","material","cleanBloomAfter","useframeAfter","render","bloomSelected","object3dArray","forEach","object3d","type","enable","child","clean"],"sources":["../../src/postEffects/bloomSelect.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Layers, MeshBasicMaterial, ShaderMaterial, Vector2, lib, use } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass, UnrealBloomPass, ShaderPass } = lib\n\ntype HighParams = {\n strength?: number\n radius?: number\n threshold?: number\n}\n\nconst createBloomSelectedTool = (highParams?: HighParams) => {\n const { scene, camera, renderer } = use.useScene()\n const { strength = 1.5, radius = 0.4, threshold = 0.85 } = highParams || {}\n\n if (!scene || !camera || !renderer)\n throw new Error('scene or camera is not defined,')\n\n const BLOOM_SCENE = 1\n\n const bloomLayer = new Layers()\n bloomLayer.set(BLOOM_SCENE)\n\n const renderScene = new RenderPass(scene, camera)\n const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold)\n\n const bloomComposer = new EffectComposer(renderer)\n\n bloomComposer.renderToScreen = false\n bloomComposer.addPass(renderScene)\n bloomComposer.addPass(bloomPass)\n\n const mixPass = new ShaderPass(\n new ShaderMaterial({\n uniforms: {\n baseTexture: { value: null },\n bloomTexture: { value: bloomComposer.renderTarget2.texture },\n },\n vertexShader: `\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n `,\n fragmentShader: `\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n `,\n defines: {},\n }), 'baseTexture',\n )\n mixPass.needsSwap = true\n\n const finalComposer = new EffectComposer(renderer)\n finalComposer.addPass(renderScene)\n finalComposer.addPass(mixPass)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n const cleanBloomBefore = use.useframe(() => {\n scene.traverse((obj: any) => {\n if (obj.isMesh && bloomLayer.test(obj.layers) === false) {\n materials[obj.uuid] = obj.material\n obj.material = darkMaterial\n }\n })\n })\n\n const cleanBloomAfter = use.useframeAfter(() => {\n bloomComposer.render()\n\n scene.traverse((obj: any) => {\n if (materials[obj.uuid]) {\n obj.material = materials[obj.uuid]\n delete materials[obj.uuid]\n }\n })\n\n finalComposer.render()\n })\n\n const bloomSelected = (object3dArray: Object3D[]) => {\n object3dArray.forEach((object3d) => {\n if (object3d.type === 'Mesh') {\n object3d.layers.enable(BLOOM_SCENE)\n }\n\n else if (object3d.type === 'Group') {\n object3d.traverse((child) => {\n if (child.type === 'Mesh')\n child.layers.enable(BLOOM_SCENE)\n })\n }\n })\n }\n\n return {\n bloomSelected,\n clean: () => {\n cleanBloomBefore()\n cleanBloomAfter()\n },\n }\n}\n\nexport default createBloomSelectedTool"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core';
2
+ import { lib } from '@anov/3d-core';
2
3
  declare type InitPostEffectsOptions = {
3
4
  type: 'main' | 'sub';
4
5
  beforehooks?: () => void;
5
6
  afterhooks?: () => void;
7
+ renderToScreen?: boolean;
6
8
  };
7
9
  /**
8
10
  * init post effects
@@ -13,5 +15,8 @@ declare type InitPostEffectsOptions = {
13
15
  * @param afterhooks composer render after hook
14
16
  * @returns
15
17
  */
16
- export declare const initPostEffects: (scene: Scene, renderer: WebGLRenderer, camera: Camera, options?: InitPostEffectsOptions) => () => void;
18
+ export declare const initPostEffects: (scene: Scene, renderer: WebGLRenderer, camera: Camera, options?: InitPostEffectsOptions) => {
19
+ composer: lib.EffectComposer<import("@anov/3d-core").WebGLRenderTarget<import("@anov/3d-core").Texture>>;
20
+ clean: () => void;
21
+ };
17
22
  export {};
@@ -23,12 +23,15 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
23
23
  },
24
24
  type = _ref.type,
25
25
  beforehooks = _ref.beforehooks,
26
- afterhooks = _ref.afterhooks;
26
+ afterhooks = _ref.afterhooks,
27
+ _ref$renderToScreen = _ref.renderToScreen,
28
+ renderToScreen = _ref$renderToScreen === void 0 ? true : _ref$renderToScreen;
27
29
  var func = type === 'main' ? useComposerFrame : useSubComposerFrame;
28
30
  clean && clean();
29
31
  storeManagement.set('composer', composer);
30
32
  storeManagement.set('renderPass', renderPass);
31
33
  composer.addPass(renderPass);
34
+ composer.renderToScreen = renderToScreen;
32
35
  var cleanEffectsframe = func(function () {
33
36
  beforehooks && beforehooks();
34
37
  composer.render();
@@ -39,6 +42,9 @@ export var initPostEffects = function initPostEffects(scene, renderer, camera, o
39
42
  storeManagement.delete('renderPass');
40
43
  cleanEffectsframe();
41
44
  };
42
- return clean;
45
+ return {
46
+ composer: composer,
47
+ clean: clean
48
+ };
43
49
  };
44
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","composer","renderPass","type","beforehooks","afterhooks","func","set","addPass","cleanEffectsframe","render","delete"],"sources":["../../src/postEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (scene: Scene, renderer: WebGLRenderer, camera: Camera, options?: InitPostEffectsOptions) => {\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n\n const { type, beforehooks, afterhooks } = options || { type: 'main' }\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return clean\n}"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,cAAc,GAAiBH,GAAG,CAAlCG,cAAc;EAAEC,UAAU,GAAKJ,GAAG,CAAlBI,UAAU;AAClC,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AACvB,IAAQC,mBAAmB,GAAuBL,GAAG,CAA7CK,mBAAmB;EAAEC,gBAAgB,GAAKN,GAAG,CAAxBM,gBAAgB;AAQ7C,IAAIC,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAe,CAAIC,KAAY,EAAEC,QAAuB,EAAEC,MAAc,EAAEC,OAAgC,EAAK;EAC1H,IAAMC,QAAQ,GAAG,IAAIX,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMI,UAAU,GAAG,IAAIX,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAEhD,WAA0CC,OAAO,IAAI;MAAEG,IAAI,EAAE;IAAO,CAAC;IAA7DA,IAAI,QAAJA,IAAI;IAAEC,WAAW,QAAXA,WAAW;IAAEC,UAAU,QAAVA,UAAU;EACrC,IAAMC,IAAI,GAAGH,IAAI,KAAK,MAAM,GAAGT,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,EAAE;EAEhBH,eAAe,CAACe,GAAG,CAAC,UAAU,EAAEN,QAAQ,CAAC;EACzCT,eAAe,CAACe,GAAG,CAAC,YAAY,EAAEL,UAAU,CAAC;EAE7CD,QAAQ,CAACO,OAAO,CAACN,UAAU,CAAC;EAE5B,IAAMO,iBAAiB,GAAGH,IAAI,CAAE,YAAM;IACpCF,WAAW,IAAIA,WAAW,EAAE;IAC5BH,QAAQ,CAACS,MAAM,EAAE;IACjBL,UAAU,IAAIA,UAAU,EAAE;EAC5B,CAAC,CAAC;EAEFV,KAAK,GAAG,iBAAM;IACZH,eAAe,CAACmB,MAAM,CAAC,UAAU,CAAC;IAClCnB,eAAe,CAACmB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,EAAE;EACrB,CAAC;EAED,OAAOd,KAAK;AACd,CAAC"}
1
+ {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","composer","renderPass","type","beforehooks","afterhooks","renderToScreen","func","set","addPass","cleanEffectsframe","render","delete"],"sources":["../../src/postEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n renderToScreen?: boolean\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n options?: InitPostEffectsOptions,\n) => {\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n composer.renderToScreen = renderToScreen\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return {\n composer,\n clean,\n }\n}"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,cAAc,GAAiBH,GAAG,CAAlCG,cAAc;EAAEC,UAAU,GAAKJ,GAAG,CAAlBI,UAAU;AAClC,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AACvB,IAAQC,mBAAmB,GAAuBL,GAAG,CAA7CK,mBAAmB;EAAEC,gBAAgB,GAAKN,GAAG,CAAxBM,gBAAgB;AAS7C,IAAIC,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAe,CAC1BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,EAC7B;EACH,IAAMC,QAAQ,GAAG,IAAIX,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMI,UAAU,GAAG,IAAIX,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAEhD,WAAiEC,OAAO,IAAI;MAAEG,IAAI,EAAE;IAAO,CAAC;IAApFA,IAAI,QAAJA,IAAI;IAAEC,WAAW,QAAXA,WAAW;IAAEC,UAAU,QAAVA,UAAU;IAAA,2BAAEC,cAAc;IAAdA,cAAc,oCAAG,IAAI;EAE5D,IAAMC,IAAI,GAAGJ,IAAI,KAAK,MAAM,GAAGT,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,EAAE;EAEhBH,eAAe,CAACgB,GAAG,CAAC,UAAU,EAAEP,QAAQ,CAAC;EACzCT,eAAe,CAACgB,GAAG,CAAC,YAAY,EAAEN,UAAU,CAAC;EAE7CD,QAAQ,CAACQ,OAAO,CAACP,UAAU,CAAC;EAC5BD,QAAQ,CAACK,cAAc,GAAGA,cAAc;EAExC,IAAMI,iBAAiB,GAAGH,IAAI,CAAE,YAAM;IACpCH,WAAW,IAAIA,WAAW,EAAE;IAC5BH,QAAQ,CAACU,MAAM,EAAE;IACjBN,UAAU,IAAIA,UAAU,EAAE;EAC5B,CAAC,CAAC;EAEFV,KAAK,GAAG,iBAAM;IACZH,eAAe,CAACoB,MAAM,CAAC,UAAU,CAAC;IAClCpB,eAAe,CAACoB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,EAAE;EACrB,CAAC;EAED,OAAO;IACLT,QAAQ,EAARA,QAAQ;IACRN,KAAK,EAALA;EACF,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d-ability",
3
- "version": "0.0.7",
3
+ "version": "0.0.12",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -23,10 +23,10 @@
23
23
  "suncalc": "^1.9.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@anov/3d-core": "^0.0.7"
26
+ "@anov/3d-core": "^0.0.10"
27
27
  },
28
28
  "peerDependencies": {
29
- "@anov/3d-core": "^0.0.7"
29
+ "@anov/3d-core": "^0.0.10"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "father build",