zoukankan      html  css  js  c++  java
  • osgviewer读取dxf文件,拣选高亮功能小结

    最近看了段关于osgViewer加载dxf文件的代码,利用的是dxflib的这个开源包,并且右键拣选时进行了高亮处理。

    对该段代码的疑问请教了osg大咖,现总结如下:

    一、读取dxf功能

    dll_dxf的in函数中,实现对addBlock和add3dFace两个方法的反复调用。其中addbiock方法是对板架信息的读取(name,坐标基点),保存为叶子节点;add3dFace方法是对板架下的面片信息的读取(顶点坐标,颜色)。endblock方法将3dFace的信息以geometry形式加在叶子节点下面。

    另:dxf文件如何生成?法线自动生成?

    二、拣选高亮功能

    拣选功能主要通过碰撞检测。通过osgUtil::LineSegmentIntersector::Intersection获取选择的节点。intersection中保存了所有穿过直线的节点。通过.begin可以获取最前方的nodepath,nodepath中保存了最前方的各级节点数据。数组中依次从根节点到叶子节点。

    高亮功能可以用osgFX修饰node并代替实现,也可以设置node的state实现。

    如何判断一个node节点是group还是geode。可以通过osg::geode::asgeode和osg::group::asgroup的返回值进行判断

  • 相关阅读:
    Robot Framework (十)html基础
    Robot Framework (九)Selenium的安装
    Robot Framework (八)循环&分支
    Robot Framework (七)Keyword 关键字
    约瑟夫环问题的两种解法(详解)
    msdn
    java同一个包中,类之间的的调用
    循环语句中break 与 continue的区别
    memset()函数
    DFS(深搜)算法
  • 原文地址:https://www.cnblogs.com/hanmolabi/p/7518090.html
Copyright © 2011-2022 走看看