Initial project import
This commit is contained in:
91
node_modules/three-stdlib/modifiers/CurveModifier.d.ts
generated
vendored
Normal file
91
node_modules/three-stdlib/modifiers/CurveModifier.d.ts
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
import { DataTexture, Mesh, InstancedMesh, Material, Curve, BufferGeometry } from 'three';
|
||||
import type { IUniform } from 'three';
|
||||
/**
|
||||
* Make a new DataTexture to store the descriptions of the curves.
|
||||
*
|
||||
* @param { number } numberOfCurves the number of curves needed to be described by this texture.
|
||||
*/
|
||||
export declare const initSplineTexture: (numberOfCurves?: number) => DataTexture;
|
||||
/**
|
||||
* Write the curve description to the data texture
|
||||
*
|
||||
* @param { DataTexture } texture The DataTexture to write to
|
||||
* @param { Curve } splineCurve The curve to describe
|
||||
* @param { number } offset Which curve slot to write to
|
||||
*/
|
||||
export declare const updateSplineTexture: <TCurve extends Curve<any>>(texture: DataTexture, splineCurve: TCurve, offset?: number) => void;
|
||||
export interface INumericUniform extends IUniform {
|
||||
type: 'f' | 'i';
|
||||
value: number;
|
||||
}
|
||||
export type CurveModifierUniforms = {
|
||||
spineTexture: IUniform<DataTexture>;
|
||||
pathOffset: INumericUniform;
|
||||
pathSegment: INumericUniform;
|
||||
spineOffset: INumericUniform;
|
||||
spineLength: INumericUniform;
|
||||
flow: INumericUniform;
|
||||
};
|
||||
/**
|
||||
* Create a new set of uniforms for describing the curve modifier
|
||||
*
|
||||
* @param { DataTexture } Texture which holds the curve description
|
||||
*/
|
||||
export declare const getUniforms: (splineTexture: DataTexture) => CurveModifierUniforms;
|
||||
export type ModifiedMaterial<TMaterial extends Material> = TMaterial & {
|
||||
__ok: boolean;
|
||||
};
|
||||
export declare function modifyShader<TMaterial extends Material = Material>(material: ModifiedMaterial<TMaterial>, uniforms: CurveModifierUniforms, numberOfCurves?: number): void;
|
||||
/**
|
||||
* A helper class for making meshes bend aroudn curves
|
||||
*/
|
||||
export declare class Flow<TMesh extends Mesh = Mesh> {
|
||||
curveArray: Curve<any>[];
|
||||
curveLengthArray: number[];
|
||||
object3D: TMesh;
|
||||
splineTexure: DataTexture;
|
||||
uniforms: CurveModifierUniforms;
|
||||
/**
|
||||
* @param {Mesh} mesh The mesh to clone and modify to bend around the curve
|
||||
* @param {number} numberOfCurves The amount of space that should preallocated for additional curves
|
||||
*/
|
||||
constructor(mesh: TMesh, numberOfCurves?: number);
|
||||
updateCurve<TCurve extends Curve<any>>(index: number, curve: TCurve): void;
|
||||
moveAlongCurve(amount: number): void;
|
||||
}
|
||||
/**
|
||||
* A helper class for creating instanced versions of flow, where the instances are placed on the curve.
|
||||
*/
|
||||
export declare class InstancedFlow<TGeometry extends BufferGeometry = BufferGeometry, TMaterial extends Material = Material> extends Flow<InstancedMesh<TGeometry, TMaterial>> {
|
||||
offsets: number[];
|
||||
whichCurve: number[];
|
||||
/**
|
||||
*
|
||||
* @param {number} count The number of instanced elements
|
||||
* @param {number} curveCount The number of curves to preallocate for
|
||||
* @param {Geometry} geometry The geometry to use for the instanced mesh
|
||||
* @param {Material} material The material to use for the instanced mesh
|
||||
*/
|
||||
constructor(count: number, curveCount: number, geometry: TGeometry, material: TMaterial);
|
||||
/**
|
||||
* The extra information about which curve and curve position is stored in the translation components of the matrix for the instanced objects
|
||||
* This writes that information to the matrix and marks it as needing update.
|
||||
*
|
||||
* @param {number} index of the instanced element to update
|
||||
*/
|
||||
private writeChanges;
|
||||
/**
|
||||
* Move an individual element along the curve by a specific amount
|
||||
*
|
||||
* @param {number} index Which element to update
|
||||
* @param {number} offset Move by how much
|
||||
*/
|
||||
moveIndividualAlongCurve(index: number, offset: number): void;
|
||||
/**
|
||||
* Select which curve to use for an element
|
||||
*
|
||||
* @param {number} index the index of the instanced element to update
|
||||
* @param {number} curveNo the index of the curve it should use
|
||||
*/
|
||||
setCurve(index: number, curveNo: number): void;
|
||||
}
|
||||
Reference in New Issue
Block a user