WorldWind源码剖析系列:可渲染对象类RenderableObject
RenderableObject是WorldWind中所有需要渲染的对象的父类,继承了接口IRenderable和Icomparable。其派生类体系如下所示。RenderableObject的成员如下所示。
RenderableObjectList也继承自RenderableObject。
接口Irenderable内部仅仅定义下面三个接口,分别用来初始化、更新和渲染:
void Initialize(DrawArgs drawArgs);
void Update(DrawArgs drawArgs);
void Render(DrawArgs drawArgs);
枚举类型RenderPriority指定各种可渲染元素的优先级,优先级高的元素优先被渲染。
public enum RenderPriority
{
SurfaceImages = 0,
TerrainMappedImages = 100,
AtmosphericImages = 200,
LinePaths = 300,
Icons = 400,
Placenames = 500,
Custom = 600
}
可渲染对象类RenderableObject包含的主要的字段、属性和方法如下:
public bool isInitialized;//该可渲染对象是否已经初始化,如果是接下来可以渲染了
public bool isSelectable;//是否可被用户选择
public RenderableObjectList ParentList;//该对象所从属的可渲染对象列表父节点
public string dbfPath = "";//Shapefile的DBF信息路径
public bool dbfIsInZip = false;//Shapefile的DBF信息是否在压缩包中
protected string name;//该可渲染对象的名字
protected string m_description = null;//该可渲染对象的描述字符串
protected Hashtable _metaData = new Hashtable();//存储该对象元数据的哈希表
protected Vector3 position;//该可渲染对象的位置
protected Quaternion orientation;//该可渲染对象的方向
protected bool isOn = true;//是否显示或隐藏该可渲染对象
protected byte m_opacity = 255; //该可渲染对象的不透明度
protected RenderPriority m_renderPriority = RenderPriority.SurfaceImages;//该可渲染对象默认的渲染优先级
protected Form m_propertyBrowser;//该可渲染对象的属性浏览窗体
string m_thumbnail;//该可渲染对象的指纹影像路径
protected Image m_thumbnailImage;//该可渲染对象的指纹影像
protected string m_iconImagePath;//该可渲染对象的icon影像路径
protected Image m_iconImage;//该可渲染对象的icon影像
protected World m_world;//该可渲染对象所从属的星球对象
该类所包含的方法都比较简单,就不再赘述。
转载于:https://www.cnblogs.com/rainbow70626/p/4584325.html
WorldWind源码剖析系列:可渲染对象类RenderableObject相关推荐
- WorldWind源码剖析系列:外包围盒类BoundingBox和外包围球类BoundingSphere
PluginSDK中的外包围盒.外包围球分别用类 BoundingBox和BoundingSphere描述,其类图如下所示. 外包围盒BoundingBox类的corners字段用来存储外包围盒的8个 ...
- WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer
星球表面渲染类WorldSurfaceRenderer描述如何渲染星球类(如地球)表面影像纹理.该类的类图如下. 星球类World包含的主要的字段.属性和方法如下: public const int ...
- WorldWind源码剖析系列:BMNG类构造函数深入分析
BMNG构造函数深入分析 一.主要类图 二.主要功能: 1) BMNG类 BMNG类将包含以"Blue Marble"为主题的所有可渲染影像的根节点添加到当前星球的可 ...
- WorldWind源码剖析系列:大气层散射球类AtmosphericScatteringSphere
大气层散射球类AtmosphericScatteringSphere代表地球外面的大气层散射球模型,可以控制开启/关闭渲染该对象.该类的类图如下. 该类所包含的主要字段.属性和方法如下: public ...
- 【java集合框架源码剖析系列】java源码剖析之ArrayList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 本博客将从源码角度带领大家学习关于ArrayList的知识. 一ArrayList类的定义: public class Arr ...
- boost源码剖析之:泛型指针类any之海纳百川(rev#2)
boost源码剖析之:泛型指针类any之海纳百川(rev#2) 刘未鹏 C++的罗浮宫(http://blog.csdn.net/pongba) 动机 C++是强类型语言,所有强类型语言对类型的要求都 ...
- Python源码剖析2-字符串对象PyStringObject
二. 1.PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象.当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不 ...
- python源码剖析笔记1——Python对象初见
本文简书地址:http://www.jianshu.com/p/763f6cec7a9b 工作整两年了,用python最多,然而对于python内部机制不一定都清楚,每天沉醉于增删改查的简单逻辑编写, ...
- React 源码剖析系列 - 不可思议的 react diff
目前,前端领域中 React 势头正盛,使用者众多却少有能够深入剖析内部实现机制和原理.本系列文章希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然. React diff 作 ...
最新文章
- (iOS)从0到Double系列 如何刻出一个可拖动的导航浮動按钮
- 自考总结-2019-4-14
- EasyUI 1.3.6 行号显示不全
- 释放linux 内存
- SLAM到底解决的是什么问题?
- 冻结拆分_还不会固定表头?速来围观Excel冻结窗格实战教程
- WebService系列之使用Axis获取天气预报数据
- SpringBoot中使用Shiro和JWT做认证和鉴权
- 判别两棵树是否相等 设计算法_一文看懂生成对抗网络 - GANs?(附:10种典型算法+13种应用)...
- 小白一步步:EntLib5.0 - Data Access 最简练习
- TTC - Building a Better Vocabulary
- IAR 8.3 for Arm 安装与注册
- 可以识别linux的GHOST,Linux可以用ghost
- Java web学生信息管理系统(jsp)
- 计算机应用基础第一章ppt,计算机应用基础第一章课件.ppt
- java pdf 富文本_Java生成pdf,兼富文本
- 联想win10专业版64位简体中文原版光盘镜像
- lncRNASNP:SNP位点对lncNA结构和lncRNA-miRNA影响的数据库
- 深圳职业技术学院计算机专业分数线,2016深圳职业技术学院分数线
- 磁盘清理软件:DaisyDisk for Mac
热门文章
- php记住表单数据cookie,【PHP基础】cookies和session
- 区位码怎么知道点阵里的起始点_自身免疫疾病的GAPS起始饮食改良版
- linux运维选择题,初学Linux练习题
- java property_property在Java中的用法
- mvc4 html.beginform,MVC4 Html.BeginForm在Internet Explorer中提交按钮 9不工
- 160 - 20 BuLLeT.8
- C++编程调试秘笈(第1次阅读)
- LeetCode 239:滑动窗口最大值 思考分析
- 使用numpy.tanh()打印矢量/矩阵元素的双曲正切值 使用Python的线性代数
- 汇编语言-014(编写过程的应用、伪指令LEA、ENTER、LEAVE、LOCAL、递归函数、INVOKE、ADDR、PROC伪指令声明过程)