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

Data.BoundingBox.B4

Description

This module provides the `BBox4` type for 4-dimensional bounding boxes (bounding hyper-volumes).

Synopsis

# Documentation

data BBox4 Source

A `BBox4` is a 4D bounding box (aligned to the coordinate axies).

Constructors

 BBox4 FieldsminX :: !Scalar minY :: !Scalar minZ :: !Scalar minW :: !Scalar maxX :: !Scalar maxY :: !Scalar maxZ :: !Scalar maxW :: !Scalar

Instances

 Eq BBox4 Show BBox4

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.

Return the W-range (4th coordinate) that this bounding box covers.

rangeXYZW :: Range -> Range -> Range -> Range -> BBox4Source

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 :: [Vector4] -> BBox4Source

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

Test whether a given 4D 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.