Ejemplo n.º 1
0
RNLength R2SignedDistance(const R2Line& line, const R2Box& box)
{
    // Return signed distance from line to box
    RNQuadrant quadrant = line.Normal().Quadrant();
    RNScalar d1 = R2SignedDistance(line, box.Corner(~quadrant & 0x3));
    if (RNIsPositiveOrZero(d1)) return d1;
    RNScalar d2 = R2SignedDistance(line, box.Corner(quadrant));
    if (RNIsNegative(d2)) return d2;
    else return 0.0;
}
Ejemplo n.º 2
0
RNBoolean R3Contains(const R3Halfspace& halfspace, const R3Ray& ray)
{
    // Return whether halfspace contains ray
    return (RNIsPositiveOrZero(halfspace.Normal().Dot(ray.Vector())) &&
	    R3Contains(halfspace, ray.Start()));
}
Ejemplo n.º 3
0
RNBoolean R3Contains(const R3Halfspace& halfspace, const R3Point& point)
{
    // Return whether halfspace contains point
    return (RNIsPositiveOrZero(R3SignedDistance(halfspace.Plane(), point)));
}