Interface VoxelsPredicate

All Known Implementing Classes:
PredicateAtCorner, PredicateImplementation

public interface VoxelsPredicate
Methods to find or count voxels that satisfy a predicate.
Author:
Owen Feehan
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Does at least one value satisfy the predicate - across all voxels?
    int
    Counts the number of values satisfying the predicate - across all voxels.
    int
    Counts the number of values satisfying the predicate - but restricted to voxels corresponding to on in an object-mask.
    Creates an ObjectMask for all the voxels inside the bounding-box satisfying the predicate.
    Creates an ObjectMask for all the voxels satisfying the predicate, minimally fitting the bounding-box to the on voxels only.
    boolean
    higherCountExistsThan(int threshold)
    Whether the count is greater than a particular threshold.
    boolean
    lowerCountExistsThan(int threshold)
    Whether the count is less than a particular threshold.
  • Method Details

    • anyExists

      boolean anyExists()
      Does at least one value satisfy the predicate - across all voxels?

      The computational cost of the operation is O(n) in the number of voxels in the worst-case. Typically, it exits earlier.

      Returns:
      true iff at least one value exists.
    • count

      int count()
      Counts the number of values satisfying the predicate - across all voxels.

      The computational cost of the operation is O(n) in the number of voxels.

      Returns:
      the total count.
    • countForObject

      int countForObject(ObjectMask object)
      Counts the number of values satisfying the predicate - but restricted to voxels corresponding to on in an object-mask.

      The computational cost of the operation is O(n) in the number of voxels.

      Parameters:
      object - the object-mask.
      Returns:
      the total count according to the above constraint.
    • higherCountExistsThan

      boolean higherCountExistsThan(int threshold)
      Whether the count is greater than a particular threshold.

      The computational cost of the operation is O(n) in the number of voxels in the worst-case. Typically, it exits earlier.

      Parameters:
      threshold - the threshold.
      Returns:
      true as soon as more voxels are counted than the threshold, false if it never occurs.
    • lowerCountExistsThan

      boolean lowerCountExistsThan(int threshold)
      Whether the count is less than a particular threshold.

      The computational cost of the operation is O(n) in the number of voxels in the worst-case. Typically, it exits earlier.

      Parameters:
      threshold - the threshold.
      Returns:
      false as soon as as many voxels as threshold, true if it never occurs.
    • deriveObject

      ObjectMask deriveObject(BoundingBox box)
      Creates an ObjectMask for all the voxels inside the bounding-box satisfying the predicate.

      Any voxels satisfying the predicate are set to on.

      All other voxels are set to off.

      Unlike deriveObjectTight(), this operates only within a certain bounding-box, and always uses an identical bounding-box for the created ObjectMask as box.

      The computational cost of the operation is O(n) in the number of voxels in box only.

      Parameters:
      box - bounding-box.
      Returns:
      an object-mask referring to the bounding-box, with the same corner-position and size as box.
    • deriveObjectTight

      Optional<ObjectMask> deriveObjectTight()
      Creates an ObjectMask for all the voxels satisfying the predicate, minimally fitting the bounding-box to the on voxels only.

      Any voxels satisfying the predicate are set to on.

      All other voxels are set to off.

      Unlike deriveObject(BoundingBox), this operates all the voxels, and will typically use a much smaller bounding-box (fewer voxels) to describe the on voxels.

      The computational cost of the operation is O(n) in the number of voxels in box only.

      Returns:
      an object-mask indicating all voxels that match the predicate, and with as minimal a bounding-box as possible to contain these. If no voxels match, then Optional.empty().