上一篇,我們介紹了當(dāng)我們添加一個Entity時,通過Graphics封裝其對應(yīng)參數(shù),通過EntityCollection.Add方法,將EntityCollection的Entity傳遞到DataSourceDisplay.Visualizer中。本篇則從Visualizer開始,介紹數(shù)據(jù)的處理,并最終實現(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()。在這兩個階段中都有很多跟Entity相關(guān)的方面,我們分別闡述其大概過程
Viewer.prototype._onTick
我們先溫習(xí)一下上篇的兩個知識點:DataSourceDisplay初始化的時候會調(diào)用defaultVisualizersCallback,會針對所有Geometry的Type創(chuàng)建對應(yīng)的Visualizer;EntityCollection.Add每次添加一個Entity,會通過一系列事件傳遞,將該Entity傳遞到每一個Visualizer,保存到Visualizer中_addedObjects隊列中。
function Viewer(container, options) { event