coin3d是openinventor的阉割版,很多openinventor有的功能coin3d没有集成,那就要麻烦一些。比如碰撞检测功能,只给出了以下SoIntersectionDetectionAction.h,然而openinventor的collisionManage就很方便,很多文献里面也提到了用法。不过抱怨也没有用,感谢还有这个功能,以下是我搜集到的资料:
1、下面博客给了一个程序,也给定了一些函数的使用方法,但是没给出怎么过滤,root中的节点都会显示碰撞,一直返回回调函数:

http://download.csdn.net/download/handong1509/6365473

2、以下网址是给出了一个coin3d碰撞检测的例子,以及函数的详细介绍:

https://grey.colorado.edu/coin3d/classSoIntersectionDetectionAction.html
具体代码:

#include <cstdlib>#include <Inventor/SbTime.h>#include <Inventor/SoDB.h>#include <Inventor/SoInteraction.h>#include <Inventor/collision/SoIntersectionDetectionAction.h>#include <Inventor/errors/SoDebugError.h>#include <Inventor/nodekits/SoNodeKit.h>#include <Inventor/nodes/SoSeparator.h>static SoIntersectionDetectionAction::RespintersectionCB(void * closure,const SoIntersectingPrimitive * pr1,const SoIntersectingPrimitive * pr2){(void)fprintf(stdout, "intersection hit!\n");return SoIntersectionDetectionAction::NEXT_PRIMITIVE;}intmain(int argc, char ** argv){SoDB::init();SoNodeKit::init();SoInteraction::init();if (argc != 2) {(void)fprintf(stderr, "\n\tUsage: testapp <filename.iv>\n\n");exit(1);}SoInput in;SbBool ok = in.openFile(argv[1]);assert(ok);SoSeparator * root = SoDB::readAll(&in);assert(root);root->ref();SoIntersectionDetectionAction ida;ida.addIntersectionCallback(intersectionCB, NULL);ida.setManipsEnabled(FALSE);ida.setDraggersEnabled(FALSE);ida.setIntersectionDetectionEpsilon(10.0f);SbTime starttime = SbTime::getTimeOfDay();SoDebugError::postInfo("main", "SoIntersectionDetectionAction::apply");ida.apply(root);SoDebugError::postInfo("main", "apply() done after %f seconds.",(SbTime::getTimeOfDay() - starttime).getValue());root->unref();return 0;}

3、下面网址里面是关于openinventor函数介绍的网址,可以去查阅

http://developer90.openinventor.com/content/c-api?apiurl=http://oivdoc90.vsg3d.com/APIS/RefManCpp/class_so_intersection_detection_action.html

coin3d碰撞检测的实现相关推荐

  1. 原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM

    一对一碰撞检测 target是目标物体,move是移动物体 情况1:target在move左上角 情况2:target在move右上角 情况3:target在move左下角 情况4:target在mo ...

  2. 如何用Python实现超级玛丽的人物行走和碰撞检测?

    作者 | marble_xu 编辑 | 郭芮 出品 | CSDN博客 在<如何用 Python 实现超级玛丽的界面和状态机?>这篇文章中我们讲解如何用代码实现界面和状态机,本文详解人物行走 ...

  3. [Cocos2d-x For WP8]矩形碰撞检测

    在游戏中我们通常会涉及到两个精灵之间的碰撞的计算,那么在Cocos2d-x里面我们通常会用矩形碰撞检测来计算两个精灵在运动的过程中是否碰撞到了.原理很简单,就是当运动的时候通过精灵的矩形坐标进行遍历来 ...

  4. java矩形碰撞检测_旋转矩形的Java碰撞检测?

    我正在编写我的第一个 java游戏,到目前为止: 我做了一个可以用WSAD走动的矩形,他总是面向鼠标指向的地方.此外,如果你点击,他会射击你的鼠标指向的子弹(并且子弹旋转以面向那个方向).我也制造了跟 ...

  5. 碰撞检测碰撞Java简单游戏开发之碰撞检测

    最近研究碰撞检测碰撞,稍微总结一下,以后继续补充: 前言 未几之前在论坛上有人发贴,使用java编写的超级马里奥如何实现碰撞检测,笔者自己以前 也做过Tank大战.里面一样涉及到碰撞检测,翻翻U盘里的 ...

  6. 游戏编程入门之碰撞检测

    在进行以下内容前我们需先做好准备,明白都要做什么 (1)编写碰撞函数(此时的函数不是完整的下面会对其修改):    我们首先需要创建两个矩形并且调用IntersetRect函数来检查他们是否碰撞的函数 ...

  7. canvas中的碰撞检测笔记

    2019独角兽企业重金招聘Python工程师标准>>> canvas中的碰撞检测笔记 时间 2016-01-19 08:29:00  博客园精华区 原文    http://www. ...

  8. JS写的不咋地的碰撞检测

    最近在学习碰撞检测相关的知识,但说实话,写的不咋地.但是因为鄙人学识浅薄,所以觉得基本上还行,但是挺追求我完美的,所以想拿出来让大神们批评批评. 先来看一下效果 感觉哇,真卡,真难受.因为本来是正方形 ...

  9. js小球与边框碰撞反弹_四叉树在碰撞检测中的应用

    缘起 <你被追尾了>中预告了加速碰撞检测的算法--四叉树(for 2D),所以本文就来学习一下. 分析 首先是为什么要使用四叉树进行优化,其实<你被追尾了>中已经说了,这里简单 ...

  10. J2ME下的游戏精灵的碰撞检测(转)

    碰撞检测又称为冲突检测,是确定精灵之间是否相互冲突的一种方法.碰撞检测用来确定精灵之间何时会发生物理的相互作 用.例如,在游戏中,如果玩家精灵与小飞机精灵发生碰撞,玩家生命值将会降低.碰撞检测就是用来 ...

最新文章

  1. 1人15篇入选?华人论文知多少?深度分析ICCV2019论文录取背后的那些事儿!
  2. 从Varchar转换为 datetime
  3. 简明Linux命令行笔记:dmesg
  4. mysql for Mac 下创建数据表中文显示为?的解决方法
  5. MySql 中的常见问题解决方法
  6. [YTU]_2577( 小数计算——结构体)
  7. 子节点随父节点高度改变_完全二叉树的子节点数
  8. 戴尔押宝iSCSI,由低到高组合成型
  9. 500多页的机器学习入门笔记,下载超5万次,都讲了些什么?
  10. Django编写RESTful API(二):请求和响应
  11. Kubernetes之实战入门
  12. arg是什么函数_CTF必备技能丨Linux Pwn入门教程——针对函数重定位流程的相关测试(上)...
  13. unittestreport 详细功能使用文档(V1.1.1)——测试派柠檬班
  14. 鲸会务一站式智能会议系统帮助主办方实现数字化会议管理
  15. 如何用两台虚拟机搭建LAMP架构访问qq农场
  16. Linux I2C设备regmap机制简析
  17. mac Axure RP 8 授权码 以及汉化
  18. 只有170字节,最小的64位Hello World程序这样写成
  19. Schema Compare 使用手册
  20. PCL 实现 SAC_IA 算法原理源码解析

热门文章

  1. PMP试题 | 每日一练,快速提分 9.9
  2. Chrome浏览器安装扩展程序后菜单栏图标不显示
  3. mysql数据库p_PbootCMS Sqlite数据库转Mysql数据库教程
  4. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
  5. 轻量java框架_smart-framework
  6. 【算法】二叉树遍历算法总结:前序中序后序遍历
  7. VC2013 ArcGIS Engine 10.0开发环境搭建
  8. 6m缓存和8m缓存差距_i79700和i78700性能差距有多大?i79700和i78700区别对比评测
  9. 怎么用PDF转换器将PDF文件转成txt
  10. 光纤基础知识(2)-光纤接头(尾纤)ST,SC,LC,FC