@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
52 lines (51 loc) • 2.98 kB
TypeScript
import { JsFunctionName } from '../../../utils/shaders/ShaderName';
import { BaseJsDefinition, TriggerableJsDefinitionOptions } from '../../utils/JsDefinition';
import { JsLinesController, DefinitionTraverseCallback, AddBodyLinesOptions } from './LinesController';
import { BaseJsNodeType } from '../../_Base';
import { BaseJsShaderAssembler } from '../assemblers/_Base';
import { RegisterableVariable } from '../assemblers/_BaseJsPersistedConfigUtils';
import { JsConnectionPointType } from '../../../utils/io/connections/Js';
import { BaseNamedFunction } from '../../../../functions/_Base';
import { EvaluatorMethodName } from '../assemblers/actor/ActorEvaluator';
export interface ComputedValueJsDefinitionData {
dataType: JsConnectionPointType;
varName: string;
value: string;
}
interface TriggeringJsDefinitionOptionsExtended {
gatherable: boolean;
triggeringMethodName?: EvaluatorMethodName;
nodeMethodName?: string;
}
interface TriggerableJsDefinitionOptionsExtended extends TriggerableJsDefinitionOptions {
addTriggeredLines?: boolean;
}
interface AddBodyOrComputedOptions {
constPrefix?: boolean;
}
export declare class JsLinesCollectionController {
private _shaderNames;
private _currentShaderName;
private _assembler;
private _linesControllerByShaderName;
constructor(_shaderNames: JsFunctionName[], _currentShaderName: JsFunctionName, _assembler: BaseJsShaderAssembler);
assembler(): BaseJsShaderAssembler;
linesController(shaderName: JsFunctionName): JsLinesController | undefined;
shaderNames(): JsFunctionName[];
setCurrentShaderName(shaderName: JsFunctionName): void;
currentShaderName(): JsFunctionName;
addVariable(node: BaseJsNodeType, variable: RegisterableVariable, varName?: string): string;
addFunction(node: BaseJsNodeType, namedFunction: BaseNamedFunction): void;
addTriggeringLines(node: BaseJsNodeType, triggeringLines: string[], options: TriggeringJsDefinitionOptionsExtended): void;
addTriggerableLines(node: BaseJsNodeType, triggerableLines: string[], options?: TriggerableJsDefinitionOptionsExtended): void;
addComputedVarName(varName: string): void;
registeredAsComputed(varName: string): boolean;
addBodyOrComputed(node: BaseJsNodeType, linesData: ComputedValueJsDefinitionData[], options?: AddBodyOrComputedOptions): void;
addComputed(node: BaseJsNodeType, linesData: ComputedValueJsDefinitionData[]): void;
addDefinitions(node: BaseJsNodeType, definitions: BaseJsDefinition[], shaderName?: JsFunctionName): void;
definitions(shaderName: JsFunctionName, node: BaseJsNodeType): BaseJsDefinition[] | undefined;
traverseDefinitions(shaderName: JsFunctionName, callback: DefinitionTraverseCallback): void;
_addBodyLines(node: BaseJsNodeType, lines: string[], shaderName?: JsFunctionName, options?: AddBodyLinesOptions): void;
bodyLines(shaderName: JsFunctionName, node: BaseJsNodeType): string[] | undefined;
}
export {};