资源简介
利用open inventor Coin3D中自带的Intersections 类实现两个物体之间的碰撞检测

代码片段和文件信息
// 添加COIN头文件-Window操作显示库和节点库
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
SoIntersectionDetectionAction::Resp onIntersection(void *userDataconst
SoIntersectingPrimitive *primitive1const SoIntersectingPrimitive *primitive2)
{
// These two primitive have an intersection.
(void)fprintf(stdout “intersection hit!/n“);
// This callback will be called for the two next colliding shapes
return SoIntersectionDetectionAction::NEXT_SHAPE;
}
static void alarmCB(void * data SoSensor *sensor) //响应函数
{
SoWin::exitMainLoop();
//重新调度警报传感器
SoAlarmSensor *alarm=(SoAlarmSensor*)sensor;
alarm->setTimeFromNow(0.022);
alarm->schedule();
}
int main(int argc char **argv)
{
SoDB::init(); // 初始化SoDB读取iv文件
HWND hWnd = SoWin::init(argv[0]); // 产生窗口句柄
SoSeparator *pRootSeparator = new SoSeparator;
pRootSeparator->ref(); // 创建根节点并ref计数
//SoPerspectiveCamera *myCamera = new SoPerspectiveCamera;
SoPendulum *myPend = new SoPendulum;
myPend->rotation0.setValue(SbVec3f(001)0);
myPend->rotation1.setValue(SbVec3f(001)-1);
myPend->speed=0.2f;
SoInput input;
if (input.openFile(“finger002.iv“)) // 加载iv文件并读取全部内容
{
pRootSeparator->addChild(SoDB::readAll(&input));
}
//子节点1
SoSeparator *pSon1Separator = new SoSeparator;
SoPendulum *mySon1Pend = new SoPendulum;
pRootSeparator->addChild(pSon1Separator);
SoTransform *mySon1Tform=new SoTransform;
pSon1Separator->addChild(mySon1Tform);
mySon1Tform->translation.setValue(0.04f 0.0 0.00);
pSon1Separator->addChild(mySon1Pend);
mySon1Pend->rotation0.setValue(SbVec3f(001)0);
mySon1Pend->rotation1.setValue(SbVec3f(001)-1.0);
mySon1Pend->speed=0.2;
if (input.openFile(“finger001.iv“)) // 加载iv文件并读取全部内容
{
pSon1Separator->addChild(SoDB::readAll(&input));
}
SoSeparator *sphere=new SoSeparator;
pRootSeparator->addChild
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-08 09:13 碰撞\
目录 0 2013-10-08 09:13 碰撞\Debug\
文件 2573312 2013-10-08 09:11 碰撞\Debug\test.bsc
文件 221234 2013-10-08 09:11 碰撞\Debug\test.exe
文件 412688 2013-10-08 09:11 碰撞\Debug\test.ilk
文件 43428 2013-10-08 09:11 碰撞\Debug\test.obj
文件 5663172 2013-10-07 20:01 碰撞\Debug\test.pch
文件 738304 2013-10-08 09:11 碰撞\Debug\test.pdb
文件 0 2013-10-08 09:11 碰撞\Debug\test.sbr
文件 525312 2013-10-08 09:13 碰撞\Debug\vc60.idb
文件 372736 2013-10-08 09:11 碰撞\Debug\vc60.pdb
文件 477791 2013-09-07 17:02 碰撞\finger001.iv
文件 319532 2013-09-07 17:01 碰撞\finger002.iv
文件 4251 2013-10-08 09:11 碰撞\test.cpp
文件 4229 2013-09-08 23:04 碰撞\test.dsp
文件 531 2013-05-04 10:26 碰撞\test.dsw
文件 66560 2013-10-08 09:13 碰撞\test.ncb
文件 54784 2013-10-08 09:13 碰撞\test.opt
文件 242 2013-10-08 09:13 碰撞\test.plg
- 上一篇:cadence 617
- 下一篇:禾匠商城前端.zip
相关资源
- CANopen使用手册_埃斯顿
- OpenGL参考手册
- 引力波是玻色-爱因斯坦凝聚物暗物质
- MFC程序-碰撞的小球
- Qt Creator opengl实现四元数鼠标控制轨迹
- 使用OpenFileDialog打开文件对话框.rar
- Openssl给文件传输加密
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- openssl 简介(中文)
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- MD5碰撞验证算法
- OpenGL-3D坦克模拟
- opencv环境配置
- 探索LHC耦合中的CP振动效应
- 复合共振的行为打破了轻质风味的普
- 重建希格斯产生的共振tau对中的半不
- 中微子质量和暗物质的模型,具有大
- 外来轻质风味违反希格斯衰变
评论
共有 条评论