1、在CityMaker中没有onframe函数,所以模型和标签的移动都要靠鼠拾取这个函数,这个函数能干非常多的事情,几乎所有的CityMaker交互事件都要绑定这个函数,前两节讲了标签的移动,这里模型的移动道理类似。
2、在上一章节的基础上在AxRenderControl1_RcMouseClickSelect中添加新的case值判断
case 5:
IRenderModelPointPickResult rmp = e.pickResult as IRenderModelPointPickResult;
if (clickCount == 0)
{
if (rmp != null)
{
currentModel =rmp.ModelPoint;
_geoEditor.StartEditRenderGeometry(currentModel, gviGeoEditType.gviGeoEdit3DMove);
clickCount++;
}
}
else if (clickCount == 1)
{
_axcontrol.axRenderControl1.InteractMode = gviInteractMode.gviInteractNormal;
_geoEditor.FinishEdit();
}
break;
3、移动函数点击
_geoEditor = _axcontrol.axRenderControl1.ObjectEditor;
_axcontrol.axRenderControl1.RcObjectEditing += AxRenderControl1_RcObjectEditing;
_axcontrol.axRenderControl1.RcObjectEditFinish += AxRenderControl1_RcObjectEditFinish;
_axcontrol.axRenderControl1.InteractMode = gviInteractMode.gviInteractEdit;
_axcontrol.axRenderControl1.MouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectFeatureLayer | gviMouseSelectObjectMask.gviSelectRenderGeometry;
string tmpCursorPath = AppDomain.CurrentDomain.BaseDirectory + "Cross.cur";
_axcontrol.axRenderControl1.MouseCursor = tmpCursorPath;
mode = 5;
clickCount = 0;
如需支持请联系MrSun
sunhaihong@gvitech.com