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 ...
随机推荐
- 关于List、Map循环时,进行删除的结论
通过一些测试发现,List 使用for(int i=0;i<list.size();i++),可以正常删除,不会抛出异常:使用增强for循环,for(String x:list)会抛出Concu ...
- 设计模式-生成器(Builder)
一.概念 将一个复杂对像的构建与它的表示分离,使得同样的构建过程创建不同的表示,又叫建造模式. 生成器模式的重心在于分离构建算法和具体的构造实现,从而使得构建算法可以重用.采用不同的构建实现,产生不 ...
- Chromium的Grit工具解析
转载请注明出处:http://www.cnblogs.com/fangkm/p/3405959.html Chromium项目采用Grit工具来打包生成程序需要的资源,如图片资源.字符串资源等,尤其是 ...
- php简单实现二级联动
<script type="text/javascript"> //当第一级选项发生变化的时候跳转 function jump() { location.href='? ...
- 从零开始学习html(十二)CSS布局模型——下
五.什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样, 每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧. ...
- Python Python-MySQLdb中的DictCursor使用方法简介
Python-MySQLdb中的DictCursor使用方法简介 by:授客 QQ:1033553122 DictCursor的这个功能是继承于CursorDictRowsMixIn,这个Mi ...
- nodejs设置NODE_ENV环境变量(1)
看下app.js文件中的一部分代码,如下: //开发环境错误处理 // will print stacktrace if (app.get('env') === 'development') { ap ...
- Python Django框架笔记(三):django工作方式简单说明和创建用户界面
(一) 说明 简单说明下django的工作方式,并举2个例子. (二) Django工作方式 假定我们有下面这些文件 ,这里在前2篇的基础上增加了 templates目录(存放html文件) 和s ...
- chrome中workspace配置达到同步修改本地文件的作用
在前端开发中,我们经常需要在浏览器中进行调试,特别是一些样式的修改,如果你还是先在浏览器elements中调试好在复制到本地文件,那就真的out了. chrome浏览器的workspace功能完全可以 ...
- sqlserver 一键备份,异机还原脚本
REM +---------------------------------------------------------------------------------+ REM |desc AU ...