资源简介
利用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
相关资源
- 基于OPENCV的多种特征提取总结
- hame mpr-a2 openwrt固件包含ch340cp2102驱动
- 运动车辆检测跟踪系统vc源码opencv
- openGL下雨现象模拟
- OpenGL三维图形程序设计(Windows版)
- 写给大家看的安卓应用开发书:App
- OpenGL实现鼠标旋转缩放平移操作
- opencv数码管识别程序
- OSEK学习资料
- Instagram Filters 破解了Instagram App的几十
- opengl 3d obj模型加载,贴图
- 实时计算机图形学 第二版英文版pdf格
- OpenCV2.4.3 windows版本
- OpenGL实践三:水面涟漪的逼真绘制毕
- opencv stitching拼接
- Learning.Apache.OpenWhisk.Developing.Open.Serv
- Opengl实现的Ray Casting 光线投射算法
- 天空盒(opengl)
- OpenDaylight REST API研究
- OpenStack Cloud Computing Cookbook 3rd Edition
- opengl图形学实验七 不同的光照渲染
- OpenCV自带视频测试文件vtest.avi
- Mastering OpenCV with Practical Computer Visio
- OpenGL-Nehe完整中文教程和全部源代码
- openmv-boards-master(1).zip
- opencv-3.4.0编译失败需要的boostdesc_bgm
- VS2015+Opencv310的X86动态库lib
- 移远BC26模组 OPENCPU版本NA固件
- libopencore-amrnb.a和libopencore-amrwb.a文件
- 基于OpenCV的红外运动目标检测与跟踪
评论
共有 条评论