UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

81 lines (80 loc) 2.54 kB
import { RawShaderMaterial, IUniform } from 'three'; import { ClothController } from '../ClothController'; import { IUniformN, IUniformV2, IUniformTexture, IUniformV3 } from '../../../engine/nodes/utils/code/gl/Uniforms'; type RawMaterialUniforms = { [uniform: string]: IUniform; }; interface CopyUniforms extends RawMaterialUniforms { order: IUniformN; tSize: IUniformV2; texture: IUniformTexture; } interface IntegrationUniforms extends RawMaterialUniforms { timeDelta: IUniformN; time: IUniformN; viscosity: IUniformN; spring: IUniformN; tSize: IUniformV2; order: IUniformN; tOriginal: IUniformTexture; tPrevious0: IUniformTexture; tPrevious1: IUniformTexture; tPosition0: IUniformTexture; tPosition1: IUniformTexture; tViscositySpring: IUniformTexture; } interface MouseUniforms extends RawMaterialUniforms { time: IUniformN; vertex: IUniformN; coordinates: IUniformV3; order: IUniformN; tSize: IUniformV2; tOriginal: IUniformTexture; tPosition0: IUniformTexture; tPosition1: IUniformTexture; } interface ConstraintsUniforms extends RawMaterialUniforms { time: IUniformN; tSize: IUniformV2; order: IUniformN; constraintInfluence: IUniformN; tPosition0: IUniformTexture; tPosition1: IUniformTexture; tAdjacentsA: IUniformTexture; tAdjacentsB: IUniformTexture; tDistancesA: IUniformTexture; tDistancesB: IUniformTexture; secondaryMotionMult: IUniformN; } interface NormalsUniforms extends RawMaterialUniforms { tSize: IUniformV2; tPosition0: IUniformTexture; tPosition1: IUniformTexture; tAdjacentsA: IUniformTexture; tAdjacentsB: IUniformTexture; } interface CopyMaterial extends RawShaderMaterial { uniforms: CopyUniforms; } interface IntegrationMaterial extends RawShaderMaterial { uniforms: IntegrationUniforms; } interface MouseMaterial extends RawShaderMaterial { uniforms: MouseUniforms; } interface ConstraintsMaterial extends RawShaderMaterial { uniforms: ConstraintsUniforms; } interface NormalsMaterial extends RawShaderMaterial { uniforms: NormalsUniforms; } export declare class ClothMaterialController { readonly mainController: ClothController; readonly copyShader: CopyMaterial; readonly integrateShader: IntegrationMaterial; readonly mouseShader: MouseMaterial; readonly constraintsShader: ConstraintsMaterial; readonly normalsShader: NormalsMaterial; constructor(mainController: ClothController); } export {};