ODA Facet Modeler 可以存储各种对象属性,例如:可见性、方向、颜色以及指向附加数据的指针。本文重点介绍颜色。
颜色不发挥任何作用,也不影响 Facet Modeler 内部布尔运算结果的拓扑结构。颜色存储为 32 位变量,假定颜色值以 RGB 格式(每通道 8 位)存储,但开发人员可以根据需要进行解释。
颜色属性具有 Face 和 Edge 类。要访问颜色,这些类具有以下方法:
OdUInt32 color() const;
void setColor(const OdUInt32 color);
Body 类中有一个方法可以设置对象所有面和边的颜色:
void setColor(OdUInt32 iColor);
在布尔运算期间,对象的颜色由以下规则定义:
- 未参与操作的面和边保留其原始颜色。
- 被切除的面和边保留其原始颜色。
- 布尔运算产生的新边使用默认颜色。
- 当组合位于同一平面上的面时,使用第一个体的颜色。
下图显示了上述前三条规则的示例:
- 红色 — 新的边颜色。
- 绿色 — 第一个实体颜色。
- 青色 — 第二个实体颜色。
您可以在下图中看到 UNION 操作结果的示例。
- 左侧 — 第一个实体为蓝色时的结果。
- 右侧 — 第一个实体为绿色时的结果。
- 中间 — 显示不随操作数顺序变化的边颜色。