UNPKG

@polygonjs/polygonjs

Version:

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

55 lines (54 loc) 1.67 kB
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 {};