374 lines · 16.4 KB · JavaScript
RawDownload
 ////  touchControllerConfiguration.js////  Created by Ryan Huffman on 12/06/16////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// /* globals TOUCH_CONTROLLER_CONFIGURATION_LEFT:true, TOUCH_CONTROLLER_CONFIGURATION_RIGHT:true,   Quat, Vec3, Script, MyAvatar, Controller *//* eslint camelcase: ["error", { "properties": "never" }] */ var controllerStandard = Controller.Standard; var leftBaseRotation = Quat.multiply(    Quat.fromPitchYawRollDegrees(-90, 0, 0),    Quat.fromPitchYawRollDegrees(0, 0, 90));var rightBaseRotation = Quat.multiply(    Quat.fromPitchYawRollDegrees(-90, 0, 0),    Quat.fromPitchYawRollDegrees(0, 0, -90)); // keep these in sync with the values from OculusHelpers.cppvar CONTROLLER_LENGTH_OFFSET = 0.0762;// var CONTROLLER_LATERAL_OFFSET = 0.0381;// var CONTROLLER_VERTICAL_OFFSET = 0.0381;// var CONTROLLER_FORWARD_OFFSET = 0.1524; var leftBasePosition = Vec3.multiplyQbyV(leftBaseRotation, {    x: -CONTROLLER_LENGTH_OFFSET / 2.0,    y: CONTROLLER_LENGTH_OFFSET / 2.0,    z: CONTROLLER_LENGTH_OFFSET * 1.5});var rightBasePosition = Vec3.multiplyQbyV(rightBaseRotation, {    x: CONTROLLER_LENGTH_OFFSET / 2.0,    y: CONTROLLER_LENGTH_OFFSET / 2.0,    z: CONTROLLER_LENGTH_OFFSET * 1.5}); var BASE_URL = Script.resourcesPath() + "meshes/controller/touch/"; TOUCH_CONTROLLER_CONFIGURATION_LEFT = {    name: "Touch",    controllers: [        {            modelURL: BASE_URL + "touch_l_body.fbx",            jointIndex: MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"),            naturalPosition: { x: 0.01648625358939171, y: -0.03551870584487915, z: -0.018527675420045853 },            dimensions: { x: 0.11053799837827682, y: 0.0995776429772377, z: 0.10139888525009155 },            rotation: leftBaseRotation,            position: leftBasePosition,             parts: {                tips: {                    type: "static",                    modelURL: BASE_URL + "Oculus-Labels-L.fbx",                    naturalPosition: { x: -0.022335469722747803, y: 0.00022516027092933655, z: 0.020340695977211 },                    naturalDimensions: { x: 0.132063, y: 0.0856, z: 0.130282 },                     textureName: "blank",                    defaultTextureLayer: "blank",                    textureLayers: {                        blank: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Blank.png"                        },                        trigger: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Trigger.png"                        },                        arrows: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Rotate.png"                        },                        grip: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Grip-oculus.png"                        },                        teleport: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Teleport.png"                        },                        both_triggers: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Grip-Trigger.png"                        },                    }                },                 trigger: {                    type: "rotational",                    modelURL: BASE_URL + "touch_l_trigger.fbx",                    naturalPosition: { x: 0.0008544912561774254, y: -0.019867943599820137, z: 0.018800459802150726 },                    naturalDimensions: { x: 0.027509, y: 0.025211, z: 0.018443 },                     // rotational                     input: controllerStandard.LT,                    origin: { x: 0, y: -0.015, z: -0.00 },                    minValue: 0.0,                    maxValue: 1.0,                    axis: { x: 1, y: 0, z: 0 },                    maxAngle: 17,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_l_trigger.fbx/touch_l_trigger.fbm/L_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_l_trigger.fbx/touch_l_trigger.fbm/L_controller-highlight_DIF.jpg",                        }                    }                },                 grip: {                    type: "linear",                    modelURL: BASE_URL + "touch_l_bumper.fbx",                    naturalPosition: { x: 0.00008066371083259583, y: -0.02715788595378399, z: -0.02448512241244316 },                    naturalDimensions: { x: 0.017444, y: 0.020297, z: 0.026003 },                     // linear properties                    // Offset from origin = 0.36470, 0.11048, 0.11066                    input: "OculusTouch.LeftGrip",                    axis: { x: 1, y: 0.302933918, z: 0.302933918 },                    maxTranslation: 0.003967,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_l_bumper.fbx/touch_l_bumper.fbm/L_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_l_bumper.fbx/touch_l_bumper.fbm/L_controller-highlight_DIF.jpg",                        }                    }                },                 joystick: {                    type: "joystick",                    modelURL: BASE_URL + "touch_l_joystick.fbx",                    naturalPosition: { x: 0.0075613949447870255, y: -0.008225866593420506, z: 0.004792703315615654 },                    naturalDimensions: { x: 0.027386, y: 0.033254, z: 0.027272 },                     // joystick                    xInput: "OculusTouch.LX",                    yInput: "OculusTouch.LY",                    originOffset: { x: 0, y: -0.0028564, z: -0.00 },                    xHalfAngle: 20,                    yHalfAngle: 20,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_l_joystick.fbx/touch_l_joystick.fbm/L_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_l_joystick.fbx/touch_l_joystick.fbm/L_controller-highlight_DIF.jpg",                        }                    }                },                 button_a: {                    type: "linear",                    modelURL: BASE_URL + "touch_l_button_x.fbx",                    naturalPosition: { x: -0.009307309985160828, y: -0.00005015172064304352, z: -0.012594521045684814 },                    naturalDimensions: { x: 0.009861, y: 0.004345, z: 0.00982 },                     input: "OculusTouch.X",                    axis: { x: 0, y: -1, z: 0 },                    maxTranslation: 0.001,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_l_button_x.fbx/touch_l_button_x.fbm/L_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_l_button_x.fbx/touch_l_button_x.fbm/L_controller-highlight_DIF.jpg",                        }                    }                },                 button_b: {                    type: "linear",                    modelURL: BASE_URL + "touch_l_button_y.fbx",                    naturalPosition: { x: -0.01616849936544895, y: -0.000050364527851343155, z: 0.0017703399062156677 },                    naturalDimensions: { x: 0.010014, y: 0.004412, z: 0.009972 },                     input: "OculusTouch.Y",                    axis: { x: 0, y: -1, z: 0 },                    maxTranslation: 0.001,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_l_button_y.fbx/touch_l_button_y.fbm/L_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_l_button_y.fbx/touch_l_button_y.fbm/L_controller-highlight_DIF.jpg",                        }                    }                },            }        }    ]}; TOUCH_CONTROLLER_CONFIGURATION_RIGHT = {    name: "Touch",    controllers: [        {            modelURL: BASE_URL + "touch_r_body.fbx",            jointIndex: MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"),            naturalPosition: { x: -0.016486231237649918, y: -0.03551865369081497, z: -0.018527653068304062 },            dimensions: { x: 0.11053784191608429, y: 0.09957750141620636, z: 0.10139875113964081 },            rotation: rightBaseRotation,            position: rightBasePosition,             parts: {                tips: {                    type: "static",                    modelURL: BASE_URL + "Oculus-Labels-R.fbx",                    naturalPosition: { x: 0.009739525616168976, y: -0.0017818436026573181, z: 0.016794726252555847 },                    naturalDimensions: { x: 0.129049, y: 0.078297, z: 0.139492 },                     textureName: "blank",                    defaultTextureLayer: "blank",                    textureLayers: {                        blank: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Blank.png"                        },                        trigger: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Trigger.png"                        },                        arrows: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Rotate.png"                        },                        grip: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Grip-oculus.png"                        },                        teleport: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Teleport.png"                        },                        both_triggers: {                            defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Grip-Trigger.png"                        },                    }                },                 trigger: {                    type: "rotational",                    modelURL: BASE_URL + "touch_r_trigger.fbx",                    naturalPosition: { x: -0.0008544912561774254, y: -0.019867943599820137, z: 0.018800459802150726 },                    naturalDimensions: { x: 0.027384, y: 0.025201, z: 0.018425 },                     // rotational                     input: "OculusTouch.RT",                    origin: { x: 0, y: -0.015, z: 0 },                    minValue: 0.0,                    maxValue: 1.0,                    axis: { x: 1, y: 0, z: 0 },                    maxAngle: 17,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_r_trigger.fbx/touch_r_trigger.fbm/R_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_r_trigger.fbx/touch_r_trigger.fbm/R_controller-highlight_DIF.jpg",                        }                    }                },                 grip: {                    type: "linear",                    modelURL: BASE_URL + "touch_r_bumper.fbx",                    naturalPosition: { x: -0.0000806618481874466, y: -0.027157839387655258, z: -0.024485092610120773 },                    naturalDimensions: { x: 0.017268, y: 0.020366, z: 0.02599 },                     // linear properties                    // Offset from origin = 0.36470, 0.11048, 0.11066                    input: "OculusTouch.RightGrip",                    axis: { x: -1, y: 0.302933918, z: 0.302933918 },                    maxTranslation: 0.003967,                      textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_r_bumper.fbx/touch_r_bumper.fbm/R_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_r_bumper.fbx/touch_r_bumper.fbm/R_controller-highlight_DIF.jpg",                        }                    }                },                 joystick: {                    type: "joystick",                    modelURL: BASE_URL + "touch_r_joystick.fbx",                    naturalPosition: { x: -0.007561382371932268, y: -0.008225853554904461, z: 0.00479268841445446 },                    naturalDimensions: { x: 0.027272, y: 0.033254, z: 0.027272 },                     // joystick                    xInput: "OculusTouch.RX",                    yInput: "OculusTouch.RY",                    originOffset: { x: 0, y: -0.0028564, z: 0 },                    xHalfAngle: 20,                    yHalfAngle: 20,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_r_joystick.fbx/touch_r_joystick.fbm/R_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_r_joystick.fbx/touch_r_joystick.fbm/R_controller-highlight_DIF.jpg",                        }                    }                },                 button_a: {                    type: "linear",                    modelURL: BASE_URL + "touch_r_button_a.fbx",                    naturalPosition: { x: 0.009307296946644783, y: -0.00005015172064304352, z: -0.012594504281878471 },                    naturalDimensions: { x: 0.00982, y: 0.004345, z: 0.00982 },                     input: "OculusTouch.A",                    axis: { x: 0, y: -1, z: 0 },                    maxTranslation: 0.001,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_r_button_a.fbx/touch_r_button_a.fbm/R_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_r_button_a.fbx/touch_r_button_a.fbm/R_controller-highlight_DIF.jpg",                        }                    }                },                 button_b: {                    type: "linear",                    modelURL: BASE_URL + "touch_r_button_b.fbx",                    naturalPosition: { x: 0.01616847701370716, y: -0.000050364527851343155, z: 0.0017703361809253693 },                    naturalDimensions: { x: 0.009972, y: 0.004412, z: 0.009972 },                     input: "OculusTouch.B",                    axis: { x: 0, y: -1, z: 0 },                    maxTranslation: 0.001,                     textureName: "tex-highlight",                    defaultTextureLayer: "normal",                    textureLayers: {                        normal: {                            defaultTextureURL: BASE_URL + "touch_r_button_b.fbx/touch_r_button_b.fbm/R_controller_DIF.jpg",                        },                        highlight: {                            defaultTextureURL: BASE_URL + "touch_r_button_b.fbx/touch_r_button_b.fbm/R_controller-highlight_DIF.jpg",                        }                    }                },            }        }    ]};