Skip to main content

shell_contains

Function shell_contains 

Source
pub fn shell_contains<S: Scalar>(
    model: &Model<S>,
    shell_id: ShellId,
    point: Vector3<S>,
    max_nodes: usize,
    epsilon: S,
    seed: u64,
) -> GeopResult<PointClassification>
Expand description

Classify point against shell_id’s boundary: PointClassification::OnVertex / PointClassification::OnEdge / PointClassification::OnFace if the query point itself coincides with the boundary, else PointClassification::Inside/PointClassification::Outside via ray casting.

The ray direction is drawn from a seeded PRNG (see Rng) and retried (up to a bounded number of attempts, see [cast_ray]) until one resolves cleanly. The even/odd parity of that crossing count then determines inside/outside, with no dependence on any face’s normal orientation (faces in this crate aren’t guaranteed to wind consistently).

max_nodes bounds both the BFS containment searches and the DFS intersection searches; epsilon is the shared geometric tolerance; seed seeds the direction PRNG.