CurveModifier.d.ts 1.3 KB

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