CityMaker学习教程12 osg模型的创建
1、加载一个FDB文件到场景。
2、加载完绑定事件
axRenderControl1.RcMouseClickSelect += AxRenderControl1_RcMouseClickSelect;
3、对应的RcMouseClickSelect代码
if (e.pickResult == null)return;else if (e.eventSender == gviMouseSelectMode.gviMouseSelectClick){switch (mode){case 4://创建模型IGeometryFactory gfactory = new GeometryFactory();OpenFileDialog fileDialog = new OpenFileDialog();fileDialog.Multiselect = true;fileDialog.Title = "请选择文件";fileDialog.Filter = "所有文件(*.osg)|*.osg";string file = "";if (fileDialog.ShowDialog() == DialogResult.OK){file = fileDialog.FileName;}if (file == "") return;IModelPoint fde_modelpoint = gfactory.CreateGeometry(gviGeometryType.gviGeometryModelPoint, gviVertexAttribute.gviVertexAttributeZ) as IModelPoint;fde_modelpoint.SetCoords(e.intersectPoint.X,e.intersectPoint.Y,e.intersectPoint.Z,0,0);fde_modelpoint.ModelName = file;//****获取包围盒IResourceFactory resfac = new ResourceFactory();IPropertySet images = new PropertySet();IModel model = null;IMatrix matrix = null;resfac.CreateModelAndImageFromFile(file, out images, out model, out matrix);fde_modelpoint.ModelEnvelope = model.Envelope;//*************IRenderModelPoint rmodelpoint = _axcontrol.axRenderControl1.ObjectManager.CreateRenderModelPoint(fde_modelpoint, null, rootId);_axcontrol.axRenderControl1.InteractMode = gviInteractMode.gviInteractNormal;break;}
4、对应的创建按钮事件:
if (_axcontrol == null) return;_axcontrol.axRenderControl1.InteractMode = gviInteractMode.gviInteractSelect;_axcontrol.axRenderControl1.MouseSelectMode = gviMouseSelectMode.gviMouseSelectMove | gviMouseSelectMode.gviMouseSelectClick;_axcontrol.axRenderControl1.MouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectFeatureLayer | gviMouseSelectObjectMask.gviSelectTerrain;string tmpCursorPath = AppDomain.CurrentDomain.BaseDirectory + "Cross.cur";_axcontrol.axRenderControl1.MouseCursor = tmpCursorPath;currentLabel = null;mode =4;clickCount = 0;
5、直接拷贝到你的工程使用
支持请联系MrSun
sunhaihong@gvitech.com
CityMaker学习教程12 osg模型的创建相关推荐
- CityMaker学习教程13 osg模型的移动
1.在CityMaker中没有onframe函数,所以模型和标签的移动都要靠鼠拾取这个函数,这个函数能干非常多的事情,几乎所有的CityMaker交互事件都要绑定这个函数,前两节讲了标签的移动,这里模 ...
- CityMaker学习教程14 水面图层的创建
在CityMaker中,图层的创建稍显麻烦,现在讲下如何创建水面层. 1.打开Builder并创建一个空的场景. 2.创建一个空的数据源或者选择一个没加载的数据源. 3.右键数据源,创建个数据集,或者 ...
- CityMaker学习教程08 一个示例,创建漫游路径
1.在看完CS代码后可以自己写程序了,我刚写了一个由线创建动态路径的代码,给大家参考. 2.配置完场景,加载完FDB. 3.代码片段 _axcontrol.axRenderControl1.Inter ...
- CityMaker学习教程11 创建和移动标签
1.加载一个FDB,并在加载结束的时候绑定函数RcMouseClickSelect: this.axRenderControl1.RcMouseClickSelect += new Gvitech.C ...
- OSG 之学习二:OSG 模型简单控制
文章目录 说明 1. 模型的基本操作 1.1 添加模型 1.2 删除模型 1.3 隐藏模型 1.4 结点开关 1.5 超级指针(其实就是智能指针,smart pointer) 2. 移动/旋转/缩放模 ...
- CityMaker学习教程02 软件的授权
软件授权: 打开任意一款款软件,会提示:未检测到单机锁或网络授权失败,请插单机锁或设置网络授权信息后,重启程序. 这时候你如果申请过软授权了,那点击"设置验证"按钮,然后输入: 授 ...
- CityMaker学习教程01 模块说明
首先说一下CityMaker的软件获取,如果是第一次接触想试用该软件,请登录http://www.citymakeronline.com/trial.htm,进行试用申请,为了你能一次性试用成功,最好 ...
- Three.js入门学习笔记12:模型沿着任意轨迹线运动
参考学习 http://www.yanhuangxueyuan.com/doc/Three.js/curveRun.html http://www.yanhuangxueyuan.com/doc/th ...
- CityMaker学习教程06 数据的发布
CityMaker的网络发布工具CityMaker Server,和arcgis的server和skyline的gate+sfs有些相像,能直接将FDB(矢量和模型),ted(地形和影像)以服务方式进 ...
最新文章
- 效率思维模式与Zombie Scrum
- MyBatis入门示例
- 常用的正则表达式验证类
- 使用两个队列实现一个栈
- HDU 5741 Helter Skelter(构造法)
- 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
- 你的“不着急”,最后都是“来不及”
- 2018-2019-2 20175105王鑫浩 实验二《Java面向对象程序设计》实验报告
- iservice封装有哪些方法_对WebService的一些封装技巧总结
- c#如何根据字符串长度获得宽度
- Java学习手册:Java面向对象面试问题
- vue 请求word文档流并打印预览
- 压力传感器如何直接连接电脑笔记本采集数据表格导出
- 修改Oracle GoldenGate(ogg)各个进程的读检查点和写检查点
- matlab 画图串联_Matlab串联矩阵函数【horzcat】详细解析
- MATLAB NAR时间序列神经网络两种预测方法
- Facebook广告投放策略与优化Facebook广告成效的技巧方式
- MySQL借助Excel快速区间分段统计思路(客单价分布 IOS账单分月)
- 透明这种颜色的html,透明颜色HTML5帆布
- PHP云盘网盘系统源码+快速对接多家云存储+VIP付费下载功能