当前位置: 首页 > news >正文

怎样进入当地建设局网站网龙网络公司校园招聘

怎样进入当地建设局网站,网龙网络公司校园招聘,在哪个网站做流动补胎的广告好,成绩查询网站开发鼠标拾取对象是很多软件的基本功能。FastCAE的拾取比较简单#xff0c;是通过VTK实现的。 对几何而言#xff0c;拾取类型切换在工具栏上#xff0c;单击后再来单击视图区对象进行拾取#xff0c;拾取后的对象会高亮显示。效果如下图#xff1a; 一、拾取对象 拾取对象… 鼠标拾取对象是很多软件的基本功能。FastCAE的拾取比较简单是通过VTK实现的。 对几何而言拾取类型切换在工具栏上单击后再来单击视图区对象进行拾取拾取后的对象会高亮显示。效果如下图 一、拾取对象 拾取对象是在PropPickerInteractionStyle类实现的该类是vtkInteractorStyleRubberBandPick的子类重写原来的鼠标处理函数。当鼠标左键按下会触发以下代码 void PropPickerInteractionStyle::clickSelectGeometry(bool preSelect) {int *clickPos this-GetInteractor()-GetEventPosition(); // 获取鼠标点击位置int success -1, index -1;vtkActor *actor nullptr;if (_selectModel GeometryPoint || _selectModel GeometryWinPoint) // 几何点{vtkSmartPointervtkPointPicker picker vtkSmartPointervtkPointPicker::New();success picker-Pick(clickPos[0], clickPos[1], 0, this-GetDefaultRenderer());if (0 ! success){index picker-GetPointId(); // 点的idactor picker-GetActor(); // 点对应的Actor}}else{vtkSmartPointervtkCellPicker picker vtkSmartPointervtkCellPicker::New();if (_selectModel GeometryCurve || _selectModel GeometryWinCurve)picker-SetTolerance(0.0025);success picker-Pick(clickPos[0], clickPos[1], 0, this-GetDefaultRenderer());if (0 ! success){index picker-GetCellId(); // cell的idactor picker-GetActor(); // 对应的actor}}emit selectGeometry(preSelect, actor, index); }这段代码就是鼠标拾取对象的核心逻辑。其实现是借助了VTK提供的vtkPointPicker、vtkCellPicker。其中当拾取模式是点的时候使用vtkPointPicker如果拾取成功返回点的id及对应的Actor一个Actor可能包含多个点。当拾取模式是线、面、体的时候使用vtkCellPicker成功则返回对应cell id及Actor一个Actor可能包含多个cell。注意当拾取线的时候需要提高拾取Tolerance不然线很难拾取到。 另外要注意的是当拾取线的时候面Actor是拾取不到的同样当拾取面的时候线Actor也是拾取不到。这是通过在用户切换选择模式的时候设置面或边Actor是否可以拾取实现的。核心代码在GeometryViewProvider类中如下 void GeometryViewProvider::setGeoSelectMode(int m) {_viewData-updateGraphOption();ModuleBase::SelectModel selectType (ModuleBase::SelectModel)m;QListGeoViewObj viewObjs _geoViewHash.values();vtkActor *actor nullptr;for (GeoViewObj vobj : viewObjs){actor vobj._faceObj.first;if (actor ! nullptr)actor-SetPickable(false);actor vobj._edgeObj.first;if (actor ! nullptr)actor-SetPickable(false);actor vobj._pointObj.first;if (actor ! nullptr)actor-SetPickable(false);switch (selectType){case ModuleBase::GeometryBody:case ModuleBase::GeometrySurface:case ModuleBase::GeometryWinBody:case ModuleBase::GeometryWinSurface:actor vobj._faceObj.first;if (actor ! nullptr)actor-SetPickable(true);break;case ModuleBase::GeometryWinCurve:case ModuleBase::GeometryCurve:actor vobj._edgeObj.first;if (actor ! nullptr)actor-SetPickable(true);break;case ModuleBase::GeometryWinPoint:case ModuleBase::GeometryPoint:actor vobj._pointObj.first;if (actor ! nullptr)actor-SetPickable(true);break;default:break;}} }这个代码相对比较简单不再分析。 二、从信号到槽函数 拾取对象之后会发出emit selectGeometry信号参数中带有Actor及cell或点的id。这个信号是QT框架提供的编程机制。其对应的槽函数在如下图中能找到 三、高亮拾取对象 高亮拾取对象处理过程代码如下 void GeometryViewProvider::selectGeometry(bool pre, vtkActor *ac, int index) {if (ac nullptr || index 0) // 无效拾取{_viewData-preHighLight(nullptr);_preWindow-reRender();return;}ModuleBase::SelectModel selectMod _preWindow-getSelectModel(); // 选择模式vtkDataSet *dataSet ac-GetMapper()-GetInputAsDataSet(); // 获取Actor的多边形数据集vtkPolyDatavtkPolyData *poly vtkPolyData::SafeDownCast(dataSet);if (poly nullptr)return;GeometryViewObject *vobj nullptr;switch (selectMod){case ModuleBase::GeometryWinBody:case ModuleBase::GeometryBody:vobj _viewData-getSolidViewObj(poly, index);break;case ModuleBase::GeometryWinSurface:case ModuleBase::GeometrySurface:vobj _viewData-getFaceViewObj(poly, index); // 输入多边形数据cell idbreak;case ModuleBase::GeometryWinCurve:case ModuleBase::GeometryCurve:vobj _viewData-getEdgeViewObj(poly, index);break;case ModuleBase::GeometryWinPoint:case ModuleBase::GeometryPoint:vobj _viewData-getPointViewObj(poly, index);break;default:break;}if (vobj nullptr)return;if (pre)_viewData-preHighLight(vobj); // 设置预高亮else{vobj-highLight(); // 高亮对象_viewData-preHighLight(nullptr);emit geoShapeSelected(vobj-getGeometySet(), vobj-getIndex());}_preWindow-reRender(); }同样这里也只分析面的高亮其他的高亮逻辑类似。高亮处理的时候直接先根据Actor获取了其vtkPolyData数据集找到哪个面需要高亮最后更改其颜色。如何根据cell id找到这个面需要理解其数据结构才能看懂其逻辑。对于面的数据结构这篇文章【FastCAE源码阅读3】几何模型显示从OCC对象到VTK对象有详细描述。其核心原理是查找cell id落在哪个面包含的cell区间上确定高亮哪个面。最后调用_preWindow-reRender()重新绘制整个场景。
http://www.hkea.cn/news/14460785/

相关文章:

  • 投资网站模版下载上海正规装修公司排名
  • 智能网站建设平台建筑工程网站哪个好
  • 网站代理浏览器一广州电信网站备案
  • 外贸网站源码 php中国服务器排名前十名
  • 石家庄做网站建设的公司哪家好php网页设计完整代码
  • 智能化建设网站贵港购物网站开发设计
  • 网站建设管理典型经验做网站的找哪个
  • 怎么看网站是哪个平台做的网络服务器机柜检验报告多久过期
  • 花桥网站建设网站设计研究方法
  • 电商企业网站建设的一般要素有哪些网站开发需要的技术人员有什么软件
  • 黑龙江网站备案旅游网站论文
  • 信仰类型的企业网站wordpress电子商务站
  • 广州旅游必去十大景点seo外包公司优化
  • 做网站二级页面的网站建设科
  • 相亲网站策划书域名购买是什么意思
  • 网站新闻稿模板接外包网站
  • 电商网站开发用什么软件好企业组网解决方案
  • 单页网站优化网站建网站建设专业
  • 如何查找昆明做网站服务的公司wordpress分类含有中文
  • 做网站能挣钱不山西网站建设企业
  • 网站logo怎么替换网站如何做谷歌推广
  • 网站建设问卷调查表建站服务是什么
  • 国内做设计的网站有哪些方面有站点地图的网站
  • wap网站e4a做app中国网络运营商排名
  • 中国建设劳动学会官方网站是多少wordpress多图轮播
  • 专业商城网站搭建价格电子外贸网站
  • 想成为网站设计师要怎么做世界互联网峰会时间
  • 学做网站 书将网页加入可信站点
  • 网站流量狂刷器wordpress浏览人数
  • 汕头网站建设备案长沙做网站哪个最好