Browse Source

Merge pull request #12218 from servinlp/gear-vr-controller-with-example

Gear VR controller script + example
Mr.doob 7 năm trước cách đây
mục cha
commit
705a7c8d49

+ 141 - 0
examples/js/vr/GearVRController.js

@@ -0,0 +1,141 @@
+
+
+THREE.GearVRController = function () {
+
+	THREE.Object3D.call( this );
+
+	var scope = this;
+	var gamepad;
+
+	var axes = [ 0, 0 ];
+	var touchpadIsPressed = false;
+	var triggerIsPressed = false;
+	var angularVelocity = new THREE.Vector3();
+
+	this.matrixAutoUpdate = true;
+
+	function findGamepad() {
+
+		var gamepads = navigator.getGamepads && navigator.getGamepads();
+
+		for ( var i = 0; i < 4; i ++ ) {
+
+			var gamepad = gamepads[ i ];
+
+			if ( gamepad && ( gamepad.id === 'Gear VR Controller' ) ) {
+
+				return gamepad;
+
+			}
+
+		}
+
+	}
+
+	this.setSkyBox = function ( skyBox ) {
+
+		window.SamsungChangeSky( skyBox );
+
+	};
+
+	this.setHand = function ( hand = 'right' ) {
+
+		var handPos;
+
+		if ( hand === 'right' ) {
+
+			handPos = 0.3;
+
+		} else {
+
+			handPos = - 0.3;
+
+		}
+
+		this.translateX( handPos );
+		this.translateY( - 0.35 );
+		this.translateZ( - 0.4 );
+
+	};
+
+	this.getGamepad = function () {
+
+		return gamepad;
+
+	};
+
+	this.getTouchPadState = function () {
+
+		return touchpadIsPressed;
+
+	};
+
+	this.update = function () {
+
+		gamepad = findGamepad();
+
+		if ( gamepad !== undefined && gamepad.pose !== undefined ) {
+
+			var pose = gamepad.pose;
+
+			if ( pose === null ) return; // no user action yet
+
+			//  orientation
+
+			if ( pose.orientation !== null ) scope.quaternion.fromArray( pose.orientation );
+
+			scope.updateMatrix();
+			scope.visible = true;
+
+			// angular velocity
+
+			if ( pose.angularVelocity !== null && ! angularVelocity.equals( pose.angularVelocity ) ) {
+
+				angularVelocity.fromArray( pose.angularVelocity );
+				scope.dispatchEvent( { type: 'angularvelocitychanged', angularVelocity: angularVelocity } );
+
+			}
+
+			// axes (touchpad)
+
+			if ( axes[ 0 ] !== gamepad.axes[ 0 ] || axes[ 1 ] !== gamepad.axes[ 1 ] ) {
+
+				axes[ 0 ] = gamepad.axes[ 0 ];
+				axes[ 1 ] = gamepad.axes[ 1 ];
+				scope.dispatchEvent( { type: 'axischanged', axes: axes } );
+
+			}
+
+			// button (touchpad)
+
+			if ( touchpadIsPressed !== gamepad.buttons[ 0 ].pressed ) {
+
+				touchpadIsPressed = gamepad.buttons[ 0 ].pressed;
+				scope.dispatchEvent( { type: touchpadIsPressed ? 'touchpaddown' : 'touchpadup', axes: axes } );
+
+			}
+
+
+			// trigger
+
+			if ( triggerIsPressed !== gamepad.buttons[ 1 ].pressed ) {
+
+				triggerIsPressed = gamepad.buttons[ 1 ].pressed;
+				scope.dispatchEvent( { type: triggerIsPressed ? 'triggerdown' : 'triggerup' } );
+
+			}
+
+		// app button not available, reserved for use by the browser
+
+		} else {
+
+			scope.visible = false;
+
+		}
+
+	};
+
+};
+
+THREE.GearVRController.prototype = Object.create( THREE.Object3D.prototype );
+THREE.GearVRController.prototype.constructor = THREE.GearVRController;

+ 21 - 0
examples/models/obj/gear_vr_controller/LICENSE.txt

@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright © 2015-2017 A-Frame authors.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 22 - 0
examples/models/obj/gear_vr_controller/gear_vr_controller.mtl

@@ -0,0 +1,22 @@
+# Gear VR Controller MTL
+newmtl Base
+Kd 0.0911392 0.0911392 0.0911392
+Ns 256
+d 1
+illum 2
+Ka 0 0 0
+Ks 0.04 0.04 0.04
+newmtl Touchpad
+Kd 0.172688 0.172688 0.172688
+Ns 256
+d 1
+illum 2
+Ka 0 0 0
+Ks 0.04 0.04 0.04
+newmtl Trigger
+Kd 0.172688 0.172688 0.172688
+Ns 256
+d 1
+illum 2
+Ka 0 0 0
+Ks 0.04 0.04 0.04

+ 1064 - 0
examples/models/obj/gear_vr_controller/gear_vr_controller.obj

@@ -0,0 +1,1064 @@
+# Gear VR Controller
+# Units	meters
+
+o Base
+v 0.0120377 -0.0217958 0.0802467
+v 0.0097514 -0.0243733 0.085021
+v 0.00472159 -0.026189 0.0883812
+v 0.00251746 -0.0380262 0.0722965
+v 0.00269244 -0.0383627 0.0773935
+v 0.0041137 -0.0363887 0.0818603
+v 0.00799378 -0.0358757 0.0773606
+v 0.011047 -0.0321853 0.0741615
+v 0.0110994 -0.0300889 0.0806922
+v 0.00323768 -0.0332681 0.0857424
+v 0.00779541 -0.0325099 0.0837432
+v 0.0125704 -0.0284915 0.0769487
+v 0.0070908 -0.0363513 0.0727187
+v 0.0122399 0.00754624 0.0258895
+v 0.0111836 -0.00345728 0.0207223
+v 0.00575354 -0.01088 -0.00438047
+v 0 -0.0115812 -0.00562427
+v 0.0181079 0.00995213 -0.00106643
+v 0.0116229 0.00995217 -0.0139021
+v 0 0.00995163 -0.0183425
+v 0.00689219 -0.0113732 0.00103067
+v 0 -0.0121148 0.0102695
+v 0.0160727 0.00995237 -0.0081
+v 0.0169152 -0.00216802 -0.00389487
+v 0.0168956 0.0100554 0.00845563
+v 0.0154117 -0.00332344 0.00842671
+v 0.0126428 0.00094904 -0.0149559
+v 0 -0.0125775 -0.00027984
+v 0.0195474 0.00395938 -0.000436593
+v 0.00574342 -0.0113584 0.0097881
+v 0.0175192 0.00788466 0.00998393
+v 0.0187872 0.00410691 0.00722581
+v 0.0139964 -0.00264663 -0.00927289
+v 0.0173328 -0.00263693 0.00246136
+v 0.0102034 -0.0092698 -0.00154566
+v 0.0172801 0.00341704 -0.0085318
+v 0.006218 0.00995197 -0.0171755
+v 0 0.00761475 -0.0205764
+v 0.00653162 0.00762267 -0.019446
+v 0.0153456 0.00762246 -0.0118764
+v 0.010847 0.00761475 -0.0166483
+v 0.0195131 0.00760949 0.00353866
+v 0.0185358 0.00769649 -0.00539745
+v 0.0102 -0.00992829 0.00356989
+v 0.00642435 0.0032985 -0.0201171
+v 0.00974452 0.00179156 -0.0177271
+v 0.0088227 -0.00660134 0.0195079
+v 0.0128939 0.00177954 0.0230278
+v 0 -0.0266 0.0891412
+v 0.0137859 0.00560591 0.0177206
+v 0.0122827 -0.00279898 0.0164583
+v 0.0124171 0.00945384 0.0185667
+v 0 0.00339475 -0.0214264
+v 0.00754595 -0.00744792 -0.0102493
+v 0 -0.0370955 0.0814149
+v 0 -0.0378036 0.0796494
+v 0 -0.0384903 0.0765344
+v 0 0.00759363 0.0258084
+v 0 0.00945384 0.0185667
+v 1.06707e-018 -0.0104048 -0.00704971
+v 0.00871332 -0.00449104 -0.0134489
+v 0.00754595 -0.00153417 -0.0166485
+v 0.00435666 0.000630421 -0.0189907
+v -2.13415e-018 0.00142271 -0.019848
+v 0 -0.0335356 0.0860422
+v 0.00435666 -0.00961251 -0.00790704
+v 0 -0.009703 0.0191341
+v 0 -0.0105182 0.0159021
+v 0.00905767 -0.00711343 0.0160021
+v 0 -0.0380536 0.0732949
+v 0.00482963 -0.00888521 0.0189157
+v 0.00515124 -0.00977728 0.0160612
+v -0.0120377 -0.0217958 0.0802467
+v -0.0097514 -0.0243733 0.085021
+v -0.00472159 -0.026189 0.0883812
+v -0.00251746 -0.0380262 0.0722965
+v -0.00269244 -0.0383627 0.0773935
+v -0.0041137 -0.0363887 0.0818603
+v -0.00799378 -0.0358757 0.0773606
+v -0.011047 -0.0321853 0.0741615
+v -0.0110994 -0.0300889 0.0806922
+v -0.00323768 -0.0332681 0.0857424
+v -0.00779541 -0.0325099 0.0837432
+v -0.0125704 -0.0284915 0.0769487
+v -0.0070908 -0.0363513 0.0727187
+v -0.0122399 0.00754624 0.0258895
+v -0.0111836 -0.00345728 0.0207223
+v -0.00575354 -0.01088 -0.00438047
+v -0.0181079 0.00995213 -0.00106643
+v -0.0116229 0.00995217 -0.0139021
+v -0.00689219 -0.0113732 0.00103067
+v -0.0160727 0.00995237 -0.0081
+v -0.0169152 -0.00216802 -0.00389487
+v -0.0168956 0.0100554 0.00845563
+v -0.0154117 -0.00332344 0.00842671
+v -0.0126428 0.00094904 -0.0149559
+v -0.0195474 0.00395938 -0.000436593
+v -0.00574342 -0.0113584 0.0097881
+v -0.0175192 0.00788466 0.00998393
+v -0.0187872 0.00410691 0.00722581
+v -0.0139964 -0.00264663 -0.00927289
+v -0.0173328 -0.00263693 0.00246136
+v -0.0102034 -0.0092698 -0.00154566
+v -0.0172801 0.00341704 -0.0085318
+v -0.006218 0.00995197 -0.0171755
+v -0.00653162 0.00762267 -0.019446
+v -0.0153456 0.00762246 -0.0118764
+v -0.010847 0.00761475 -0.0166483
+v -0.0195131 0.00760949 0.00353866
+v -0.0185358 0.00769649 -0.00539745
+v -0.0102 -0.00992829 0.00356989
+v -0.00642435 0.0032985 -0.0201171
+v -0.00974452 0.00179156 -0.0177271
+v -0.0088227 -0.00660134 0.0195079
+v -0.0128939 0.00177954 0.0230278
+v -0.0137859 0.00560591 0.0177206
+v -0.0122827 -0.00279898 0.0164583
+v -0.0124171 0.00945384 0.0185667
+v -0.00754595 -0.00744792 -0.0102493
+v -0.00871332 -0.00449104 -0.0134489
+v -0.00754595 -0.00153417 -0.0166485
+v -0.00435666 0.000630421 -0.0189907
+v -0.00435666 -0.00961251 -0.00790704
+v -0.00905767 -0.00711343 0.0160021
+v -0.00482963 -0.00888521 0.0189157
+v -0.00515124 -0.00977728 0.0160612
+vn 0.995614 -0.0475096 0.0805988
+vn 0.994868 0.0884399 0.0491474
+vn 0.987191 0.0115243 0.159123
+vn 0.9447 0.191452 0.266247
+vn 0.639669 -0.745114 0.188756
+vn 0.846744 -0.52524 -0.0845413
+vn 0.85642 -0.397126 0.329902
+vn 0.93036 0.250913 -0.267346
+vn 0.565338 0.823313 -0.050486
+vn 0.957818 0.272286 0.0918948
+vn 0.465751 0.883741 -0.0455838
+vn 0.616383 0.74684 0.249603
+vn 0.89423 -0.195181 -0.402812
+vn 0.982919 -0.163021 -0.0854121
+vn 0.535428 -0.814225 -0.2244
+vn 0.331804 -0.931921 0.146385
+vn 0 -0.998076 -0.0620001
+vn 0.329818 -0.941533 -0.0688207
+vn 0.512036 0.819619 -0.256989
+vn 0.789575 0.261601 -0.5551
+vn 0.375947 0.839243 -0.392855
+vn 0.296759 -0.914533 -0.274889
+vn 0.586353 -0.783701 -0.204947
+vn 0.924245 0.0449264 0.379148
+vn 0.883405 0.275604 0.378995
+vn 0.253575 -0.537792 0.804039
+vn 0.602949 -0.508122 0.615033
+vn 0.408399 -0.350645 0.842768
+vn 0.287541 -0.817212 0.499485
+vn 0.600116 0.330758 -0.728326
+vn 0.906215 -0.419022 -0.05652
+vn 0.874416 -0.443354 0.197063
+vn 0.599262 -0.796837 0.0770437
+vn 0.846816 -0.530479 0.038657
+vn 0.975728 -0.190185 0.108553
+vn 0.947088 -0.164004 0.275912
+vn 0.834639 -0.499096 -0.232985
+vn 0.714519 -0.692013 -0.102865
+vn 0.691382 -0.594329 -0.410809
+vn 0.825381 -0.178809 0.535513
+vn 0.251651 0.807729 -0.533147
+vn 0.356491 0.423197 -0.832957
+vn 0.216677 -0.963193 0.15909
+vn 0.697166 -0.316465 -0.64328
+vn 0 -0.981311 0.192428
+vn 0.818313 -0.489641 0.301026
+vn 0 0.360828 -0.932633
+vn 0 0.967638 -0.252341
+vn 0.492859 -0.782597 -0.380305
+vn 0.116882 -0.951608 -0.28422
+vn 0 -0.395356 0.918528
+vn 0 -0.90804 -0.418884
+vn 0 -0.999989 0.00462657
+vn 0 -0.955654 0.294491
+vn 1.02234e-006 0.879948 0.47507
+vn 0 0.879904 0.475151
+vn -0.000168025 0.879916 0.47513
+vn 0.332534 0.942583 -0.0309582
+vn 0 0.993683 0.112223
+vn 0 0.98768 0.156484
+vn 0.313401 -0.13053 -0.940607
+vn 0.202835 -0.539648 -0.817091
+vn 0 -0.334443 -0.942416
+vn 0.567877 -0.614068 -0.548121
+vn 0.429258 -0.522076 -0.737004
+vn 0.164861 -0.85489 -0.491919
+vn 0.518752 -0.248983 -0.817866
+vn 0 -0.771262 -0.636518
+vn 0 -0.672326 0.740255
+vn 0 -0.890251 0.455471
+vn 0 -0.624868 -0.78073
+vn 0.390092 -0.915476 -0.0986533
+vn 0.627936 -0.741402 0.236684
+vn 3.18038e-008 0.921959 0.387289
+vn -9.82873e-007 0.879948 0.47507
+vn 0 -0.994767 -0.102174
+vn 0 -0.953285 -0.302073
+vn 0.283772 -0.917438 0.278893
+vn 0 -0.965967 0.258665
+vn 0.0007921 0.944877 0.327423
+vn -8.06992e-005 0.879829 0.47529
+vn -0.995614 -0.0475096 0.0805988
+vn -0.987191 0.0115243 0.159123
+vn -0.994868 0.0884399 0.0491474
+vn -0.9447 0.191452 0.266247
+vn -0.639669 -0.745114 0.188756
+vn -0.85642 -0.397126 0.329902
+vn -0.846744 -0.52524 -0.0845413
+vn -0.93036 0.250913 -0.267346
+vn -0.957818 0.272286 0.0918948
+vn -0.565338 0.823313 -0.050486
+vn -0.465751 0.883741 -0.0455838
+vn -0.616383 0.74684 0.249603
+vn -0.89423 -0.195181 -0.402812
+vn -0.982919 -0.163021 -0.0854121
+vn -0.535428 -0.814225 -0.2244
+vn -0.331804 -0.931921 0.146385
+vn -0.329818 -0.941533 -0.0688207
+vn -0.512036 0.819619 -0.256989
+vn -0.375947 0.839243 -0.392855
+vn -0.789575 0.261601 -0.5551
+vn -0.296759 -0.914533 -0.274889
+vn -0.586353 -0.783701 -0.204947
+vn -0.924245 0.0449264 0.379148
+vn -0.883405 0.275604 0.378995
+vn -0.253575 -0.537792 0.804039
+vn -0.408399 -0.350645 0.842768
+vn -0.602949 -0.508122 0.615033
+vn -0.287541 -0.817212 0.499485
+vn -0.600116 0.330758 -0.728326
+vn -0.906215 -0.419022 -0.05652
+vn -0.874416 -0.443354 0.197063
+vn -0.599262 -0.796837 0.0770437
+vn -0.846816 -0.530479 0.038657
+vn -0.975728 -0.190185 0.108553
+vn -0.947088 -0.164004 0.275912
+vn -0.834639 -0.499096 -0.232985
+vn -0.714519 -0.692013 -0.102865
+vn -0.691382 -0.594329 -0.410809
+vn -0.825381 -0.178809 0.535513
+vn -0.251651 0.807729 -0.533147
+vn -0.356491 0.423197 -0.832957
+vn -0.216677 -0.963193 0.15909
+vn -0.697166 -0.316465 -0.64328
+vn -0.818313 -0.489641 0.301026
+vn -0.492859 -0.782597 -0.380305
+vn -0.116882 -0.951608 -0.28422
+vn 0.000168025 0.879916 0.47513
+vn -0.332534 0.942583 -0.0309582
+vn -0.313401 -0.13053 -0.940607
+vn -0.202835 -0.539648 -0.817091
+vn -0.567877 -0.614068 -0.548121
+vn -0.429258 -0.522076 -0.737004
+vn -0.164861 -0.85489 -0.491919
+vn -0.518752 -0.248983 -0.817866
+vn -0.390092 -0.915476 -0.0986533
+vn -0.627936 -0.741402 0.236684
+vn -0.000792047 0.944877 0.327423
+vn -0.283772 -0.917438 0.278893
+vn 8.06992e-005 0.879829 0.47529
+vt 0.872162 0.452749
+vt 0.913444 0.460038
+vt 0.867146 0.871112
+vt 0.928333 0.43788
+vt 0.764421 0.86984
+vt 0.791868 0.850656
+vt 0.803132 0.887395
+vt 0.958767 0.211058
+vt 0.994834 0.255602
+vt 0.964021 0.303967
+vt 0.975682 0.363076
+vt 0.903251 0.195538
+vt 0.939805 0.267778
+vt 0.758951 0.849918
+vt 0.761861 0.361034
+vt 0.719422 0.285526
+vt 0.769811 0.294273
+vt 0.970637 0.158108
+vt 0.914338 0.137693
+vt 0.902921 0.073504
+vt 0.762727 0.254765
+vt 0.797604 0.27411
+vt 0.906403 0.422907
+vt 0.950794 0.365316
+vt 0.742086 0.921408
+vt 0.773458 0.906106
+vt 0.777563 0.976057
+vt 0.743082 0.893261
+vt 0.855378 0.08764
+vt 0.829588 0.4465
+vt 0.842594 0.4112
+vt 0.795897 0.311195
+vt 0.873851 0.296814
+vt 0.81924 0.861306
+vt 0.927306 0.334494
+vt 0.870677 0.248301
+vt 0.797685 0.443929
+vt 0.844497 0.208889
+vt 0.837466 0.931917
+vt 0.815912 0.0253472
+vt 0.798923 0.0652843
+vt 0.733267 0.87182
+vt 0.839794 0.155647
+vt 0.719421 0.365672
+vt 0.859096 0.344206
+vt 0.719424 0.0550654
+vt 0.719423 0.0121951
+vt 0.784942 0.209243
+vt 0.73285 0.850439
+vt 0.719382 0.987805
+vt 0.719422 0.245258
+vt 0.719391 0.868824
+vt 0.71939 0.882628
+vt 0.254599 0.0969414
+vt 0.157625 0.0121951
+vt 0.236181 0.0514575
+vt 0.303546 0.842961
+vt 0.157632 0.678282
+vt 0.293835 0.763108
+vt 0.257686 0.678218
+vt 0.287142 0.901935
+vt 0.251285 0.950582
+vt 0.157632 0.987805
+vt 0.207733 0.978025
+vt 0.784736 0.108258
+vt 0.765649 0.135463
+vt 0.719424 0.101307
+vt 0.800208 0.184744
+vt 0.795216 0.157246
+vt 0.756037 0.225742
+vt 0.815217 0.132305
+vt 0.719422 0.230726
+vt 0.719387 0.923387
+vt 0.719389 0.891307
+vt 0.719424 0.126927
+vt 0.760028 0.443822
+vt 0.799139 0.411358
+vt 0.157631 0.615578
+vt 0.0606522 0.0969434
+vt 0.719419 0.446478
+vt 0.719391 0.85602
+vt 0.760889 0.414795
+vt 0.71942 0.414889
+vt 0.256234 0.614787
+vt 0.195662 0.0194381
+vt 0.566678 0.452732
+vt 0.571636 0.871091
+vt 0.525396 0.460016
+vt 0.510515 0.437862
+vt 0.67436 0.869834
+vt 0.635648 0.887383
+vt 0.646917 0.850646
+vt 0.480083 0.21106
+vt 0.474831 0.303964
+vt 0.444019 0.255602
+vt 0.463172 0.363068
+vt 0.535598 0.195539
+vt 0.499045 0.267778
+vt 0.679833 0.849912
+vt 0.676981 0.361032
+vt 0.669033 0.294272
+vt 0.468213 0.158112
+vt 0.535926 0.0735076
+vt 0.524511 0.137696
+vt 0.676118 0.254765
+vt 0.641241 0.27411
+vt 0.532444 0.422893
+vt 0.488058 0.365307
+vt 0.696688 0.921404
+vt 0.661203 0.976048
+vt 0.665318 0.906098
+vt 0.695695 0.893257
+vt 0.58347 0.0876427
+vt 0.609252 0.446489
+vt 0.596249 0.411191
+vt 0.642947 0.311193
+vt 0.564997 0.296812
+vt 0.619543 0.861291
+vt 0.511544 0.334489
+vt 0.568172 0.248301
+vt 0.641154 0.443921
+vt 0.594351 0.208889
+vt 0.601307 0.931899
+vt 0.622934 0.025349
+vt 0.639924 0.0652861
+vt 0.705513 0.871818
+vt 0.599054 0.155649
+vt 0.57975 0.344201
+vt 0.653904 0.209244
+vt 0.705934 0.850437
+vt 0.0790697 0.0514584
+vt 0.0117188 0.842961
+vt 0.0214292 0.763108
+vt 0.057578 0.678219
+vt 0.0281225 0.901935
+vt 0.0639796 0.950581
+vt 0.107531 0.978025
+vt 0.654112 0.10826
+vt 0.673199 0.135465
+vt 0.638639 0.184746
+vt 0.643632 0.157248
+vt 0.682808 0.225743
+vt 0.623631 0.132307
+vt 0.678809 0.443818
+vt 0.639701 0.411353
+vt 0.0590282 0.614789
+vt 0.67795 0.414792
+vt 0.119589 0.0194391
+mtllib gear_vr_controller.mtl
+usemtl Base
+g Default
+f 48/1/1 14/2/2 1/3/3
+f 52/4/4 14/2/2 48/1/1
+f 7/5/5 8/6/6 9/7/7
+f 43/8/8 18/9/9 42/10/10
+f 18/9/11 25/11/12 42/10/10
+f 36/12/13 43/8/8 29/13/14
+f 8/6/6 7/5/5 13/14/15
+f 30/15/16 28/16/17 21/17/18
+f 23/18/19 40/19/20 19/20/21
+f 16/21/22 35/22/23 21/17/18
+f 52/4/4 50/23/24 25/11/12
+f 31/24/25 25/11/12 50/23/24
+f 10/25/26 11/26/27 3/27/28
+f 7/5/5 11/26/27 6/28/29
+f 41/29/30 19/20/21 40/19/20
+f 15/30/31 51/31/32 48/1/1
+f 50/23/24 48/1/1 51/31/32
+f 44/32/33 35/22/23 34/33/34
+f 44/32/33 21/17/18 35/22/23
+f 12/34/35 8/6/6 15/30/31
+f 31/24/25 50/23/24 32/35/36
+f 34/33/34 24/36/37 29/13/14
+f 47/37/38 8/6/6 13/14/15
+f 33/38/39 36/12/13 24/36/37
+f 2/39/40 3/27/28 11/26/27
+f 19/20/21 41/29/30 37/40/41
+f 39/41/42 37/40/41 41/29/30
+f 40/19/20 23/18/19 43/8/8
+f 29/13/14 42/10/10 32/35/36
+f 50/23/24 52/4/4 48/1/1
+f 43/8/8 42/10/10 29/13/14
+f 13/14/15 7/5/5 5/42/43
+f 32/35/36 34/33/34 29/13/14
+f 43/8/8 36/12/13 40/19/20
+f 27/43/44 40/19/20 36/12/13
+f 21/17/18 44/32/33 30/15/16
+f 10/25/26 6/28/29 11/26/27
+f 9/7/7 11/26/27 7/5/5
+f 18/9/11 43/8/8 23/18/19
+f 5/42/43 7/5/5 6/28/29
+f 31/24/25 42/10/10 25/11/12
+f 21/17/18 28/16/17 16/21/22
+f 22/44/45 28/16/17 30/15/16
+f 29/13/14 24/36/37 36/12/13
+f 24/36/37 35/22/23 33/38/39
+f 34/33/34 32/35/36 26/45/46
+f 35/22/23 24/36/37 34/33/34
+f 15/30/31 48/1/1 12/34/35
+f 34/33/34 26/45/46 44/32/33
+f 38/46/47 20/47/48 39/41/42
+f 37/40/41 39/41/42 20/47/48
+f 11/26/27 9/7/7 2/39/40
+f 16/21/22 54/48/49 35/22/23
+f 1/3/3 2/39/40 12/34/35
+f 9/7/7 12/34/35 2/39/40
+f 36/12/13 33/38/39 27/43/44
+f 15/30/31 8/6/6 47/37/38
+f 51/31/32 26/45/46 50/23/24
+f 32/35/36 50/23/24 26/45/46
+f 13/14/15 5/42/43 4/49/50
+f 31/24/25 32/35/36 42/10/10
+f 12/34/35 9/7/7 8/6/6
+f 12/34/35 48/1/1 1/3/3
+f 10/25/26 3/27/28 49/50/51
+f 28/16/17 17/51/52 16/21/22
+f 57/52/53 5/42/43 56/53/54
+f 1/54/55 49/55/56 2/56/57
+f 18/57/58 59/58/59 25/59/12
+f 25/59/12 59/58/59 52/60/60
+f 23/61/19 19/62/21 20/63/48
+f 19/62/21 37/64/41 20/63/48
+f 45/65/61 63/66/62 53/67/63
+f 33/38/39 61/68/64 27/43/44
+f 62/69/65 27/43/44 61/68/64
+f 33/38/39 35/22/23 54/48/49
+f 66/70/66 16/21/22 17/51/52
+f 27/43/44 62/69/65 46/71/67
+f 46/71/67 62/69/65 63/66/62
+f 63/66/62 45/65/61 46/71/67
+f 61/68/64 33/38/39 54/48/49
+f 17/51/52 60/72/68 66/70/66
+f 65/73/69 10/25/26 49/50/51
+f 6/28/29 10/25/26 65/73/69
+f 65/73/69 55/74/70 6/28/29
+f 64/75/71 53/67/63 63/66/62
+f 71/76/72 13/14/15 4/49/50
+f 13/14/15 71/76/72 47/37/38
+f 69/77/73 51/31/32 47/37/38
+f 51/31/32 15/30/31 47/37/38
+f 59/58/59 18/57/11 20/63/48
+f 23/61/19 20/63/48 18/57/11
+f 16/21/22 66/70/66 54/48/49
+f 58/78/74 73/79/75 1/54/55
+f 71/76/72 4/49/50 67/80/76
+f 70/81/77 67/80/76 4/49/50
+f 30/15/16 72/82/78 22/44/45
+f 68/83/79 22/44/45 72/82/78
+f 1/54/55 14/84/80 58/78/74
+f 2/56/57 49/55/56 3/85/81
+f 39/41/42 45/65/61 38/46/47
+f 53/67/63 38/46/47 45/65/61
+f 72/82/78 69/77/73 71/76/72
+f 47/37/38 71/76/72 69/77/73
+f 68/83/79 72/82/78 67/80/76
+f 71/76/72 67/80/76 72/82/78
+f 40/19/20 27/43/44 41/29/30
+f 46/71/67 41/29/30 27/43/44
+f 72/82/78 30/15/16 69/77/73
+f 44/32/33 69/77/73 30/15/16
+f 41/29/30 46/71/67 39/41/42
+f 45/65/61 39/41/42 46/71/67
+f 6/28/29 55/74/70 5/42/43
+f 56/53/54 5/42/43 55/74/70
+f 52/60/60 59/58/59 14/84/80
+f 58/78/74 14/84/80 59/58/59
+f 44/32/33 26/45/46 69/77/73
+f 51/31/32 69/77/73 26/45/46
+f 5/42/43 57/52/53 4/49/50
+f 70/81/77 4/49/50 57/52/53
+f 115/86/82 73/87/83 86/88/84
+f 118/89/85 115/86/82 86/88/84
+f 79/90/86 81/91/87 80/92/88
+f 110/93/89 109/94/90 89/95/91
+f 89/95/92 109/94/90 94/96/93
+f 104/97/94 97/98/95 110/93/89
+f 80/92/88 85/99/96 79/90/86
+f 98/100/97 91/101/98 28/16/17
+f 92/102/99 90/103/100 107/104/101
+f 88/105/102 91/101/98 103/106/103
+f 118/89/85 94/96/93 116/107/104
+f 99/108/105 116/107/104 94/96/93
+f 82/109/106 75/110/107 83/111/108
+f 79/90/86 78/112/109 83/111/108
+f 108/113/110 107/104/101 90/103/100
+f 87/114/111 115/86/82 117/115/112
+f 116/107/104 117/115/112 115/86/82
+f 111/116/113 102/117/114 103/106/103
+f 111/116/113 103/106/103 91/101/98
+f 84/118/115 87/114/111 80/92/88
+f 99/108/105 100/119/116 116/107/104
+f 102/117/114 97/98/95 93/120/117
+f 114/121/118 85/99/96 80/92/88
+f 101/122/119 93/120/117 104/97/94
+f 74/123/120 83/111/108 75/110/107
+f 90/103/100 105/124/121 108/113/110
+f 106/125/122 108/113/110 105/124/121
+f 107/104/101 110/93/89 92/102/99
+f 97/98/95 100/119/116 109/94/90
+f 116/107/104 115/86/82 118/89/85
+f 110/93/89 97/98/95 109/94/90
+f 85/99/96 77/126/123 79/90/86
+f 100/119/116 97/98/95 102/117/114
+f 110/93/89 107/104/101 104/97/94
+f 96/127/124 104/97/94 107/104/101
+f 91/101/98 98/100/97 111/116/113
+f 82/109/106 83/111/108 78/112/109
+f 81/91/87 79/90/86 83/111/108
+f 89/95/92 92/102/99 110/93/89
+f 77/126/123 78/112/109 79/90/86
+f 99/108/105 94/96/93 109/94/90
+f 91/101/98 88/105/102 28/16/17
+f 22/44/45 98/100/97 28/16/17
+f 97/98/95 104/97/94 93/120/117
+f 93/120/117 101/122/119 103/106/103
+f 102/117/114 95/128/125 100/119/116
+f 103/106/103 102/117/114 93/120/117
+f 87/114/111 84/118/115 115/86/82
+f 102/117/114 111/116/113 95/128/125
+f 38/46/47 106/125/122 20/47/48
+f 105/124/121 20/47/48 106/125/122
+f 83/111/108 74/123/120 81/91/87
+f 88/105/102 103/106/103 119/129/126
+f 73/87/83 84/118/115 74/123/120
+f 81/91/87 74/123/120 84/118/115
+f 104/97/94 96/127/124 101/122/119
+f 87/114/111 114/121/118 80/92/88
+f 117/115/112 116/107/104 95/128/125
+f 100/119/116 95/128/125 116/107/104
+f 85/99/96 76/130/127 77/126/123
+f 99/108/105 109/94/90 100/119/116
+f 84/118/115 80/92/88 81/91/87
+f 84/118/115 73/87/83 115/86/82
+f 82/109/106 49/50/51 75/110/107
+f 28/16/17 88/105/102 17/51/52
+f 57/52/53 56/53/54 77/126/123
+f 73/79/75 74/131/128 49/55/56
+f 89/132/129 94/133/93 59/58/59
+f 94/133/93 118/134/60 59/58/59
+f 92/135/99 20/63/48 90/136/100
+f 90/136/100 20/63/48 105/137/121
+f 112/138/130 53/67/63 122/139/131
+f 101/122/119 96/127/124 120/140/132
+f 121/141/133 120/140/132 96/127/124
+f 101/122/119 119/129/126 103/106/103
+f 123/142/134 17/51/52 88/105/102
+f 96/127/124 113/143/135 121/141/133
+f 113/143/135 112/138/130 122/139/131
+f 122/139/131 121/141/133 113/143/135
+f 120/140/132 119/129/126 101/122/119
+f 17/51/52 123/142/134 60/72/68
+f 65/73/69 49/50/51 82/109/106
+f 78/112/109 65/73/69 82/109/106
+f 65/73/69 78/112/109 55/74/70
+f 64/75/71 122/139/131 53/67/63
+f 125/144/136 76/130/127 85/99/96
+f 85/99/96 114/121/118 125/144/136
+f 124/145/137 114/121/118 117/115/112
+f 117/115/112 114/121/118 87/114/111
+f 59/58/59 20/63/48 89/132/92
+f 92/135/99 89/132/92 20/63/48
+f 88/105/102 119/129/126 123/142/134
+f 58/78/74 86/146/138 73/79/75
+f 125/144/136 67/80/76 76/130/127
+f 70/81/77 76/130/127 67/80/76
+f 98/100/97 22/44/45 126/147/139
+f 68/83/79 126/147/139 22/44/45
+f 73/79/75 49/55/56 1/54/55
+f 74/131/128 75/148/140 49/55/56
+f 106/125/122 38/46/47 112/138/130
+f 53/67/63 112/138/130 38/46/47
+f 126/147/139 125/144/136 124/145/137
+f 114/121/118 124/145/137 125/144/136
+f 68/83/79 67/80/76 126/147/139
+f 125/144/136 126/147/139 67/80/76
+f 107/104/101 108/113/110 96/127/124
+f 113/143/135 96/127/124 108/113/110
+f 126/147/139 124/145/137 98/100/97
+f 111/116/113 98/100/97 124/145/137
+f 108/113/110 106/125/122 113/143/135
+f 112/138/130 113/143/135 106/125/122
+f 78/112/109 77/126/123 55/74/70
+f 56/53/54 55/74/70 77/126/123
+f 118/134/60 86/146/138 59/58/59
+f 58/78/74 59/58/59 86/146/138
+f 111/116/113 124/145/137 95/128/125
+f 117/115/112 95/128/125 124/145/137
+f 77/126/123 76/130/127 57/52/53
+f 70/81/77 57/52/53 76/130/127
+
+o Touchpad
+v 0 0.011 -0.0154875
+v -0.00302146 0.011 -0.0151899
+v -0.00592681 0.011 -0.0143086
+v -0.00860439 0.011 -0.0128774
+v -0.0109513 0.011 -0.0109513
+v -0.0128774 0.011 -0.00860439
+v -0.0143086 0.011 -0.00592681
+v -0.0151899 0.011 -0.00302146
+v -0.0154875 0.011 0
+v -0.0151899 0.011 0.00302146
+v -0.0143086 0.011 0.00592681
+v -0.0128774 0.011 0.00860439
+v -0.0109513 0.011 0.0109513
+v -0.00860439 0.011 0.0128774
+v -0.00592681 0.011 0.0143086
+v -0.00302146 0.011 0.0151899
+v 0 0.011 0.0154875
+v 0.00302146 0.011 0.0151899
+v 0.00592681 0.011 0.0143086
+v 0.00860439 0.011 0.0128774
+v 0.0109513 0.011 0.0109513
+v 0.0128774 0.011 0.00860439
+v 0.0143086 0.011 0.00592681
+v 0.0151899 0.011 0.00302146
+v 0.0154875 0.011 0
+v 0.0151899 0.011 -0.00302146
+v 0.0143086 0.011 -0.00592681
+v 0.0128774 0.011 -0.00860439
+v 0.0109513 0.011 -0.0109513
+v 0.00860439 0.011 -0.0128774
+v 0.00592681 0.011 -0.0143086
+v 0.00302146 0.011 -0.0151899
+v -0.00592681 0.00775 -0.0143086
+v -0.00860439 0.00775 -0.0128774
+v -0.0109513 0.00775 -0.0109513
+v -0.0128774 0.00775 -0.00860439
+v -0.0143086 0.00775 -0.00592681
+v -0.0151899 0.00775 -0.00302146
+v -0.0154875 0.00775 0
+v -0.0151899 0.00775 0.00302146
+v -0.0143086 0.00775 0.00592681
+v -0.0128774 0.00775 0.00860439
+v -0.0109513 0.00775 0.0109513
+v -0.00860439 0.00775 0.0128774
+v -0.00592681 0.00775 0.0143086
+v -0.00302146 0.00775 0.0151899
+v 0 0.00775 0.0154875
+v 0.00302146 0.00775 0.0151899
+v 0.00592681 0.00775 0.0143086
+v 0.00860439 0.00775 0.0128774
+v 0.0109513 0.00775 0.0109513
+v 0.0128774 0.00775 0.00860439
+v 0.0143086 0.00775 0.00592681
+v 0.0151899 0.00775 0.00302146
+v 0.0154875 0.00775 0
+v 0.0151899 0.00775 -0.00302146
+v 0.0143086 0.00775 -0.00592681
+v 0.0128774 0.00775 -0.00860439
+v 0.0109513 0.00775 -0.0109513
+v 0.00860439 0.00775 -0.0128774
+v 0.00592681 0.00775 -0.0143086
+v 0.00302146 0.00775 -0.0151899
+v 0 0.00775 -0.0154875
+v -0.00302146 0.00775 -0.0151899
+vn 0 1 0
+vn -0.527988 0 -0.849252
+vn -0.582554 0 -0.812792
+vn -0.683524 0 -0.729928
+vn -0.729928 0 -0.683524
+vn 0.527988 0 0.849252
+vn 0.582554 0 0.812792
+vn 0.683524 0 0.729928
+vn 0.729928 0 0.683524
+vn -0.352162 0 -0.935939
+vn -0.412793 0 -0.910825
+vn 0.352162 0 0.935939
+vn 0.412793 0 0.910825
+vn 0.162803 0 0.986659
+vn 0.227168 0 0.973856
+vn -0.162803 0 -0.986659
+vn -0.227168 0 -0.973856
+vn -0.0328128 0 0.999462
+vn 0.0328128 0 0.999462
+vn 0.0328128 0 -0.999462
+vn -0.0328128 0 -0.999462
+vn -0.227168 0 0.973856
+vn -0.162803 0 0.986659
+vn 0.227168 0 -0.973856
+vn 0.162803 0 -0.986659
+vn -0.412793 0 0.910825
+vn -0.352162 0 0.935939
+vn 0.412793 0 -0.910825
+vn 0.352162 0 -0.935939
+vn -0.582554 0 0.812792
+vn -0.527988 0 0.849252
+vn 0.582554 0 -0.812792
+vn 0.527988 0 -0.849252
+vn -0.849252 0 0.527988
+vn -0.812792 0 0.582554
+vn -0.729928 0 0.683524
+vn -0.683524 0 0.729928
+vn 0.849252 0 -0.527988
+vn 0.812792 0 -0.582554
+vn 0.729928 0 -0.683524
+vn 0.683524 0 -0.729928
+vn -0.935939 0 0.352162
+vn -0.910825 0 0.412793
+vn 0.935939 0 -0.352162
+vn 0.910825 0 -0.412793
+vn -0.986659 0 0.162803
+vn -0.973856 0 0.227168
+vn 0.986659 0 -0.162803
+vn 0.973856 0 -0.227168
+vn -0.910825 0 -0.412793
+vn -0.935939 0 -0.352162
+vn -0.973856 0 -0.227168
+vn -0.986659 0 -0.162803
+vn 0.910825 0 0.412793
+vn 0.935939 0 0.352162
+vn 0.973856 0 0.227168
+vn 0.986659 0 0.162803
+vn -0.812792 0 -0.582554
+vn -0.849252 0 -0.527988
+vn 0.812792 0 0.582554
+vn 0.849252 0 0.527988
+vn -0.999462 0 -0.0328128
+vn -0.999462 0 0.0328128
+vn 0.999462 0 0.0328128
+vn 0.999462 0 -0.0328128
+vt 0.38852 0.824935
+vt 0.372021 0.816172
+vt 0.406406 0.83033
+vt 0.424998 0.832151
+vt 0.357534 0.804373
+vt 0.443591 0.83033
+vt 0.345608 0.789984
+vt 0.461476 0.824935
+vt 0.336698 0.773542
+vt 0.477976 0.816172
+vt 0.331158 0.755657
+vt 0.492463 0.804374
+vt 0.329252 0.737001
+vt 0.504389 0.789985
+vt 0.331158 0.718345
+vt 0.5133 0.773543
+vt 0.336697 0.700459
+vt 0.51884 0.755657
+vt 0.345607 0.684017
+vt 0.520746 0.737001
+vt 0.357533 0.669627
+vt 0.51884 0.718345
+vt 0.37202 0.657829
+vt 0.5133 0.700459
+vt 0.38852 0.649066
+vt 0.50439 0.684016
+vt 0.406406 0.643671
+vt 0.492464 0.669627
+vt 0.424998 0.641849
+vt 0.477977 0.657829
+vt 0.443591 0.64367
+vt 0.461477 0.649065
+vt 0.359933 0.834407
+vt 0.342149 0.819935
+vt 0.490064 0.639593
+vt 0.507849 0.654065
+vt 0.380192 0.845168
+vt 0.469805 0.628832
+vt 0.447837 0.622204
+vt 0.402159 0.851796
+vt 0.424998 0.619966
+vt 0.424998 0.854034
+vt 0.402159 0.622204
+vt 0.447837 0.851796
+vt 0.380191 0.628833
+vt 0.469805 0.845168
+vt 0.359933 0.639593
+vt 0.490063 0.834408
+vt 0.32749 0.671684
+vt 0.342148 0.654066
+vt 0.522506 0.802318
+vt 0.507848 0.819936
+vt 0.316448 0.691787
+vt 0.533549 0.782216
+vt 0.30933 0.713718
+vt 0.540668 0.760286
+vt 0.316449 0.782215
+vt 0.309331 0.760285
+vt 0.53355 0.691786
+vt 0.540668 0.713717
+vt 0.327491 0.802316
+vt 0.522507 0.671684
+vt 0.306354 0.737002
+vt 0.543646 0.737002
+mtllib gear_vr_controller.mtl
+usemtl Touchpad
+g Default
+f 129/149/141 130/150/141 128/151/141
+f 127/152/141 128/151/141 130/150/141
+f 130/150/141 131/153/141 127/152/141
+f 158/154/141 127/152/141 131/153/141
+f 131/153/141 132/155/141 158/154/141
+f 157/156/141 158/154/141 132/155/141
+f 132/155/141 133/157/141 157/156/141
+f 156/158/141 157/156/141 133/157/141
+f 133/157/141 134/159/141 156/158/141
+f 155/160/141 156/158/141 134/159/141
+f 134/159/141 135/161/141 155/160/141
+f 154/162/141 155/160/141 135/161/141
+f 135/161/141 136/163/141 154/162/141
+f 153/164/141 154/162/141 136/163/141
+f 136/163/141 137/165/141 153/164/141
+f 152/166/141 153/164/141 137/165/141
+f 137/165/141 138/167/141 152/166/141
+f 151/168/141 152/166/141 138/167/141
+f 138/167/141 139/169/141 151/168/141
+f 150/170/141 151/168/141 139/169/141
+f 139/169/141 140/171/141 150/170/141
+f 149/172/141 150/170/141 140/171/141
+f 140/171/141 141/173/141 149/172/141
+f 148/174/141 149/172/141 141/173/141
+f 141/173/141 142/175/141 148/174/141
+f 147/176/141 148/174/141 142/175/141
+f 142/175/141 143/177/141 147/176/141
+f 146/178/141 147/176/141 143/177/141
+f 143/177/141 144/179/141 146/178/141
+f 145/180/141 146/178/141 144/179/141
+f 130/150/142 160/181/143 131/153/144
+f 161/182/145 131/153/144 160/181/143
+f 146/178/146 176/183/147 147/176/148
+f 177/184/149 147/176/148 176/183/147
+f 129/149/150 159/185/151 130/150/142
+f 160/181/143 130/150/142 159/185/151
+f 145/180/152 175/186/153 146/178/146
+f 176/183/147 146/178/146 175/186/153
+f 144/179/154 174/187/155 145/180/152
+f 175/186/153 145/180/152 174/187/155
+f 128/151/156 190/188/157 129/149/150
+f 159/185/151 129/149/150 190/188/157
+f 143/177/158 173/189/159 144/179/154
+f 174/187/155 144/179/154 173/189/159
+f 127/152/160 189/190/161 128/151/156
+f 190/188/157 128/151/156 189/190/161
+f 142/175/162 172/191/163 143/177/158
+f 173/189/159 143/177/158 172/191/163
+f 158/154/164 188/192/165 127/152/160
+f 189/190/161 127/152/160 188/192/165
+f 141/173/166 171/193/167 142/175/162
+f 172/191/163 142/175/162 171/193/167
+f 157/156/168 187/194/169 158/154/164
+f 188/192/165 158/154/164 187/194/169
+f 140/171/170 170/195/171 141/173/166
+f 171/193/167 141/173/166 170/195/171
+f 156/158/172 186/196/173 157/156/168
+f 187/194/169 157/156/168 186/196/173
+f 138/167/174 168/197/175 139/169/176
+f 169/198/177 139/169/176 168/197/175
+f 154/162/178 184/199/179 155/160/180
+f 185/200/181 155/160/180 184/199/179
+f 139/169/176 169/198/177 140/171/170
+f 170/195/171 140/171/170 169/198/177
+f 155/160/180 185/200/181 156/158/172
+f 186/196/173 156/158/172 185/200/181
+f 137/165/182 167/201/183 138/167/174
+f 168/197/175 138/167/174 167/201/183
+f 153/164/184 183/202/185 154/162/178
+f 184/199/179 154/162/178 183/202/185
+f 136/163/186 166/203/187 137/165/182
+f 167/201/183 137/165/182 166/203/187
+f 152/166/188 182/204/189 153/164/184
+f 183/202/185 153/164/184 182/204/189
+f 133/157/190 163/205/191 134/159/192
+f 164/206/193 134/159/192 163/205/191
+f 149/172/194 179/207/195 150/170/196
+f 180/208/197 150/170/196 179/207/195
+f 132/155/198 162/209/199 133/157/190
+f 163/205/191 133/157/190 162/209/199
+f 148/174/200 178/210/201 149/172/194
+f 179/207/195 149/172/194 178/210/201
+f 131/153/144 161/182/145 132/155/198
+f 162/209/199 132/155/198 161/182/145
+f 147/176/148 177/184/149 148/174/200
+f 178/210/201 148/174/200 177/184/149
+f 135/161/202 165/211/203 136/163/186
+f 166/203/187 136/163/186 165/211/203
+f 151/168/204 181/212/205 152/166/188
+f 182/204/189 152/166/188 181/212/205
+f 134/159/192 164/206/193 135/161/202
+f 165/211/203 135/161/202 164/206/193
+f 150/170/196 180/208/197 151/168/204
+f 181/212/205 151/168/204 180/208/197
+
+o Trigger
+v 0.00736809 -0.00639162 -0.0160172
+v 0.00754595 -0.00744792 -0.0102493
+v 0.00555627 -0.00301564 -0.0178696
+v 0.004868 -0.00974427 -0.0189879
+v 0 -0.00968463 -0.0199828
+v 0 -0.0111187 -0.0170885
+v 1.06707e-018 -0.0104048 -0.00704971
+v 0.00871332 -0.00449104 -0.0134489
+v 0.00754595 -0.00153417 -0.0166485
+v 0.00435666 0.000630421 -0.0189907
+v 0 -0.00298128 -0.0189934
+v -2.13415e-018 0.00142271 -0.019848
+v 0.00435666 -0.00961251 -0.00790704
+v 0.0045098 -0.0106875 -0.0171466
+v -0.00736809 -0.00639162 -0.0160172
+v -0.00754595 -0.00744792 -0.0102493
+v -0.00555627 -0.00301564 -0.0178696
+v -0.004868 -0.00974427 -0.0189879
+v -0.00871332 -0.00449104 -0.0134489
+v -0.00754595 -0.00153417 -0.0166485
+v -0.00435666 0.000630421 -0.0189907
+v -0.00435666 -0.00961251 -0.00790704
+v -0.0045098 -0.0106875 -0.0171466
+vn 0.516079 -0.79892 -0.308851
+vn 0.475699 -0.86347 -0.167718
+vn 0 -0.896134 -0.443783
+vn 0 -0.996009 -0.0892506
+vn 0.588731 -0.0629963 -0.80587
+vn 0.474605 -0.0521618 -0.878652
+vn 0.863581 -0.306813 -0.400117
+vn 0.308966 -0.166377 -0.936407
+vn 0.706055 -0.0971262 -0.701465
+vn 0.919435 -0.285884 -0.270017
+vn 0.792968 -0.607558 -0.0455422
+vn 0 -0.0347585 -0.999396
+vn 0 -0.190515 -0.981684
+vn 0.398966 0.111307 -0.910185
+vn 0 0.146015 -0.989282
+vn 0.307972 -0.946242 0.0988904
+vn 0 -0.997481 0.0709366
+vn 0.669595 -0.558842 -0.489223
+vn -0.516079 -0.79892 -0.308851
+vn -0.475699 -0.86347 -0.167718
+vn -0.588731 -0.0629963 -0.80587
+vn -0.863581 -0.306813 -0.400117
+vn -0.474605 -0.0521618 -0.878652
+vn -0.308966 -0.166377 -0.936407
+vn -0.706055 -0.0971262 -0.701465
+vn -0.919435 -0.285884 -0.270017
+vn -0.792968 -0.607558 -0.0455422
+vn -0.398966 0.111307 -0.910185
+vn -0.307972 -0.946242 0.0988904
+vn -0.669595 -0.558842 -0.489223
+vt 0.421572 0.496062
+vt 0.421082 0.506817
+vt 0.39 0.490766
+vt 0.39 0.510712
+vt 0.448703 0.44978
+vt 0.460455 0.493442
+vt 0.441509 0.403972
+vt 0.48257 0.443454
+vt 0.501341 0.50233
+vt 0.47332 0.553913
+vt 0.39 0.439053
+vt 0.39 0.389803
+vt 0.434968 0.583667
+vt 0.39 0.594197
+vt 0.358428 0.496062
+vt 0.358918 0.506817
+vt 0.319544 0.493442
+vt 0.331297 0.44978
+vt 0.33849 0.403972
+vt 0.297429 0.443455
+vt 0.278659 0.50233
+vt 0.30668 0.553913
+vt 0.345032 0.583667
+mtllib gear_vr_controller.mtl
+usemtl Trigger
+g Default
+f 194/213/206 204/214/207 195/215/208
+f 204/214/207 196/216/209 195/215/208
+f 194/213/210 193/217/211 191/218/212
+f 200/219/213 199/220/214 193/217/211
+f 198/221/215 191/218/212 199/220/214
+f 191/218/212 193/217/211 199/220/214
+f 198/221/215 192/222/216 191/218/212
+f 201/223/217 202/224/218 200/219/213
+f 201/223/217 194/213/219 195/215/220
+f 193/217/211 201/223/217 200/219/213
+f 193/217/211 194/213/219 201/223/217
+f 204/214/207 203/225/221 196/216/209
+f 197/226/222 196/216/209 203/225/221
+f 192/222/216 204/214/207 191/218/212
+f 204/214/207 192/222/216 203/225/221
+f 204/214/207 194/213/223 191/218/212
+f 208/227/224 195/215/208 213/228/225
+f 213/228/225 195/215/208 196/216/209
+f 208/227/226 205/229/227 207/230/228
+f 211/231/229 207/230/228 210/232/230
+f 205/229/227 210/232/230 207/230/228
+f 205/229/227 209/233/231 210/232/230
+f 209/233/231 205/229/227 206/234/232
+f 201/223/217 211/231/229 202/224/218
+f 201/223/217 195/215/220 208/227/233
+f 207/230/228 211/231/229 201/223/217
+f 207/230/228 201/223/217 208/227/233
+f 213/228/225 196/216/209 212/235/234
+f 197/226/222 212/235/234 196/216/209
+f 206/234/232 205/229/227 213/228/225
+f 213/228/225 212/235/234 206/234/232
+f 213/228/225 205/229/227 208/227/235

+ 233 - 0
examples/webvr_gear_vr.html

@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<title>three.js webvr - gear vr</title>
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
+		<style>
+			body {
+				font-family: Monospace;
+				background-color: #101010;
+				color: #fff;
+				margin: 0px;
+				overflow: hidden;
+			}
+			a {
+				color: #f00;
+			}
+		</style>
+	</head>
+	<body>
+
+		<script src="../build/three.js"></script>
+
+		<script src="js/loaders/MTLLoader.js"></script>
+		<script src="js/loaders/OBJLoader.js"></script>
+
+        <script src="js/vr/GearVRController.js"></script>
+		<script src="js/vr/WebVR.js"></script>
+
+		<script>
+
+			WEBVR.checkAvailability().catch( function ( message ) {
+
+				document.body.appendChild( WEBVR.getMessageContainer( message ) );
+
+			} );
+
+			var clock = new THREE.Clock();
+
+			var container;
+			var camera, camBox, scene, renderer;
+			var controller;
+
+			var room;
+
+			init();
+			animate();
+
+			function init() {
+
+				container = document.createElement( 'div' );
+				document.body.appendChild( container );
+
+				var info = document.createElement( 'div' );
+				info.style.position = 'absolute';
+				info.style.top = '10px';
+				info.style.width = '100%';
+				info.style.textAlign = 'center';
+				info.innerHTML = '<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - gear vr';
+				container.appendChild( info );
+
+				scene = new THREE.Scene();
+				scene.background = new THREE.Color( 0x505050 );
+
+				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 10 );
+				camBox = new THREE.Object3D();
+
+				camBox.position.y = 1.8;
+
+				camBox.add( camera );
+				scene.add( camBox );
+
+				room = new THREE.Mesh(
+					new THREE.BoxGeometry( 6, 6, 6, 8, 8, 8 ),
+					new THREE.MeshBasicMaterial( { color: 0x404040, wireframe: true } )
+				);
+				room.position.y = 3;
+				scene.add( room );
+
+				scene.add( new THREE.HemisphereLight( 0x606060, 0x404040 ) );
+
+				var light = new THREE.DirectionalLight( 0xffffff );
+				light.position.set( 1, 1, 1 ).normalize();
+				scene.add( light );
+
+				var geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
+
+				for ( var i = 0; i < 200; i ++ ) {
+
+					var object = new THREE.Mesh(
+						geometry,
+						new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } )
+					);
+
+					object.position.x = Math.random() * 4 - 2;
+					object.position.y = Math.random() * 4 - 2;
+					object.position.z = Math.random() * 4 - 2;
+
+					object.rotation.x = Math.random() * 2 * Math.PI;
+					object.rotation.y = Math.random() * 2 * Math.PI;
+					object.rotation.z = Math.random() * 2 * Math.PI;
+
+					object.scale.x = Math.random() + 0.5;
+					object.scale.y = Math.random() + 0.5;
+					object.scale.z = Math.random() + 0.5;
+
+					object.userData.velocity = new THREE.Vector3();
+					object.userData.velocity.x = Math.random() * 0.01 - 0.005;
+					object.userData.velocity.y = Math.random() * 0.01 - 0.005;
+					object.userData.velocity.z = Math.random() * 0.01 - 0.005;
+
+					room.add( object );
+
+				}
+
+				renderer = new THREE.WebGLRenderer( { antialias: true } );
+				renderer.setPixelRatio( window.devicePixelRatio );
+				renderer.setSize( window.innerWidth, window.innerHeight );
+				container.appendChild( renderer.domElement );
+
+				renderer.vr.enabled = true;
+
+				controller = new THREE.GearVRController();
+				camBox.position.y = 1.8;
+				controller.setHand( 'right' );
+				camBox.add( controller );
+
+				var skyBox = {
+					front: 'textures/cube/Bridge2/posz.jpg',
+					back: 'textures/cube/Bridge2/negz.jpg',
+					left: 'textures/cube/Bridge2/posx.jpg',
+					right: 'textures/cube/Bridge2/negx.jpg',
+					up: 'textures/cube/Bridge2/posy.jpg',
+					down: 'textures/cube/Bridge2/negy.jpg'
+				};
+
+				if ( 'SamsungChangeSky' in window ) {
+
+					controller.setSkyBox( skyBox );
+
+				}
+
+				var MTL = new THREE.MTLLoader();
+
+				MTL.setPath( 'models/obj/gear_vr_controller/' );
+				MTL.load( 'gear_vr_controller.mtl', function ( materials ) {
+
+					materials.preload();
+
+					var OBJ = new THREE.OBJLoader();
+					OBJ.setMaterials( materials );
+					OBJ.setPath( 'models/obj/gear_vr_controller/' );
+
+					OBJ.load( 'gear_vr_controller.obj', function ( obj ) {
+
+						obj.translateZ( - 0.03 );
+						controller.add( obj );
+
+					} );
+
+				} );
+
+				WEBVR.getVRDisplay( function ( display ) {
+
+					renderer.vr.setDevice( display );
+
+					document.body.appendChild( WEBVR.getButton( display, renderer.domElement ) );
+
+				} );
+
+				window.addEventListener( 'resize', onWindowResize, false );
+
+			}
+
+			function onWindowResize() {
+
+				camera.aspect = window.innerWidth / window.innerHeight;
+				camera.updateProjectionMatrix();
+
+				renderer.setSize( window.innerWidth, window.innerHeight );
+
+			}
+
+			function animate() {
+
+				renderer.animate( render );
+
+			}
+
+			function render() {
+
+				var delta = clock.getDelta() * 60;
+
+				controller.update();
+
+				for ( var i = 0; i < room.children.length; i ++ ) {
+
+					var cube = room.children[ i ];
+
+					if ( cube.geometry instanceof THREE.BoxGeometry === false ) continue;
+
+					if ( cube.position.x < - 3 || cube.position.x > 3 ) {
+
+						cube.position.x = THREE.Math.clamp( cube.position.x, - 3, 3 );
+						cube.userData.velocity.x = - cube.userData.velocity.x;
+
+					}
+
+					if ( cube.position.y < - 3 || cube.position.y > 3 ) {
+
+						cube.position.y = THREE.Math.clamp( cube.position.y, - 3, 3 );
+						cube.userData.velocity.y = - cube.userData.velocity.y;
+
+					}
+
+					if ( cube.position.z < - 3 || cube.position.z > 3 ) {
+
+						cube.position.z = THREE.Math.clamp( cube.position.z, - 3, 3 );
+						cube.userData.velocity.z = - cube.userData.velocity.z;
+
+					}
+
+					cube.rotation.x += 0.01 * delta;
+
+				}
+
+				renderer.render( scene, camera );
+
+			}
+
+		</script>
+	</body>
+</html>