UNPKG

@polygonjs/polygonjs

Version:

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

52 lines (51 loc) 1.66 kB
import { AttribClass } from './../../../core/geometry/Constant'; import { BaseSopOperation } from './_Base'; import { CoreGroup } from '../../../core/geometry/Group'; import { InputCloneMode } from '../../../engine/poly/InputCloneMode'; import { DefaultOperationParams } from '../../../core/operations/_Base'; export declare enum SortMode { RANDOM = "random", AXIS = "axis", ATTRIBUTE = "attribute" } export declare const SORT_MODES: SortMode[]; export type SortTargetType = AttribClass.POINT | AttribClass.OBJECT; export declare const SORT_TARGET_TYPES: Array<SortTargetType>; export declare enum Axis { X = "x", Y = "y", Z = "z" } export declare const AXISES: Axis[]; interface SortSopParams extends DefaultOperationParams { targetType: number; mode: number; seed: number; axis: number; attribute: string; invert: boolean; } export declare class SortSopOperation extends BaseSopOperation { static readonly DEFAULT_PARAMS: SortSopParams; static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE; static type(): Readonly<'sort'>; cook(inputCoreGroups: CoreGroup[], params: SortSopParams): CoreGroup; private _sort; private _sortObjects; private _sortObjectsByAxis; private _sortObjectsByRandom; private _sortObjectsByAttribute; private _sortPoints; private _sortPointsByAxis; private _sortPointsByRandom; private _sortPointsByAttribute; private _pointPos; private _positions; private _indicesByPos; private _indexDest; private _debugActive; private _debug; private _sortPointsForObject; private _updateAttribute; } export {};