@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
38 lines (37 loc) • 1.88 kB
TypeScript
import { ClothMaterialController } from './modules/ClothMaterialsController';
import { ClothGeometryInitController } from './modules/ClothGeometryInitController';
import { ClothFBOController, ClothMaterialUniformConfigRef } from './modules/ClothFBOController';
import { WebGLRenderer, Mesh, Vector3, ShaderMaterial, Texture } from 'three';
import { PolyScene } from '../../engine/scene/PolyScene';
import type { ClothSolverSopNode } from '../../engine/nodes/sop/ClothSolver';
import { TextureAllocationsController } from '../../engine/nodes/gl/code/utils/TextureAllocationsController';
export declare class ClothController {
scene: PolyScene;
private _node;
clothObject: Mesh;
readonly materials: ClothMaterialController;
readonly geometryInit: ClothGeometryInitController;
private _persistedTextureAllocationsController;
readonly fbo: ClothFBOController;
stepsCount: number;
constraintInfluence: number;
viscosity: number;
spring: number;
constructor(scene: PolyScene, _node: ClothSolverSopNode, clothObject: Mesh);
dispose(): void;
setPersistedTextureAllocationController(controller: TextureAllocationsController): void;
integrationFragmentShader(): string | undefined;
textureAllocationsController(): TextureAllocationsController | undefined;
assignReadonlyTextures(material: ShaderMaterial, texturesByName: Record<string, Texture>): void;
addMaterialUniforms(material: ShaderMaterial): void;
init(renderer: WebGLRenderer): void;
update(config: ClothMaterialUniformConfigRef): void;
private _selectedVertexIndex;
private _selectedVertexPosition;
private _setSelectedVertexIndex;
createConstraint(index: number): void;
deleteConstraint(): void;
selectedVertexIndex(): number;
setConstraintPosition(position: Vector3): void;
constraintPosition(target: Vector3): void;
}