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

表面瓦片类SurfaceTile描述星球类(如地球)表面纹理影像的瓦片模型。其类图如下。

 

表面瓦片类SurfaceTile包含的主要的字段、属性和方法如下:

int m_Level;//该瓦片所属金字塔影像的层级

double m_North;//该瓦片北边界

double m_South; //该瓦片南边界

double m_West; //该瓦片西边界

double m_East; //该瓦片东边界

bool m_Initialized = false; //该瓦片是否已被初始化

Device m_Device = null; //渲染该瓦片的设备对象

Texture m_RenderTexture = null; //该瓦片所关联的纹理影像

float[,] m_HeightData = null; //存储该瓦片所覆盖区域的高程数据的二维数组

CustomVertex.TransformedColoredTextured[] m_RenderToTextureVertices = new CustomVertex.TransformedColoredTextured[4];//待渲染的纹理顶点坐标

DynamicTexture m_DynamicTexture = null;//该瓦片所包含的动态纹理

bool m_RequiresUpdate = false;//标志该瓦片是否需要更新

float m_VerticalExaggeration = float.NaN;//该瓦片的竖直放大率

System.DateTime m_LastUpdate = System.DateTime.Now;//瓦片最后更新时间

WorldSurfaceRenderer m_ParentWorldSurfaceRenderer;//该瓦片所绑定的星球表面渲染类对象

BoundingBox m_BoundingBox;//该瓦片的外包围盒

short[] m_NwIndices = null;//该瓦片的西北顶点数组

short[] m_NeIndices = null;//该瓦片的东北顶点数组

short[] m_SwIndices = null;//该瓦片的西南顶点数组

short[] m_SeIndices = null;//该瓦片的东南顶点数组

SurfaceTile m_NorthWestChild;//该瓦片的西北孩子瓦片

SurfaceTile m_NorthEastChild;//该瓦片的东北孩子瓦片

SurfaceTile m_SouthWestChild;//该瓦片的西南孩子瓦片

SurfaceTile m_SouthEastChild;//该瓦片的东南孩子瓦片

short[] m_IndicesElevated;// 该瓦片的高程索引数组

该类的方法都比较简单,不再赘述,有兴趣的读者可以阅读源码。感兴趣的读者可以直接阅读源码。建议阅读源码之前读者应具备一定的DirectX3D开发基础。

 

调用关系:

1)    SurfaceTile内部引用了SurfaceImage、WorldSurfaceRenderer 、TerrainTile、BoundingBox、DynamicTexture等类。

2)    TerrainTileService内部引用了TerrainTile等类。

3)    TerrainTile内部也引用了TerrainTileService、TerrainDownloadRequest等类。

4)    TerrainAccessor内部引用了TerrainTile等类。

5)    World派生于RenderableObject类,内部引用了WorldSettings、SettingsBase 、DrawArgs 、MathEngine 、TerrainAccessor、RenderableObjectList、WorldSurfaceRenderer、Quaternion 、ProjectedVectorRenderer、AtmosphericScatteringSphere、MeshSubset 、RenderableObject、SunCalculator、Frustum、ImageHelper 、RenderPriority、Angle、CameraBase等类。

posted @ 2015-07-27 22:21  rainbow70626  阅读(395)  评论(0编辑  收藏  举报