lamina
Version:
🍰 An extensable, layer based shader material for ThreeJS.
58 lines (57 loc) • 1.63 kB
TypeScript
import { IUniform } from 'three';
import { BlendMode, LayerProps, SerializedLayer } from '../types';
export default class Abstract {
uuid: string;
name: string;
mode: BlendMode;
visible: boolean;
uniforms: {
[key: string]: IUniform<any>;
};
onParse?: (self: Abstract & any) => void;
fragmentShader: string;
vertexShader: string;
vertexVariables: string;
fragmentVariables: string;
schema: {
value: any;
label: any;
options?: any[];
}[];
constructor(c: new () => Abstract, props?: LayerProps | null, onParse?: (self: Abstract & any) => void);
buildShaders(constructor: any): void;
renameTokens(name: string): string;
processFinal(shader: string, isVertex?: boolean): string;
getShaderFromIndex(tokens: any, index: number[]): any;
getBlendMode(b: string, a: string): string;
getSchema(): ({
value: any;
min: number;
max: number;
image?: undefined;
label: any;
options: any[] | undefined;
} | {
value: any;
min: number;
max?: undefined;
image?: undefined;
label: any;
options: any[] | undefined;
} | {
value: any;
image: undefined;
min?: undefined;
max?: undefined;
label: any;
options: any[] | undefined;
} | {
value: any;
min?: undefined;
max?: undefined;
image?: undefined;
label: any;
options: any[] | undefined;
})[];
serialize(): SerializedLayer;
}