AxisAlignedBoundingBox.java

package de.dlr.shepard.data.spatialdata.model.geometryFilter;

import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class AxisAlignedBoundingBox extends AbstractGeometryFilter {

  private double minX;
  private double minY;
  private double minZ;

  private double maxX;
  private double maxY;
  private double maxZ;

  public AxisAlignedBoundingBox() {
    super(GeometryFilterType.AXIS_ALIGNED_BOUNDING_BOX);
  }

  public AxisAlignedBoundingBox(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
    super(GeometryFilterType.AXIS_ALIGNED_BOUNDING_BOX);
    this.minX = minX;
    this.minY = minY;
    this.minZ = minZ;
    this.maxX = maxX;
    this.maxY = maxY;
    this.maxZ = maxZ;
  }

  @Override
  public boolean isValid() {
    return minX <= maxX && minY <= maxY && minZ <= maxZ;
  }
}