@react-three/postprocessing 2.15.10 → 2.15.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/effects/Glitch.cjs +2 -1
- package/dist/effects/Glitch.cjs.map +1 -1
- package/dist/effects/Glitch.js +2 -1
- package/dist/effects/Glitch.js.map +1 -1
- package/dist/effects/Outline.cjs +5 -0
- package/dist/effects/Outline.cjs.map +1 -1
- package/dist/effects/Outline.js +5 -0
- package/dist/effects/Outline.js.map +1 -1
- package/package.json +1 -1
package/dist/effects/Glitch.cjs
CHANGED
|
@@ -21,7 +21,8 @@ const Glitch = React.forwardRef(function Glitch2({ active = true, ...props }, re
|
|
|
21
21
|
}, [active, effect, invalidate, props.mode]);
|
|
22
22
|
React.useEffect(() => {
|
|
23
23
|
return () => {
|
|
24
|
-
|
|
24
|
+
var _a;
|
|
25
|
+
(_a = effect.dispose) == null ? void 0 : _a.call(effect);
|
|
25
26
|
};
|
|
26
27
|
}, [effect]);
|
|
27
28
|
return /* @__PURE__ */ jsxRuntime.jsx("primitive", { ref, object: effect, dispose: null });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Glitch.cjs","sources":["../../src/effects/Glitch.tsx"],"sourcesContent":["import { Vector2 } from 'three'\nimport { GlitchEffect, GlitchMode } from 'postprocessing'\nimport { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react'\nimport { ReactThreeFiber, useThree } from '@react-three/fiber'\nimport { useVector2 } from '../util'\n\nexport type GlitchProps = ConstructorParameters<typeof GlitchEffect>[0] &\n Partial<{\n mode: GlitchMode\n active: boolean\n delay: ReactThreeFiber.Vector2\n duration: ReactThreeFiber.Vector2\n chromaticAberrationOffset: ReactThreeFiber.Vector2\n strength: ReactThreeFiber.Vector2\n }>\n\nexport const Glitch = forwardRef<GlitchEffect, GlitchProps>(function Glitch(\n { active = true, ...props }: GlitchProps,\n ref: Ref<GlitchEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const delay = useVector2(props, 'delay')\n const duration = useVector2(props, 'duration')\n const strength = useVector2(props, 'strength')\n const chromaticAberrationOffset = useVector2(props, 'chromaticAberrationOffset')\n const effect = useMemo(\n () => new GlitchEffect({ ...props, delay, duration, strength, chromaticAberrationOffset }),\n [delay, duration, props, strength, chromaticAberrationOffset]\n )\n useLayoutEffect(() => {\n effect.mode = active ? props.mode || GlitchMode.SPORADIC : GlitchMode.DISABLED\n invalidate()\n }, [active, effect, invalidate, props.mode])\n useEffect(() => {\n return () => {\n effect.dispose()\n }\n }, [effect])\n return <primitive ref={ref} object={effect} dispose={null} />\n})\n"],"names":["forwardRef","Glitch","useThree","useVector2","useMemo","GlitchEffect","useLayoutEffect","GlitchMode","useEffect"],"mappings":";;;;;;;AAgBa,MAAA,SAASA,MAAAA,WAAsC,SAASC,QACnE,EAAE,SAAS,MAAM,GAAG,MAAM,GAC1B,KACA;AACA,QAAM,aAAaC,MAAAA,SAAS,CAAC,UAAU,MAAM,UAAU;AACjD,QAAA,QAAQC,KAAAA,WAAW,OAAO,OAAO;AACjC,QAAA,WAAWA,KAAAA,WAAW,OAAO,UAAU;AACvC,QAAA,WAAWA,KAAAA,WAAW,OAAO,UAAU;AACvC,QAAA,4BAA4BA,KAAAA,WAAW,OAAO,2BAA2B;AAC/E,QAAM,SAASC,MAAA;AAAA,IACb,MAAM,IAAIC,eAAAA,aAAa,EAAE,GAAG,OAAO,OAAO,UAAU,UAAU,2BAA2B;AAAA,IACzF,CAAC,OAAO,UAAU,OAAO,UAAU,yBAAyB;AAAA,EAAA;AAE9DC,QAAAA,gBAAgB,MAAM;AACpB,WAAO,OAAO,SAAS,MAAM,QAAQC,0BAAW,WAAWA,eAAW,WAAA;AAC3D;EAAA,GACV,CAAC,QAAQ,QAAQ,YAAY,MAAM,IAAI,CAAC;AAC3CC,QAAAA,UAAU,MAAM;AACd,WAAO,MAAM
|
|
1
|
+
{"version":3,"file":"Glitch.cjs","sources":["../../src/effects/Glitch.tsx"],"sourcesContent":["import { Vector2 } from 'three'\nimport { GlitchEffect, GlitchMode } from 'postprocessing'\nimport { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react'\nimport { ReactThreeFiber, useThree } from '@react-three/fiber'\nimport { useVector2 } from '../util'\n\nexport type GlitchProps = ConstructorParameters<typeof GlitchEffect>[0] &\n Partial<{\n mode: GlitchMode\n active: boolean\n delay: ReactThreeFiber.Vector2\n duration: ReactThreeFiber.Vector2\n chromaticAberrationOffset: ReactThreeFiber.Vector2\n strength: ReactThreeFiber.Vector2\n }>\n\nexport const Glitch = forwardRef<GlitchEffect, GlitchProps>(function Glitch(\n { active = true, ...props }: GlitchProps,\n ref: Ref<GlitchEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const delay = useVector2(props, 'delay')\n const duration = useVector2(props, 'duration')\n const strength = useVector2(props, 'strength')\n const chromaticAberrationOffset = useVector2(props, 'chromaticAberrationOffset')\n const effect = useMemo(\n () => new GlitchEffect({ ...props, delay, duration, strength, chromaticAberrationOffset }),\n [delay, duration, props, strength, chromaticAberrationOffset]\n )\n useLayoutEffect(() => {\n effect.mode = active ? props.mode || GlitchMode.SPORADIC : GlitchMode.DISABLED\n invalidate()\n }, [active, effect, invalidate, props.mode])\n useEffect(() => {\n return () => {\n effect.dispose?.()\n }\n }, [effect])\n return <primitive ref={ref} object={effect} dispose={null} />\n})\n"],"names":["forwardRef","Glitch","useThree","useVector2","useMemo","GlitchEffect","useLayoutEffect","GlitchMode","useEffect"],"mappings":";;;;;;;AAgBa,MAAA,SAASA,MAAAA,WAAsC,SAASC,QACnE,EAAE,SAAS,MAAM,GAAG,MAAM,GAC1B,KACA;AACA,QAAM,aAAaC,MAAAA,SAAS,CAAC,UAAU,MAAM,UAAU;AACjD,QAAA,QAAQC,KAAAA,WAAW,OAAO,OAAO;AACjC,QAAA,WAAWA,KAAAA,WAAW,OAAO,UAAU;AACvC,QAAA,WAAWA,KAAAA,WAAW,OAAO,UAAU;AACvC,QAAA,4BAA4BA,KAAAA,WAAW,OAAO,2BAA2B;AAC/E,QAAM,SAASC,MAAA;AAAA,IACb,MAAM,IAAIC,eAAAA,aAAa,EAAE,GAAG,OAAO,OAAO,UAAU,UAAU,2BAA2B;AAAA,IACzF,CAAC,OAAO,UAAU,OAAO,UAAU,yBAAyB;AAAA,EAAA;AAE9DC,QAAAA,gBAAgB,MAAM;AACpB,WAAO,OAAO,SAAS,MAAM,QAAQC,0BAAW,WAAWA,eAAW,WAAA;AAC3D;EAAA,GACV,CAAC,QAAQ,QAAQ,YAAY,MAAM,IAAI,CAAC;AAC3CC,QAAAA,UAAU,MAAM;AACd,WAAO,MAAM;;AACX,mBAAO,YAAP;AAAA,IAAiB;AAAA,EACnB,GACC,CAAC,MAAM,CAAC;AACX,wCAAQ,aAAU,EAAA,KAAU,QAAQ,QAAQ,SAAS,KAAM,CAAA;AAC7D,CAAC;;"}
|
package/dist/effects/Glitch.js
CHANGED
|
@@ -19,7 +19,8 @@ const Glitch = forwardRef(function Glitch2({ active = true, ...props }, ref) {
|
|
|
19
19
|
}, [active, effect, invalidate, props.mode]);
|
|
20
20
|
useEffect(() => {
|
|
21
21
|
return () => {
|
|
22
|
-
|
|
22
|
+
var _a;
|
|
23
|
+
(_a = effect.dispose) == null ? void 0 : _a.call(effect);
|
|
23
24
|
};
|
|
24
25
|
}, [effect]);
|
|
25
26
|
return /* @__PURE__ */ jsx("primitive", { ref, object: effect, dispose: null });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Glitch.js","sources":["../../src/effects/Glitch.tsx"],"sourcesContent":["import { Vector2 } from 'three'\nimport { GlitchEffect, GlitchMode } from 'postprocessing'\nimport { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react'\nimport { ReactThreeFiber, useThree } from '@react-three/fiber'\nimport { useVector2 } from '../util'\n\nexport type GlitchProps = ConstructorParameters<typeof GlitchEffect>[0] &\n Partial<{\n mode: GlitchMode\n active: boolean\n delay: ReactThreeFiber.Vector2\n duration: ReactThreeFiber.Vector2\n chromaticAberrationOffset: ReactThreeFiber.Vector2\n strength: ReactThreeFiber.Vector2\n }>\n\nexport const Glitch = forwardRef<GlitchEffect, GlitchProps>(function Glitch(\n { active = true, ...props }: GlitchProps,\n ref: Ref<GlitchEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const delay = useVector2(props, 'delay')\n const duration = useVector2(props, 'duration')\n const strength = useVector2(props, 'strength')\n const chromaticAberrationOffset = useVector2(props, 'chromaticAberrationOffset')\n const effect = useMemo(\n () => new GlitchEffect({ ...props, delay, duration, strength, chromaticAberrationOffset }),\n [delay, duration, props, strength, chromaticAberrationOffset]\n )\n useLayoutEffect(() => {\n effect.mode = active ? props.mode || GlitchMode.SPORADIC : GlitchMode.DISABLED\n invalidate()\n }, [active, effect, invalidate, props.mode])\n useEffect(() => {\n return () => {\n effect.dispose()\n }\n }, [effect])\n return <primitive ref={ref} object={effect} dispose={null} />\n})\n"],"names":["Glitch"],"mappings":";;;;;AAgBa,MAAA,SAAS,WAAsC,SAASA,QACnE,EAAE,SAAS,MAAM,GAAG,MAAM,GAC1B,KACA;AACA,QAAM,aAAa,SAAS,CAAC,UAAU,MAAM,UAAU;AACjD,QAAA,QAAQ,WAAW,OAAO,OAAO;AACjC,QAAA,WAAW,WAAW,OAAO,UAAU;AACvC,QAAA,WAAW,WAAW,OAAO,UAAU;AACvC,QAAA,4BAA4B,WAAW,OAAO,2BAA2B;AAC/E,QAAM,SAAS;AAAA,IACb,MAAM,IAAI,aAAa,EAAE,GAAG,OAAO,OAAO,UAAU,UAAU,2BAA2B;AAAA,IACzF,CAAC,OAAO,UAAU,OAAO,UAAU,yBAAyB;AAAA,EAAA;AAE9D,kBAAgB,MAAM;AACpB,WAAO,OAAO,SAAS,MAAM,QAAQ,WAAW,WAAW,WAAW;AAC3D;EAAA,GACV,CAAC,QAAQ,QAAQ,YAAY,MAAM,IAAI,CAAC;AAC3C,YAAU,MAAM;AACd,WAAO,MAAM
|
|
1
|
+
{"version":3,"file":"Glitch.js","sources":["../../src/effects/Glitch.tsx"],"sourcesContent":["import { Vector2 } from 'three'\nimport { GlitchEffect, GlitchMode } from 'postprocessing'\nimport { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react'\nimport { ReactThreeFiber, useThree } from '@react-three/fiber'\nimport { useVector2 } from '../util'\n\nexport type GlitchProps = ConstructorParameters<typeof GlitchEffect>[0] &\n Partial<{\n mode: GlitchMode\n active: boolean\n delay: ReactThreeFiber.Vector2\n duration: ReactThreeFiber.Vector2\n chromaticAberrationOffset: ReactThreeFiber.Vector2\n strength: ReactThreeFiber.Vector2\n }>\n\nexport const Glitch = forwardRef<GlitchEffect, GlitchProps>(function Glitch(\n { active = true, ...props }: GlitchProps,\n ref: Ref<GlitchEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const delay = useVector2(props, 'delay')\n const duration = useVector2(props, 'duration')\n const strength = useVector2(props, 'strength')\n const chromaticAberrationOffset = useVector2(props, 'chromaticAberrationOffset')\n const effect = useMemo(\n () => new GlitchEffect({ ...props, delay, duration, strength, chromaticAberrationOffset }),\n [delay, duration, props, strength, chromaticAberrationOffset]\n )\n useLayoutEffect(() => {\n effect.mode = active ? props.mode || GlitchMode.SPORADIC : GlitchMode.DISABLED\n invalidate()\n }, [active, effect, invalidate, props.mode])\n useEffect(() => {\n return () => {\n effect.dispose?.()\n }\n }, [effect])\n return <primitive ref={ref} object={effect} dispose={null} />\n})\n"],"names":["Glitch"],"mappings":";;;;;AAgBa,MAAA,SAAS,WAAsC,SAASA,QACnE,EAAE,SAAS,MAAM,GAAG,MAAM,GAC1B,KACA;AACA,QAAM,aAAa,SAAS,CAAC,UAAU,MAAM,UAAU;AACjD,QAAA,QAAQ,WAAW,OAAO,OAAO;AACjC,QAAA,WAAW,WAAW,OAAO,UAAU;AACvC,QAAA,WAAW,WAAW,OAAO,UAAU;AACvC,QAAA,4BAA4B,WAAW,OAAO,2BAA2B;AAC/E,QAAM,SAAS;AAAA,IACb,MAAM,IAAI,aAAa,EAAE,GAAG,OAAO,OAAO,UAAU,UAAU,2BAA2B;AAAA,IACzF,CAAC,OAAO,UAAU,OAAO,UAAU,yBAAyB;AAAA,EAAA;AAE9D,kBAAgB,MAAM;AACpB,WAAO,OAAO,SAAS,MAAM,QAAQ,WAAW,WAAW,WAAW;AAC3D;EAAA,GACV,CAAC,QAAQ,QAAQ,YAAY,MAAM,IAAI,CAAC;AAC3C,YAAU,MAAM;AACd,WAAO,MAAM;;AACX,mBAAO,YAAP;AAAA,IAAiB;AAAA,EACnB,GACC,CAAC,MAAM,CAAC;AACX,6BAAQ,aAAU,EAAA,KAAU,QAAQ,QAAQ,SAAS,KAAM,CAAA;AAC7D,CAAC;"}
|
package/dist/effects/Outline.cjs
CHANGED
|
@@ -87,6 +87,11 @@ const Outline = React.forwardRef(function Outline2({
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
}, [api, effect.selection, invalidate]);
|
|
90
|
+
React.useEffect(() => {
|
|
91
|
+
return () => {
|
|
92
|
+
effect.dispose();
|
|
93
|
+
};
|
|
94
|
+
}, [effect]);
|
|
90
95
|
return /* @__PURE__ */ jsxRuntime.jsx("primitive", { ref: forwardRef2, object: effect });
|
|
91
96
|
});
|
|
92
97
|
exports.Outline = Outline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Outline.cjs","sources":["../../src/effects/Outline.tsx"],"sourcesContent":["import { OutlineEffect } from 'postprocessing'\nimport { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react'\nimport { Object3D } from 'three'\nimport { useThree } from '@react-three/fiber'\nimport { EffectComposerContext } from '../EffectComposer'\nimport { selectionContext } from '../Selection'\nimport { resolveRef } from '../util'\n\ntype ObjectRef = MutableRefObject<Object3D>\n\nexport type OutlineProps = ConstructorParameters<typeof OutlineEffect>[2] &\n Partial<{\n selection: Object3D | Object3D[] | ObjectRef | ObjectRef[]\n selectionLayer: number\n }>\n\nexport const Outline = forwardRef(function Outline(\n {\n selection = [],\n selectionLayer = 10,\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props\n }: OutlineProps,\n forwardRef: Ref<OutlineEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const { scene, camera } = useContext(EffectComposerContext)\n\n const effect = useMemo(\n () =>\n new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props,\n }),\n [\n blendFunction,\n blur,\n camera,\n edgeStrength,\n height,\n hiddenEdgeColor,\n kernelSize,\n patternTexture,\n pulseSpeed,\n scene,\n visibleEdgeColor,\n width,\n xRay,\n ]\n )\n\n const api = useContext(selectionContext)\n\n useEffect(() => {\n // Do not allow array selection if declarative selection is active\n // TODO: array selection should probably be deprecated altogether\n if (!api && selection) {\n effect.selection.set(\n Array.isArray(selection) ? (selection as Object3D[]).map(resolveRef) : [resolveRef(selection) as Object3D]\n )\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }, [effect, selection, api, invalidate])\n\n useEffect(() => {\n effect.selectionLayer = selectionLayer\n invalidate()\n }, [effect, invalidate, selectionLayer])\n\n const ref = useRef<OutlineEffect>()\n useEffect(() => {\n if (api && api.enabled) {\n if (api.selected?.length) {\n effect.selection.set(api.selected)\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }\n }, [api, effect.selection, invalidate])\n\n return <primitive ref={forwardRef} object={effect} />\n})\n"],"names":["forwardRef","Outline","useThree","useContext","EffectComposerContext","useMemo","OutlineEffect","selectionContext","useEffect","resolveRef","useRef","jsx"],"mappings":";;;;;;;;;AAgBa,MAAA,UAAUA,MAAAA,WAAW,SAASC,SACzC;AAAA,EACE,YAAY,CAAC;AAAA,EACb,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACAD,aACA;AACA,QAAM,aAAaE,MAAAA,SAAS,CAAC,UAAU,MAAM,UAAU;AACvD,QAAM,EAAE,OAAO,OAAO,IAAIC,iBAAWC,eAAqB,qBAAA;AAE1D,QAAM,SAASC,MAAA;AAAA,IACb,MACE,IAAIC,eAAAA,cAAc,OAAO,QAAQ;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,MAAMH,iBAAWI,UAAAA,gBAAgB;AAEvCC,QAAAA,UAAU,MAAM;AAGV,QAAA,CAAC,OAAO,WAAW;AACrB,aAAO,UAAU;AAAA,QACf,MAAM,QAAQ,SAAS,IAAK,UAAyB,IAAIC,KAAAA,UAAU,IAAI,CAACA,gBAAW,SAAS,CAAa;AAAA,MAAA;AAEhG;AACX,aAAO,MAAM;AACX,eAAO,UAAU;AACN;MAAA;AAAA,IAEf;AAAA,KACC,CAAC,QAAQ,WAAW,KAAK,UAAU,CAAC;AAEvCD,QAAAA,UAAU,MAAM;AACd,WAAO,iBAAiB;AACb;EACV,GAAA,CAAC,QAAQ,YAAY,cAAc,CAAC;AAE3BE,eAAsB;AAClCF,QAAAA,UAAU,MAAM;;AACV,QAAA,OAAO,IAAI,SAAS;AAClB,WAAA,SAAI,aAAJ,mBAAc,QAAQ;AACjB,eAAA,UAAU,IAAI,IAAI,QAAQ;AACtB;AACX,eAAO,MAAM;AACX,iBAAO,UAAU;AACN;QAAA;AAAA,MAEf;AAAA,IACF;AAAA,KACC,CAAC,KAAK,OAAO,WAAW,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Outline.cjs","sources":["../../src/effects/Outline.tsx"],"sourcesContent":["import { OutlineEffect } from 'postprocessing'\nimport { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react'\nimport { Object3D } from 'three'\nimport { useThree } from '@react-three/fiber'\nimport { EffectComposerContext } from '../EffectComposer'\nimport { selectionContext } from '../Selection'\nimport { resolveRef } from '../util'\n\ntype ObjectRef = MutableRefObject<Object3D>\n\nexport type OutlineProps = ConstructorParameters<typeof OutlineEffect>[2] &\n Partial<{\n selection: Object3D | Object3D[] | ObjectRef | ObjectRef[]\n selectionLayer: number\n }>\n\nexport const Outline = forwardRef(function Outline(\n {\n selection = [],\n selectionLayer = 10,\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props\n }: OutlineProps,\n forwardRef: Ref<OutlineEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const { scene, camera } = useContext(EffectComposerContext)\n\n const effect = useMemo(\n () =>\n new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props,\n }),\n [\n blendFunction,\n blur,\n camera,\n edgeStrength,\n height,\n hiddenEdgeColor,\n kernelSize,\n patternTexture,\n pulseSpeed,\n scene,\n visibleEdgeColor,\n width,\n xRay,\n ]\n )\n\n const api = useContext(selectionContext)\n\n useEffect(() => {\n // Do not allow array selection if declarative selection is active\n // TODO: array selection should probably be deprecated altogether\n if (!api && selection) {\n effect.selection.set(\n Array.isArray(selection) ? (selection as Object3D[]).map(resolveRef) : [resolveRef(selection) as Object3D]\n )\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }, [effect, selection, api, invalidate])\n\n useEffect(() => {\n effect.selectionLayer = selectionLayer\n invalidate()\n }, [effect, invalidate, selectionLayer])\n\n const ref = useRef<OutlineEffect>()\n useEffect(() => {\n if (api && api.enabled) {\n if (api.selected?.length) {\n effect.selection.set(api.selected)\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }\n }, [api, effect.selection, invalidate])\n\n useEffect(() => {\n return () => {\n effect.dispose()\n }\n }, [effect])\n\n return <primitive ref={forwardRef} object={effect} />\n})\n"],"names":["forwardRef","Outline","useThree","useContext","EffectComposerContext","useMemo","OutlineEffect","selectionContext","useEffect","resolveRef","useRef","jsx"],"mappings":";;;;;;;;;AAgBa,MAAA,UAAUA,MAAAA,WAAW,SAASC,SACzC;AAAA,EACE,YAAY,CAAC;AAAA,EACb,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACAD,aACA;AACA,QAAM,aAAaE,MAAAA,SAAS,CAAC,UAAU,MAAM,UAAU;AACvD,QAAM,EAAE,OAAO,OAAO,IAAIC,iBAAWC,eAAqB,qBAAA;AAE1D,QAAM,SAASC,MAAA;AAAA,IACb,MACE,IAAIC,eAAAA,cAAc,OAAO,QAAQ;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,MAAMH,iBAAWI,UAAAA,gBAAgB;AAEvCC,QAAAA,UAAU,MAAM;AAGV,QAAA,CAAC,OAAO,WAAW;AACrB,aAAO,UAAU;AAAA,QACf,MAAM,QAAQ,SAAS,IAAK,UAAyB,IAAIC,KAAAA,UAAU,IAAI,CAACA,gBAAW,SAAS,CAAa;AAAA,MAAA;AAEhG;AACX,aAAO,MAAM;AACX,eAAO,UAAU;AACN;MAAA;AAAA,IAEf;AAAA,KACC,CAAC,QAAQ,WAAW,KAAK,UAAU,CAAC;AAEvCD,QAAAA,UAAU,MAAM;AACd,WAAO,iBAAiB;AACb;EACV,GAAA,CAAC,QAAQ,YAAY,cAAc,CAAC;AAE3BE,eAAsB;AAClCF,QAAAA,UAAU,MAAM;;AACV,QAAA,OAAO,IAAI,SAAS;AAClB,WAAA,SAAI,aAAJ,mBAAc,QAAQ;AACjB,eAAA,UAAU,IAAI,IAAI,QAAQ;AACtB;AACX,eAAO,MAAM;AACX,iBAAO,UAAU;AACN;QAAA;AAAA,MAEf;AAAA,IACF;AAAA,KACC,CAAC,KAAK,OAAO,WAAW,UAAU,CAAC;AAEtCA,QAAAA,UAAU,MAAM;AACd,WAAO,MAAM;AACX,aAAO,QAAQ;AAAA,IAAA;AAAA,EACjB,GACC,CAAC,MAAM,CAAC;AAEX,SAAQG,2BAAAA,IAAA,aAAA,EAAU,KAAKX,aAAY,QAAQ,OAAQ,CAAA;AACrD,CAAC;;"}
|
package/dist/effects/Outline.js
CHANGED
|
@@ -85,6 +85,11 @@ const Outline = forwardRef(function Outline2({
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}, [api, effect.selection, invalidate]);
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
return () => {
|
|
90
|
+
effect.dispose();
|
|
91
|
+
};
|
|
92
|
+
}, [effect]);
|
|
88
93
|
return /* @__PURE__ */ jsx("primitive", { ref: forwardRef2, object: effect });
|
|
89
94
|
});
|
|
90
95
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Outline.js","sources":["../../src/effects/Outline.tsx"],"sourcesContent":["import { OutlineEffect } from 'postprocessing'\nimport { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react'\nimport { Object3D } from 'three'\nimport { useThree } from '@react-three/fiber'\nimport { EffectComposerContext } from '../EffectComposer'\nimport { selectionContext } from '../Selection'\nimport { resolveRef } from '../util'\n\ntype ObjectRef = MutableRefObject<Object3D>\n\nexport type OutlineProps = ConstructorParameters<typeof OutlineEffect>[2] &\n Partial<{\n selection: Object3D | Object3D[] | ObjectRef | ObjectRef[]\n selectionLayer: number\n }>\n\nexport const Outline = forwardRef(function Outline(\n {\n selection = [],\n selectionLayer = 10,\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props\n }: OutlineProps,\n forwardRef: Ref<OutlineEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const { scene, camera } = useContext(EffectComposerContext)\n\n const effect = useMemo(\n () =>\n new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props,\n }),\n [\n blendFunction,\n blur,\n camera,\n edgeStrength,\n height,\n hiddenEdgeColor,\n kernelSize,\n patternTexture,\n pulseSpeed,\n scene,\n visibleEdgeColor,\n width,\n xRay,\n ]\n )\n\n const api = useContext(selectionContext)\n\n useEffect(() => {\n // Do not allow array selection if declarative selection is active\n // TODO: array selection should probably be deprecated altogether\n if (!api && selection) {\n effect.selection.set(\n Array.isArray(selection) ? (selection as Object3D[]).map(resolveRef) : [resolveRef(selection) as Object3D]\n )\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }, [effect, selection, api, invalidate])\n\n useEffect(() => {\n effect.selectionLayer = selectionLayer\n invalidate()\n }, [effect, invalidate, selectionLayer])\n\n const ref = useRef<OutlineEffect>()\n useEffect(() => {\n if (api && api.enabled) {\n if (api.selected?.length) {\n effect.selection.set(api.selected)\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }\n }, [api, effect.selection, invalidate])\n\n return <primitive ref={forwardRef} object={effect} />\n})\n"],"names":["Outline","forwardRef"],"mappings":";;;;;;;AAgBa,MAAA,UAAU,WAAW,SAASA,SACzC;AAAA,EACE,YAAY,CAAC;AAAA,EACb,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACAC,aACA;AACA,QAAM,aAAa,SAAS,CAAC,UAAU,MAAM,UAAU;AACvD,QAAM,EAAE,OAAO,OAAO,IAAI,WAAW,qBAAqB;AAE1D,QAAM,SAAS;AAAA,IACb,MACE,IAAI,cAAc,OAAO,QAAQ;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,MAAM,WAAW,gBAAgB;AAEvC,YAAU,MAAM;AAGV,QAAA,CAAC,OAAO,WAAW;AACrB,aAAO,UAAU;AAAA,QACf,MAAM,QAAQ,SAAS,IAAK,UAAyB,IAAI,UAAU,IAAI,CAAC,WAAW,SAAS,CAAa;AAAA,MAAA;AAEhG;AACX,aAAO,MAAM;AACX,eAAO,UAAU;AACN;MAAA;AAAA,IAEf;AAAA,KACC,CAAC,QAAQ,WAAW,KAAK,UAAU,CAAC;AAEvC,YAAU,MAAM;AACd,WAAO,iBAAiB;AACb;EACV,GAAA,CAAC,QAAQ,YAAY,cAAc,CAAC;AAE3B,SAAsB;AAClC,YAAU,MAAM;;AACV,QAAA,OAAO,IAAI,SAAS;AAClB,WAAA,SAAI,aAAJ,mBAAc,QAAQ;AACjB,eAAA,UAAU,IAAI,IAAI,QAAQ;AACtB;AACX,eAAO,MAAM;AACX,iBAAO,UAAU;AACN;QAAA;AAAA,MAEf;AAAA,IACF;AAAA,KACC,CAAC,KAAK,OAAO,WAAW,UAAU,CAAC;AAEtC,SAAQ,oBAAA,aAAA,EAAU,KAAKA,aAAY,QAAQ,OAAQ,CAAA;AACrD,CAAC;"}
|
|
1
|
+
{"version":3,"file":"Outline.js","sources":["../../src/effects/Outline.tsx"],"sourcesContent":["import { OutlineEffect } from 'postprocessing'\nimport { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react'\nimport { Object3D } from 'three'\nimport { useThree } from '@react-three/fiber'\nimport { EffectComposerContext } from '../EffectComposer'\nimport { selectionContext } from '../Selection'\nimport { resolveRef } from '../util'\n\ntype ObjectRef = MutableRefObject<Object3D>\n\nexport type OutlineProps = ConstructorParameters<typeof OutlineEffect>[2] &\n Partial<{\n selection: Object3D | Object3D[] | ObjectRef | ObjectRef[]\n selectionLayer: number\n }>\n\nexport const Outline = forwardRef(function Outline(\n {\n selection = [],\n selectionLayer = 10,\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props\n }: OutlineProps,\n forwardRef: Ref<OutlineEffect>\n) {\n const invalidate = useThree((state) => state.invalidate)\n const { scene, camera } = useContext(EffectComposerContext)\n\n const effect = useMemo(\n () =>\n new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...props,\n }),\n [\n blendFunction,\n blur,\n camera,\n edgeStrength,\n height,\n hiddenEdgeColor,\n kernelSize,\n patternTexture,\n pulseSpeed,\n scene,\n visibleEdgeColor,\n width,\n xRay,\n ]\n )\n\n const api = useContext(selectionContext)\n\n useEffect(() => {\n // Do not allow array selection if declarative selection is active\n // TODO: array selection should probably be deprecated altogether\n if (!api && selection) {\n effect.selection.set(\n Array.isArray(selection) ? (selection as Object3D[]).map(resolveRef) : [resolveRef(selection) as Object3D]\n )\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }, [effect, selection, api, invalidate])\n\n useEffect(() => {\n effect.selectionLayer = selectionLayer\n invalidate()\n }, [effect, invalidate, selectionLayer])\n\n const ref = useRef<OutlineEffect>()\n useEffect(() => {\n if (api && api.enabled) {\n if (api.selected?.length) {\n effect.selection.set(api.selected)\n invalidate()\n return () => {\n effect.selection.clear()\n invalidate()\n }\n }\n }\n }, [api, effect.selection, invalidate])\n\n useEffect(() => {\n return () => {\n effect.dispose()\n }\n }, [effect])\n\n return <primitive ref={forwardRef} object={effect} />\n})\n"],"names":["Outline","forwardRef"],"mappings":";;;;;;;AAgBa,MAAA,UAAU,WAAW,SAASA,SACzC;AAAA,EACE,YAAY,CAAC;AAAA,EACb,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACAC,aACA;AACA,QAAM,aAAa,SAAS,CAAC,UAAU,MAAM,UAAU;AACvD,QAAM,EAAE,OAAO,OAAO,IAAI,WAAW,qBAAqB;AAE1D,QAAM,SAAS;AAAA,IACb,MACE,IAAI,cAAc,OAAO,QAAQ;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,MAAM,WAAW,gBAAgB;AAEvC,YAAU,MAAM;AAGV,QAAA,CAAC,OAAO,WAAW;AACrB,aAAO,UAAU;AAAA,QACf,MAAM,QAAQ,SAAS,IAAK,UAAyB,IAAI,UAAU,IAAI,CAAC,WAAW,SAAS,CAAa;AAAA,MAAA;AAEhG;AACX,aAAO,MAAM;AACX,eAAO,UAAU;AACN;MAAA;AAAA,IAEf;AAAA,KACC,CAAC,QAAQ,WAAW,KAAK,UAAU,CAAC;AAEvC,YAAU,MAAM;AACd,WAAO,iBAAiB;AACb;EACV,GAAA,CAAC,QAAQ,YAAY,cAAc,CAAC;AAE3B,SAAsB;AAClC,YAAU,MAAM;;AACV,QAAA,OAAO,IAAI,SAAS;AAClB,WAAA,SAAI,aAAJ,mBAAc,QAAQ;AACjB,eAAA,UAAU,IAAI,IAAI,QAAQ;AACtB;AACX,eAAO,MAAM;AACX,iBAAO,UAAU;AACN;QAAA;AAAA,MAEf;AAAA,IACF;AAAA,KACC,CAAC,KAAK,OAAO,WAAW,UAAU,CAAC;AAEtC,YAAU,MAAM;AACd,WAAO,MAAM;AACX,aAAO,QAAQ;AAAA,IAAA;AAAA,EACjB,GACC,CAAC,MAAM,CAAC;AAEX,SAAQ,oBAAA,aAAA,EAAU,KAAKA,aAAY,QAAQ,OAAQ,CAAA;AACrD,CAAC;"}
|