语法
- envelope(direction, maxHeight, frontBaseHeight, frontAngle)
- envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle)
- envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle, sideBaseHeight, sideAngle)
- envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle, rightBaseHeight, rightAngle, leftBaseHeight, leftAngle)
- envelope(direction, maxHeight, baseHeights, angles)
参数
- direction - 选择器{ normal | world.up } - 包络竖立时随沿的方向。
- maxHeight - 浮点型包络的最大高度,以米为单位。 如果达到了此高度,将挖方体积并水平密封。
- frontBaseHeight - 浮点型前侧的基本高度,以米为单位。
- frontAngle - 浮点型前侧的坡度角度,以度为单位。
- backBaseHeight - 浮点型后侧的基本高度,以米为单位。
- backAngle - 浮点型后侧的坡度角度,以度为单位。
- sideBaseHeight - 浮点型右侧和左侧的基本高度,以米为单位。
- sideAngle - 浮点型右侧和左侧的坡度角度,以度为单位。
- rightBaseHeight - 浮点型右侧的基本高度,以米为单位。
- rightAngle - 浮点型右侧的坡度角度,以度为单位。
- leftBaseHeight - 浮点型左侧的基本高度,以米为单位。
- leftAngle - 浮点型左侧的坡度角度,以度为单位。
- baseHeights - float[]基本高度,每条边对应一个值。
- angles - float[]坡度角度,每条边对应一个值。
描述
envelope 操作用于在当前形状几何的每个面上创建建筑物包络。 将根据 street.front、street.back、 street.right、street.left、street.side 选择器对面的每条边进行分类。 然后,将垂直于面构建具有相应 baseHeight 的侧面。 最后,将使用相应的坡度角度在每侧的顶部添加倾斜平面。 street.xxx 选择器计算基于 streetWidth 属性,请参阅街区参数中的自动生成的街道宽度属性。 如果该属性不可用,则组件选择将回退到 object.xxx 选择器。
下面是基本 envelope() 操作参数。 其他侧面的 baseHeight 和 angle 参数均类似。
按边控制
一种版本的 envelope 允许通过数组按边指定 baseHeights 和 angles。 数组必须采用面-边顺序,即第一个元素对应第一个面的第一条边,第二个元素对应第一个面的第二条边,以此类推。 将单独为每个面考虑共享边。 如果数组不含足够的元素,将使用默认值(baseHeight 为 0,角度为 90 度)。 例如,这样可以编写
envelope(direction, maxHeight, frontBaseHeight, frontAngle, backBaseHeight, backAngle)
为
envelope(direction, maxHeight,
comp(fe) { street.front = frontBaseHeight | street.back = backBaseHeight },
comp(fe) { street.front = frontAngle | street.back = backAngle | all = 90 })
相关内容
示例
街道面向的坡度
上述示例代码用于创建面向街道侧切坡度为 30 度的建筑物包络。 屋檐高度为 15 米。 在创建包络之前,将使用退缩操作和 street.front 选择器从地块中分割 10 米的前院。
| |