类 AbstractSubHyperplane<S extends Space,T extends Space>

java.lang.Object
org.hipparchus.geometry.partitioning.AbstractSubHyperplane<S,T>
类型参数:
S - 嵌入空间的类型。
T - 嵌入子空间的类型。
所有已实现的接口:
SubHyperplane<S>
直接已知子类:
SubCircle, SubLimitAngle, SubLine, SubOrientedPoint, SubPlane

public abstract class AbstractSubHyperplane<S extends Space,T extends Space> extends Object implements SubHyperplane<S>
该类实现了SubHyperplane的与维度无关的部分。

当一个hyperplane的部分被与之相交的其他超平面切割时,就会得到子超平面。剩余部分是一个凸区域。这种对象出现在BSP树中,作为切割超平面与其分割的凸区域的交集,切割超平面是更靠近树根的切割超平面。

  • 构造器详细资料

    • AbstractSubHyperplane

      protected AbstractSubHyperplane(Hyperplane<S> hyperplane, Region<T> remainingRegion)
      从超平面和区域构建子超平面。
      参数:
      hyperplane - 基础超平面
      remainingRegion - 超平面的剩余区域
  • 方法详细资料

    • buildNew

      protected abstract AbstractSubHyperplane<S,T> buildNew(Hyperplane<S> hyper, Region<T> remaining)
      从超平面和区域构建子超平面。
      参数:
      hyper - 基础超平面
      remaining - 超平面的剩余区域
      返回:
      一个新的子超平面
    • copySelf

      public AbstractSubHyperplane<S,T> copySelf()
      复制实例。

      创建的实例与原始实例完全独立。使用深度复制,没有共享任何基础对象(除了节点属性和不可变对象)。

      指定者:
      copySelf 在接口中 SubHyperplane<S extends Space>
      返回:
      一个新的子超平面,实例的副本
    • getHyperplane

      public Hyperplane<S> getHyperplane()
      获取基础超平面。
      指定者:
      getHyperplane 在接口中 SubHyperplane<S extends Space>
      返回:
      基础超平面
    • getRemainingRegion

      public Region<T> getRemainingRegion()
      获取超平面的剩余区域。

      返回的区域是在规范超平面框架中表示的,并具有超平面维度。例如,在3D欧几里得空间中,被切割的超平面是一个2D平面,相应的区域是一个凸2D多边形。

      返回:
      超平面的剩余区域
    • getSize

      public double getSize()
      获取实例的大小。
      指定者:
      getSize 在接口中 SubHyperplane<S extends Space>
      返回:
      实例的大小(在1D中是长度,在2D中是面积,在3D中是体积...)
    • reunite

      public AbstractSubHyperplane<S,T> reunite(SubHyperplane<S> other)
      计算实例和另一个子超平面的并集。
      指定者:
      reunite 在接口中 SubHyperplane<S extends Space>
      参数:
      other - 要合并的另一个子超平面(必须与实例在同一超平面上)
      返回:
      一个新的子超平面,实例和其他的并集
    • applyTransform

      public AbstractSubHyperplane<S,T> applyTransform(Transform<S,T> transform)
      对实例应用变换。

      实例必须是相对于变换的(D-1)维子超平面,而不是(D-2)维子超平面,变换本身知道如何进行变换。变换将首先转换超平面,然后使用变换提供的各种方法转换整个区域。

      参数:
      transform - 要应用的D维变换
      返回:
      转换后的实例
    • split

      public abstract SubHyperplane.SplitSubHyperplane<S> split(Hyperplane<S> hyper)
      通过超平面将实例分为两部分。
      指定者:
      split 在接口中 SubHyperplane<S extends Space>
      参数:
      hyper - 分割超平面
      返回:
      包含实例正面部分和负面部分的对象
    • isEmpty

      public boolean isEmpty()
      检查实例是否为空。
      指定者:
      isEmpty 在接口中 SubHyperplane<S extends Space>
      返回:
      如果实例为空,则为true