← 返回函数库

setback

Geometry Subdivision Setback 部分实现

CityEngine 官方语法

setback(distance) { selector operator operations | ... }
setback(distance, uvSet) { selector operator operations | ... }
setback(distances) { selector operator operations | ... }
setback(distances, uvSet) { selector operator operations | ... }

参数说明

参数类型默认值说明
distancefloat退缩距离。正值向内退缩。
distancesfloat[]每条边的退缩距离数组。
uvSetint0UV 集编号。用于保留原始 UV。

描述

从形状的边界向内退缩指定距离,生成退缩后的内部形状和边界条带。常用于生成建筑红线内的可用地块。

支持全部 4 种官方参数重载。distance 为单个值时所有边等距退缩;distances 为数组时可按边指定不同距离。

官方示例

基本退缩:

Lot --> setback(2) { front : FrontYard | back : BackYard | remainder : Building }

按边不同距离退缩:

Lot --> setback([2, 1, 3, 1]) { all : Garden | remainder : Building }

代码编辑器自动补全

相关操作补全:setback 家族操作在代码编辑器中均支持补全:
setback(distance)setback(distance, uvSet)setback(distances)setback(distances, uvSet)

实现说明

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

🎨 3D 预览 — 退缩

@StartRule\nLot --> primitiveCube(8, 0.2, 6)\n        setback(1) { front: Yard | remainder: Building }\n\nYard     --> color(0.2, 0.8, 0.2)\nBuilding --> extrude(4) color(0.6, 0.6, 0.7)