書式
SDO_PC_PKG.CLIP_PC( inp IN SDO_PC, ind_dim_qry IN SDO_GEOMETRY, other_dim_qry IN SDO_MBR, qry_min_res IN NUMBER, qry_max_res IN NUMBER, blkno IN NUMBER DEFAULT NULL, include_custom_dims IN NUMBER DEFAULT 0 ) RETURN SDO_PC_BLK_TYPE;
説明
点群に対してクリップ操作を実行します。
パラメータ
クリップ操作を実行する点群を指定します。
点群の索引付けされた次元の問合せについて、戻されるオブジェクトを選択するウィンドウを指定します。通常、2次元ジオメトリの場合はポリゴン、3次元ジオメトリの場合は錐台となります。
点群の索引付けされていない次元の問合せについて、戻されるオブジェクトを選択するウィンドウを指定します。通常、2次元ジオメトリの場合はポリゴン、3次元ジオメトリの場合は錐台となります。索引付けされていない次元とは、総次元には含まれているが、索引付けされていない次元です。索引次元および総次元の説明は、SDO_PC_PKG.INITファンクションのpc_tot_dimensions
パラメータの説明を参照してください。
SDO_MBR型は(LOWER_LEFT SDO_VPOINT_TYPE, UPPER_RIGHT SDO_VPOINT_TYPE)
として定義され、SDO_V_POINT_TYPEはVARRAY(64) OF NUMBER
として定義されます。
最小解像度の値を指定します。解像度がqry_min_res
以上およびqry_max_res
以下のqry
のオブジェクトがクリップ操作により戻されます。
最大解像度の値を指定します。解像度がqry_min_res
以上およびqry_max_res
以下のqry
のオブジェクトがクリップ操作により戻されます。
クリップ操作によって戻されるオブジェクトを制限するブロックのブロックID番号を指定します。このパラメータがNULLの場合、他のパラメータを満たすすべてのオブジェクトが戻されます。
数値0または1で、SDO_PCのPC_TOT_DIMENSIONSの個数に含まれる、通常(NUMBER型)の次元のみを含むファンクションによって点群ブロックが戻されるかどうかを指定します。このような通常の次元のみを戻す場合は、include_custom_dims=0
(デフォルト)です。ブロック表に格納された点群ブロックには、その他のカスタム次元が含まれたままですが、この個々のCLIP_PC問合せはこれらを戻しません。
include_custom_dims=1
では、通常の次元とカスタムの次元の両方が含まれます。
カスタムの次元の詳細は、「使用上の注意」を参照してください。
使用上の注意
このファンクションは、指定した問合せウィンドウ内にあり、かつパラメータによって指定されている他の要件を満たしている点群の点を戻します。一般に、このファンクションは点群に対して問合せを実行するために使用します。点群の問合せのパフォーマンスを最大にするには、ファンクションが操作に対して考慮する必要のあるオブジェクトの数を最小限にします。
SDO_PCおよびSDO_PC_BLK_TYPEデータ型については、「点群に関連するオブジェクト型」を参照してください。
このファンクションは、カスタム次元の格納と問合せをサポートします。カスタム次元は、NUMBER型の場合とそれ以外の型の場合があり、SDO_PCのPC_TOT_DIMENSIONSの個数には含まれません。include_custom_dims=1
を指定すると、カスタム次元を問合せ結果に含めることはできますが、カスタム次元は数値型ではない(ind_dimqry
やother_dimqry
の数値インタフェースで表現できない)ため、ind_dimqry
パラメータとother_dimqry
パラメータのいずれの問合せ制約にも含まれません。
カスタムの次元はSDO_PC_PKG.CREATE_PCプロシージャでは作成できません。
このファンクションをSDO_PC_PKG.CLIP_PC_FLATと比較すると、このファンクションは、平面表に格納された点群データを入力として使用します(SDO_PCオブジェクトとは逆)。
点群を使用してソリッドをモデル化する方法は、「ソリッドのモデル化」を参照してください。
例
次の例では、点群に対してクリップ操作を実行します。これは、Oracle Database Examplesメディアからすでにファイルをインストールしている場合は、$ORACLE_HOME/md/demo/PointCloud/examples/plsql/pc.sql
から取得できます(『Oracle Database Examplesインストレーション・ガイド』を参照)。
. . . declare inp sdo_pc; begin select pc INTO inp from base where rownum=1; insert into restst select * from table(sdo_pc_pkg.clip_pc ( inp, -- Input point cloud object sdo_geometry(2003, 8307, null, sdo_elem_info_array(1, 1003, 3), sdo_ordinate_array(-175.86157, -14.60521, 0,0)), -- Query null, null, null)); end; / . . .