【发布时间】:2010-02-06 03:46:56
【问题描述】:
我注意到有很多功能可以进行光线投射,但它们似乎使用 常量 NxRay
我遇到的问题是我的 NxRay 有一辆向下投射光线的车辆。它不是恒定的,因为车辆可以以不同的角度移动,但我希望能够进行光线投射以找出撞击地面或其他物体所需的距离。谢谢。
使用 C++、Glut、PhysX
【问题讨论】:
我注意到有很多功能可以进行光线投射,但它们似乎使用 常量 NxRay
我遇到的问题是我的 NxRay 有一辆向下投射光线的车辆。它不是恒定的,因为车辆可以以不同的角度移动,但我希望能够进行光线投射以找出撞击地面或其他物体所需的距离。谢谢。
使用 C++、Glut、PhysX
【问题讨论】:
为什么你不能只做以下事情?
NxRay ray;
// fill in ray structure here
// ray.dir = ...
// call a ray cast
// scene->raycastClosestBounds(ray, ...
// scene->raycastClosestShape(ray, ...
raycast 调用中的 const 值只是向您保证它不会改变这些值。这并不意味着您必须提供 const NxRay。
【讨论】:
采用const 参数的C 函数仅意味着该函数不会修改其值,而不是该值本身必须是常量。例如,我可以将非常量 char * 传递给 printf() 的第一个参数,即使该参数声明为 const char *。
因此,使用变量 NxRay 作为光线投射函数的参数应该没有问题。
【讨论】: