WorldWind系列七:Load/Unload Plugins——投石问路篇

今天原计划把Load/Unload Plugins完全弄明白,可是分析该功能的过程时发现Load/Unload Plugins没有想象的简单,而且它的实现代码中有很多重点知识点值得深入学习。所以,将该部分分两次总结。这次主要是为明天的深入学习做些铺垫,准备分两部分:World Wind Plugin基础知识、展示插件DEMO帮大家坚定信心。

World Wind Plugin基础知识

WorldWind魅力不仅是因为它是开源的三维软件,而且在于它更是一个开源的三维框架。很多朋友都想基于WorldWind搞开发,我原来也是冲着这目的来学习WorldWind,因为它是三维而且是开源的(即:免费的)。但我现在给出原因是:WorldWind具有着让你耳目一新的良好设计框架,它最大的优点就是它的框架思想,支持无限扩展插件。(关于它的架构我会系列在最后总结的,因为这是WW的一大亮点,很值得我们学习!)

扯远了,WorldWind支持动态加载插件,你需要做的只是写个插件,甚至只是一个简单的*.cs插件文件,就轻松地在三维环境下执行你的功能。

WW中主要应用了插件思想,其实现上可以分为两种:Add-on 和Plugin。

Add-on是什么意思?google翻译为“附加”。我们这样可以看待WorldWind:其核心的框架部分好比一副人的骨头架子;其所有各种功能好比“附加”到人骨头架子上的肉;其被各功能访问的数据好比人身体血管里的血液。没有血,人会成啥样?没有肉,人会成啥样??没有骨头,人又会成啥样???呵呵,想象一下,该理解什么是Add-on了吧!回到WW现实上,Add-on就是Earth、Moon等(如下图1),就是Flags of the World、Landmark等(如图2)。

图2

时间: 2024-07-30 09:19:43

WorldWind系列七:Load/Unload Plugins——投石问路篇的相关文章

WorldWind系列八:Load/Unload Plugins——直捣黄龙篇

第一部分 打开PluginDialog.cs窗体时,会调用273行的 private void PluginDialog_Load(object sender, System.EventArgs e) { //加载插件到ListView控件中 AddPluginList(); //Force UI state update listView_SelectedIndexChanged(this,EventArgs.Empty); //根据ListView当前选中项,更新窗体按钮功能的可用性 Upd

jvm系列(七):jvm调优-工具篇

16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到达事半功倍的效果来. jvm监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三方的分析工具.jdk自带工具一般在jdk bin目录下面,

WorldWind系列六:渲染过程解析篇

今天主要是分析学习了Render问题,搞明白了WorldWind中整个Render绘制处理过程.其中关键类是:RenderableObject.cs ,RenderobjectList.cs. WW中所有需要绘制的对象都RenderableObject,WW的各功能的执行显示都是不断地调用相应的Render方法. 1.RenderableObject整个绘制对象继承图 WW绘制都是通过RenderableObject类,将所有的要绘制对象都看做是RenderableObject,从而统一了整个系

WorldWind系列二:擒贼先擒王篇1

有了WorldWind系列一的基础,我们已经可以进行正常调试运行啦!可以先操作看看软件的功能吧,这样我们才可以知道WorldWind有哪些功能等待我们学习的. 开始我们的"WorldWind系列二:擒贼先擒王"分析WorldWind主窗体,从Main函数入口一步步解析学习.至少对于我来说,里面有很多知识要学的.(补充一下:无法进入WorldWind.cs窗体的设计界面,这个问题我早就发现了,但没解决,我们根据功能直接看代码吧) 1.使用System.Version在内部,读取软件版本信

SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现

原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.具有使用 Microsoft Visual Studio 进行 Microsoft .NET Framework开发的经验. 4.具

WorldWind系列三

简单功能分析--主窗体的键盘监听处理及拷贝和粘贴位置坐标功能 在分析功能时发现,各功能都有自己的快捷键相应,比如今天要分析的 Copy Coordinates (Ctrl+C)和Paste Coordinates (Ctrl+P),以及主窗体的全屏功能也是通过快捷键(Alt+Enter).这就使我需要彻底分析一下主窗体的键盘监听处理啦. 主窗体的键盘监听处理 与WorldWind系列三:功能分析--截屏功能和"关于"窗体分析 中AboutDialog.cs分析类似,WorldWind主

xen虚拟化实战系列(七)之xen虚拟机VNC访问配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1286408 xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装xen虚拟化实战系列(二)之xen虚拟机安装xen虚拟化实战系列(三)之xen虚拟机复制xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法xen虚拟化实战系列(六)之x

ubuntu对硬盘的“Load/Unload Cycle威胁”分析及官方解决办法

由于ubuntu本身的问题,会导致大部分硬盘在使用过程中出现大量Load/Unload Cycle(磁头复位)动作,大概2-3次/分钟. 而 一个硬盘正常使用过程中 ,基本上一天也不会出现几次Load/Unload Cycle,而ubuntu的这个bug会使得本来可以忽略不计的Load/Unload Cycle变成巨大系统隐患,直接缩短硬盘寿命(通常硬盘可以Load/Unload Cycle 600,000次,然后就Over了). 以上不是危言耸听,这就像早期BT下载软件会加重硬盘磁头负担一样(

WorldWind系列二:擒贼先擒王篇2

4.解析Main(string[] args)中参数args.主要是在控制台中启动程序时同时赋予了参数的形式. // ParseArgs may set values that are used elsewhere, // such as startFullScreen and CurrentSettingsDirectory. ParseArgs(args); args中参数可能是: "worldwind://":加载定位显示球体某处. "/f" :全屏启动. &