WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer

星球表面渲染类WorldSurfaceRenderer描述如何渲染星球类(如地球)表面影像纹理。该类的类图如下。

星球类World包含的主要的字段、属性和方法如下:

public const int RenderSurfaceSize = 256;//定义渲染表面尺寸的常量

RenderToSurface m_Rts = null;//D3D定义的类型

const int m_NumberRootTilesHigh = 5;//根瓦片高度数,即纬度方向上划分的瓦片数。经度方向上划分的瓦片数为该值的2倍。根瓦片即零级瓦片

uint m_SamplesPerTile;//每个瓦片的采样数,即瓦片密度

WorldWind.World m_ParentWorld;//瓦片所属的父星球

SurfaceTile[] m_RootSurfaceTiles;//根表面瓦片数组

double m_DistanceAboveSeaLevel = 0;//高出海平面的距离

bool m_Initialized = false;//星球表面渲染类是否被初始化

ArrayList m_SurfaceImages = new ArrayList();//存储表面影像的数组链表

Queue m_TextureLoadQueue = new Queue();//存储下载表面影像纹理的队列

public System.DateTime LastChange = System.DateTime.Now;//最后更新时间

Device m_Device = null;//使用星球表面渲染类的设备类对象

该类的方法都比较简单,不再赘述,有兴趣的读者可以阅读源码。

时间: 2024-12-20 20:49:52

WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer的相关文章

WorldWind源码剖析系列:表面瓦片类SurfaceTile

表面瓦片类SurfaceTile描述星球类(如地球)表面纹理影像的瓦片模型.其类图如下. 表面瓦片类SurfaceTile包含的主要的字段.属性和方法如下: int m_Level;//该瓦片所属金字塔影像的层级 double m_North;//该瓦片北边界 double m_South; //该瓦片南边界 double m_West; //该瓦片西边界 double m_East; //该瓦片东边界 bool m_Initialized = false; //该瓦片是否已被初始化 Devic

WorldWind源码剖析系列:表面影像类SurfaceImage

表面影像类SurfaceImage描述星球类(如地球)表面纹理影像.该类的类图如下. 表面影像类SurfaceImage包含的主要的字段.属性和方法如下: string m_ImageFilePath;//影像文件的路径 double m_North;//影像文件的北部边界 double m_South;//影像文件的南部边界 double m_West;//影像文件的西部边界 double m_East; //影像文件的东部边界 Texture m_Texture = null;//用影像文件

WorldWind源码剖析系列:影像图层类ImageLayer

影像图层类ImageLayer 影像图层类ImageLayer将单张影像作为纹理映射到星球表面上去.源影像必须是平面笛卡尔坐标系.该类的类图如下. 影像图层类ImageLayer提供的主要字段.属性和方法简要描述如下: protected double layerRadius;//图层半径,实际是添加影像纹理的星球半径 protected double minLat; //图层的最小纬度 protected double maxLat; //图层的最大纬度 protected double mi

WorldWind源码剖析系列:影像存储类ImageStore

影像存储类ImageStore 影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类.该类的类图如下. 影像存储类基类ImageStore提供的主要字段.属性和方法简要描述如下: protected string     m_dataDirectory;//影像数据目录 protected double m_levelZeroTileSizeDegrees = 36; //金字塔影像的零级瓦片大

WorldWind源码剖析系列:可渲染对象列表类RenderableObjectList

可渲染对象列表类RenderableObjectList用来存储与一个星球体相关联的全部的可渲染对象,继承自可渲染对象类RenderableObject.RenderableObjectList的类图如下所示. 该类所包含的主要的字段.属性和方法如下: protected ArrayList m_children = new ArrayList();//存可渲染的子对象的列表,对应属性ChildObjects不可浏览,属性Count返回可渲染的子对象的个数 string m_DataSource

WorldWind源码剖析系列:绘制参数类DrawArgs

绘制参数类DrawArgs主要对绘制时需要的对象如:设备对象Microsoft.DirectX.Direct3D.Device.Microsoft.DirectX.Direct3D.Font字体对象.相机对象CameraBase.星球对象World.下载队列对象DownloadQueue.程序插件集合类对象WorldWind.Widgets.RootWidget.GDI+的图形对象System.Drawing.Graphics.鼠标位置对象System.Drawing.Point.待绘制的位图对

WorldWind源码剖析系列:数学引擎类

PluginSDK中的MathEngine类是密封类.不可继承,主要完成通用的数学计算功能.其类图如下. 其中,该类没有字段和属性成员,只有方法成员,都是静态成员. Azimuth方法用于计算从A点(latA,lonA)到B点(latB,lonB)的方位角. SphericalToCartesian方法用于将位置点的球面坐标转换为空间笛卡尔坐标.输入角度以度为单位.其重载形式输入角度为Angle对象,以弧度为单位.返回Microsoft.DirectX. Vector3三维向量对象,以弧度为单位

WorldWind源码剖析系列:四叉树瓦片类QuadTile

四叉树瓦片类QuadTile提供了对影像和地形数据的四叉树访问模型.该类的类图如下. 四叉树瓦片类QuadTile提供的主要字段.属性和方法简要描述如下: public QuadTileSet QuadTileSet;//四叉树瓦片集合类 public double West;//瓦片的西边界,角度为单位 public double East;//瓦片的东边界 public double North;//瓦片的北边界 public double South;//瓦片的南边界 public Ang

WorldWind源码剖析系列:代理助手类ProxyHelper

代理助手类ProxyHelper通过平台调用的互操作技术封送了若干Win32结构体和函数.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: 内嵌类型WINHTTP_AUTOPROXY_OPTIONS代表自动代理选项的Win32结构体. 内嵌类型WINHTTP_PROXY_INFO代表被WinHTTP互操作返回的代理信息结构体. static extern IntPtr WinHttpOpen()封送Win32动态链接库中的打开Windows Http服务函数. static

WorldWind源码剖析系列:下载请求类DownloadRequest

下载请求类DownloadRequest是各种下载请求的抽象基类,先派生出网络下载请求类WebDownloadRequest,再派生出地理空间下载请求类GeoSpatialDownloadRequest(抽象类),再派生出地形下载请求类TerrainDownloadRequest.这些类的类图如下. 抽象基类下载请求类DownloadRequest 抽象基类下载请求类DownloadRequest各个字段和属性的含义说明如下: internal static DownloadQueue Queu