类 PolyhedronsSet
- 所有已实现的接口:
-
Region<Euclidean3D>
-
嵌套类概要
从接口继承的嵌套类/接口 org.hipparchus.geometry.partitioning.Region
Region.Location
-
构造器概要
构造器说明PolyhedronsSet
(double tolerance) 构建表示整个实数线的多面体集。PolyhedronsSet
(double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, double tolerance) 构建平行六面体箱。PolyhedronsSet
(Collection<SubHyperplane<Euclidean3D>> boundary, double tolerance) 从由子超平面指定的边界表示(B-rep)构建多面体集。PolyhedronsSet
(List<Vector3D> vertices, List<int[]> facets, double tolerance) 从由连接顶点指定的边界表示(B-rep)构建多面体集。PolyhedronsSet
(PolyhedronsSet.BRep brep, double tolerance) 从由连接顶点指定的边界表示(B-rep)构建多面体集。PolyhedronsSet
(BSPTree<Euclidean3D> tree, double tolerance) 从BSP树构建多面体集。 -
方法概要
修饰符和类型方法说明buildNew
(BSPTree<Euclidean3D> tree) 使用实例作为原型构建区域。protected void
计算一些几何属性。firstIntersection
(Vector3D point, Line line) 获取半无限线穿过的第一个子超平面。getBRep()
获取实例的边界表示。将区域围绕指定点旋转。将区域平移指定量。从类继承的方法 org.hipparchus.geometry.partitioning.AbstractRegion
applyTransform, checkPoint, checkPoint, checkPoint, checkPoint, contains, copySelf, getBarycenter, getBoundarySize, getSize, getTolerance, getTree, intersection, isEmpty, isEmpty, isFull, isFull, projectToBoundary, setBarycenter, setBarycenter, setSize
-
构造器详细资料
-
PolyhedronsSet
public PolyhedronsSet(double tolerance) 构建表示整个实数线的多面体集。- 参数:
-
tolerance
- 被视为相同的点之间的容差
-
PolyhedronsSet
从BSP树构建多面体集。BSP树的叶节点必须具有表示相应单元格内部状态的
Boolean
属性(内部单元格为true,外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUE
和Boolean.FALSE
此构造函数面向专家使用,因为构建树可能是一项困难的任务。它不适用于一般用途,并且出于性能原因不会彻底检查其输入,因为这将要求每次都遍历整个树。未能提供具有正确属性的树,将会导致诸如
NullPointerException
或ClassCastException
等问题。这种限制是已知的,解释了为什么此构造函数仅供专家使用。调用者有责任提供正确的参数。- 参数:
-
tree
- 表示区域的内部/外部BSP树 -
tolerance
- 被视为相同的点之间的容差
-
PolyhedronsSet
从由子超平面指定的边界表示(B-rep)构建多面体集。边界以
sub-hyperplanes
的集合形式提供。每个子超平面的内部部分在其负侧,外部部分在其正侧。边界元素可以以任何顺序出现,并且可以形成几个非连接的集合(例如具有孔的多面体或作为整体考虑的一组不相交的多面体)。实际上,元素甚至不需要连接在一起(它们的拓扑连接在这里不使用)。但是,如果边界实际上没有将内部开放区域与外部开放区域(此处的开放具有其拓扑含义)分开,则随后对
checkPoint
方法的调用将不再有意义。如果边界为空,则区域将表示整个空间。
- 参数:
-
boundary
- 作为SubHyperplane
对象集合的边界元素集合 -
tolerance
- 被视为相同的点之间的容差
-
PolyhedronsSet
从由连接顶点指定的边界表示(B-rep)构建多面体集。边界以顶点列表和面列表的形式提供。每个面都被指定为包含顶点列表中的顶点索引数组。每个面的法线按照右手规则定向到面的顶点列表。
执行一些基本的合理性检查,但并非所有内容都经过彻底评估,因此仍然由调用者负责确保顶点和面是一致的,并正确定义多面体集。
- 参数:
-
vertices
- 多面体集顶点列表 -
facets
- 面列表,作为顶点列表中的顶点索引 -
tolerance
- 被视为相同的点之间的容差 - 抛出:
-
MathIllegalArgumentException
- 如果一些基本合理性检查失败
-
PolyhedronsSet
从由连接顶点指定的边界表示(B-rep)构建多面体集。执行一些基本的合理性检查,但并非所有内容都经过彻底评估,因此仍然由调用者负责确保顶点和面是一致的,并正确定义多面体集。
- 参数:
-
brep
- 要构建的多面体的边界表示 -
tolerance
- 被视为相同的点之间的容差 - 抛出:
-
MathIllegalArgumentException
- 如果一些基本合理性检查失败 - 从以下版本开始:
- 1.2
-
PolyhedronsSet
public PolyhedronsSet(double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, double tolerance) 构建平行六面体箱。- 参数:
-
xMin
- x方向上的最小边界 -
xMax
- x方向上的最大边界 -
yMin
- y方向上的最小边界 -
yMax
- y方向上的最大边界 -
zMin
- z方向上的最小边界 -
zMax
- z方向上的最大边界 -
tolerance
- 被视为相同的点之间的容差
-
-
方法详细资料
-
buildNew
使用实例作为原型构建区域。此方法允许创建新实例,而无需确切了解区域的类型。这是原型设计模式的应用。
BSP树的叶节点必须具有表示相应单元格内部状态的
Boolean
属性(内部单元格为true,外部单元格为false)。为了避免构建太多小对象,建议使用预定义常量Boolean.TRUE
和Boolean.FALSE
。树还必须具有空的内部节点或按照getTree
方法中指定的边界表示的内部节点。- 指定者:
-
buildNew
在接口中Region<Euclidean3D>
- 指定者:
-
buildNew
在类中AbstractRegion<Euclidean3D,
Euclidean2D> - 参数:
-
tree
- 表示新区域的内部/外部BSP树 - 返回:
- 构建的区域
-
getBRep
获取实例的边界表示。边界表示只能从有界的多面体集中提取。如果多面体集是无界的,则会抛出
MathRuntimeException
。提取的边界表示不是最小的,例如,规范面可能会被分割为几个较小的独立子面,这些子面共享相同的平面,并通过它们的边缘连接。
由于
B-Rep
表示不支持具有多个边界循环的面(例如具有孔洞的面),因此当尝试从这种复杂的多面体集中提取 B-Rep 时会触发异常。- 返回:
- 实例的边界表示
- 抛出:
-
MathRuntimeException
- 如果多面体是无界的 - 从以下版本开始:
- 1.2
-
computeGeometricalProperties
protected void computeGeometricalProperties()计算一些几何属性。要计算的属性是重心和大小。
-
firstIntersection
获取被半无限线穿过的第一个子超平面。- 参数:
-
point
- 考虑线段的起始点 -
line
- 要考虑的线段(包含点) - 返回:
- 给定点之后被线段穿过的第一个子超平面,如果线段不与任何子超平面相交,则返回 null
-
rotate
将区域围绕指定点旋转。实例不会被修改,而是创建一个新实例。
- 参数:
-
center
- 旋转中心 -
rotation
- 矢量旋转运算符 - 返回:
- 代表旋转后区域的新实例
-
translate
将区域平移指定量。实例不会被修改,而是创建一个新实例。
- 参数:
-
translation
- 要应用的平移 - 返回:
- 代表平移后区域的新实例
-