Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
189e6c89
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,发现更多精彩内容 >>
提交
189e6c89
编写于
4月 10, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Wrong offset.
上级
04bb63d2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
2 addition
and
2 deletion
+2
-2
build/Three.js
build/Three.js
+1
-1
src/core/Projector.js
src/core/Projector.js
+1
-1
未找到文件。
build/Three.js
浏览文件 @
189e6c89
...
...
@@ -73,7 +73,7 @@ h.positionScreen.copy(h.positionWorld),C.multiplyVector4(h.positionScreen),h.pos
R
.
doubleSided
||
i
!=
R
.
flipSided
)
ia
=
m
[
p
]
=
m
[
p
]
||
new
THREE
.
RenderableFace3
,
p
++
,
k
=
ia
,
k
.
v1
.
copy
(
E
),
k
.
v2
.
copy
(
aa
),
k
.
v3
.
copy
(
ea
);
else
continue
;
else
continue
;
else
if
(
A
instanceof
THREE
.
Face4
)
if
(
E
=
j
[
A
.
a
],
aa
=
j
[
A
.
b
],
ea
=
j
[
A
.
c
],
ia
=
j
[
A
.
d
],
E
.
visible
&&
aa
.
visible
&&
ea
.
visible
&&
ia
.
visible
)
if
(
i
=
0
>
(
ia
.
positionScreen
.
x
-
E
.
positionScreen
.
x
)
*
(
aa
.
positionScreen
.
y
-
E
.
positionScreen
.
y
)
-
(
ia
.
positionScreen
.
y
-
E
.
positionScreen
.
y
)
*
(
aa
.
positionScreen
.
x
-
E
.
positionScreen
.
x
)
||
0
>
(
aa
.
positionScreen
.
x
-
ea
.
positionScreen
.
x
)
*
(
ia
.
positionScreen
.
y
-
ea
.
positionScreen
.
y
)
-
(
aa
.
positionScreen
.
y
-
ea
.
positionScreen
.
y
)
*
(
ia
.
positionScreen
.
x
-
ea
.
positionScreen
.
x
),
R
.
doubleSided
||
i
!=
R
.
flipSided
)
oa
=
r
[
o
]
=
r
[
o
]
||
new
THREE
.
RenderableFace4
,
o
++
,
k
=
oa
,
k
.
v1
.
copy
(
E
),
k
.
v2
.
copy
(
aa
),
k
.
v3
.
copy
(
ea
),
k
.
v4
.
copy
(
ia
);
else
continue
;
else
continue
;
k
.
normalWorld
.
copy
(
A
.
normal
);
!
i
&&
(
R
.
flipSided
||
R
.
doubleSided
)
&&
k
.
normalWorld
.
negate
();
ba
.
multiplyVector3
(
k
.
normalWorld
);
k
.
centroidWorld
.
copy
(
A
.
centroid
);
$
.
multiplyVector3
(
k
.
centroidWorld
);
k
.
centroidScreen
.
copy
(
k
.
centroidWorld
);
C
.
multiplyVector3
(
k
.
centroidScreen
);
ea
=
A
.
vertexNormals
;
for
(
E
=
0
,
aa
=
ea
.
length
;
E
<
aa
;
E
++
)
ia
=
k
.
vertexNormalsWorld
[
E
],
ia
.
copy
(
ea
[
E
]),
!
i
&&
(
R
.
flipSided
||
R
.
doubleSided
)
&&
ia
.
negate
(),
ba
.
multiplyVector3
(
ia
);
for
(
E
=
0
,
aa
=
Ga
.
length
;
E
<
aa
;
E
++
)
if
(
oa
=
Ga
[
E
][
V
])
for
(
ea
=
0
,
ia
=
oa
.
length
;
ea
<
ia
;
ea
++
)
k
.
uvs
[
E
][
ea
]
=
oa
[
ea
];
k
.
material
=
R
.
material
;
k
.
faceMaterial
=
null
!==
A
.
materialIndex
?
Z
[
A
.
materialIndex
]:
null
;
k
.
z
=
k
.
centroidScreen
.
z
;
w
.
elements
.
push
(
k
)}}
else
if
(
R
instanceof
THREE
.
Line
){
G
.
multiply
(
C
,
$
);
V
=
R
.
geometry
.
vertices
;
E
=
b
();
E
.
positionScreen
.
copy
(
V
[
0
].
position
);
G
.
multiplyVector4
(
E
.
positionScreen
);
$
=
R
.
type
===
THREE
.
LinePieces
?
2
:
1
;
for
(
B
=
1
,
A
=
V
.
length
;
B
<
A
;
B
++
)
if
(
E
=
b
(),
E
.
positionScreen
.
copy
(
V
[
B
].
position
),
G
.
multiplyVector4
(
E
.
positionScreen
),
0
===
B
%
$
&&
(
aa
=
j
[
l
-
2
],
N
.
copy
(
E
.
positionScreen
),
P
.
copy
(
aa
.
positionScreen
),
d
(
N
,
P
)))
N
.
multiplyScalar
(
1
/
N
.
w
),
P
.
multiplyScalar
(
1
/
P
.
w
),
Z
=
s
[
q
]
=
s
[
q
]
||
new
THREE
.
RenderableLine
,
q
++
,
n
=
Z
,
n
.
v1
.
positionScreen
.
copy
(
N
),
n
.
v2
.
positionScreen
.
copy
(
P
),
n
.
z
=
Math
.
max
(
N
.
z
,
P
.
z
),
n
.
material
=
R
.
material
,
w
.
elements
.
push
(
n
)}
for
(
a
=
0
,
z
=
w
.
sprites
.
length
;
a
<
z
;
a
++
)
if
(
R
=
w
.
sprites
[
a
].
object
,
$
=
R
.
matrixWorld
,
$
=
R
.
type
===
THREE
.
LinePieces
?
2
:
1
;
for
(
B
=
1
,
A
=
V
.
length
;
B
<
A
;
B
++
)
if
(
E
=
b
(),
E
.
positionScreen
.
copy
(
V
[
B
].
position
),
G
.
multiplyVector4
(
E
.
positionScreen
),
!
(
0
<
(
B
+
1
)
%
$
)
&&
(
aa
=
j
[
l
-
2
],
N
.
copy
(
E
.
positionScreen
),
P
.
copy
(
aa
.
positionScreen
),
d
(
N
,
P
)))
N
.
multiplyScalar
(
1
/
N
.
w
),
P
.
multiplyScalar
(
1
/
P
.
w
),
Z
=
s
[
q
]
=
s
[
q
]
||
new
THREE
.
RenderableLine
,
q
++
,
n
=
Z
,
n
.
v1
.
positionScreen
.
copy
(
N
),
n
.
v2
.
positionScreen
.
copy
(
P
),
n
.
z
=
Math
.
max
(
N
.
z
,
P
.
z
),
n
.
material
=
R
.
material
,
w
.
elements
.
push
(
n
)}
for
(
a
=
0
,
z
=
w
.
sprites
.
length
;
a
<
z
;
a
++
)
if
(
R
=
w
.
sprites
[
a
].
object
,
$
=
R
.
matrixWorld
,
R
instanceof
THREE
.
Particle
&&
(
F
.
set
(
$
.
n14
,
$
.
n24
,
$
.
n34
,
1
),
C
.
multiplyVector4
(
F
),
F
.
z
/=
F
.
w
,
0
<
F
.
z
&&
1
>
F
.
z
))
g
=
t
[
v
]
=
t
[
v
]
||
new
THREE
.
RenderableParticle
,
v
++
,
u
=
g
,
u
.
x
=
F
.
x
/
F
.
w
,
u
.
y
=
F
.
y
/
F
.
w
,
u
.
z
=
F
.
z
,
u
.
rotation
=
R
.
rotation
.
z
,
u
.
scale
.
x
=
R
.
scale
.
x
*
Math
.
abs
(
u
.
x
-
(
F
.
x
+
e
.
projectionMatrix
.
n11
)
/
(
F
.
w
+
e
.
projectionMatrix
.
n14
)),
u
.
scale
.
y
=
R
.
scale
.
y
*
Math
.
abs
(
u
.
y
-
(
F
.
y
+
e
.
projectionMatrix
.
n22
)
/
(
F
.
w
+
e
.
projectionMatrix
.
n24
)),
u
.
material
=
R
.
material
,
w
.
elements
.
push
(
u
);
f
&&
w
.
elements
.
sort
(
c
);
return
w
}};
THREE
.
Quaternion
=
function
(
a
,
b
,
c
,
d
){
this
.
x
=
a
||
0
;
this
.
y
=
b
||
0
;
this
.
z
=
c
||
0
;
this
.
w
=
void
0
!==
d
?
d
:
1
};
THREE
.
Quaternion
.
prototype
=
{
constructor
:
THREE
.
Quaternion
,
set
:
function
(
a
,
b
,
c
,
d
){
this
.
x
=
a
;
this
.
y
=
b
;
this
.
z
=
c
;
this
.
w
=
d
;
return
this
},
copy
:
function
(
a
){
this
.
x
=
a
.
x
;
this
.
y
=
a
.
y
;
this
.
z
=
a
.
z
;
this
.
w
=
a
.
w
;
return
this
},
setFromEuler
:
function
(
a
){
var
b
=
Math
.
PI
/
360
,
c
=
a
.
x
*
b
,
d
=
a
.
y
*
b
,
e
=
a
.
z
*
b
,
a
=
Math
.
cos
(
d
),
d
=
Math
.
sin
(
d
),
b
=
Math
.
cos
(
-
e
),
e
=
Math
.
sin
(
-
e
),
f
=
Math
.
cos
(
c
),
c
=
Math
.
sin
(
c
),
g
=
a
*
b
,
h
=
d
*
e
;
this
.
w
=
g
*
f
-
h
*
c
;
this
.
x
=
g
*
c
+
h
*
f
;
this
.
y
=
d
*
b
*
f
+
a
*
e
*
c
;
this
.
z
=
a
*
e
*
f
-
d
*
b
*
c
;
return
this
},
setFromAxisAngle
:
function
(
a
,
b
){
var
c
=
b
/
2
,
d
=
Math
.
sin
(
c
);
...
...
src/core/Projector.js
浏览文件 @
189e6c89
...
...
@@ -328,7 +328,7 @@ THREE.Projector = function() {
v1
.
positionScreen
.
copy
(
vertices
[
v
].
position
);
_projScreenobjectMatrixWorld
.
multiplyVector4
(
v1
.
positionScreen
);
if
(
v
%
step
!==
0
)
continue
;
if
(
(
v
+
1
)
%
step
>
0
)
continue
;
v2
=
_vertexPool
[
_vertexCount
-
2
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录