ODA Drawings SDKでは、OdDbRegionエンティティは、領域エンティティのジオメトリを表すSpatial® ACIS®モデルのラッパーです。OdDbRegion::createFromCurvesは、指定された曲線セグメントによって定義された閉じたループからOdDbRegionエンティティを作成します。OdDbHatchエンティティも通常、閉じたループで構成されているため、OdDbHatchからOdDbRegionを作成できます。
ハッチの境界ループから領域を作成するには、OdDbRegionPtr OdDbHatch::getRegionArea() const; を使用します。このメソッドは、ハッチ境界に閉じたループがない場合、自己交差が発生した場合、またはモデラーが作成できない場合にヌルポインタを返します。
ODAのジオメトリモデラーとSpatialのモデラーを使用して、ハッチから領域を作成する方法を見てみましょう。
次の図は、2つのループを持つハッチを示しています。内側のループは穴です。
ODAジオメトリモデラーは、1つのループのみを持つ領域を作成でき、その結果、OdDbHatch::getRegionArea()は、以下に示すようにハッチの外側のループのみを持つ領域を返します。この図は、領域の周囲と、領域が正しく作成されていることも示しています。
次の図は、Spatialのモデラーによって作成された領域を示しています。Spatialモデラーは多くのループを持つ領域を作成できるため、この領域には内側のループがあります。この図は、領域の周囲と、領域が正しく作成されていることも示しています。
次の図は、2つのループを持つハッチを示していますが、内側のループの端が外側のループの外側に出ており、交差するループが作成されています。この場合、SpatialのモデラーとODAジオメトリモデラーは領域を作成できません。