All files / src/components/VirtualWalkthrough SplatRevealRain.tsx

0% Statements 0/2
0% Branches 0/13
0% Functions 0/1
0% Lines 0/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                                                                                                                     
import React from 'react';
 
import { Script } from '@playcanvas/react/components';
import { Color, Vec3 } from 'playcanvas';
import { GSplatRevealRain } from 'playcanvas/scripts/esm/gsplat/reveal-rain.mjs';
 
interface SplatRevealRainProps {
  enabled?: boolean;
  center?: [number, number, number];
  distance?: number;
  speed?: number;
  acceleration?: number;
  flightTime?: number;
  rainSize?: number;
  rotation?: number;
  fallTint?: [number, number, number];
  fallTintIntensity?: number;
  hitTint?: [number, number, number];
  hitDuration?: number;
  endRadius?: number;
}
 
const SplatRevealRain = ({
  enabled = true,
  center = [0, 0, 0],
  distance = 3,
  speed = 10,
  acceleration = 5,
  flightTime = 0.25,
  rainSize = 0.0,
  rotation = 0,
  fallTint = [0, 0, 0],
  fallTintIntensity = 0,
  hitTint = [0, 0, 0],
  hitDuration = 0,
  endRadius = 5,
}: SplatRevealRainProps) => {
  return (
    <Script
      script={GSplatRevealRain}
      enabled={enabled}
      center={new Vec3(...center)}
      distance={distance}
      speed={speed}
      acceleration={acceleration}
      flightTime={flightTime}
      rainSize={rainSize}
      rotation={rotation}
      fallTint={new Color(...fallTint)}
      fallTintIntensity={fallTintIntensity}
      hitTint={new Color(...hitTint)}
      hitDuration={hitDuration}
      endRadius={endRadius}
    />
  );
};
 
export default SplatRevealRain;