UNPKG

@polygonjs/polygonjs

Version:

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

78 lines (77 loc) 4.56 kB
/** * Copies a geometry onto every point from the right input. * * @remarks * This is different than the instance SOP, as the operation here is more expensive, but allows for more flexibility. * * */ import { ObjectTransformSpace } from './../../../core/TransformSpace'; import { SopType } from './../../poly/registers/nodes/types/Sop'; import { TypedSopNode } from './_Base'; import { CoreGroup } from '../../../core/geometry/Group'; import { SopCopyStamp } from './utils/CopyStamp'; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; import { TransformTargetType } from '../../../core/Transform'; declare class CopySopParamsConfig extends NodeParamsConfig { /** @param select which objects are copied */ srcGroup: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>; /** @param select which objects the src objects are copied onto */ templateGroup: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>; /** @param copies count, used when the second input is not given */ count: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>; /** @param translate each copy */ t: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param rotate each copy */ r: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param scale each copy */ s: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param scale multiplier for each copy */ scale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param transforms every input object each on a single input point */ transformOnly: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; /** @param defines if the objects or the geometries are transformed */ transformMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>; /** @param defines how the objects are transformed */ objectTransformSpace: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>; /** @param toggles on to copy attributes from the input points to the created objects. Note that the vertex attributes from the points become object attributes */ copyAttributes: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; /** @param names of attributes to copy */ attributesToCopy: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>; /** @param toggle on to use the `copy` expression, which allows to change how the left input is evaluated for each point */ useCopyExpr: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; } export declare class CopySopNode extends TypedSopNode<CopySopParamsConfig> { paramsConfig: CopySopParamsConfig; static type(): SopType; private _attribNamesToCopy; private _objects; private _stampNode; initializeNode(): void; setTransformMode(transformMode: TransformTargetType): void; setObjectTransformSpace(transformSpace: ObjectTransformSpace): void; cook(inputCoreGroups: CoreGroup[]): Promise<void>; private _instancer; private cookWithTemplate; private _copyMovedObjectsOnTemplatePoints; private _instanceMatrix; private _copyMovedObjectOnTemplatePoint; private _getMovedObjectsForTemplatePoint; private _stampInstanceGroupIfRequired; private _copyMovedObjectsForEachInstance; private _copyMovedObjectsForInstance; private cookWithoutTemplate; private _copyAttributesGromTemplate; stampValue(attribName?: string): string | number | boolean | import("../../../types/GlobalTypes").Vector2Like | import("../../../types/GlobalTypes").ColorLike | import("../../index_all").Number2 | import("../../index_all").Number3 | import("../../index_all").Number4 | undefined; stampNode(): SopCopyStamp; private _createStampNode; dispose(): void; private _coreTransform; private _transformAccumulatedMatrix; private _transformMatrix; private _initAccumulatedTransform; private _accumulateTransform; private _applyMatrixToObject; private _applyAccumulatedTransform; } export {};