根据实际需求,利用VSG 绘制不同图形。采用VSG 图形绘制的5个步骤。在VSG 图形绘制的5个步骤中,第2个步骤主要涉及几何体的设计问题,其余4个步骤的内容基本没有变化。在第 2个步骤中,首先定义了一系列的顶点向量,然后设置这些顶点的处理方式:“pRGrom->setPrimitive(vrGeometry::PRIMITIVE_LINE);”即设置为线段方式处理顶点。实际上,VSG 包含以下处理方式:
PRIMITIVE_POINT:独立点方式,只包含离散的点集合。
PRIMITIVE_LINE:线段方式,相邻两个顶点产生一条线段,第0个顶点与第1个顶点产生一条线段;第2个顶点与第3个顶点产生一条线段;以此类推。
PRIMITIVE_LINE_STRIP:闭环线方式,产生一系列线段闭环图形。
PRIMITIVE_TRIANGLE:三角形方式,每3个顶点产生一个三角形,以此类推。
PRIMITIVE_TRIANGLE_FAN:三角扇形方式,每3个顶点产生一个包含一条弧形边的三角形,以此类推。
PRIMITIVE_QUAD:四边形方式,每4个顶点产生一个四边形,以此类推。
接下来,按照VSG 绘制物体的五个步骤,进行简单图形绘制。
在主线程中,在vpKernel::instance()->configure();之后,加入了VSG 绘制图形的代码。
为了便于操作绘制的图形,在PublicMember 类中定义了一个静态变量:
static vpObject PublicMember::CTS_pObject_other;
在第4 步中,使用了代码:(https://www.daowen.com)
PublicMember::CTS_pObject_other=static_cast<vpObject > (pTrans);
PublicMember::CTS_pObject_other->ref();
用PublicMember::CTS_pObject_other 指向了绘制的物体,这样就可以在键盘函数中操作绘制的物体。
主线程中详细代码如图7.2.2所示,有关VSG 绘图的代码用黑体字体进行了标识。
图7.2.2 VSG 绘制简单图形的主线程
运行主线程,将在汽车旁绘制6 条线段,效果如图7.2.3所示。
图7.2.3 VSG 绘制线段
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。