@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
52 lines (51 loc) • 1.66 kB
TypeScript
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 {};