GraphMine

util-math / io.github.sof3.graphmine.util.math / IntVector3Range

IntVector3Range

class IntVector3Range : Iterable<IntVector3>

A unit-aligned cuboid region in the 3D space.

In integer-aligned space, this is a closed range [min, max] such that the region joined with another region at max + 1 on any axis will be fully continuous.

In non-integer-aligned space, this is a semi-open range [min, max + 1) such that the same rule applies. It can be thought as the vector at (x, y, z) covering the range ([x, x + 1), [y, y + 1), [z, z + 1)).

Types

IterationOrder enum class IterationOrder
Specifies the iteration order.

Properties

max val max: IntVector3
the maximum possible point in the region
min val min: IntVector3
the minimum possible point in the region

Functions

contains operator fun contains(vector: IntVector3): Boolean
Checks if a vector is inside the range in integer-aligned space.operator fun contains(vector: Vector3): Boolean
Checks if a vector is inside the range in non-integer-aligned space.
iterator fun iterator(): Iterator<IntVector3>
Iterates over every integer-aligned point in this range.
with infix fun with(order: IterationOrder): Iterable<IntVector3>
Specifies the iteration order before using as an iterable.