Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
d662925f
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,发现更多精彩内容 >>
未验证
提交
d662925f
编写于
8月 06, 2019
作者:
M
Mr.doob
提交者:
GitHub
8月 06, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #17184 from Mugen87/dev33
Helpers: Remove IIFEs I.
上级
9df590ac
7593657b
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
230 addition
and
234 deletion
+230
-234
src/helpers/ArrowHelper.js
src/helpers/ArrowHelper.js
+22
-26
src/helpers/BoxHelper.js
src/helpers/BoxHelper.js
+40
-41
src/helpers/DirectionalLightHelper.js
src/helpers/DirectionalLightHelper.js
+21
-19
src/helpers/FaceNormalsHelper.js
src/helpers/FaceNormalsHelper.js
+33
-31
src/helpers/HemisphereLightHelper.js
src/helpers/HemisphereLightHelper.js
+22
-21
src/helpers/LightProbeHelper.js
src/helpers/LightProbeHelper.js
+4
-8
src/helpers/SkeletonHelper.js
src/helpers/SkeletonHelper.js
+26
-25
src/helpers/SpotLightHelper.js
src/helpers/SpotLightHelper.js
+15
-17
src/helpers/VertexNormalsHelper.js
src/helpers/VertexNormalsHelper.js
+47
-46
未找到文件。
src/helpers/ArrowHelper.js
浏览文件 @
d662925f
...
...
@@ -24,7 +24,8 @@ import { Mesh } from '../objects/Mesh.js';
import
{
Line
}
from
'
../objects/Line.js
'
;
import
{
Vector3
}
from
'
../math/Vector3.js
'
;
var
lineGeometry
,
coneGeometry
;
var
_axis
;
var
_lineGeometry
,
_coneGeometry
;
function
ArrowHelper
(
dir
,
origin
,
length
,
color
,
headLength
,
headWidth
)
{
...
...
@@ -39,23 +40,23 @@ function ArrowHelper( dir, origin, length, color, headLength, headWidth ) {
if
(
headLength
===
undefined
)
headLength
=
0.2
*
length
;
if
(
headWidth
===
undefined
)
headWidth
=
0.2
*
headLength
;
if
(
lineGeometry
===
undefined
)
{
if
(
_
lineGeometry
===
undefined
)
{
lineGeometry
=
new
BufferGeometry
();
lineGeometry
.
addAttribute
(
'
position
'
,
new
Float32BufferAttribute
(
[
0
,
0
,
0
,
0
,
1
,
0
],
3
)
);
_
lineGeometry
=
new
BufferGeometry
();
_
lineGeometry
.
addAttribute
(
'
position
'
,
new
Float32BufferAttribute
(
[
0
,
0
,
0
,
0
,
1
,
0
],
3
)
);
coneGeometry
=
new
CylinderBufferGeometry
(
0
,
0.5
,
1
,
5
,
1
);
coneGeometry
.
translate
(
0
,
-
0.5
,
0
);
_
coneGeometry
=
new
CylinderBufferGeometry
(
0
,
0.5
,
1
,
5
,
1
);
_
coneGeometry
.
translate
(
0
,
-
0.5
,
0
);
}
this
.
position
.
copy
(
origin
);
this
.
line
=
new
Line
(
lineGeometry
,
new
LineBasicMaterial
(
{
color
:
color
}
)
);
this
.
line
=
new
Line
(
_
lineGeometry
,
new
LineBasicMaterial
(
{
color
:
color
}
)
);
this
.
line
.
matrixAutoUpdate
=
false
;
this
.
add
(
this
.
line
);
this
.
cone
=
new
Mesh
(
coneGeometry
,
new
MeshBasicMaterial
(
{
color
:
color
}
)
);
this
.
cone
=
new
Mesh
(
_
coneGeometry
,
new
MeshBasicMaterial
(
{
color
:
color
}
)
);
this
.
cone
.
matrixAutoUpdate
=
false
;
this
.
add
(
this
.
cone
);
...
...
@@ -67,36 +68,31 @@ function ArrowHelper( dir, origin, length, color, headLength, headWidth ) {
ArrowHelper
.
prototype
=
Object
.
create
(
Object3D
.
prototype
);
ArrowHelper
.
prototype
.
constructor
=
ArrowHelper
;
ArrowHelper
.
prototype
.
setDirection
=
(
function
(
)
{
ArrowHelper
.
prototype
.
setDirection
=
function
(
dir
)
{
var
axis
=
new
Vector3
();
var
radians
;
if
(
_axis
===
undefined
)
_axis
=
new
Vector3
();
return
function
setDirection
(
dir
)
{
// dir is assumed to be normalized
if
(
dir
.
y
>
0.99999
)
{
// dir is assumed to be normalized
this
.
quaternion
.
set
(
0
,
0
,
0
,
1
);
if
(
dir
.
y
>
0.99999
)
{
}
else
if
(
dir
.
y
<
-
0.99999
)
{
this
.
quaternion
.
set
(
0
,
0
,
0
,
1
);
this
.
quaternion
.
set
(
1
,
0
,
0
,
0
);
}
else
if
(
dir
.
y
<
-
0.99999
)
{
}
else
{
this
.
quaternion
.
set
(
1
,
0
,
0
,
0
);
axis
.
set
(
dir
.
z
,
0
,
-
dir
.
x
).
normalize
();
}
else
{
radians
=
Math
.
acos
(
dir
.
y
);
_axis
.
set
(
dir
.
z
,
0
,
-
dir
.
x
).
normalize
(
);
this
.
quaternion
.
setFromAxisAngle
(
axis
,
radians
);
var
radians
=
Math
.
acos
(
dir
.
y
);
}
this
.
quaternion
.
setFromAxisAngle
(
_axis
,
radians
);
}
;
}
}
()
)
;
};
ArrowHelper
.
prototype
.
setLength
=
function
(
length
,
headLength
,
headWidth
)
{
...
...
src/helpers/BoxHelper.js
浏览文件 @
d662925f
...
...
@@ -9,6 +9,8 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
import
{
BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
import
{
BufferGeometry
}
from
'
../core/BufferGeometry.js
'
;
var
_box
;
function
BoxHelper
(
object
,
color
)
{
this
.
object
=
object
;
...
...
@@ -33,64 +35,61 @@ function BoxHelper( object, color ) {
BoxHelper
.
prototype
=
Object
.
create
(
LineSegments
.
prototype
);
BoxHelper
.
prototype
.
constructor
=
BoxHelper
;
BoxHelper
.
prototype
.
update
=
(
function
()
{
var
box
=
new
Box3
();
BoxHelper
.
prototype
.
update
=
function
(
object
)
{
return
function
update
(
object
)
{
if
(
_box
===
undefined
)
_box
=
new
Box3
();
if
(
object
!==
undefined
)
{
if
(
object
!==
undefined
)
{
console
.
warn
(
'
THREE.BoxHelper: .update() has no longer arguments.
'
);
console
.
warn
(
'
THREE.BoxHelper: .update() has no longer arguments.
'
);
}
}
if
(
this
.
object
!==
undefined
)
{
if
(
this
.
object
!==
undefined
)
{
box
.
setFromObject
(
this
.
object
);
_
box
.
setFromObject
(
this
.
object
);
}
}
if
(
box
.
isEmpty
()
)
return
;
if
(
_
box
.
isEmpty
()
)
return
;
var
min
=
box
.
min
;
var
max
=
box
.
max
;
var
min
=
_
box
.
min
;
var
max
=
_
box
.
max
;
/*
5____4
1/___0/|
| 6__|_7
2/___3/
/*
5____4
1/___0/|
| 6__|_7
2/___3/
0: max.x, max.y, max.z
1: min.x, max.y, max.z
2: min.x, min.y, max.z
3: max.x, min.y, max.z
4: max.x, max.y, min.z
5: min.x, max.y, min.z
6: min.x, min.y, min.z
7: max.x, min.y, min.z
*/
0: max.x, max.y, max.z
1: min.x, max.y, max.z
2: min.x, min.y, max.z
3: max.x, min.y, max.z
4: max.x, max.y, min.z
5: min.x, max.y, min.z
6: min.x, min.y, min.z
7: max.x, min.y, min.z
*/
var
position
=
this
.
geometry
.
attributes
.
position
;
var
array
=
position
.
array
;
var
position
=
this
.
geometry
.
attributes
.
position
;
var
array
=
position
.
array
;
array
[
0
]
=
max
.
x
;
array
[
1
]
=
max
.
y
;
array
[
2
]
=
max
.
z
;
array
[
3
]
=
min
.
x
;
array
[
4
]
=
max
.
y
;
array
[
5
]
=
max
.
z
;
array
[
6
]
=
min
.
x
;
array
[
7
]
=
min
.
y
;
array
[
8
]
=
max
.
z
;
array
[
9
]
=
max
.
x
;
array
[
10
]
=
min
.
y
;
array
[
11
]
=
max
.
z
;
array
[
12
]
=
max
.
x
;
array
[
13
]
=
max
.
y
;
array
[
14
]
=
min
.
z
;
array
[
15
]
=
min
.
x
;
array
[
16
]
=
max
.
y
;
array
[
17
]
=
min
.
z
;
array
[
18
]
=
min
.
x
;
array
[
19
]
=
min
.
y
;
array
[
20
]
=
min
.
z
;
array
[
21
]
=
max
.
x
;
array
[
22
]
=
min
.
y
;
array
[
23
]
=
min
.
z
;
array
[
0
]
=
max
.
x
;
array
[
1
]
=
max
.
y
;
array
[
2
]
=
max
.
z
;
array
[
3
]
=
min
.
x
;
array
[
4
]
=
max
.
y
;
array
[
5
]
=
max
.
z
;
array
[
6
]
=
min
.
x
;
array
[
7
]
=
min
.
y
;
array
[
8
]
=
max
.
z
;
array
[
9
]
=
max
.
x
;
array
[
10
]
=
min
.
y
;
array
[
11
]
=
max
.
z
;
array
[
12
]
=
max
.
x
;
array
[
13
]
=
max
.
y
;
array
[
14
]
=
min
.
z
;
array
[
15
]
=
min
.
x
;
array
[
16
]
=
max
.
y
;
array
[
17
]
=
min
.
z
;
array
[
18
]
=
min
.
x
;
array
[
19
]
=
min
.
y
;
array
[
20
]
=
min
.
z
;
array
[
21
]
=
max
.
x
;
array
[
22
]
=
min
.
y
;
array
[
23
]
=
min
.
z
;
position
.
needsUpdate
=
true
;
position
.
needsUpdate
=
true
;
this
.
geometry
.
computeBoundingSphere
();
this
.
geometry
.
computeBoundingSphere
();
};
}
)()
;
};
BoxHelper
.
prototype
.
setFromObject
=
function
(
object
)
{
...
...
src/helpers/DirectionalLightHelper.js
浏览文件 @
d662925f
...
...
@@ -11,6 +11,8 @@ import { Float32BufferAttribute } from '../core/BufferAttribute.js';
import
{
BufferGeometry
}
from
'
../core/BufferGeometry.js
'
;
import
{
LineBasicMaterial
}
from
'
../materials/LineBasicMaterial.js
'
;
var
_v1
,
_v2
,
_v3
;
function
DirectionalLightHelper
(
light
,
size
,
color
)
{
Object3D
.
call
(
this
);
...
...
@@ -63,36 +65,36 @@ DirectionalLightHelper.prototype.dispose = function () {
DirectionalLightHelper
.
prototype
.
update
=
function
()
{
var
v1
=
new
Vector3
();
var
v2
=
new
Vector3
();
var
v3
=
new
Vector3
();
if
(
_v3
===
undefined
)
{
return
function
update
()
{
_v1
=
new
Vector3
();
_v2
=
new
Vector3
();
_v3
=
new
Vector3
();
v1
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
);
v2
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
v3
.
subVectors
(
v2
,
v1
);
}
this
.
lightPlane
.
lookAt
(
v2
);
_v1
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
);
_v2
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
_v3
.
subVectors
(
_v2
,
_v1
);
if
(
this
.
color
!==
undefined
)
{
this
.
lightPlane
.
lookAt
(
_v2
);
this
.
lightPlane
.
material
.
color
.
set
(
this
.
color
);
this
.
targetLine
.
material
.
color
.
set
(
this
.
color
);
if
(
this
.
color
!==
undefined
)
{
}
else
{
this
.
lightPlane
.
material
.
color
.
set
(
this
.
color
);
this
.
targetLine
.
material
.
color
.
set
(
this
.
color
);
this
.
lightPlane
.
material
.
color
.
copy
(
this
.
light
.
color
);
this
.
targetLine
.
material
.
color
.
copy
(
this
.
light
.
color
);
}
else
{
}
this
.
lightPlane
.
material
.
color
.
copy
(
this
.
light
.
color
);
this
.
targetLine
.
material
.
color
.
copy
(
this
.
light
.
color
);
this
.
targetLine
.
lookAt
(
v2
);
this
.
targetLine
.
scale
.
z
=
v3
.
length
();
}
};
this
.
targetLine
.
lookAt
(
_v2
);
this
.
targetLine
.
scale
.
z
=
_v3
.
length
();
}
()
;
};
export
{
DirectionalLightHelper
};
src/helpers/FaceNormalsHelper.js
浏览文件 @
d662925f
...
...
@@ -10,6 +10,8 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
import
{
Float32BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
import
{
BufferGeometry
}
from
'
../core/BufferGeometry.js
'
;
var
_v1
,
_v2
,
_normalMatrix
;
function
FaceNormalsHelper
(
object
,
size
,
hex
,
linewidth
)
{
// FaceNormalsHelper only supports THREE.Geometry
...
...
@@ -58,61 +60,61 @@ function FaceNormalsHelper( object, size, hex, linewidth ) {
FaceNormalsHelper
.
prototype
=
Object
.
create
(
LineSegments
.
prototype
);
FaceNormalsHelper
.
prototype
.
constructor
=
FaceNormalsHelper
;
FaceNormalsHelper
.
prototype
.
update
=
(
function
()
{
FaceNormalsHelper
.
prototype
.
update
=
function
()
{
var
v1
=
new
Vector3
();
var
v2
=
new
Vector3
();
var
normalMatrix
=
new
Matrix3
();
if
(
_normalMatrix
===
undefined
)
{
return
function
update
()
{
_v1
=
new
Vector3
();
_v2
=
new
Vector3
();
_normalMatrix
=
new
Matrix3
();
this
.
object
.
updateMatrixWorld
(
true
);
}
normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
);
this
.
object
.
updateMatrixWorld
(
true
);
var
matrixWorld
=
this
.
object
.
matrixWorld
;
_normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
)
;
var
position
=
this
.
geometry
.
attributes
.
position
;
var
matrixWorld
=
this
.
object
.
matrixWorld
;
//
var
position
=
this
.
geometry
.
attributes
.
position
;
var
objGeometry
=
this
.
object
.
geometry
;
//
var
vertices
=
objGeometry
.
vertices
;
var
objGeometry
=
this
.
object
.
geometry
;
var
faces
=
objGeometry
.
fa
ces
;
var
vertices
=
objGeometry
.
verti
ces
;
var
idx
=
0
;
var
faces
=
objGeometry
.
faces
;
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
i
++
)
{
var
idx
=
0
;
var
face
=
faces
[
i
];
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
i
++
)
{
var
normal
=
face
.
normal
;
var
face
=
faces
[
i
]
;
v1
.
copy
(
vertices
[
face
.
a
]
)
.
add
(
vertices
[
face
.
b
]
)
.
add
(
vertices
[
face
.
c
]
)
.
divideScalar
(
3
)
.
applyMatrix4
(
matrixWorld
);
var
normal
=
face
.
normal
;
v2
.
copy
(
normal
).
applyMatrix3
(
normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
v1
);
_v1
.
copy
(
vertices
[
face
.
a
]
)
.
add
(
vertices
[
face
.
b
]
)
.
add
(
vertices
[
face
.
c
]
)
.
divideScalar
(
3
)
.
applyMatrix4
(
matrixWorld
);
position
.
setXYZ
(
idx
,
v1
.
x
,
v1
.
y
,
v1
.
z
);
_v2
.
copy
(
normal
).
applyMatrix3
(
_normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
_v1
);
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v1
.
x
,
_v1
.
y
,
_v1
.
z
)
;
position
.
setXYZ
(
idx
,
v2
.
x
,
v2
.
y
,
v2
.
z
)
;
idx
=
idx
+
1
;
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v2
.
x
,
_v2
.
y
,
_v2
.
z
)
;
}
idx
=
idx
+
1
;
position
.
needsUpdate
=
true
;
}
}
;
position
.
needsUpdate
=
true
;
}
()
)
;
};
export
{
FaceNormalsHelper
};
src/helpers/HemisphereLightHelper.js
浏览文件 @
d662925f
...
...
@@ -13,6 +13,8 @@ import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js';
import
{
OctahedronBufferGeometry
}
from
'
../geometries/OctahedronGeometry.js
'
;
import
{
BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
var
_vector
,
_color1
,
_color2
;
function
HemisphereLightHelper
(
light
,
size
,
color
)
{
Object3D
.
call
(
this
);
...
...
@@ -54,43 +56,42 @@ HemisphereLightHelper.prototype.dispose = function () {
HemisphereLightHelper
.
prototype
.
update
=
function
()
{
var
vector
=
new
Vector3
();
var
color1
=
new
Color
();
var
color2
=
new
Color
();
return
function
update
()
{
if
(
_color2
===
undefined
)
{
var
mesh
=
this
.
children
[
0
];
_vector
=
new
Vector3
();
_color1
=
new
Color
();
_color2
=
new
Color
();
if
(
this
.
color
!==
undefined
)
{
}
this
.
material
.
color
.
set
(
this
.
color
)
;
var
mesh
=
this
.
children
[
0
]
;
}
else
{
if
(
this
.
color
!==
undefined
)
{
var
colors
=
mesh
.
geometry
.
getAttribute
(
'
color
'
);
this
.
material
.
color
.
set
(
this
.
color
);
color1
.
copy
(
this
.
light
.
color
);
color2
.
copy
(
this
.
light
.
groundColor
);
}
else
{
for
(
var
i
=
0
,
l
=
colors
.
count
;
i
<
l
;
i
++
)
{
var
colors
=
mesh
.
geometry
.
getAttribute
(
'
color
'
);
var
color
=
(
i
<
(
l
/
2
)
)
?
color1
:
color2
;
_color1
.
copy
(
this
.
light
.
color
);
_color2
.
copy
(
this
.
light
.
groundColor
);
colors
.
setXYZ
(
i
,
color
.
r
,
color
.
g
,
color
.
b
);
for
(
var
i
=
0
,
l
=
colors
.
count
;
i
<
l
;
i
++
)
{
}
var
color
=
(
i
<
(
l
/
2
)
)
?
_color1
:
_color2
;
colors
.
needsUpdate
=
true
;
colors
.
setXYZ
(
i
,
color
.
r
,
color
.
g
,
color
.
b
)
;
}
mesh
.
lookAt
(
vector
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
).
negate
()
)
;
colors
.
needsUpdate
=
true
;
}
;
}
}();
mesh
.
lookAt
(
_vector
.
setFromMatrixPosition
(
this
.
light
.
matrixWorld
).
negate
()
);
};
export
{
HemisphereLightHelper
};
src/helpers/LightProbeHelper.js
浏览文件 @
d662925f
...
...
@@ -140,16 +140,12 @@ LightProbeHelper.prototype.dispose = function () {
LightProbeHelper
.
prototype
.
onBeforeRender
=
function
()
{
return
function
update
()
{
this
.
position
.
copy
(
this
.
lightProbe
.
position
);
this
.
position
.
copy
(
this
.
lightProbe
.
position
);
this
.
scale
.
set
(
1
,
1
,
1
).
multiplyScalar
(
this
.
size
);
this
.
scale
.
set
(
1
,
1
,
1
).
multiplyScalar
(
this
.
size
)
;
this
.
material
.
uniforms
.
intensity
.
value
=
this
.
lightProbe
.
intensity
;
this
.
material
.
uniforms
.
intensity
.
value
=
this
.
lightProbe
.
intensity
;
};
}();
};
export
{
LightProbeHelper
};
src/helpers/SkeletonHelper.js
浏览文件 @
d662925f
...
...
@@ -16,6 +16,8 @@ import { BufferGeometry } from '../core/BufferGeometry.js';
import
{
Float32BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
import
{
Object3D
}
from
'
../core/Object3D.js
'
;
var
_vector
,
_boneMatrix
,
_matrixWorldInv
;
function
getBoneList
(
object
)
{
var
boneList
=
[];
...
...
@@ -81,48 +83,47 @@ function SkeletonHelper( object ) {
SkeletonHelper
.
prototype
=
Object
.
create
(
LineSegments
.
prototype
);
SkeletonHelper
.
prototype
.
constructor
=
SkeletonHelper
;
SkeletonHelper
.
prototype
.
updateMatrixWorld
=
function
()
{
var
vector
=
new
Vector3
();
SkeletonHelper
.
prototype
.
updateMatrixWorld
=
function
(
force
)
{
var
boneMatrix
=
new
Matrix4
();
var
matrixWorldInv
=
new
Matrix4
();
if
(
_matrixWorldInv
===
undefined
)
{
return
function
updateMatrixWorld
(
force
)
{
_vector
=
new
Vector3
();
_boneMatrix
=
new
Matrix4
();
_matrixWorldInv
=
new
Matrix4
();
var
bones
=
this
.
bones
;
}
var
geometry
=
this
.
geometry
;
var
position
=
geometry
.
getAttribute
(
'
position
'
);
var
bones
=
this
.
bones
;
matrixWorldInv
.
getInverse
(
this
.
root
.
matrixWorld
);
var
geometry
=
this
.
geometry
;
var
position
=
geometry
.
getAttribute
(
'
position
'
);
for
(
var
i
=
0
,
j
=
0
;
i
<
bones
.
length
;
i
++
)
{
_matrixWorldInv
.
getInverse
(
this
.
root
.
matrixWorld
);
var
bone
=
bones
[
i
];
for
(
var
i
=
0
,
j
=
0
;
i
<
bones
.
length
;
i
++
)
{
if
(
bone
.
parent
&&
bone
.
parent
.
isBone
)
{
var
bone
=
bones
[
i
];
boneMatrix
.
multiplyMatrices
(
matrixWorldInv
,
bone
.
matrixWorld
);
vector
.
setFromMatrixPosition
(
boneMatrix
);
position
.
setXYZ
(
j
,
vector
.
x
,
vector
.
y
,
vector
.
z
);
if
(
bone
.
parent
&&
bone
.
parent
.
isBone
)
{
boneMatrix
.
multiplyMatrices
(
matrixWorldInv
,
bone
.
parent
.
matrixWorld
);
vector
.
setFromMatrixPosition
(
boneMatrix
);
position
.
setXYZ
(
j
+
1
,
vector
.
x
,
vector
.
y
,
vector
.
z
);
_boneMatrix
.
multiplyMatrices
(
_matrixWorldInv
,
bone
.
matrixWorld
);
_vector
.
setFromMatrixPosition
(
_
boneMatrix
);
position
.
setXYZ
(
j
,
_vector
.
x
,
_vector
.
y
,
_
vector
.
z
);
j
+=
2
;
_boneMatrix
.
multiplyMatrices
(
_matrixWorldInv
,
bone
.
parent
.
matrixWorld
);
_vector
.
setFromMatrixPosition
(
_boneMatrix
);
position
.
setXYZ
(
j
+
1
,
_vector
.
x
,
_vector
.
y
,
_vector
.
z
);
}
j
+=
2
;
}
geometry
.
getAttribute
(
'
position
'
).
needsUpdate
=
true
;
}
Object3D
.
prototype
.
updateMatrixWorld
.
call
(
this
,
force
)
;
geometry
.
getAttribute
(
'
position
'
).
needsUpdate
=
true
;
}
;
Object3D
.
prototype
.
updateMatrixWorld
.
call
(
this
,
force
)
;
}
()
;
};
export
{
SkeletonHelper
};
src/helpers/SpotLightHelper.js
浏览文件 @
d662925f
...
...
@@ -11,6 +11,8 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
import
{
Float32BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
import
{
BufferGeometry
}
from
'
../core/BufferGeometry.js
'
;
var
_vector
;
function
SpotLightHelper
(
light
,
color
)
{
Object3D
.
call
(
this
);
...
...
@@ -68,34 +70,30 @@ SpotLightHelper.prototype.dispose = function () {
SpotLightHelper
.
prototype
.
update
=
function
()
{
var
vector
=
new
Vector3
();
return
function
update
()
{
this
.
light
.
updateMatrixWorld
();
if
(
_vector
===
undefined
)
_vector
=
new
Vector3
();
var
coneLength
=
this
.
light
.
distance
?
this
.
light
.
distance
:
1000
;
var
coneWidth
=
coneLength
*
Math
.
tan
(
this
.
light
.
angle
);
this
.
light
.
updateMatrixWorld
();
this
.
cone
.
scale
.
set
(
coneWidth
,
coneWidth
,
coneLength
);
var
coneLength
=
this
.
light
.
distance
?
this
.
light
.
distance
:
1000
;
var
coneWidth
=
coneLength
*
Math
.
tan
(
this
.
light
.
angle
);
vector
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
this
.
cone
.
scale
.
set
(
coneWidth
,
coneWidth
,
coneLength
);
this
.
cone
.
lookAt
(
vector
);
_vector
.
setFromMatrixPosition
(
this
.
light
.
target
.
matrixWorld
);
if
(
this
.
color
!==
undefined
)
{
this
.
cone
.
lookAt
(
_vector
);
this
.
cone
.
material
.
color
.
set
(
this
.
color
);
if
(
this
.
color
!==
undefined
)
{
}
else
{
this
.
cone
.
material
.
color
.
set
(
this
.
color
);
this
.
cone
.
material
.
color
.
copy
(
this
.
light
.
color
);
}
else
{
}
this
.
cone
.
material
.
color
.
copy
(
this
.
light
.
color
);
}
;
}
}
()
;
};
export
{
SpotLightHelper
};
src/helpers/VertexNormalsHelper.js
浏览文件 @
d662925f
...
...
@@ -10,6 +10,8 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
import
{
Float32BufferAttribute
}
from
'
../core/BufferAttribute.js
'
;
import
{
BufferGeometry
}
from
'
../core/BufferGeometry.js
'
;
var
_v1
,
_v2
,
_normalMatrix
,
_keys
;
function
VertexNormalsHelper
(
object
,
size
,
hex
,
linewidth
)
{
this
.
object
=
object
;
...
...
@@ -57,97 +59,96 @@ function VertexNormalsHelper( object, size, hex, linewidth ) {
VertexNormalsHelper
.
prototype
=
Object
.
create
(
LineSegments
.
prototype
);
VertexNormalsHelper
.
prototype
.
constructor
=
VertexNormalsHelper
;
VertexNormalsHelper
.
prototype
.
update
=
(
function
()
{
var
v1
=
new
Vector3
();
var
v2
=
new
Vector3
();
var
normalMatrix
=
new
Matrix3
();
VertexNormalsHelper
.
prototype
.
update
=
function
()
{
return
function
update
(
)
{
if
(
_normalMatrix
===
undefined
)
{
var
keys
=
[
'
a
'
,
'
b
'
,
'
c
'
];
_v1
=
new
Vector3
();
_v2
=
new
Vector3
();
_normalMatrix
=
new
Matrix3
();
_keys
=
[
'
a
'
,
'
b
'
,
'
c
'
];
this
.
object
.
updateMatrixWorld
(
true
);
}
normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
);
this
.
object
.
updateMatrixWorld
(
true
);
var
matrixWorld
=
this
.
object
.
matrixWorld
;
_normalMatrix
.
getNormalMatrix
(
this
.
object
.
matrixWorld
)
;
var
position
=
this
.
geometry
.
attributes
.
position
;
var
matrixWorld
=
this
.
object
.
matrixWorld
;
//
var
position
=
this
.
geometry
.
attributes
.
position
;
var
objGeometry
=
this
.
object
.
geometry
;
//
if
(
objGeometry
&&
objGeometry
.
isGeometry
)
{
var
objGeometry
=
this
.
object
.
geometry
;
var
vertices
=
objGeometry
.
vertices
;
if
(
objGeometry
&&
objGeometry
.
isGeometry
)
{
var
faces
=
objGeometry
.
fa
ces
;
var
vertices
=
objGeometry
.
verti
ces
;
var
idx
=
0
;
var
faces
=
objGeometry
.
faces
;
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
i
++
)
{
var
idx
=
0
;
var
face
=
faces
[
i
];
for
(
var
i
=
0
,
l
=
faces
.
length
;
i
<
l
;
i
++
)
{
for
(
var
j
=
0
,
jl
=
face
.
vertexNormals
.
length
;
j
<
jl
;
j
++
)
{
var
face
=
faces
[
i
];
var
vertex
=
vertices
[
face
[
keys
[
j
]
]
];
for
(
var
j
=
0
,
jl
=
face
.
vertexNormals
.
length
;
j
<
jl
;
j
++
)
{
var
normal
=
face
.
vertexNormals
[
j
];
var
vertex
=
vertices
[
face
[
_keys
[
j
]
]
];
v1
.
copy
(
vertex
).
applyMatrix4
(
matrixWorld
)
;
var
normal
=
face
.
vertexNormals
[
j
]
;
v2
.
copy
(
normal
).
applyMatrix3
(
normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
v1
);
_v1
.
copy
(
vertex
).
applyMatrix4
(
matrixWorld
);
position
.
setXYZ
(
idx
,
v1
.
x
,
v1
.
y
,
v1
.
z
);
_v2
.
copy
(
normal
).
applyMatrix3
(
_normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
_v1
);
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v1
.
x
,
_v1
.
y
,
_v1
.
z
)
;
position
.
setXYZ
(
idx
,
v2
.
x
,
v2
.
y
,
v2
.
z
)
;
idx
=
idx
+
1
;
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v2
.
x
,
_v2
.
y
,
_v2
.
z
)
;
}
idx
=
idx
+
1
;
}
}
else
if
(
objGeometry
&&
objGeometry
.
isBufferGeometry
)
{
}
var
objPos
=
objGeometry
.
attributes
.
position
;
}
else
if
(
objGeometry
&&
objGeometry
.
isBufferGeometry
)
{
var
objNorm
=
objGeometry
.
attributes
.
normal
;
var
objPos
=
objGeometry
.
attributes
.
position
;
var
idx
=
0
;
var
objNorm
=
objGeometry
.
attributes
.
normal
;
// for simplicity, ignore index and drawcalls, and render every normal
var
idx
=
0
;
for
(
var
j
=
0
,
jl
=
objPos
.
count
;
j
<
jl
;
j
++
)
{
// for simplicity, ignore index and drawcalls, and render every normal
v1
.
set
(
objPos
.
getX
(
j
),
objPos
.
getY
(
j
),
objPos
.
getZ
(
j
)
).
applyMatrix4
(
matrixWorld
);
for
(
var
j
=
0
,
jl
=
objPos
.
count
;
j
<
jl
;
j
++
)
{
v2
.
set
(
objNorm
.
getX
(
j
),
objNorm
.
getY
(
j
),
objNorm
.
getZ
(
j
)
);
_v1
.
set
(
objPos
.
getX
(
j
),
objPos
.
getY
(
j
),
objPos
.
getZ
(
j
)
).
applyMatrix4
(
matrixWorld
);
v2
.
applyMatrix3
(
normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
v1
);
_v2
.
set
(
objNorm
.
getX
(
j
),
objNorm
.
getY
(
j
),
objNorm
.
getZ
(
j
)
);
position
.
setXYZ
(
idx
,
v1
.
x
,
v1
.
y
,
v1
.
z
);
_v2
.
applyMatrix3
(
_normalMatrix
).
normalize
().
multiplyScalar
(
this
.
size
).
add
(
_v1
);
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v1
.
x
,
_v1
.
y
,
_v1
.
z
)
;
position
.
setXYZ
(
idx
,
v2
.
x
,
v2
.
y
,
v2
.
z
)
;
idx
=
idx
+
1
;
idx
=
idx
+
1
;
position
.
setXYZ
(
idx
,
_v2
.
x
,
_v2
.
y
,
_v2
.
z
)
;
}
idx
=
idx
+
1
;
}
position
.
needsUpdate
=
true
;
}
}
;
position
.
needsUpdate
=
true
;
}
()
)
;
};
export
{
VertexNormalsHelper
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录