overte-JulianGro/scripts/system/controllers/touchControllerConfiguration.js

372 lines
16 KiB
JavaScript

//
// 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 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.cpp
var 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: Controller.Standard.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",
}
}
},
}
}
]
};