我正在研究光线跟踪器,我创建了一个Ray
结构:
#[derive(Clone, Copy, Debug)]
pub struct Ray<N: PartialEq + Copy + Debug> {
pub origin: Vector3<N>,
pub direction: Vector3<N>,
}
我有一个函数来获取具有方向向量的光线的坐标,我将其定义为以下因素:
pub fn point_at_param<T>(&self, delta: T) -> Vector3<T>
where
T: NumOps,
{
self.origin + (delta * self.direction)
}
编译器会抛出一些错误,即我不符合PartialEq
,Copy
和Debug
的要求。它还希望我将N
标记为静态,但我不确定为什么要这样做,因为我不希望每个向量都是静态的。
我只希望point_at_param
函数与T
一起使用,其中T与NumOps