import { CustomShader } from '@realsee/five';
export declare class PointCloudExpandShader extends CustomShader {
    constructor();
    get progress(): number;
    set progress(value: number);
}
/**
float pointEffectSizeScale = 1.0;
float pointEffectSizeBasis = 0.0;

==== start effect 1 =====
vec4 basis = vec4((modelBoundingMax + modelBoundingMin) / 2.0, 1.0);
float boundingRadius = length(modelBoundingMax - modelBoundingMin) / 2.0;

vec4 rPosition1 = vWorldPosition - basis;
vec4 rPosition2 = normalize(rPosition1) * (boundingRadius * 20.0) * gln_simplex(vWorldPosition.xyz * 20.0);

float progress = clamp(pointEffect * pointEffect * pointEffect, 0.0, 1.0);
vec4 rPosition = mix(rPosition1, rPosition2, progress);

float rLength = length(rPosition.xz);
float rad = atan(rPosition.z, rPosition.x) + sqrt(length(rPosition - rPosition1) / 100.0);
rPosition.x = cos(rad) * rLength;
rPosition.z = sin(rad) * rLength;

vWorldPosition = basis + rPosition;
==== end effect 1 =====

==== start effect 2 =====
vec4 basis = vec4((modelBoundingMax + modelBoundingMin) / 2.0, 1.0);
float boundingRadius = length(modelBoundingMax - modelBoundingMin) / 2.0;
float p = length(vWorldPosition - basis) / boundingRadius;
float progress = smoothstep(p, p - 0.03, 1.0 - pointEffect);
float noise = gln_simplex(vWorldPosition.xyz * 10.0);
progress = step(abs(noise), progress);
pointEffectSizeScale = mix(pointEffectSizeScale, 0.0, progress);

float progress2 = step(pointEffect, 1.0 - p);
pointEffectSizeBasis = mix(0.1 * step(abs(noise), 0.5 / boundingRadius), pointEffectSizeBasis, progress2);
==== end effect 2 =====

==== start effect 3 =====
vec4 basis = vec4((modelBoundingMax + modelBoundingMin) / 2.0, 1.0);
float boundingRadius = length(modelBoundingMax - modelBoundingMin) / 2.0;
float boundingSizeZ = length(modelBoundingMax.z - modelBoundingMin.z);
float p = 1.0 - length(vWorldPosition.z - modelBoundingMin.z) / boundingSizeZ;
float progress = 1.0 - pointEffect;
progress = progress * 0.9 + 0.1;
progress = smoothstep(p, p - 0.03, 1.0 - pointEffect);
float noise = gln_simplex(vWorldPosition.xyz * 10.0);
progress = step(abs(noise), progress);
pointEffectSizeScale = mix(pointEffectSizeScale, 0.0, progress);

float progress2 = step(pointEffect, 1.0 - p);
float noise2 = gln_simplex(vWorldPosition.xyz * 10.0);
pointEffectSizeBasis = mix(0.7 * step(abs(noise2), 0.2 / boundingRadius), pointEffectSizeBasis, progress2);
pointEffectSizeBasis = mix(0.0, pointEffectSizeBasis, step(p - 0.3, (1.0 - pointEffect) * 0.9));
==== end effect 3 =====
 */ 
