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号