citymaker connect 8 插件式开发之渲染对象与持久对象

citymaker connect 8 插件式开发之从渲染对象与持久对象

 

1、渲染对象与持久对象,以及设计思想:
IRenderable对象意味着只在当前会话(具体的ecp文件)下会能够起效果,新创建的场景不受到影响,一般由AxRenderControl.ObjectManager来管理。典型的类包括:ITerrainModifier、IFeatureLayer等。
与之对应的是需要持久保存的对象,需要数据库文件(FDB)的支持。
渲染对象与持久对象是不同的两套继承结构,两者没有直接关联性,但可以互相转换。

 

在Citymaker connect 8中,一般认为操作的只能是渲染对象,对于持久对象一般不可以进行编辑(在我的怂恿下,他们加了一个不伦不类的编辑按钮,对我是有用的哦)。因此,在进行使用时,需要将持久对象转换为渲染对象,并且隐藏持久对象,在Citymaker connect 8中有相应的工具可以实现。

 

2、相互转换:
在二次开发过程中,我们也需要将创建的渲染对象转换为持久对象。
1)从现有的持久对象创建渲染对象:
IObjectManager.CreateRenderModelPoint  
2)IObjectManager对资源的管理:
IObjectManager.AddModel;
IObjectManager.AddImage;
IObjectManager.CreateRenderModelPoint;
IRObject IObjectManager.GetObjectById;

3)如果能找到IModel,那么就可以将渲染对象存储入数据库中。也可以利用这些IModel进行空间运算。

如:
存储入数据库:
IResourceManager.AddModel;
IModelPoint.ModelName;
分析运算:
FdeGeometry.RayIntersect;
IGeometryConvertor.SimplifyModel;


3、创建的渲染对象,在connect二次开发时,需要使用ProjectTreeService创建到图层树上

ProjectTreeServices.CreateRenderObject(newGroupGuid, modifier);

 

欢迎批评指正,转载请注明出处和作者

---------------------------------------------------------------------------

承接CityMaker各类二次开发、数据生产、数据加工处理等服务。

有意者请联系QQ:gispar@qq.com

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值