UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

88 lines (87 loc) 5.6 kB
/** * Updates points with JS nodes * * */ import { TypedSopNode } from './_Base'; import { CoreGroup } from '../../../core/geometry/Group'; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; import { EntityBuilderFunctionData } from '../js/code/assemblers/entityBuilder/_BaseEntityBuilderPersistedConfig'; import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister'; import { JsAssemblerController } from '../js/code/Controller'; import type { JsAssemblerEntityBuilder } from '../js/code/assemblers/entityBuilder/EntityBuilderAssembler'; import { EntityContainer } from '../js/code/assemblers/entityBuilder/EntityBuilderAssemblerCommon'; 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, InterleavedBufferAttribute, Vector2, Vector3, Vector4 } from 'three'; import { JsConnectionPointType } from '../utils/io/connections/Js'; import { EntityBuilderEvaluator } from '../js/code/assemblers/entityBuilder/EntityBuilderEvaluator'; import { CoreObjectType, ObjectContent } from '../../../core/geometry/ObjectContent'; import { AttribClass } from '../../../core/geometry/Constant'; import { BaseVertexAttribute } from '../../../core/geometry/entities/vertex/VertexAttribute'; import { BasePrimitiveAttribute } from '../../../core/geometry/entities/primitive/PrimitiveAttribute'; import { CorePoint } from '../../../core/geometry/entities/point/CorePoint'; import { CorePrimitive } from '../../../core/geometry/entities/primitive/CorePrimitive'; import { CoreVertex } from '../../../core/geometry/entities/vertex/CoreVertex'; type AttributeItem = boolean | number | string | Color | Vector2 | Vector3 | Vector4; type AttributesDict = Map<string, AttributeItem>; type AvailableEntity = AttribClass.POINT | AttribClass.VERTEX | AttribClass.PRIMITIVE; export declare const AVAILABLE_ENTITIES: AvailableEntity[]; type EntityAttribute = BufferAttribute | InterleavedBufferAttribute | BaseVertexAttribute | BasePrimitiveAttribute; export declare class BaseEntityBuilderSopParamsConfig extends NodeParamsConfig { /** @param group to assign the material to */ group: import("../utils/params/ParamsConfig").ParamTemplate<ParamType.STRING>; entity: import("../utils/params/ParamsConfig").ParamTemplate<ParamType.INTEGER>; } export declare abstract class BaseEntityBuilderSopNode<P extends BaseEntityBuilderSopParamsConfig> extends TypedSopNode<P> { assemblerController(): JsAssemblerController<JsAssemblerEntityBuilder> | undefined; usedAssembler(): Readonly<AssemblerName.JS_ENTITY_BUILDER>; protected _assemblerController: JsAssemblerController<JsAssemblerEntityBuilder> | 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: EntityBuilderEvaluator): 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, EntityAttribute>; attribTypeByName: Map<string, JsConnectionPointType>; } | undefined; protected _readRequiredAttributes(index: number, attribNames: string[], attributeByName: Map<string, BufferAttribute>, attribTypeByName: Map<string, JsConnectionPointType>): void; protected _writeRequiredAttributes(index: number, attribNames: string[], attributeByName: Map<string, BufferAttribute>): void; compileIfRequired(): void; protected abstract _entityContainer: EntityContainer; private _paramConfigs; private _functionData; private _functionCreationArgs; private _functionEvalArgs; private _function; private _attributesDict; functionData(): EntityBuilderFunctionData | undefined; compile(): void; updateFromFunctionData(functionData: EntityBuilderFunctionData): void; functionEvalArgsWithParamConfigs(): (number | boolean | Function | RegisterableVariable | EntityContainer | AttributesDict)[]; setEntity(attribClass: AvailableEntity): void; entity(): AvailableEntity; entitiesCount(object: ObjectContent<CoreObjectType>): number; entityClass(object: ObjectContent<CoreObjectType>): typeof CorePoint<CoreObjectType> | typeof CoreVertex<CoreObjectType> | typeof CorePrimitive<CoreObjectType>; private _createAttribute; } export {};