例えば、境界ボックスは、座標の各軸におけるジオメトリの最小と最大の値を表現します。 境界ボックスを返す関数のサンプルは、hou.Geometry.boundingBoxを参照してください。
メソッド ¶
__init__(xmin=0.0, ymin=0.0, zmin=0.0, xmax=0.0, ymax=0.0, zmax=0.0)
最小と最大の境界を指定して、その境界ボックスを新しく構築します。 hou.BoundingBox.setToを使用することで、既存の境界ボックスの位置を変更することができます。
setTo(bounds_sequence)
(xmin, ymin, zmin, xmax, ymax, zmax)の値のシーケンスを指定して、その境界ボックスの位置を設定します。
タプルのサイズが6個のエレメントでなかった場合は、hou.InvalidSizeを引き起こします。
sizevec()
→ hou.Vector3
境界ボックスの各x
,y
,z
軸方向のサイズを返します。
このメソッドは以下のように実装することができます:
def sizevec(self): return self.maxvec() - self.minvec()
center()
→ hou.Vector3
境界ボックスの中心の位置を返します。
このメソッドは以下のように実装することができます:
def sizevec(self): return (self.minvec() + self.maxvec()) * 0.5
enlargeToContain(point_or_bbox)
指定したエレメントを含むように境界ボックスを拡大させます。 このエレメントには、位置や他の境界ボックスを表現した3つのfloatのシーケンス(例えば、hou.Vector3)を指定することができます。 この境界ボックスが既にそのエレメントを完全に含んでいて拡大させる必要がなければ、何も変更されません。
contains(point)
位置を表現した3つのfloatのシーケンス(例えば、hou.Vector3)を指定すると、その位置がこの境界ボックス内にあるかどうか返します。
isAlmostEqual(bbox, tolerance=0.00001)
→ bool
この境界ボックスが他の境界ボックスと許容値の範囲で同じかどうか返します。
isValid()
→ bool
この境界ボックスが有効かどうか返します。
__mul__(matrix4)
→ BoundingBox
この境界ボックスを受け取り、指定したマトリックスでそれをトランスフォームし、このトランスフォームされたボックスを基準に軸に平行な境界ボックスを計算し、それを返します。