Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
ef93c0d2
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ef93c0d2
编写于
10月 20, 2014
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplified VRControls.
上级
e79994e5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
58 deletion
+45
-58
examples/js/controls/VRControls.js
examples/js/controls/VRControls.js
+45
-58
未找到文件。
examples/js/controls/VRControls.js
浏览文件 @
ef93c0d2
/**
* @author dmarcos / https://github.com/dmarcos
* @author mrdoob / http://mrdoob.com
*/
THREE
.
VRControls
=
function
(
camera
,
done
)
{
THREE
.
VRControls
=
function
(
object
,
done
)
{
this
.
_camera
=
camera
;
this
.
_vrState
=
{
hmd
:
{
orientation
:
new
THREE
.
Quaternion
()
}
};
var
vrInput
;
var
onVRDevices
=
function
(
devices
)
{
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
var
device
=
devices
[
i
];
if
(
device
instanceof
PositionSensorVRDevice
)
{
vrInput
=
devices
[
i
];
return
;
// We keep the first we encounter
this
.
_init
=
function
()
{
var
self
=
this
;
if
(
!
navigator
.
mozGetVRDevices
&&
!
navigator
.
getVRDevices
)
{
if
(
done
)
{
done
(
"
Your browser is not VR Ready
"
);
}
return
;
}
if
(
navigator
.
getVRDevices
)
{
navigator
.
getVRDevices
().
then
(
gotVRDevices
);
}
else
{
navigator
.
mozGetVRDevices
(
gotVRDevices
);
}
function
gotVRDevices
(
devices
)
{
var
vrInput
;
var
error
;
for
(
var
i
=
0
;
i
<
devices
.
length
;
++
i
)
{
if
(
devices
[
i
]
instanceof
PositionSensorVRDevice
)
{
vrInput
=
devices
[
i
]
self
.
_vrInput
=
vrInput
;
break
;
// We keep the first we encounter
}
}
if
(
done
)
{
if
(
!
vrInput
)
{
error
=
'
HMD not available
'
;
}
done
(
error
);
}
}
};
this
.
_init
();
if
(
done
!==
undefined
)
{
done
(
'
HMD not available
'
);
this
.
update
=
function
()
{
var
camera
=
this
.
_camera
;
var
quat
;
var
vrState
=
this
.
getVRState
();
if
(
!
vrState
)
{
return
;
}
// Applies head rotation from sensors data.
if
(
camera
)
{
camera
.
quaternion
.
copy
(
vrState
.
hmd
.
orientation
);
}
};
this
.
getVRState
=
function
()
{
var
vrInput
=
this
.
_vrInput
;
var
vrState
=
this
.
_vrState
;
var
orientation
;
if
(
!
vrInput
)
{
return
null
;
if
(
navigator
.
getVRDevices
!==
undefined
)
{
navigator
.
getVRDevices
().
then
(
onVRDevices
);
}
else
if
(
navigator
.
getVRDevices
!==
undefined
)
{
navigator
.
mozGetVRDevices
(
onVRDevices
);
}
else
if
(
done
!==
undefined
)
{
done
(
'
Your browser is not VR Ready
'
);
}
this
.
update
=
function
()
{
if
(
vrInput
===
undefined
)
return
;
var
orientation
=
vrInput
.
getState
().
orientation
;
if
(
orientation
!==
null
)
{
object
.
quaternion
.
set
(
orientation
.
x
,
orientation
.
y
,
orientation
.
z
,
orientation
.
w
);
}
// If orientation is not available we return the identity quaternion (no rotation)
orientation
=
vrInput
.
getState
().
orientation
||
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
1
};
vrState
.
hmd
.
orientation
.
set
(
orientation
.
x
,
orientation
.
y
,
orientation
.
z
,
orientation
.
w
);
return
vrState
;
};
};
\ No newline at end of file
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录