名前

CG_IsSolid — ジオメトリーが立体であるかどうかをテストします。妥当性チェックは行いません。

概要

boolean CG_IsSolid(geometry geom1);

説明

入力が立体フラグを持つ時に TRUE を返します。CG_MakeSolid が生成するジオメトリーなどが該当します。閉じたPolyhedralSurface は、明示的に変換しない限りサーフェスのままです。この関数では表現を調べるものであって、サーフェスが閉じていて妥当かといったことは調べません。立体の妥当性の確認は行いません。

Availability: 3.5.0

このメソッドには SFCGAL バックエンドが必要です。

この関数は3次元に対応し、Z値を削除しません。

この関数は多面体サーフェスに対応しています。

この関数は三角形と不規則三角網 (TIN) に対応しています。

同じ面が閉じたものから立体に変換する前の物と変換した後の物との比較。

コード
WITH data AS (
  SELECT 'POLYHEDRALSURFACE Z (
    ((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),
    ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),
    ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),
    ((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),
    ((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),
    ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))
  )'::geometry AS geom
)
SELECT CG_IsSolid(geom) AS shell_is_solid,
       CG_IsSolid(CG_MakeSolid(geom)) AS solid_is_solid
FROM data;
出力
f | t
Geometry figure for visual-cg-issolid-01