ODAファセットモデラーは、可視性、向き、色、追加データへのポインタなど、さまざまなオブジェクトプロパティを保存できます。この記事では色に焦点を当てます。
色は、ファセットモデラー内のブール演算の結果のトポロジーに影響を与えず、いかなる役割も果たしません。色は32ビット変数として保存され、色の値はRGB形式(チャネルあたり8ビット)で保存されていると想定されますが、開発者は必要に応じて解釈できます。
色プロパティにはFaceクラスとEdgeクラスがあります。色にアクセスするために、これらのクラスには以下のメソッドがあります。
OdUInt32 color() const;
void setColor(const OdUInt32 color);
また、Bodyクラスには、オブジェクトのすべての面とエッジの色を設定するメソッドがあります。
void setColor(OdUInt32 iColor);
ブール演算中、オブジェクトの色は以下のルールによって定義されます。
- 操作に参加しない面とエッジは、元の色を保持します。
- 切り取られた面とエッジは、元の色を保持します。
- ブール演算の結果として生成される新しいエッジは、デフォルトの色を使用します。
- 同じ平面上にある面を結合する場合、最初のボディの色が使用されます。
次の図は、上記の最初の3つのルールの例を示しています。
- 赤 — 新しいエッジの色。
- 緑 — 最初のボディの色。
- シアン — 2番目のボディの色。
次の図では、UNION演算の結果の例を見ることができます。
- 左側 — 最初のボディが青色の場合の結果。
- 右側 — 最初のボディが緑色の場合の結果。
- 中央 — オペランドの順序に依存しないエッジの色を示します。