Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
f6f4d8d3
T
three.js
项目概览
车家大少爷
/
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,发现更多精彩内容 >>
提交
f6f4d8d3
编写于
8月 29, 2018
作者:
0
06wj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add Triangle.uvIntersection
上级
239627a2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
35 deletion
+27
-35
src/math/Triangle.js
src/math/Triangle.js
+24
-0
src/objects/Mesh.js
src/objects/Mesh.js
+2
-18
src/objects/Sprite.js
src/objects/Sprite.js
+1
-17
未找到文件。
src/math/Triangle.js
浏览文件 @
f6f4d8d3
import
{
Vector2
}
from
'
./Vector2.js
'
;
import
{
Vector3
}
from
'
./Vector3.js
'
;
/**
...
...
@@ -94,6 +95,29 @@ Object.assign( Triangle, {
}(),
uvIntersection
:
function
()
{
var
barycoord
=
new
Vector3
();
var
v1
=
new
Vector2
();
var
v2
=
new
Vector2
();
var
v3
=
new
Vector2
();
return
function
uvIntersection
(
point
,
p1
,
p2
,
p3
,
uv1
,
uv2
,
uv3
,
result
)
{
this
.
getBarycoord
(
point
,
p1
,
p2
,
p3
,
barycoord
);
v1
.
copy
(
uv1
).
multiplyScalar
(
barycoord
.
x
);
v2
.
copy
(
uv2
).
multiplyScalar
(
barycoord
.
y
);
v3
.
copy
(
uv3
).
multiplyScalar
(
barycoord
.
z
);
v1
.
add
(
v2
).
add
(
v3
);
return
result
.
copy
(
v1
);
};
}(),
containsPoint
:
function
()
{
var
v1
=
new
Vector3
();
...
...
src/objects/Mesh.js
浏览文件 @
f6f4d8d3
...
...
@@ -140,25 +140,9 @@ Mesh.prototype = Object.assign( Object.create( Object3D.prototype ), {
var
uvB
=
new
Vector2
();
var
uvC
=
new
Vector2
();
var
barycoord
=
new
Vector3
();
var
intersectionPoint
=
new
Vector3
();
var
intersectionPointWorld
=
new
Vector3
();
function
uvIntersection
(
point
,
p1
,
p2
,
p3
,
uv1
,
uv2
,
uv3
)
{
Triangle
.
getBarycoord
(
point
,
p1
,
p2
,
p3
,
barycoord
);
uv1
.
multiplyScalar
(
barycoord
.
x
);
uv2
.
multiplyScalar
(
barycoord
.
y
);
uv3
.
multiplyScalar
(
barycoord
.
z
);
uv1
.
add
(
uv2
).
add
(
uv3
);
return
uv1
.
clone
();
}
function
checkIntersection
(
object
,
material
,
raycaster
,
ray
,
pA
,
pB
,
pC
,
point
)
{
var
intersect
;
...
...
@@ -206,7 +190,7 @@ Mesh.prototype = Object.assign( Object.create( Object3D.prototype ), {
uvB
.
fromBufferAttribute
(
uv
,
b
);
uvC
.
fromBufferAttribute
(
uv
,
c
);
intersection
.
uv
=
uvIntersection
(
intersectionPoint
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
);
intersection
.
uv
=
Triangle
.
uvIntersection
(
intersectionPoint
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
,
new
Vector2
()
);
}
...
...
@@ -448,7 +432,7 @@ Mesh.prototype = Object.assign( Object.create( Object3D.prototype ), {
uvB
.
copy
(
uvs_f
[
1
]
);
uvC
.
copy
(
uvs_f
[
2
]
);
intersection
.
uv
=
uvIntersection
(
intersectionPoint
,
fvA
,
fvB
,
fvC
,
uvA
,
uvB
,
uvC
);
intersection
.
uv
=
Triangle
.
uvIntersection
(
intersectionPoint
,
fvA
,
fvB
,
fvC
,
uvA
,
uvB
,
uvC
,
new
Vector2
()
);
}
...
...
src/objects/Sprite.js
浏览文件 @
f6f4d8d3
...
...
@@ -98,22 +98,6 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
}
var
barycoord
=
new
Vector3
();
function
uvIntersection
(
point
,
p1
,
p2
,
p3
,
uv1
,
uv2
,
uv3
)
{
Triangle
.
getBarycoord
(
point
,
p1
,
p2
,
p3
,
barycoord
);
uv1
.
multiplyScalar
(
barycoord
.
x
);
uv2
.
multiplyScalar
(
barycoord
.
y
);
uv3
.
multiplyScalar
(
barycoord
.
z
);
uv1
.
add
(
uv2
).
add
(
uv3
);
return
uv1
.
clone
();
}
return
function
raycast
(
raycaster
,
intersects
)
{
worldScale
.
setFromMatrixScale
(
this
.
matrixWorld
);
...
...
@@ -165,7 +149,7 @@ Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), {
distance
:
distance
,
point
:
intersectPoint
.
clone
(),
uv
:
uvIntersection
(
intersectPoint
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
),
uv
:
Triangle
.
uvIntersection
(
intersectPoint
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
,
new
Vector2
()
),
face
:
null
,
object
:
this
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录