CurveModifier.d.ts 1.4 KB

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