@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
81 lines (80 loc) • 2.54 kB
TypeScript
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 {};