@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
55 lines (54 loc) • 1.67 kB
TypeScript
import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { Vector3 } from 'three';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
export declare enum ShearMode {
MATRIX = "matrix",
AXIS = "axis"
}
export declare const SHEAR_MODES: ShearMode[];
export declare enum ShearCenterMode {
BBOX_CENTER = "bbox center",
BBOX_CENTER_OFFSET = "bbox center offset",
CUSTOM = "custom"
}
export declare const SHEAR_CENTER_MODES: ShearCenterMode[];
interface ShearSopParams extends DefaultOperationParams {
mode: number;
xy: number;
xz: number;
yx: number;
yz: number;
zx: number;
zy: number;
centerMode: number;
centerOffset: Vector3;
center: Vector3;
planeAxis: Vector3;
axis: Vector3;
axisAmount: number;
}
export declare class ShearSopOperation extends BaseSopOperation {
static readonly DEFAULT_PARAMS: ShearSopParams;
static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
static type(): Readonly<'shear'>;
private _m4;
cook(input_contents: CoreGroup[], params: ShearSopParams): CoreGroup;
private _applyShear;
private _applyMatrixShear;
private _axisNormalized;
private _center;
private _pointPos;
private _axisPlane;
private _pointOnPlane;
private _delta;
private _deltaNormalized;
private _offset;
private _applyAxisShear;
private _getAxisModeCenter;
private _getAxisModeCenterBbox;
private _getAxisModeCenterBboxOffset;
private _getAxisModeCenterCustom;
}
export {};