AC-Vector-2.3.2: Efficient geometric vectors and transformations.

Data.BoundingBox.B3

Description

This module provides the `BBox3` type for 3-dimensional bounding boxes ("bounding volumes").

Synopsis

# Documentation

data BBox3 Source

A `BBox3` is a 3D bounding box (aligned to the coordinate axies).

Constructors

 BBox3 FieldsminX :: !Scalar minY :: !Scalar minZ :: !Scalar maxX :: !Scalar maxY :: !Scalar maxZ :: !Scalar

Instances

 Eq BBox3 Show BBox3

Return the X-range that this bounding box covers.

Return the Y-range that this bounding box covers.

Return the Z-range that this bounding box covers.

Given ranges for each coordinate axis, construct a bounding box.

Given a pair of corner points, construct a bounding box. (The points must be from opposite corners, but it doesn't matter which corners nor which order they are given in.)

bound_points :: [Vector3] -> BBox3Source

Find the bounds of a list of points. (Throws an exception if the list is empty.)

Test whether a given 3D vector is inside this bounding box.

Return the minimum values for all coordinates.

Return the maximum values for all coordinates.

Take the union of two bounding boxes. The result is a new bounding box that contains all the points the original boxes contained, plus any extra space between them.

Take the intersection of two bounding boxes. If the boxes do not overlap, return `Nothing`. Otherwise return a new bounding box containing only the points common to both argument boxes.

unions :: [BBox3] -> BBox3Source

Efficiently compute the union of a list of bounding boxes.