Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
c986eef0
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,发现更多精彩内容 >>
提交
c986eef0
编写于
3月 17, 2011
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Compiled lib with new Cylinder.
上级
4d711ae4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
57 addition
and
47 deletion
+57
-47
build/Three.js
build/Three.js
+1
-1
build/custom/ThreeExtras.js
build/custom/ThreeExtras.js
+1
-1
src/extras/geometries/Cylinder.js
src/extras/geometries/Cylinder.js
+55
-45
未找到文件。
build/Three.js
浏览文件 @
c986eef0
...
...
@@ -336,7 +336,7 @@ za*X+ca,J+za*(X+1)+ca,J+1+za*(X+1)+ca,J+1+za*X+ca,null,N));t.uvs.push([new THREE
k
[
B
]);
this
.
sides
.
px
&&
m
(
"
z
"
,
"
y
"
,
1
*
j
,
-
1
,
b
,
c
,
-
w
,
this
.
materials
[
0
]);
this
.
sides
.
nx
&&
m
(
"
z
"
,
"
y
"
,
-
1
*
j
,
-
1
,
b
,
c
,
w
,
this
.
materials
[
1
]);
this
.
sides
.
py
&&
m
(
"
x
"
,
"
z
"
,
1
*
j
,
1
,
a
,
b
,
u
,
this
.
materials
[
2
]);
this
.
sides
.
ny
&&
m
(
"
x
"
,
"
z
"
,
1
*
j
,
-
1
,
a
,
b
,
-
u
,
this
.
materials
[
3
]);
this
.
sides
.
pz
&&
m
(
"
x
"
,
"
y
"
,
1
*
j
,
-
1
,
a
,
c
,
o
,
this
.
materials
[
4
]);
this
.
sides
.
nz
&&
m
(
"
x
"
,
"
y
"
,
-
1
*
j
,
-
1
,
a
,
c
,
-
o
,
this
.
materials
[
5
]);(
function
(){
for
(
var
F
=
[],
x
=
[],
G
=
0
,
y
=
t
.
vertices
.
length
;
G
<
y
;
G
++
){
for
(
var
L
=
t
.
vertices
[
G
],
J
=!
1
,
Y
=
0
,
N
=
F
.
length
;
Y
<
N
;
Y
++
){
var
f
=
F
[
Y
];
if
(
L
.
position
.
x
==
f
.
position
.
x
&&
L
.
position
.
y
==
f
.
position
.
y
&&
L
.
position
.
z
==
f
.
position
.
z
){
x
[
G
]
=
Y
;
J
=!
0
;
break
}}
if
(
!
J
){
x
[
G
]
=
F
.
length
;
F
.
push
(
new
THREE
.
Vertex
(
L
.
position
.
clone
()))}}
G
=
0
;
for
(
y
=
t
.
faces
.
length
;
G
<
y
;
G
++
){
L
=
t
.
faces
[
G
];
L
.
a
=
x
[
L
.
a
];
L
.
b
=
x
[
L
.
b
];
L
.
c
=
x
[
L
.
c
];
L
.
d
=
x
[
L
.
d
]}
t
.
vertices
=
F
})();
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cube
.
prototype
=
new
THREE
.
Geometry
;
Cube
.
prototype
.
constructor
=
Cube
;
var
Cylinder
=
function
(
a
,
c
,
b
,
d
,
e
,
g
){
function
h
(
t
,
w
,
u
){
j
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
t
,
w
,
u
)))}
THREE
.
Geometry
.
call
(
this
);
var
j
=
this
,
k
=
Math
.
PI
,
m
=
d
/
2
;
for
(
d
=
0
;
d
<
a
;
d
++
)
h
(
Math
.
sin
(
2
*
k
*
d
/
a
)
*
c
,
Math
.
cos
(
2
*
k
*
d
/
a
)
*
c
,
-
m
);
for
(
d
=
0
;
d
<
a
;
d
++
)
h
(
Math
.
sin
(
2
*
k
*
d
/
a
)
*
b
,
Math
.
cos
(
2
*
k
*
d
/
a
)
*
b
,
m
);
for
(
d
=
0
;
d
<
a
;
d
++
)
j
.
faces
.
push
(
new
THREE
.
Face4
(
d
,
d
+
a
,
a
+
(
d
+
1
)
%
a
,(
d
+
1
)
%
a
));
if
(
b
>
0
){
h
(
0
,
0
,
-
m
-
(
g
||
0
));
for
(
d
=
a
;
d
<
a
+
a
/
2
;
d
++
)
j
.
faces
.
push
(
new
THREE
.
Face4
(
2
*
a
,(
2
*
d
-
2
*
a
)
%
a
,(
2
*
d
-
2
*
a
+
1
)
%
a
,(
2
*
d
-
2
*
a
+
2
)
%
a
))}
if
(
c
>
0
){
h
(
0
,
0
,
m
+
(
e
||
0
));
for
(
d
=
a
+
a
/
2
;
d
<
2
*
a
;
d
++
)
j
.
faces
.
push
(
new
THREE
.
Face4
(
(
2
*
d
-
2
*
a
+
2
)
%
a
+
a
,(
2
*
d
-
2
*
a
+
1
)
%
a
+
a
,(
2
*
d
-
2
*
a
)
%
a
+
a
,
2
*
a
+
1
))}
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cylinder
.
prototype
=
new
THREE
.
Geometry
;
Cylinder
.
prototype
.
constructor
=
Cylinder
;
for
(
d
=
a
+
a
/
2
;
d
<
2
*
a
;
d
++
)
j
.
faces
.
push
(
new
THREE
.
Face4
(
2
*
a
+
1
,(
2
*
d
-
2
*
a
+
2
)
%
a
+
a
,(
2
*
d
-
2
*
a
+
1
)
%
a
+
a
,(
2
*
d
-
2
*
a
)
%
a
+
a
))}
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cylinder
.
prototype
=
new
THREE
.
Geometry
;
Cylinder
.
prototype
.
constructor
=
Cylinder
;
var
Icosahedron
=
function
(
a
){
function
c
(
w
,
u
,
o
){
var
v
=
Math
.
sqrt
(
w
*
w
+
u
*
u
+
o
*
o
);
return
e
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
w
/
v
,
u
/
v
,
o
/
v
)))
-
1
}
function
b
(
w
,
u
,
o
,
v
){
v
.
faces
.
push
(
new
THREE
.
Face3
(
w
,
u
,
o
))}
function
d
(
w
,
u
){
var
o
=
e
.
vertices
[
w
].
position
,
v
=
e
.
vertices
[
u
].
position
;
return
c
((
o
.
x
+
v
.
x
)
/
2
,(
o
.
y
+
v
.
y
)
/
2
,(
o
.
z
+
v
.
z
)
/
2
)}
var
e
=
this
,
g
=
new
THREE
.
Geometry
,
h
;
this
.
subdivisions
=
a
||
0
;
THREE
.
Geometry
.
call
(
this
);
a
=
(
1
+
Math
.
sqrt
(
5
))
/
2
;
c
(
-
1
,
a
,
0
);
c
(
1
,
a
,
0
);
c
(
-
1
,
-
a
,
0
);
c
(
1
,
-
a
,
0
);
c
(
0
,
-
1
,
a
);
c
(
0
,
1
,
a
);
c
(
0
,
-
1
,
-
a
);
c
(
0
,
1
,
-
a
);
c
(
a
,
0
,
-
1
);
c
(
a
,
0
,
1
);
c
(
-
a
,
0
,
-
1
);
c
(
-
a
,
0
,
1
);
b
(
0
,
11
,
5
,
g
);
b
(
0
,
5
,
1
,
g
);
b
(
0
,
1
,
7
,
g
);
b
(
0
,
7
,
10
,
g
);
b
(
0
,
10
,
11
,
g
);
b
(
1
,
5
,
9
,
g
);
b
(
5
,
11
,
4
,
g
);
b
(
11
,
10
,
2
,
g
);
b
(
10
,
7
,
6
,
g
);
b
(
7
,
1
,
8
,
g
);
b
(
3
,
9
,
4
,
g
);
b
(
3
,
4
,
2
,
g
);
b
(
3
,
2
,
6
,
g
);
b
(
3
,
6
,
8
,
g
);
b
(
3
,
8
,
9
,
g
);
b
(
4
,
9
,
5
,
g
);
b
(
2
,
4
,
11
,
g
);
b
(
6
,
2
,
10
,
g
);
b
(
8
,
6
,
7
,
g
);
b
(
9
,
8
,
1
,
g
);
for
(
a
=
0
;
a
<
this
.
subdivisions
;
a
++
){
h
=
new
THREE
.
Geometry
;
for
(
var
j
in
g
.
faces
){
var
k
=
d
(
g
.
faces
[
j
].
a
,
g
.
faces
[
j
].
b
),
m
=
d
(
g
.
faces
[
j
].
b
,
g
.
faces
[
j
].
c
),
t
=
d
(
g
.
faces
[
j
].
c
,
g
.
faces
[
j
].
a
);
b
(
g
.
faces
[
j
].
a
,
k
,
t
,
h
);
b
(
g
.
faces
[
j
].
b
,
m
,
k
,
h
);
b
(
g
.
faces
[
j
].
c
,
t
,
m
,
h
);
b
(
k
,
m
,
t
,
h
)}
g
.
faces
=
h
.
faces
}
e
.
faces
=
g
.
faces
;
delete
g
;
delete
h
;
this
.
computeCentroids
();
this
.
computeFaceNormals
();
this
.
computeVertexNormals
()};
Icosahedron
.
prototype
=
new
THREE
.
Geometry
;
Icosahedron
.
prototype
.
constructor
=
Icosahedron
;
...
...
build/custom/ThreeExtras.js
浏览文件 @
c986eef0
...
...
@@ -44,7 +44,7 @@ var Cube=function(a,d,b,c,g,e,f,h,j){function l(z,w,x,o,D,A,I,C){var E,F,J=c||1,
l
(
"
z
"
,
"
y
"
,
1
*
h
,
-
1
,
b
,
d
,
-
t
,
this
.
materials
[
0
]);
this
.
sides
.
nx
&&
l
(
"
z
"
,
"
y
"
,
-
1
*
h
,
-
1
,
b
,
d
,
t
,
this
.
materials
[
1
]);
this
.
sides
.
py
&&
l
(
"
x
"
,
"
z
"
,
1
*
h
,
1
,
a
,
b
,
n
,
this
.
materials
[
2
]);
this
.
sides
.
ny
&&
l
(
"
x
"
,
"
z
"
,
1
*
h
,
-
1
,
a
,
b
,
-
n
,
this
.
materials
[
3
]);
this
.
sides
.
pz
&&
l
(
"
x
"
,
"
y
"
,
1
*
h
,
-
1
,
a
,
d
,
m
,
this
.
materials
[
4
]);
this
.
sides
.
nz
&&
l
(
"
x
"
,
"
y
"
,
-
1
*
h
,
-
1
,
a
,
d
,
-
m
,
this
.
materials
[
5
]);(
function
(){
for
(
var
z
=
[],
w
=
[],
x
=
0
,
o
=
k
.
vertices
.
length
;
x
<
o
;
x
++
){
for
(
var
D
=
k
.
vertices
[
x
],
A
=!
1
,
I
=
0
,
C
=
z
.
length
;
I
<
C
;
I
++
){
var
E
=
z
[
I
];
if
(
D
.
position
.
x
==
E
.
position
.
x
&&
D
.
position
.
y
==
E
.
position
.
y
&&
D
.
position
.
z
==
E
.
position
.
z
){
w
[
x
]
=
I
;
A
=!
0
;
break
}}
if
(
!
A
){
w
[
x
]
=
z
.
length
;
z
.
push
(
new
THREE
.
Vertex
(
D
.
position
.
clone
()))}}
x
=
0
;
for
(
o
=
k
.
faces
.
length
;
x
<
o
;
x
++
){
D
=
k
.
faces
[
x
];
D
.
a
=
w
[
D
.
a
];
D
.
b
=
w
[
D
.
b
];
D
.
c
=
w
[
D
.
c
];
D
.
d
=
w
[
D
.
d
]}
k
.
vertices
=
z
})();
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cube
.
prototype
=
new
THREE
.
Geometry
;
Cube
.
prototype
.
constructor
=
Cube
;
var
Cylinder
=
function
(
a
,
d
,
b
,
c
,
g
,
e
){
function
f
(
k
,
t
,
n
){
h
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
k
,
t
,
n
)))}
THREE
.
Geometry
.
call
(
this
);
var
h
=
this
,
j
=
Math
.
PI
,
l
=
c
/
2
;
for
(
c
=
0
;
c
<
a
;
c
++
)
f
(
Math
.
sin
(
2
*
j
*
c
/
a
)
*
d
,
Math
.
cos
(
2
*
j
*
c
/
a
)
*
d
,
-
l
);
for
(
c
=
0
;
c
<
a
;
c
++
)
f
(
Math
.
sin
(
2
*
j
*
c
/
a
)
*
b
,
Math
.
cos
(
2
*
j
*
c
/
a
)
*
b
,
l
);
for
(
c
=
0
;
c
<
a
;
c
++
)
h
.
faces
.
push
(
new
THREE
.
Face4
(
c
,
c
+
a
,
a
+
(
c
+
1
)
%
a
,(
c
+
1
)
%
a
));
if
(
b
>
0
){
f
(
0
,
0
,
-
l
-
(
e
||
0
));
for
(
c
=
a
;
c
<
a
+
a
/
2
;
c
++
)
h
.
faces
.
push
(
new
THREE
.
Face4
(
2
*
a
,(
2
*
c
-
2
*
a
)
%
a
,(
2
*
c
-
2
*
a
+
1
)
%
a
,(
2
*
c
-
2
*
a
+
2
)
%
a
))}
if
(
d
>
0
){
f
(
0
,
0
,
l
+
(
g
||
0
));
for
(
c
=
a
+
a
/
2
;
c
<
2
*
a
;
c
++
)
h
.
faces
.
push
(
new
THREE
.
Face4
(
(
2
*
c
-
2
*
a
+
2
)
%
a
+
a
,(
2
*
c
-
2
*
a
+
1
)
%
a
+
a
,(
2
*
c
-
2
*
a
)
%
a
+
a
,
2
*
a
+
1
))}
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cylinder
.
prototype
=
new
THREE
.
Geometry
;
Cylinder
.
prototype
.
constructor
=
Cylinder
;
for
(
c
=
a
+
a
/
2
;
c
<
2
*
a
;
c
++
)
h
.
faces
.
push
(
new
THREE
.
Face4
(
2
*
a
+
1
,(
2
*
c
-
2
*
a
+
2
)
%
a
+
a
,(
2
*
c
-
2
*
a
+
1
)
%
a
+
a
,(
2
*
c
-
2
*
a
)
%
a
+
a
))}
this
.
computeCentroids
();
this
.
computeFaceNormals
()};
Cylinder
.
prototype
=
new
THREE
.
Geometry
;
Cylinder
.
prototype
.
constructor
=
Cylinder
;
var
Icosahedron
=
function
(
a
){
function
d
(
t
,
n
,
m
){
var
p
=
Math
.
sqrt
(
t
*
t
+
n
*
n
+
m
*
m
);
return
g
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
t
/
p
,
n
/
p
,
m
/
p
)))
-
1
}
function
b
(
t
,
n
,
m
,
p
){
p
.
faces
.
push
(
new
THREE
.
Face3
(
t
,
n
,
m
))}
function
c
(
t
,
n
){
var
m
=
g
.
vertices
[
t
].
position
,
p
=
g
.
vertices
[
n
].
position
;
return
d
((
m
.
x
+
p
.
x
)
/
2
,(
m
.
y
+
p
.
y
)
/
2
,(
m
.
z
+
p
.
z
)
/
2
)}
var
g
=
this
,
e
=
new
THREE
.
Geometry
,
f
;
this
.
subdivisions
=
a
||
0
;
THREE
.
Geometry
.
call
(
this
);
a
=
(
1
+
Math
.
sqrt
(
5
))
/
2
;
d
(
-
1
,
a
,
0
);
d
(
1
,
a
,
0
);
d
(
-
1
,
-
a
,
0
);
d
(
1
,
-
a
,
0
);
d
(
0
,
-
1
,
a
);
d
(
0
,
1
,
a
);
d
(
0
,
-
1
,
-
a
);
d
(
0
,
1
,
-
a
);
d
(
a
,
0
,
-
1
);
d
(
a
,
0
,
1
);
d
(
-
a
,
0
,
-
1
);
d
(
-
a
,
0
,
1
);
b
(
0
,
11
,
5
,
e
);
b
(
0
,
5
,
1
,
e
);
b
(
0
,
1
,
7
,
e
);
b
(
0
,
7
,
10
,
e
);
b
(
0
,
10
,
11
,
e
);
b
(
1
,
5
,
9
,
e
);
b
(
5
,
11
,
4
,
e
);
b
(
11
,
10
,
2
,
e
);
b
(
10
,
7
,
6
,
e
);
b
(
7
,
1
,
8
,
e
);
b
(
3
,
9
,
4
,
e
);
b
(
3
,
4
,
2
,
e
);
b
(
3
,
2
,
6
,
e
);
b
(
3
,
6
,
8
,
e
);
b
(
3
,
8
,
9
,
e
);
b
(
4
,
9
,
5
,
e
);
b
(
2
,
4
,
11
,
e
);
b
(
6
,
2
,
10
,
e
);
b
(
8
,
6
,
7
,
e
);
b
(
9
,
8
,
1
,
e
);
for
(
a
=
0
;
a
<
this
.
subdivisions
;
a
++
){
f
=
new
THREE
.
Geometry
;
for
(
var
h
in
e
.
faces
){
var
j
=
c
(
e
.
faces
[
h
].
a
,
e
.
faces
[
h
].
b
),
l
=
c
(
e
.
faces
[
h
].
b
,
e
.
faces
[
h
].
c
),
k
=
c
(
e
.
faces
[
h
].
c
,
e
.
faces
[
h
].
a
);
b
(
e
.
faces
[
h
].
a
,
j
,
k
,
f
);
b
(
e
.
faces
[
h
].
b
,
l
,
j
,
f
);
b
(
e
.
faces
[
h
].
c
,
k
,
l
,
f
);
b
(
j
,
l
,
k
,
f
)}
e
.
faces
=
f
.
faces
}
g
.
faces
=
e
.
faces
;
delete
e
;
delete
f
;
this
.
computeCentroids
();
this
.
computeFaceNormals
();
this
.
computeVertexNormals
()};
Icosahedron
.
prototype
=
new
THREE
.
Geometry
;
Icosahedron
.
prototype
.
constructor
=
Icosahedron
;
...
...
src/extras/geometries/Cylinder.js
浏览文件 @
c986eef0
/**
* @author kile / http://kile.stravaganza.org/
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
* @author fuzzthink
*/
var
Cylinder
=
function
(
numSegs
,
topRad
,
botRad
,
height
,
topOffset
,
botOffset
)
{
THREE
.
Geometry
.
call
(
this
);
THREE
.
Geometry
.
call
(
this
);
var
scope
=
this
,
i
,
pi
=
Math
.
PI
,
halfHeight
=
height
/
2
;
var
scope
=
this
,
i
,
pi
=
Math
.
PI
,
halfHeight
=
height
/
2
;
// Top circle vertices
// Top circle vertices
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
v
(
Math
.
sin
(
2
*
pi
*
i
/
numSegs
)
*
topRad
,
Math
.
cos
(
2
*
pi
*
i
/
numSegs
)
*
topRad
,
-
halfHeight
);
v
(
Math
.
sin
(
2
*
pi
*
i
/
numSegs
)
*
topRad
,
Math
.
cos
(
2
*
pi
*
i
/
numSegs
)
*
topRad
,
-
halfHeight
);
}
}
// Bottom circle vertices
// Bottom circle vertices
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
v
(
Math
.
sin
(
2
*
pi
*
i
/
numSegs
)
*
botRad
,
Math
.
cos
(
2
*
pi
*
i
/
numSegs
)
*
botRad
,
halfHeight
);
v
(
Math
.
sin
(
2
*
pi
*
i
/
numSegs
)
*
botRad
,
Math
.
cos
(
2
*
pi
*
i
/
numSegs
)
*
botRad
,
halfHeight
);
}
}
// Body faces
// Body faces
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
for
(
i
=
0
;
i
<
numSegs
;
i
++
)
{
f4
(
i
,
i
+
numSegs
,
numSegs
+
(
i
+
1
)
%
numSegs
,
(
i
+
1
)
%
numSegs
);
f4
(
i
,
i
+
numSegs
,
numSegs
+
(
i
+
1
)
%
numSegs
,
(
i
+
1
)
%
numSegs
);
}
}
// Bottom circle faces
// Bottom circle faces
if
(
botRad
>
0
)
{
if
(
botRad
>
0
)
{
v
(
0
,
0
,
-
halfHeight
-
(
botOffset
||
0
)
);
v
(
0
,
0
,
-
halfHeight
-
(
botOffset
||
0
)
);
for
(
i
=
numSegs
;
i
<
numSegs
+
(
numSegs
/
2
);
i
++
)
{
for
(
i
=
numSegs
;
i
<
numSegs
+
(
numSegs
/
2
);
i
++
)
{
f4
(
2
*
numSegs
,
(
2
*
i
-
2
*
numSegs
)
%
numSegs
,
(
2
*
i
-
2
*
numSegs
+
1
)
%
numSegs
,
(
2
*
i
-
2
*
numSegs
+
2
)
%
numSegs
);
f4
(
2
*
numSegs
,
(
2
*
i
-
2
*
numSegs
)
%
numSegs
,
(
2
*
i
-
2
*
numSegs
+
1
)
%
numSegs
,
(
2
*
i
-
2
*
numSegs
+
2
)
%
numSegs
);
}
}
}
}
// Top circle faces
// Top circle faces
if
(
topRad
>
0
)
{
if
(
topRad
>
0
)
{
v
(
0
,
0
,
halfHeight
+
(
topOffset
||
0
)
);
v
(
0
,
0
,
halfHeight
+
(
topOffset
||
0
)
);
for
(
i
=
numSegs
+
(
numSegs
/
2
);
i
<
2
*
numSegs
;
i
++
)
{
for
(
i
=
numSegs
+
(
numSegs
/
2
);
i
<
2
*
numSegs
;
i
++
)
{
f4
(
2
*
numSegs
+
1
,
(
2
*
i
-
2
*
numSegs
+
2
)
%
numSegs
+
numSegs
,
(
2
*
i
-
2
*
numSegs
+
1
)
%
numSegs
+
numSegs
,
(
2
*
i
-
2
*
numSegs
)
%
numSegs
+
numSegs
);
f4
(
2
*
numSegs
+
1
,
(
2
*
i
-
2
*
numSegs
+
2
)
%
numSegs
+
numSegs
,
(
2
*
i
-
2
*
numSegs
+
1
)
%
numSegs
+
numSegs
,
(
2
*
i
-
2
*
numSegs
)
%
numSegs
+
numSegs
);
}
}
}
}
this
.
computeCentroids
();
this
.
computeFaceNormals
();
//
this.computeVertexNormals();
this
.
computeCentroids
();
this
.
computeFaceNormals
();
//
this.computeVertexNormals();
function
v
(
x
,
y
,
z
)
{
function
v
(
x
,
y
,
z
)
{
scope
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
x
,
y
,
z
)
)
);
scope
.
vertices
.
push
(
new
THREE
.
Vertex
(
new
THREE
.
Vector3
(
x
,
y
,
z
)
)
);
}
}
function
f4
(
a
,
b
,
c
,
d
)
{
function
f4
(
a
,
b
,
c
,
d
)
{
scope
.
faces
.
push
(
new
THREE
.
Face4
(
a
,
b
,
c
,
d
)
);
scope
.
faces
.
push
(
new
THREE
.
Face4
(
a
,
b
,
c
,
d
)
);
}
}
};
Cylinder
.
prototype
=
new
THREE
.
Geometry
();
Cylinder
.
prototype
.
constructor
=
Cylinder
;
\ No newline at end of file
Cylinder
.
prototype
.
constructor
=
Cylinder
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录