- 类型参数:
-
S
- 空间的类型。 -
T
- 子空间的类型。
- 所有已实现的接口:
-
Region<S>
- 直接已知子类:
-
ArcsSet
,IntervalsSet
,PolygonsSet
,PolyhedronsSet
,SphericalPolygonsSet
-
嵌套类概要
从接口继承的嵌套类/接口 org.hipparchus.geometry.partitioning.Region
Region.Location
-
构造器概要
限定符构造器说明protected
AbstractRegion
(double tolerance) 构建表示整个空间的区域。protected
AbstractRegion
(Collection<SubHyperplane<S>> boundary, double tolerance) 从边界表示(B-rep)构建区域。protected
AbstractRegion
(BSPTree<S> tree, double tolerance) 从内部/外部BSP树构建区域。AbstractRegion
(Hyperplane<S>[] hyperplanes, double tolerance) 从一组边界超平面构建凸区域。 -
方法概要
修饰符和类型方法说明applyTransform
(Transform<S, T> transform) 转换区域。abstract AbstractRegion
<S, T> 使用实例作为原型构建区域。protected Region.Location
checkPoint
(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
获取边界的大小。double
getSize()
获取实例的大小。double
获取被认为属于超平面的点的容差。getTree
(boolean includeBoundaryAttributes) 获取基础BSP树。intersection
(SubHyperplane<S> sub) 获取包含在区域中的子超平面的部分。boolean
isEmpty()
检查实例是否为空。boolean
检查从给定节点开始的子树是否为空。boolean
isFull()
检查实例是否覆盖整个空间。boolean
检查从给定节点开始的子树是否覆盖整个空间。projectToBoundary
(Point<S> point) 在区域的边界上投影一个点。protected void
setBarycenter
(Point<S> barycenter) 设置实例的重心。setBarycenter
(Vector<S, V> barycenter) 设置实例的重心。protected void
setSize
(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
- 要应用的变换 - 返回:
- 一个新的区域,由将变换应用于实例得到
-