New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@pmndrs/vanilla

Package Overview
Dependencies
Maintainers
0
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pmndrs/vanilla - npm Package Compare versions

Comparing version

to
1.20.1

helpers/Pass.cjs.js

2

core/index.cjs.js

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./pcss.cjs.js"),r=require("./Caustics.cjs.js"),s=require("./shaderMaterial.cjs.js"),t=require("./AccumulativeShadows.cjs.js"),a=require("./Cloud.cjs.js"),i=require("./useFBO.cjs.js"),o=require("./SpriteAnimator.cjs.js"),l=require("./Outlines.cjs.js"),p=require("./Billboard.cjs.js"),u=require("./Splat.cjs.js"),c=require("./Grid.cjs.js"),j=require("./MeshPortalMaterial.cjs.js");require("three"),require("three/examples/jsm/postprocessing/Pass.js"),require("../materials/MeshDiscardMaterial.cjs.js"),require("../helpers/deprecated.cjs.js"),require("three/examples/jsm/utils/BufferGeometryUtils.js"),require("../helpers/constants.cjs.js"),require("three-stdlib"),exports.pcss=e.pcss,exports.Caustics=r.Caustics,exports.CausticsMaterial=r.CausticsMaterial,exports.CausticsProjectionMaterial=r.CausticsProjectionMaterial,exports.createCausticsUpdate=r.createCausticsUpdate,exports.shaderMaterial=s.shaderMaterial,exports.ProgressiveLightMap=t.ProgressiveLightMap,exports.SoftShadowMaterial=t.SoftShadowMaterial,exports.CLOUD_URL=a.CLOUD_URL,exports.Cloud=a.Cloud,exports.Clouds=a.Clouds,exports.useFBO=i.useFBO,exports.SpriteAnimator=o.SpriteAnimator,exports.Outlines=l.Outlines,exports.Billboard=p.Billboard,exports.Splat=u.Splat,exports.SplatLoader=u.SplatLoader,exports.Grid=c.Grid,exports.MeshPortalMaterial=j.MeshPortalMaterial,exports.meshPortalMaterialApplySDF=j.meshPortalMaterialApplySDF;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./pcss.cjs.js"),s=require("./Caustics.cjs.js"),r=require("./shaderMaterial.cjs.js"),t=require("./AccumulativeShadows.cjs.js"),a=require("./Cloud.cjs.js"),i=require("./useFBO.cjs.js"),o=require("./SpriteAnimator.cjs.js"),l=require("./Outlines.cjs.js"),p=require("./Billboard.cjs.js"),u=require("./Splat.cjs.js"),c=require("./Grid.cjs.js"),j=require("./MeshPortalMaterial.cjs.js");require("three"),require("three/examples/jsm/postprocessing/Pass.js"),require("../materials/MeshDiscardMaterial.cjs.js"),require("../helpers/deprecated.cjs.js"),require("three/examples/jsm/utils/BufferGeometryUtils.js"),require("../helpers/constants.cjs.js"),require("../helpers/Pass.cjs.js"),exports.pcss=e.pcss,exports.Caustics=s.Caustics,exports.CausticsMaterial=s.CausticsMaterial,exports.CausticsProjectionMaterial=s.CausticsProjectionMaterial,exports.createCausticsUpdate=s.createCausticsUpdate,exports.shaderMaterial=r.shaderMaterial,exports.ProgressiveLightMap=t.ProgressiveLightMap,exports.SoftShadowMaterial=t.SoftShadowMaterial,exports.CLOUD_URL=a.CLOUD_URL,exports.Cloud=a.Cloud,exports.Clouds=a.Clouds,exports.useFBO=i.useFBO,exports.SpriteAnimator=o.SpriteAnimator,exports.Outlines=l.Outlines,exports.Billboard=p.Billboard,exports.Splat=u.Splat,exports.SplatLoader=u.SplatLoader,exports.Grid=c.Grid,exports.MeshPortalMaterial=j.MeshPortalMaterial,exports.meshPortalMaterialApplySDF=j.meshPortalMaterialApplySDF;

@@ -19,2 +19,2 @@ export { pcss } from './pcss.js';

import '../helpers/constants.js';
import 'three-stdlib';
import '../helpers/Pass.js';

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js"),n=require("three-stdlib");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=a(e);const l=r.shaderMaterial({blur:0,map:null,sdf:null,size:0,resolution:new i.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.MeshPortalMaterial=l,exports.meshPortalMaterialApplySDF=(e,r,t)=>{const a=new i.WebGLRenderTarget(r,r),l=e.material,o=new i.Mesh(e.geometry,new i.MeshBasicMaterial),s=(new i.Box3).setFromBufferAttribute(o.geometry.attributes.position),v=new i.OrthographicCamera(s.min.x*(1+2/r),s.max.x*(1+2/r),s.max.y*(1+2/r),s.min.y*(1+2/r),.1,1e3);v.position.set(0,0,1),v.lookAt(0,0,0),t.setRenderTarget(a),t.render(o,v);const u=((e,r,t)=>{const a=new i.WebGLRenderTarget(e,r,{minFilter:i.LinearMipmapLinearFilter,magFilter:i.LinearFilter,type:i.FloatType,format:i.RedFormat,generateMipmaps:!0}),l=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),o=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),s=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),v=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),u=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),m=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),d=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),f=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),c=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new i.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{inside:{value:m.texture},outside:{value:u.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return n=>{const p=a;n.minFilter=i.NearestFilter,n.magFilter=i.NearestFilter,d.material.uniforms.tex.value=n,t.setRenderTarget(l),d.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=l,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===l?s:l,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}t.setRenderTarget(u),g.material.uniforms.tex.value=y.texture,g.render(t),f.material.uniforms.tex.value=n,t.setRenderTarget(o),f.render(t),h=o;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===o?v:o,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}return t.setRenderTarget(m),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=n,x.render(t),t.setRenderTarget(null),p}})(r,r,t)(a.texture),m=new Float32Array(r*r);t.readRenderTargetPixels(u,0,0,r,r,m);let d=1/0;for(let e=0;e<m.length;e++)m[e]<d&&(d=m[e]);d=-d,l.size=d,l.sdf=u.texture,t.setRenderTarget(null)};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js"),n=require("../helpers/Pass.cjs.js");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=a(e);const l=r.shaderMaterial({blur:0,map:null,sdf:null,size:0,resolution:new i.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.MeshPortalMaterial=l,exports.meshPortalMaterialApplySDF=(e,r,t)=>{const a=new i.WebGLRenderTarget(r,r),l=e.material,o=new i.Mesh(e.geometry,new i.MeshBasicMaterial),s=(new i.Box3).setFromBufferAttribute(o.geometry.attributes.position),v=new i.OrthographicCamera(s.min.x*(1+2/r),s.max.x*(1+2/r),s.max.y*(1+2/r),s.min.y*(1+2/r),.1,1e3);v.position.set(0,0,1),v.lookAt(0,0,0),t.setRenderTarget(a),t.render(o,v);const u=((e,r,t)=>{const a=new i.WebGLRenderTarget(e,r,{minFilter:i.LinearMipmapLinearFilter,magFilter:i.LinearFilter,type:i.FloatType,format:i.RedFormat,generateMipmaps:!0}),l=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),o=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),s=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),v=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),u=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),m=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),d=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),f=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),c=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new i.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{inside:{value:m.texture},outside:{value:u.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return n=>{const p=a;n.minFilter=i.NearestFilter,n.magFilter=i.NearestFilter,d.material.uniforms.tex.value=n,t.setRenderTarget(l),d.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=l,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===l?s:l,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}t.setRenderTarget(u),g.material.uniforms.tex.value=y.texture,g.render(t),f.material.uniforms.tex.value=n,t.setRenderTarget(o),f.render(t),h=o;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===o?v:o,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}return t.setRenderTarget(m),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=n,x.render(t),t.setRenderTarget(null),p}})(r,r,t)(a.texture),m=new Float32Array(r*r);t.readRenderTargetPixels(u,0,0,r,r,m);let d=1/0;for(let e=0;e<m.length;e++)m[e]<d&&(d=m[e]);d=-d,l.size=d,l.sdf=u.texture,t.setRenderTarget(null)};
import * as THREE from 'three';
import { shaderMaterial } from './shaderMaterial.js';
import { version } from '../helpers/constants.js';
import { FullScreenQuad } from 'three-stdlib';
import { FullScreenQuad } from '../helpers/Pass.js';

@@ -6,0 +6,0 @@ const MeshPortalMaterial = shaderMaterial({

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./shaderMaterial.cjs.js"),n=require("three"),t=require("three/examples/jsm/utils/BufferGeometryUtils.js");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var o=r(n);const i=e.shaderMaterial({screenspace:!1,color:new o.Color("black"),opacity:1,thickness:.05,size:new o.Vector2},"\n #include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n uniform float thickness;\n uniform float screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace == 0.0) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`\n uniform vec3 color;\n uniform float opacity;\n void main(){\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${parseInt(o.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e=new o.Color("black"),opacity:n=1,transparent:r=!1,screenspace:a=!1,toneMapped:c=!0,polygonOffset:s=!1,polygonOffsetFactor:l=0,renderOrder:p=0,thickness:d=.05,angle:f=Math.PI,gl:u}){const m=new o.Group;let g={color:e,opacity:n,transparent:r,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p,thickness:d,angle:f};function v(e){const n=m.parent;if(m.clear(),n&&n.geometry){let r;const a=new i({side:o.BackSide});n.skeleton?(r=new o.SkinnedMesh,r.material=a,r.bind(n.skeleton,n.bindMatrix),m.add(r)):n.isInstancedMesh?(r=new o.InstancedMesh(n.geometry,a,n.count),r.instanceMatrix=n.instanceMatrix,m.add(r)):(r=new o.Mesh,r.material=a,m.add(r)),r.geometry=e?t.toCreasedNormals(n.geometry,e):n.geometry}}function x(e){g={...g,...e};const n=m.children[0];if(n){const{transparent:e,thickness:t,color:r,opacity:i,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p}=g,d=new o.Vector2;!u&&g.screenspace&&console.warn('Outlines: "screenspace" requires a WebGLRenderer instance to calculate the outline size'),u&&u.getSize(d),Object.assign(n.material,{transparent:e,thickness:t,color:r,opacity:i,size:d,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l}),void 0!==p&&(n.renderOrder=p)}}return{group:m,updateProps(e){var n;const t=null!==(n=e.angle)&&void 0!==n?n:g.angle;t!==g.angle&&v(t),x(e)},generate(){v(g.angle),x(g)}}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./shaderMaterial.cjs.js"),n=require("three"),t=require("three/examples/jsm/utils/BufferGeometryUtils.js");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var o=r(n);const i=e.shaderMaterial({screenspace:!1,color:new o.Color("black"),opacity:1,thickness:.05,size:new o.Vector2},"\n #include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n uniform float thickness;\n uniform float screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace == 0.0) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`\n uniform vec3 color;\n uniform float opacity;\n void main(){\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${parseInt(o.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e=new o.Color("black"),opacity:n=1,transparent:r=!1,screenspace:a=!1,toneMapped:c=!0,polygonOffset:s=!1,polygonOffsetFactor:l=0,renderOrder:p=0,thickness:d=.05,angle:f=Math.PI,gl:u}={}){const m=new o.Group;let g={color:e,opacity:n,transparent:r,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p,thickness:d,angle:f};function v(e){const n=m.parent;if(m.clear(),n&&n.geometry){let r;const a=new i({side:o.BackSide});n.skeleton?(r=new o.SkinnedMesh,r.material=a,r.bind(n.skeleton,n.bindMatrix),m.add(r)):n.isInstancedMesh?(r=new o.InstancedMesh(n.geometry,a,n.count),r.instanceMatrix=n.instanceMatrix,m.add(r)):(r=new o.Mesh,r.material=a,m.add(r)),r.geometry=e?t.toCreasedNormals(n.geometry,e):n.geometry}}function x(e){g={...g,...e};const n=m.children[0];if(n){const{transparent:e,thickness:t,color:r,opacity:i,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p}=g,d=new o.Vector2;!u&&g.screenspace&&console.warn('Outlines: "screenspace" requires a WebGLRenderer instance to calculate the outline size'),u&&u.getSize(d),Object.assign(n.material,{transparent:e,thickness:t,color:r,opacity:i,size:d,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l}),void 0!==p&&(n.renderOrder=p)}}return{group:m,updateProps(e){var n;const t=null!==(n=e.angle)&&void 0!==n?n:g.angle;t!==g.angle&&v(t),x(e)},generate(){v(g.angle),x(g)}}};

@@ -20,2 +20,2 @@ import * as THREE from 'three';

};
export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, gl, }: Partial<OutlinesProps>): OutlinesType;
export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, gl, }?: Partial<OutlinesProps>): OutlinesType;

@@ -66,3 +66,3 @@ import { shaderMaterial } from './shaderMaterial.js';

gl
}) {
} = {}) {
const group = new THREE.Group();

@@ -69,0 +69,0 @@ let shapeProps = {

{
"name": "@pmndrs/vanilla",
"version": "1.20.0",
"version": "1.20.1",
"private": false,

@@ -46,4 +46,3 @@ "publishConfig": {

"dependencies": {
"glsl-noise": "^0.0.0",
"three-stdlib": "^2.34.0"
"glsl-noise": "^0.0.0"
},

@@ -50,0 +49,0 @@ "peerDependencies": {

Sorry, the diff of this file is too big to display