← 返回函数库

inline

Rule Inlining and Boolean Inlining 已实现

CityEngine 官方语法

inline { A | B }
inline(strategy) RuleCall
inline(strategy) { operations }
inline(strategy) split(axis) { ... }

参数说明

参数类型默认值说明
strategyenumappend合并策略:append 直接追加、unify 统一合并、recompose 重组共享顶点
A, B / RuleCall / operationsrule / block要内联执行的规则、操作块或细分。

描述

规则内联操作。将规则调用、操作块或细分的结果合并为一个单一形状。inline(recompose) 会在合并后尝试恢复被分割形状之间的共享顶点连接,常用于需要先细分再统一处理的建模流程。

inline 与 union 的区别:inline 简单地合并几何体,不去除内部面;union 会进行布尔合并。recompose 策略会做简化版的顶点合并,但完整拓扑重建(如共享边插点)仍为简化实现。

官方示例

内联两个形状:

Lot --> inline { Box | Cylinder }

使用 recompose 策略创建 F 形 footprint:

Init -->
    inline(recompose) split(x) { 10: X.
                               | ~1: split(z) { 10: X. | 10: NIL }* }
    cleanupGeometry(all, 0)

与 modify 等价的内联写法:

Init --> extrude(5)
inline(recompose) comp(f) { top: SplitAndTranslate | all: X. }

实现说明

CGA.js 中的 inline 实现基于 CityEngine 2025.1 官方文档。

🎨 3D 预览 — 内联

@StartRule\nLot --> inline { Box | Cyl }\n\nBox  --> primitiveCube(4, 4, 4) color(0.8, 0.5, 0.5)\nCyl  --> primitiveCylinder(16, 1.5, 5) color(0.5, 0.5, 0.8)