@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
75 lines (74 loc) • 4.71 kB
TypeScript
/**
* Updates points with JS nodes
*
*
*/
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { PointBuilderFunctionData } from '../js/code/assemblers/pointBuilder/_BasePointBuilderPersistedConfig';
import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister';
import { JsAssemblerController } from '../js/code/Controller';
import type { JsAssemblerPointBuilder } from '../js/code/assemblers/pointBuilder/PointBuilderAssembler';
import type { JsAssemblerInstanceBuilder } from '../js/code/assemblers/instanceBuilder/InstanceBuilderAssembler';
import { PointContainer } from '../js/code/assemblers/pointBuilder/PointBuilderAssemblerCommon';
import { InstanceContainer } from '../js/code/assemblers/instanceBuilder/InstanceBuilderAssemblerCommon';
import { NodeContext } from '../../poly/NodeContext';
import { JsNodeChildrenMap } from '../../poly/registers/nodes/Js';
import { NodeCreateOptions } from '../utils/hierarchy/ChildrenController';
import { Constructor, valueof } from '../../../types/GlobalTypes';
import { BaseJsNodeType } from '../js/_Base';
import { ParamType } from '../../poly/ParamType';
import { RegisterableVariable } from '../js/code/assemblers/_BaseJsPersistedConfigUtils';
import { BufferAttribute, Color, Vector2, Vector3, Vector4 } from 'three';
import { JsConnectionPointType } from '../utils/io/connections/Js';
import type { PointBuilderEvaluator } from '../js/code/assemblers/pointBuilder/PointBuilderEvaluator';
import { CoreObjectType, ObjectContent } from '../../../core/geometry/ObjectContent';
type AttributeItem = boolean | number | string | Color | Vector2 | Vector3 | Vector4;
type AttributesDict = Map<string, AttributeItem>;
export declare class BasePointBuilderSopParamsConfig extends NodeParamsConfig {
/** @param group to assign the material to */
group: import("../utils/params/ParamsConfig").ParamTemplate<ParamType.STRING>;
}
export declare abstract class BasePointBuilderSopNode<P extends BasePointBuilderSopParamsConfig> extends TypedSopNode<P> {
assemblerController(): JsAssemblerController<JsAssemblerPointBuilder | JsAssemblerInstanceBuilder> | undefined;
usedAssembler(): Readonly<AssemblerName.JS_POINT_BUILDER | AssemblerName.JS_INSTANCE_BUILDER>;
protected _assemblerController: JsAssemblerController<JsAssemblerPointBuilder | JsAssemblerInstanceBuilder> | undefined;
private _createAssemblerController;
protected _childrenControllerContext: NodeContext;
createNode<S extends keyof JsNodeChildrenMap>(node_class: S, options?: NodeCreateOptions): JsNodeChildrenMap[S];
createNode<K extends valueof<JsNodeChildrenMap>>(node_class: Constructor<K>, options?: NodeCreateOptions): K;
children(): BaseJsNodeType[];
nodesByType<K extends keyof JsNodeChildrenMap>(type: K): JsNodeChildrenMap[K][];
childrenAllowed(): boolean;
sceneReadonly(): boolean;
initializeNode(): void;
cook(inputCoreGroups: CoreGroup[]): Promise<void>;
protected abstract _processObject<T extends CoreObjectType>(object: ObjectContent<T>, objnum: number, evaluator: PointBuilderEvaluator): void;
protected _resetRequiredAttributes(): void;
protected _checkRequiredReadAttributes<T extends CoreObjectType>(object: ObjectContent<T>): {
attribNames: string[];
attributeByName: Map<string, BufferAttribute>;
attribTypeByName: Map<string, JsConnectionPointType>;
} | undefined;
protected _checkRequiredWriteAttributes<T extends CoreObjectType>(object: ObjectContent<T>): {
attribNames: string[];
attributeByName: Map<string, BufferAttribute>;
attribTypeByName: Map<string, JsConnectionPointType>;
} | undefined;
protected _readRequiredAttributes(ptnum: number, attribNames: string[], attributeByName: Map<string, BufferAttribute>, attribTypeByName: Map<string, JsConnectionPointType>): void;
protected _writeRequiredAttributes(ptnum: number, attribNames: string[], attributeByName: Map<string, BufferAttribute>): void;
compileIfRequired(): void;
protected abstract _pointContainer: PointContainer | InstanceContainer;
private _paramConfigs;
private _functionData;
private _functionCreationArgs;
private _functionEvalArgs;
private _function;
private _attributesDict;
functionData(): PointBuilderFunctionData | undefined;
compile(): void;
updateFromFunctionData(functionData: PointBuilderFunctionData): void;
functionEvalArgsWithParamConfigs(): (number | boolean | Function | RegisterableVariable | InstanceContainer | PointContainer | AttributesDict)[];
}
export {};