上一篇,我們介紹了當(dāng)我們添加一個(gè)Entity時(shí),通過Graphics封裝其對(duì)應(yīng)參數(shù),通過EntityCollection.Add方法,將EntityCollection的Entity傳遞到DataSourceDisplay.Visualizer中。本篇?jiǎng)t從Visualizer開始,介紹數(shù)據(jù)的處理,并最終實(shí)現(xiàn)渲染的過程。
CesiumWidget.prototype.render = function() { if (this._canRender) { this._scene.initializeFrame(); var currentTime = this._clock.tick(); this._scene.render(currentTime); } else { this._clock.tick(); } };
如上,在渲染階段,分別調(diào)用了clock.tick()和scene.render()。在這兩個(gè)階段中都有很多跟Entity相關(guān)的方面,我們分別闡述其大概過程
Viewer.prototype._onTick
我們先溫習(xí)一下上篇的兩個(gè)知識(shí)點(diǎn):DataSourceDisplay初始化的時(shí)候會(huì)調(diào)用defaultVisualizersCallback,會(huì)針對(duì)所有Geometry的Type創(chuàng)建對(duì)應(yīng)的Visualizer;EntityCollection.Add每次添加一個(gè)Entity,會(huì)通過一系列事件傳遞,將該Entity傳遞到每一個(gè)Visualizer,保存到Visualizer中_addedObjects隊(duì)列中。
function Viewer(container, options) { event