CurveModifier.d.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import {
  2. DataTexture,
  3. Curve,
  4. Uniform,
  5. Material,
  6. InstancedMesh,
  7. Geometry,
  8. Mesh,
  9. Vector3
  10. } from '../../../src/Three';
  11. interface SplineUniform {
  12. spineTexture: Uniform,
  13. pathOffset: Uniform,
  14. pathSegment: Uniform,
  15. spineOffset: Uniform,
  16. Uniform,
  17. flow: Uniform,
  18. }
  19. export function initSplineTexture( size?: number ): DataTexture;
  20. export function updateSplineTexture( texture: DataTexture, splineCurve: Curve<Vector3>, offset?: number );
  21. export function getUniforms( splineTexture: DataTexture ): SplineUniform;
  22. export function modifyShader( material: Material, uniforms: SplineUniform, numberOfCurves?: number );
  23. export class Flow {
  24. constructor( mesh: Mesh, numberOfCurves?: number );
  25. curveArray: number[];
  26. curveLengthArray: number[];
  27. object3D: Mesh;
  28. splineTexure: DataTexture;
  29. uniforms: SplineUniform;
  30. updateCurve( index: number, curve: Curve<Vector3> );
  31. moveAlongCurve( amount: number );
  32. }
  33. export class InstancedFlow extends Flow {
  34. constructor( count: Number, curveCount: Number, geometry: Geometry, material: Material );
  35. object3D: InstancedMesh;
  36. offsets: number[];
  37. whichCurve: number[];
  38. moveIndividualAlongCurve( index: number, offset: number );
  39. setCurve( index: number, curveNo: number )
  40. }