we
    Preparing search index...

    arcball 控制器

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _analog: analog = ...
    _camera: BaseCamera
    _canvas: HTMLCanvasElement
    _digital: digital = ...
    _id: number
    _isDestroy: boolean = false
    _key: undefined | KeyboardEvent
    _manager: any
    _pointer: undefined | PointerEvent | MouseEvent | TouchEvent
    angularVelocity: number = 0
    axis_: Float32Array<ArrayBufferLike> = ...
    distance: number = 0
    epsilon: number = 0.000001
    event: {
        callback: (scope: any) => void;
        option: any;
        target: any;
        type: string;
    }[] = ...
    eventValues: {
        click: undefined | MouseEvent;
        dblclick: undefined | MouseEvent;
        key: undefined | KeyboardEvent;
        keyValue: {
            altKey: boolean;
            ctrlKey: boolean;
            downOrUP: undefined | "down" | "up";
            keyCode: undefined | string;
            shiftKey: boolean;
        };
        mouse: undefined
        | MouseEvent;
        mouseValue: {
            alreadyUp: boolean;
            altKey: boolean;
            buttons: number;
            ctrlKey: boolean;
            downOrUP: undefined | "down" | "up";
            move: boolean;
            shiftKey: boolean;
            x: undefined | number;
            y: undefined | number;
        };
        pointer: undefined
        | PointerEvent;
        touch: undefined | TouchEvent;
        wheel: undefined | WheelEvent;
    } = ...
    frictionCoefficient: number = 0.999

    Rotation velocity drag coeffient [0 .. 1] 0: Spins forever 1: Instantly stops spinning

    inputValues: IV_CamreaControl
    manager: InputManager
    rightKeyRate: number = 0.01

    右键旋转系数

    rotationSpeed: number = 1
    type: string = ""
    UUID: string
    window: Window
    zoomSpeed: number = 0.1

    Accessors

    Methods

    • 计算摄像机Z方向

      Parameters

      • position: Float32Array

        :摄像机位置

      Returns Float32Array

      :摄像机Z方向(归一化)

    • 判断前后 计算 camera Z向量与 up方向 的点积(cos),orbiteControl中使用 1、camera在上半球,cos 正值 2、camera在下半球,cos 负值

                     | Y cross
                     | 
                     |          
                     |_________________________________________________X (原来的 Y up)
      

      camera / 。 / 。camera的Z轴向量(求xy与(1,0)的点积) / /
      / / Z (camera -X )

      Parameters

      • position: Float32Array

        :摄像机位置

      Returns number

      :Up向量与Z向量的点积(标量值,共面二维化)

    • 计算摄像机Up向量与Z向量的点积,orbiteControl中使用

      | Y不变
      |          。point(求xy与(1,0)的点积)
      |_________________________________________________X (X0Z)
      

      / / Z (cross)

      Parameters

      • position: Float32Array

        :摄像机位置

      Returns { cos: number; sin: number }

      :Up向量与Z向量的点积(标量值,共面二维化)

    • 判断左右 计算 Y轴Up向量 与camera Z向量的叉积(sin),orbiteControl中使用 1、右侧:摄像机Z指向北极,sin 负值 2、左侧:摄像机Z指向南极,sin 正值;翻转了

            |Y(cross)
            |
            |       。vector(point乘逆矩阵,忽略z值,xy与(1,—0)进行cross,即sin
            ——————————————————————————————————————————————————————————————————————————————————X(原来的Y轴)
           /        。point
          /
         /Z(camera  -X)
      

      Parameters

      • up: Float32Array

        :Up向量:固定,top时:(0,1,0),bottom时:(0,-1,0)

      • position: Float32Array

        :摄像机位置

      Returns number

      :Up向量与Z向量的叉积(标量值,共面二维化)

    • 接收输入事件,处理事件相关数据,并返回是否后续继续处理了该事件(仅独占intercept优先级) 1、接受输入event,并按需写入eventValues 2、或者控制器自定义的数据结构

      Parameters

      Returns boolean

      返回true/false,取决于对应的优先级别。 true, A、broadcastStart|broadcastEnd优先级,返回不影响后续处理。 B、InputManager 将终止处理(仅独占intercept优先级)该事件(继续广播) false A、broadcastStart|broadcastEnd无影响 B、如果是intercept优先级,返回false,InputManager 将继续处理该事件(继续广播) 例如: 1、pickup 事件,只是获取点击和xy坐标,不影响其他控制器,返回false。pickup是举例,不在这里实现。 2、camera control,也是具有兼容性,在最后处理。如果有控制器截获并终止,camera control 就不会收到处理 3、object control,就会截获并终止,其他object control 就不会收到处理

    • 更新相机位置,这里更新camera的position和dir 1、position是在camera的lookat位置为原点的坐标系下的位置 (最后调用camera的updateByPositionDirection()会转化为camera的local坐标系下的位置) 2、direction是在camera的lookat位置为原点的坐标系下的方向向量 A、lookat为原点的坐标系与camera的local坐标系是只有position是不一样的,各自为原点。view空间是一致的,即xyz的分量相对于camera的parent的坐标系一致

      Parameters

      • deltaTime: number

      Returns boolean