类 IntervalsSet

所有已实现的接口:
Iterable<double[]>, Region<Euclidean1D>

public class IntervalsSet extends AbstractRegion<Euclidean1D,Euclidean1D> implements Iterable<double[]>
该类表示一维区域:一组间隔。
  • 构造器详细资料

    • IntervalsSet

      public IntervalsSet(double tolerance)
      构建表示整个实数线的间隔集。
      参数:
      tolerance - 被视为相同的点下的容差。
    • IntervalsSet

      public IntervalsSet(double lower, double upper, double tolerance)
      构建对应于单个间隔的间隔集。
      参数:
      lower - 区间的下界,必须小于或等于upper(可以是Double.NEGATIVE_INFINITY
      upper - 区间的上界,必须大于或等于lower(可以是Double.POSITIVE_INFINITY
      tolerance - 被视为相同的点下的容差。
    • IntervalsSet

      public IntervalsSet(BSPTree<Euclidean1D> tree, double tolerance)
      从内部/外部BSP树构建间隔集。

      BSP树的叶节点必须具有表示相应单元格内部状态的Boolean属性(对于内部单元格为true,对于外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUEBoolean.FALSE

      参数:
      tree - 表示间隔集的内部/外部BSP树
      tolerance - 被视为相同的点下的容差。
    • IntervalsSet

      public IntervalsSet(Collection<SubHyperplane<Euclidean1D>> boundary, double tolerance)
      从边界表示(B-rep)构建间隔集。

      边界提供为sub-hyperplanes集合。每个子超平面在其负侧具有区域的内部部分,在其正侧具有外部部分。

      边界元素可以以任何顺序排列,并且可以形成几个非连接的集合(例如具有孔洞的多边形或作为整体考虑的一组不相交的多面体)。实际上,元素甚至不需要连接在一起(它们的拓扑连接在这里不使用)。但是,如果边界实际上没有将内部开放区域与外部开放区域分开(这里的开放具有其拓扑含义),那么对checkPoint方法的后续调用将不再有意义。

      如果边界为空,则区域将表示整个空间。

      参数:
      boundary - 边界元素的集合
      tolerance - 被视为相同的点下的容差。
  • 方法详细资料

    • buildNew

      public IntervalsSet buildNew(BSPTree<Euclidean1D> tree)
      使用实例作为原型构建区域。

      此方法允许创建新实例,而无需确切了解区域的类型。这是原型设计模式的应用。

      BSP树的叶节点必须具有表示相应单元格内部状态的Boolean属性(对于内部单元格为true,对于外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUEBoolean.FALSE。树还必须具有空的内部节点或按照getTree方法中指定的边界的内部节点)。

      指定者:
      buildNew 在接口中 Region<Euclidean1D>
      指定者:
      buildNew 在类中 AbstractRegion<Euclidean1D,Euclidean1D>
      参数:
      tree - 表示新区域的内部/外部BSP树
      返回:
      构建的区域
    • computeGeometricalProperties

      protected void computeGeometricalProperties()
      计算一些几何属性。

      要计算的属性包括重心和大小。

      指定者:
      computeGeometricalProperties 在类中 AbstractRegion<Euclidean1D,Euclidean1D>
    • getInf

      public double getInf()
      获取实例中属于的最低值。
      返回:
      实例中属于的最低值(如果实例没有下界,则为Double.NEGATIVE_INFINITY,如果实例为空,则为Double.POSITIVE_INFINITY
    • getSup

      public double getSup()
      获取实例中属于的最高值。
      返回:
      实例中属于的最高值(如果实例没有上界,则为Double.POSITIVE_INFINITY,如果实例为空,则为Double.NEGATIVE_INFINITY
    • projectToBoundary

      public BoundaryProjection<Euclidean1D> projectToBoundary(Point<Euclidean1D> point)
      在区域边界上投影点。
      指定者:
      projectToBoundary 在接口中 Region<Euclidean1D>
      覆盖:
      projectToBoundary 在类中 AbstractRegion<Euclidean1D,Euclidean1D>
      参数:
      point - 要检查的点
      返回:
      点在边界上的投影
    • asList

      public List<Interval> asList()
      构建表示实例的有序间隔列表。

      此方法将此间隔集构建为Interval元素的有序列表。如果间隔集没有下限,则第一个间隔的下界将等于Double.NEGATIVE_INFINITY。如果间隔集没有上限,则最后一个间隔的上界将等于Double.POSITIVE_INFINITY。空树将构建一个空列表,而表示整个实数线的树将构建一个元素为无限的单元素列表。

      返回:
      包含Interval元素的新有序列表
    • iterator

      public Iterator<double[]> iterator()

      迭代器按升序返回子间隔的限值。

      迭代器不支持可选的remove操作。

      指定者:
      iterator 在接口中 Iterable<double[]>