Skip to content

plugin-transform-controls

beta

空间对象操作(移动、旋转、缩放)控制器。

样例

安装

bash
npm install @soonspacejs/plugin-transform-controls -S
# or
yarn add @soonspacejs/plugin-transform-controls -S

使用方法

js
import SoonSpace from 'soonspacejs';
import TransformControlsPlugin from '@soonspacejs/plugin-transform-controls';

const ssp = new SoonSpace({
  el: '#view',
  options: {},
  events: {},
});

const transformControls = ssp.registerPlugin(TransformControlsPlugin, 'transformControls');
consolo.log(transformControls);

方法

start

开启控制器。

定义

ts
interface StartOptions {
  mode?: 'translate' | 'rotate' | 'scale';
  onUpdate?: (object: Object3D) => void;
  onDragStart?: (object: Object3D) => void;
  onDragEnd?: (object: Object3D) => void;
  onClose?: () => void;
}

function start(object: Object3D, options?: StartOptions): TransformControls;

用法

js
const control = transformControls.start(
  // object
  modelObject,
  // options
  {
    mode: 'translate',
    onUpdate: (object) => {
      console.log('updated object', object);
    },
    onClose: () => {},
  }
);

参数

model
  • 描述: 跟随鼠标的模型对象
  • 必填:
  • 类型: Object3D
options
  • 描述: 可配置项
  • 必填:
  • 类型: StartOptions
StartOptions

属性描述类型必填默认值
mode操作模式translate | rotate | scaletranslate
onUpdate操作时实时回调函数(object: Object3D) => void
onDragStart操作时开始回调函数(object: Object3D) => void
onDragEnd操作时结束回调函数(object: Object3D) => void
onClose控制器关闭时触发函数() => void

changeMode

切换控制器模式

默认切换上一个

定义

ts
function changeMode(control?: TransformControls | undefined, mode?: StartOptions['mode']): void;

用法

js
transformControls.changeMode(control, 'rotate');

参数

  • control: TransformControls

  • mode: 'translate' | 'rotate' | 'scale'

close

关闭控制器

默认关闭上一个

定义

ts
function close(control?: TransformControls | undefined): void;

用法

js
transformControls.close(control);

closeAll

关闭所有控制器

用法

js
transformControls.closeAll();

浙ICP备16043491号