Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
62c269b5
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,体验更适合开发者的 AI 搜索 >>
提交
62c269b5
编写于
7月 23, 2014
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Removed scene.__objectsAdded and scene.__objectsRemoved.
上级
35a643e2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
155 deletion
+13
-155
src/core/Object3D.js
src/core/Object3D.js
+0
-32
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+13
-42
src/scenes/Scene.js
src/scenes/Scene.js
+0
-81
未找到文件。
src/core/Object3D.js
浏览文件 @
62c269b5
...
...
@@ -329,22 +329,6 @@ THREE.Object3D.prototype = {
this
.
children
.
push
(
object
);
// add to scene
var
scene
=
this
;
while
(
scene
.
parent
!==
undefined
)
{
scene
=
scene
.
parent
;
}
if
(
scene
!==
undefined
&&
scene
instanceof
THREE
.
Scene
)
{
scene
.
__addObject
(
object
);
}
}
else
{
console
.
error
(
"
THREE.Object3D.add:
"
,
object
,
"
is not an instance of THREE.Object3D.
"
);
...
...
@@ -376,22 +360,6 @@ THREE.Object3D.prototype = {
this
.
children
.
splice
(
index
,
1
);
// remove from scene
var
scene
=
this
;
while
(
scene
.
parent
!==
undefined
)
{
scene
=
scene
.
parent
;
}
if
(
scene
!==
undefined
&&
scene
instanceof
THREE
.
Scene
)
{
scene
.
__removeObject
(
object
);
}
}
},
...
...
src/renderers/WebGLRenderer.js
浏览文件 @
62c269b5
...
...
@@ -434,8 +434,6 @@ THREE.WebGLRenderer = function ( parameters ) {
_oldDoubleSided
=
-
1
;
_oldFlipSided
=
-
1
;
initObjects
(
scene
);
this
.
shadowMapPlugin
.
update
(
scene
,
camera
);
};
...
...
@@ -3198,7 +3196,12 @@ THREE.WebGLRenderer = function ( parameters ) {
_projScreenMatrix
.
multiplyMatrices
(
camera
.
projectionMatrix
,
camera
.
matrixWorldInverse
);
_frustum
.
setFromMatrix
(
_projScreenMatrix
);
initObjects
(
scene
);
if
(
!
scene
.
__webglObjects
)
{
scene
.
__webglObjects
=
{};
scene
.
__webglObjectsImmediate
=
[];
}
lights
.
length
=
0
;
opaqueObjects
.
length
=
0
;
...
...
@@ -3319,11 +3322,13 @@ THREE.WebGLRenderer = function ( parameters ) {
}
initObject
(
object
,
scene
);
var
webglObjects
=
scene
.
__webglObjects
[
object
.
id
];
if
(
webglObjects
&&
(
object
.
frustumCulled
===
false
||
_frustum
.
intersectsObject
(
object
)
===
true
)
)
{
updateObject
(
scene
,
object
);
updateObject
(
object
,
scene
);
for
(
var
i
=
0
,
l
=
webglObjects
.
length
;
i
<
l
;
i
++
)
{
...
...
@@ -3571,38 +3576,7 @@ THREE.WebGLRenderer = function ( parameters ) {
};
// Objects refresh
var
initObjects
=
function
(
scene
)
{
if
(
!
scene
.
__webglObjects
)
{
scene
.
__webglObjects
=
{};
scene
.
__webglObjectsImmediate
=
[];
}
while
(
scene
.
__objectsAdded
.
length
)
{
addObject
(
scene
.
__objectsAdded
[
0
],
scene
);
scene
.
__objectsAdded
.
splice
(
0
,
1
);
}
while
(
scene
.
__objectsRemoved
.
length
)
{
removeObject
(
scene
.
__objectsRemoved
[
0
],
scene
);
scene
.
__objectsRemoved
.
splice
(
0
,
1
);
}
};
// Objects adding
function
addObject
(
object
,
scene
)
{
var
g
,
geometry
,
geometryGroup
;
function
initObject
(
object
,
scene
)
{
if
(
object
.
__webglInit
===
undefined
)
{
...
...
@@ -3613,7 +3587,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
geometry
=
object
.
geometry
;
var
geometry
=
object
.
geometry
;
if
(
geometry
===
undefined
)
{
...
...
@@ -3671,8 +3645,6 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
object
instanceof
THREE
.
Mesh
)
{
geometry
=
object
.
geometry
;
if
(
geometry
instanceof
THREE
.
BufferGeometry
)
{
addBuffer
(
scene
.
__webglObjects
,
geometry
,
object
);
...
...
@@ -3681,7 +3653,7 @@ THREE.WebGLRenderer = function ( parameters ) {
for
(
var
i
=
0
,
l
=
geometry
.
geometryGroupsList
.
length
;
i
<
l
;
i
++
)
{
geometryGroup
=
geometry
.
geometryGroupsList
[
i
];
var
geometryGroup
=
geometry
.
geometryGroupsList
[
i
];
addBuffer
(
scene
.
__webglObjects
,
geometryGroup
,
object
);
}
...
...
@@ -3690,7 +3662,6 @@ THREE.WebGLRenderer = function ( parameters ) {
}
else
if
(
object
instanceof
THREE
.
Line
||
object
instanceof
THREE
.
PointCloud
)
{
geometry
=
object
.
geometry
;
addBuffer
(
scene
.
__webglObjects
,
geometry
,
object
);
}
else
if
(
object
instanceof
THREE
.
ImmediateRenderObject
||
object
.
immediateRenderCallback
)
{
...
...
@@ -3789,7 +3760,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// Objects updates
function
updateObject
(
scene
,
object
)
{
function
updateObject
(
object
,
scene
)
{
var
geometry
=
object
.
geometry
,
geometryGroup
,
customAttributesDirty
,
material
;
...
...
src/scenes/Scene.js
浏览文件 @
62c269b5
...
...
@@ -12,91 +12,10 @@ THREE.Scene = function () {
this
.
autoUpdate
=
true
;
// checked by the renderer
this
.
matrixAutoUpdate
=
false
;
this
.
__objectsAdded
=
[];
this
.
__objectsRemoved
=
[];
};
THREE
.
Scene
.
prototype
=
Object
.
create
(
THREE
.
Object3D
.
prototype
);
THREE
.
Scene
.
prototype
.
__addObject
=
function
(
object
)
{
if
(
object
instanceof
THREE
.
Light
)
{
if
(
object
.
target
&&
object
.
target
.
parent
===
undefined
)
{
this
.
add
(
object
.
target
);
}
}
else
if
(
!
(
object
instanceof
THREE
.
Camera
||
object
instanceof
THREE
.
Bone
)
)
{
this
.
__objectsAdded
.
push
(
object
);
// check if previously removed
var
i
=
this
.
__objectsRemoved
.
indexOf
(
object
);
if
(
i
!==
-
1
)
{
this
.
__objectsRemoved
.
splice
(
i
,
1
);
}
}
this
.
dispatchEvent
(
{
type
:
'
objectAdded
'
,
object
:
object
}
);
object
.
dispatchEvent
(
{
type
:
'
addedToScene
'
,
scene
:
this
}
);
for
(
var
c
=
0
;
c
<
object
.
children
.
length
;
c
++
)
{
this
.
__addObject
(
object
.
children
[
c
]
);
}
};
THREE
.
Scene
.
prototype
.
__removeObject
=
function
(
object
)
{
if
(
object
instanceof
THREE
.
Light
)
{
if
(
object
.
shadowCascadeArray
)
{
for
(
var
x
=
0
;
x
<
object
.
shadowCascadeArray
.
length
;
x
++
)
{
this
.
__removeObject
(
object
.
shadowCascadeArray
[
x
]
);
}
}
}
else
if
(
!
(
object
instanceof
THREE
.
Camera
)
)
{
this
.
__objectsRemoved
.
push
(
object
);
// check if previously added
var
i
=
this
.
__objectsAdded
.
indexOf
(
object
);
if
(
i
!==
-
1
)
{
this
.
__objectsAdded
.
splice
(
i
,
1
);
}
}
this
.
dispatchEvent
(
{
type
:
'
objectRemoved
'
,
object
:
object
}
);
object
.
dispatchEvent
(
{
type
:
'
removedFromScene
'
,
scene
:
this
}
);
for
(
var
c
=
0
;
c
<
object
.
children
.
length
;
c
++
)
{
this
.
__removeObject
(
object
.
children
[
c
]
);
}
};
THREE
.
Scene
.
prototype
.
clone
=
function
(
object
)
{
if
(
object
===
undefined
)
object
=
new
THREE
.
Scene
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录