- 类型参数:
-
S- 空间的类型。 -
T- 子空间的类型。
- 所有已实现的接口:
-
Region<S>
- 直接已知子类:
-
ArcsSet,IntervalsSet,PolygonsSet,PolyhedronsSet,SphericalPolygonsSet
-
嵌套类概要
从接口继承的嵌套类/接口 org.hipparchus.geometry.partitioning.Region
Region.Location -
构造器概要
构造器限定符构造器说明protectedAbstractRegion(double tolerance) 构建表示整个空间的区域。protectedAbstractRegion(Collection<SubHyperplane<S>> boundary, double tolerance) 从边界表示(B-rep)构建区域。protectedAbstractRegion(BSPTree<S> tree, double tolerance) 从内部/外部BSP树构建区域。AbstractRegion(Hyperplane<S>[] hyperplanes, double tolerance) 从一组边界超平面构建凸区域。 -
方法概要
修饰符和类型方法说明applyTransform(Transform<S, T> transform) 转换区域。abstract AbstractRegion<S, T> 使用实例作为原型构建区域。protected Region.LocationcheckPoint(BSPTree<S> node, Point<S> point) 从给定节点开始检查区域的点。protected <V extends Vector<S,V>>
Region.LocationcheckPoint(BSPTree<S> node, Vector<S, V> point) 从给定节点开始检查区域的点。checkPoint(Point<S> point) 检查点是否属于区域。<V extends Vector<S,V>>
Region.LocationcheckPoint(Vector<S, V> point) 检查点是否属于区域。protected abstract void计算一些几何属性。boolean检查实例是否完全包含另一个区域。copySelf()复制实例。获取实例的重心。double获取边界的大小。doublegetSize()获取实例的大小。double获取被认为属于超平面的点的容差。getTree(boolean includeBoundaryAttributes) 获取基础BSP树。intersection(SubHyperplane<S> sub) 获取包含在区域中的子超平面的部分。booleanisEmpty()检查实例是否为空。boolean检查从给定节点开始的子树是否为空。booleanisFull()检查实例是否覆盖整个空间。boolean检查从给定节点开始的子树是否覆盖整个空间。projectToBoundary(Point<S> point) 在区域的边界上投影一个点。protected voidsetBarycenter(Point<S> barycenter) 设置实例的重心。setBarycenter(Vector<S, V> barycenter) 设置实例的重心。protected voidsetSize(double size) 设置实例的大小。
-
构造器详细资料
-
AbstractRegion
protected AbstractRegion(double tolerance) 构建表示整个空间的区域。- 参数:
-
tolerance- 被认为相同的点的容差。
-
AbstractRegion
从内部/外部BSP树构建区域。BSP树的叶节点必须具有表示相应单元格内部状态的
Boolean属性(对于内部单元格为true,对于外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUE和Boolean.FALSE。树还必须具有空的内部节点或根据getTree方法中指定的边界的内部节点)。- 参数:
-
tree- 表示区域的内部/外部BSP树 -
tolerance- 被认为相同的点的容差。
-
AbstractRegion
从边界表示(B-rep)构建区域。边界以
sub-hyperplanes的集合形式提供。每个子超平面的内部部分在其负侧,外部部分在其正侧。边界元素可以以任何顺序提供,并且可以形成几个非连接的集合(例如带孔的多边形或一组被视为整体的不相交的多面体)。实际上,元素甚至不需要连接在一起(它们的拓扑连接在这里不使用)。但是,如果边界实际上没有将内部开放区域与外部开放区域分开(这里的开放具有其拓扑含义),那么后续对
checkPoint方法的调用将不再有意义。如果边界为空,则区域将表示整个空间。
- 参数:
-
boundary- 作为SubHyperplane对象集合的边界元素集合 -
tolerance- 被认为相同的点的容差。
-
AbstractRegion
从一组边界超平面构建凸区域。- 参数:
-
hyperplanes- 边界超平面的数组(如果为null,则将构建一个空区域) -
tolerance- 被认为相同的点的容差。
-
-
方法详细资料
-
buildNew
使用实例作为原型构建区域。此方法允许创建新实例,而无需确切了解区域的类型。这是原型设计模式的应用。
BSP树的叶节点必须具有表示相应单元格内部状态的
Boolean属性(对于内部单元格为true,对于外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUE和Boolean.FALSE。树还必须具有空的内部节点或根据getTree方法中指定的边界的内部节点)。 -
getTolerance
public double getTolerance()获取被认为属于超平面的点的容差。- 返回:
- 被认为属于超平面的点的容差
-
copySelf
复制实例。创建的实例与原始实例完全独立。使用深度复制,没有共享任何底层对象(除了底层树的
Boolean属性和不可变对象)。 -
isEmpty
public boolean isEmpty()检查实例是否为空。 -
isEmpty
检查从给定节点开始的子树是否为空。 -
isFull
public boolean isFull()检查实例是否覆盖整个空间。 -
isFull
检查从给定节点开始的子树是否覆盖整个空间。 -
contains
检查实例是否完全包含另一个区域。 -
projectToBoundary
在区域边界上投影一个点。- 指定者:
-
projectToBoundary在接口中Region<S extends Space> - 参数:
-
point- 要检查的点 - 返回:
- 点在边界上的投影
-
checkPoint
根据区域检查一个点。- 类型参数:
-
V- 实现Vector接口的向量类型 - 参数:
-
point- 要检查的点 - 返回:
-
代表点状态的代码:要么
Region.Location.INSIDE,要么Region.Location.OUTSIDE,要么Region.Location.BOUNDARY
-
checkPoint
根据区域检查一个点。- 指定者:
-
checkPoint在接口中Region<S extends Space> - 参数:
-
point- 要检查的点 - 返回:
-
代表点状态的代码:要么
Region.Location.INSIDE,要么Region.Location.OUTSIDE,要么Region.Location.BOUNDARY
-
checkPoint
从给定节点开始根据区域检查一个点。 -
checkPoint
从给定节点开始根据区域检查一个点。 -
getTree
获取底层BSP树。区域由一个内部/外部BSP树表示,其叶属性是表示内部叶单元的
Boolean实例,如果属性值为true,则表示内部叶单元,如果属性为false,则表示外部叶单元。这些叶属性始终存在且保证为非null。除了叶属性之外,对于由切割子超平面分割的单元对应的内部节点,可能包含表示属于边界的相应切割子超平面部分的
BoundaryAttribute对象。当边界属性已计算时,所有内部节点都保证具有非null属性,但是一些BoundaryAttribute实例可能具有它们的getPlusInside和getPlusOutside方法都返回null,如果相应的切割子超平面没有任何部分属于边界。由于计算边界并非总是必需的,并且对于大树而言可能耗时,这些内部节点属性仅在需要时使用延迟评估计算,方法是通过将
includeBoundaryAttributes参数设置为true。一旦计算了这些属性,这些属性将保留在树中,这意味着在这种情况下,对于同一区域的进一步调用该方法将始终包括这些属性,而不管includeBoundaryAttributes参数的值如何。 -
getBoundarySize
public double getBoundarySize()获取边界的大小。- 指定者:
-
getBoundarySize在接口中Region<S extends Space> - 返回:
- 边界的大小(在1D中为0,在2D中为长度,在3D中为面积...)
-
getSize
public double getSize()获取实例的大小。 -
setSize
protected void setSize(double size) 设置实例的大小。- 参数:
-
size- 实例的大小
-
getBarycenter
获取实例的重心。- 指定者:
-
getBarycenter在接口中Region<S extends Space> - 返回:
- 代表重心的对象
-
setBarycenter
设置实例的重心。- 类型参数:
-
V- 实现Vector接口的向量类型 - 参数:
-
barycenter- 实例的重心
-
setBarycenter
设置实例的重心。- 参数:
-
barycenter- 实例的重心
-
computeGeometricalProperties
protected abstract void computeGeometricalProperties()计算一些几何属性。要计算的属性包括重心和大小。
-
intersection
获取包含在区域中的子超平面部分。结果部分不包括属于边界的子超平面部分。
- 指定者:
-
intersection在接口中Region<S extends Space> - 参数:
-
sub- 遍历区域的子超平面 - 返回:
- 过滤后的子超平面
-
applyTransform
转换一个区域。对区域应用变换意味着对底层BSP树和边界的所有超平面(以及嵌入在这些超平面中的子超平面)和重心应用变换。实例不会被修改,而是构建一个新实例。
- 参数:
-
transform- 要应用的变换 - 返回:
- 一个新的区域,由将变换应用于实例得到
-