ST_3DIntersection は、3D メッシュオブジェクトをバウンディングボックスまたは別のメッシュに対してクリッピングし、クリッピング境界内に含まれるメッシュの部分を返します。
構文
sfmesh ST_3DIntersection(sfmesh sfmeshObject, box3d box);
sfmesh ST_3DIntersection(sfmesh sfmeshObject, meshgeom geom);パラメーター
| パラメーター | 説明 |
|---|---|
sfmeshObject | sfmesh オブジェクトをクリッピング対象として指定します。 |
box | クリッピングの対象となる box3d バウンディングボックス。 |
geom | クリッピング境界として使用する閉じた meshgeom オブジェクトを指定します。このオブジェクトは必ず閉じている必要があります。 |
戻り値
交差したジオメトリを表す sfmesh オブジェクトを返します。返されたメッシュ上の UV 座標および法線値は、元の sfmeshObject と同期されます。
動作
ST_3DIntersection は、異なるクリッピング動作を持つ 2 つのオーバーロードをサポートしています。
sfmesh + box3d:バウンディングボックスの軸を整列させ、メッシュをクリッピングした後、交差部分を返します。
sfmesh + meshgeom:閉じたメッシュ境界に対して直接メッシュをクリッピングし、交差部分を返します。
meshgeomオブジェクトは必ず閉じている必要があります。
例
バウンディングボックスに対するメッシュのクリッピング
次の例では、ST_3DMakeSphere で作成した球体を単位サイズのバウンディングボックスに対してクリッピングし、結果のメッシュに含まれるパッチ数を返します。
SELECT ST_NumPatches(ST_3DIntersection(ST_3DMakeSphere(1.0, 5), 'BOX3D(0 0 0, 1 1 1)'::box3d));実行結果:
2608