WorldWind源码剖析系列:配置载入器类ConfigurationLoader
配置载入器类ConfigurationLoader主要从指定的路径中加载保存星球相关参数的xml文件,从中读取数据来构造星球对象及其所关联的可渲染子对象列表并返回。该类的类图如下所示。

该类所包含的主要的方法基本都是静态的,功能说明如下:
public static double ParseDouble(string s)将字符串s解析为Double型数字
private static bool ParseBool(string booleanString) 将字符串s解析为bool型
public static void XMLValidationCallback(object sender, ValidationEventArgs args)XML文件有效性验证时的回调委托事件(severity:严重、严格、猛烈)。
public static World Load(string filename, Cache cache)函数是本类中的重点函数,主要从指定的路径如“bin\x86\Debug\Config\Earth.xml”文件中加载保存星球相关参数的xml文件,从中读取数据来构造星球对象并返回。
private static RenderableObjectList getRenderablesFromLayerDirectory(string layerDirectory, World parentWorld, Cache cache)函数从指定的图层目录中回去与指定父类星球parentWorld相关联的可渲染子对象列表。被本类和RenderableObjectList类中的相关函数调用。内部调用其重载形式 public static RenderableObjectList getRenderableFromLayerFile(string layerFile, World parentWorld, Cache cache, bool enableRefresh),重载形式内容比较多,需要细看。
public static bool IsLayerOn(RenderableObject ro)设置指定的可渲染对象图层是开启还是关闭
private static RenderableObjectList addChildLayerSet(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable, Cache cache)添加子图层集合到可渲染子对象列表
private static ImageTileService getImageTileServiceFromXPathNodeIterator(XPathNodeIterator iter)返回指定节点所对应的影像瓦片服务对象
private static ImageStore getImageStoreFromXPathNodeIterator(string name, XPathNodeIterator imageAccessorIter, RenderableObjectList parentRenderable, Cache cache) 返回指定节点所对应的影像存储对象
private static void addQuadTileLayersFromXPathNodeIterator(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable, Cache cache)从指定节点中添加四叉树瓦片图层到可渲染子对象列表
private static TimeSpan getCacheExpiration(XPathNodeIterator iter)返回缓冲区过期时间间隔
private static void addExtendedInformation(XPathNodeIterator iter, RenderableObject renderable)添加扩展信息
public static string GetRenderablePathString(RenderableObject renderable)添加可渲染路径字符串,内部调用准同名函数private static string getRenderablePathString(RenderableObject renderable)
private static void addImageLayersFromXPathNodeIterator(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable) 从指定节点中添加影像图层到可渲染子对象列表
private static void addScreenOverlays(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable, Cache cache)添加屏幕覆盖图层(PS:Overlays:覆盖图、镶边、包镶物)
private static void addScreenOverlaysToIcon(XPathNodeIterator iter, World parentWorld, Icon icon, Cache cache) 添加屏幕覆盖图层至ICON图标
private static System.Drawing.Color getColor(XPathNodeIterator iter)返回XpathNodeIterator节点迭代器所指定的元素的颜色
private static Microsoft.DirectX.Direct3D.FontDescription getDisplayFont(XPathNodeIterator iter) 返回XpathNodeIterator节点迭代器所指定的显示字体的字体描述结构体对象
private static void addTiledPlacenameSet(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable)添加已经切分成瓦片的地名集合所构建的TiledPlacenameSet对象到可渲染子对象列表
private static void addTiledWFSPlacenameSet(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable, Cache cache) 添加已经切分成瓦片的地名集合所构建的TiledWFSPlacenameSet对象到可渲染子对象列表
private static void addIcon(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable, Cache cache) )添加XpathNodeIterator节点迭代器所指定的Icon对象到可渲染子对象列表
private static void addPathList(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable) 添加XpathNodeIterator节点迭代器所指定的PathList路径列表对象到可渲染子对象列表
private static void addLineFeature(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable) 添加XpathNodeIterator节点迭代器所指定的LineFeature线型要素对象到可渲染子对象列表
private static void addPolygonFeature(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable) 添加XpathNodeIterator节点迭代器所指定的PolygonFeature多边形要素对象到可渲染子对象列表
private static void addModelFeature(XPathNodeIterator iter, World parentWorld, RenderableObjectList parentRenderable) 添加XpathNodeIterator节点迭代器所指定的ModelFeature模型要素对象到可渲染子对象列表
private static TerrainAccessor[] getTerrainAccessorsFromXPathNodeIterator(XPathNodeIterator iter, string cacheDirectory)从指定的XpathNodeIterator节点迭代器所指向的元素中获取地形访问器对象
static string getInnerTextFromFirstChild(XPathNodeIterator iter) 从指定的XpathNodeIterator节点迭代器所指向的元素中获取第一个子元素的内部文本字符串
WorldWind源码剖析系列:配置载入器类ConfigurationLoader的更多相关文章
- WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore
影像存储类ImageStore 影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类.当划分完层次 ...
- WorldWind源码剖析系列:表面影像类SurfaceImage
表面影像类SurfaceImage描述星球类(如地球)表面纹理影像.该类的类图如下. 表面影像类SurfaceImage包含的主要的字段.属性和方法如下: string m_ImageFilePath ...
- WorldWind源码剖析系列:表面瓦片类SurfaceTile
表面瓦片类SurfaceTile描述星球类(如地球)表面纹理影像的瓦片模型.其类图如下. 表面瓦片类SurfaceTile包含的主要的字段.属性和方法如下: int m_Level;//该瓦片所属金字 ...
- WorldWind源码剖析系列:影像图层类ImageLayer
影像图层类ImageLayer 影像图层类ImageLayer将单张影像作为纹理映射到星球表面上去.源影像必须是平面笛卡尔坐标系.该类的类图如下. 影像图层类ImageLayer提供的主要字段.属性和 ...
- WorldWind源码剖析系列:四叉树瓦片类QuadTile
四叉树瓦片类QuadTile提供了对影像和地形数据的四叉树访问模型.该类的类图如下. 四叉树瓦片类QuadTile提供的主要字段.属性和方法简要描述如下: public QuadTileSet Qua ...
- WorldWind源码剖析系列:下载请求类DownloadRequest
下载请求类DownloadRequest是各种下载请求的抽象基类,先派生出网络下载请求类WebDownloadRequest,再派生出地理空间下载请求类GeoSpatialDownloadReques ...
- WorldWind源码剖析系列:网络下载类WebDownload
网络下载类WebDownload封装了对请求的瓦片进行网络下载的相关操作.该类使用了两个委托类型和一个枚举类型. 该类的类图如下. 网络下载类WebDownload各个字段和属性的含义说明如下: st ...
- WorldWind源码剖析系列:绘制参数类DrawArgs
绘制参数类DrawArgs主要对绘制时需要的对象如:设备对象Microsoft.DirectX.Direct3D.Device.Microsoft.DirectX.Direct3D.Font字体对象. ...
- WorldWind源码剖析系列:数学引擎类MathEngine
PluginSDK中的MathEngine类是密封类.不可继承,主要完成通用的数学计算功能.由于按平面展开层层划分,所以在WW里用到一个row,col的概念,类MathEngine封装了从行/列到经/ ...
- WorldWind源码剖析系列:代理助手类ProxyHelper
代理助手类ProxyHelper通过平台调用的互操作技术封送了若干Win32结构体和函数.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: 内嵌类型WINHTTP_AUTOPROX ...
随机推荐
- leetcode937-java
937. 重新排列日志文件 一个简单题让我做了将近一个小时去.. 你有一个日志数组 logs.每条日志都是以空格分隔的字串. 对于每条日志,其第一个字为字母数字标识符.然后,要么: 标识符后面的每个字 ...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误几种解决方案
报错信息: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.study.ser ...
- Linux常用基本命令( touch )
touch命令: 作用:创建空文件,或者改变文件的时间戳属性 格式: touch [option] [file] 1,同时创建一个或者多个空文件 ghostwu@dev:~/linux/mkdir$ ...
- POJ3159(KB4-K 差分约束)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 33283 Accepted: 9334 Descrip ...
- python去掉字符串中空格的方法
1.strip():把头和尾的空格去掉 2.lstrip():把左边的空格去掉 3.rstrip():把右边的空格去掉 4.replace('c1','c2'):把字符串里的c1替换成c2.故可以用r ...
- nodejs 爬虫模板 map&array 数据模型
app.get('/knowledge', function (req, res, next) { var listUid = req.query.listUid; var url = "h ...
- Ajax如何设置cookie
普通的Ajax请求很遗憾不能返回服务器端设置的cookie 如何实现不刷新页面返回服务器设置的Cookie呢? 可以使用<script>或者<image>的src属性发起一个请 ...
- 关于通过ServletContext获取数据出现的http500的错误的解决方案
1.问题的简述 我创建了一个两个servlet以及一个jsp页面,假定给两个servlet分别命名(初始化数据servlet)和(数据处理servlet),jsp页面用于传递数据至数据处理servle ...
- python 使用else代替状态变量
翻看公司的代码文档,在代码风格文档中,写着:为了提高代码的可维护性,代码中减少flag这类状态变量的使用.这个问题,平时确实没有想过,面对这种需求时,第一反应就是使用flag标记状态.那么使用什么样的 ...
- Linux系统之TroubleShooting(启动故障排除)
尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...