comp(selector) { label1 : Rule1 | label2 : Rule2 | ... }\ncomp(selector) { all : Rule | none : Rule }
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
selector | selector | — | 组件类型:f(面)、e(边)、v(顶点)、h(洞)、fe(面+边)等。 |
label | selector | — | 组件标签:front、back、left、right、top、bottom、all、none、side。 |
Rule | rule | — | 对应组件的规则名称或操作序列。 |
组件分割(component split)。将当前形状按组件类型(面、边、顶点)分解,并用标签匹配将不同组件分配给不同规则。comp 是 CGA 中最核心的操作之一。
面组件分割:将体块分为顶面和侧面。
Mass --> comp(f) { top : Roof | side : Wall }
提取所有面:
Mass --> comp(f) { all : Face }
CGA.js 中的 comp 实现基于 CityEngine 2025.1 官方文档。
@StartRule\nLot --> primitiveCube(4, 4, 4)\n comp(f) { top: Roof | side: Wall }\n\nRoof --> color(0.8, 0.3, 0.2)\nWall --> color(0.6, 0.7, 0.75)
comp( 时,补全列表直接显示: