edgeAttr 函数

语法

  • float edgeAttr.getFloat(attributeName)
  • string edgeAttr.getString(attributeName)
  • bool edgeAttr.getBool(attributeName)

参数

  1. attributeName - string
    边属性数组的名称:attributeName

返回

边属性数组的一个采样元素。 如果不存在属性 /edgeattr/attributeName 或者如果请求的类型不匹配,将返回默认值(分别为 0, "", false)。

描述

edgeAttr 函数会返回与当前形状几何对应程度最高的边属性数组的元素。

边属性

边属性用于存储有关初始形状的面边的信息。 它们指定为采用面-边顺序的数组。 第一个元素用于设置第一个面的第一条边的属性,第二个元素用于设置第一个面的第二条边的属性,以此类推。 在以下情况下,将单独考虑共享边。 边属性数组的前缀为 /edgeattr/,后跟 attributeName。 在 CityEngine 中,这些数组设置为初始形状的对象属性。

通过 edgeAttr 函数进行采样

可在 CGA 中对边属性进行采样。 当前形状几何将投影到初始形状的轮廓上。 将返回投影覆盖范围最高的边属性作为 edgeAttr 函数的结果。 只能在 2D 模式下相对于初始形状的平均平面进行投影。 投影方向遵循当前形状几何的常规方向(平均法线)。

相关内容

示例

边属性数组

矩形形状具有颜色设置为边属性的字符串数组。

编辑数组列表作为边属性的数组颜色

在面上进行采样

立方体的 side 面将沿其法线投影到初始形状的面边上。

getColor = edgeAttr.getString("colors")
	
Lot --> primitiveCube(10, 10, 10)
        comp(f) { side : color(getColor) Face. }
沿法线投影的立方体的面

在边上进行采样

圆柱的 vertical 边将沿其法线投影到初始形状的面边上。 另请注意,边 (e) 具有沿相邻面法线的平均法线指向的法线集。 进行组件分割后,法线会与组件范围的 z 轴重合。

Edge --> s('1,0,1)
         primitiveQuad

Lot --> primitiveCylinder(22, 5, 10)
        comp(e) { vertical : color(getColor) Edge }
在垂直边上进行采样

在面边上进行采样

四边形的 All 面边将沿其法线投影到初始形状的面边上。 另请注意,面边 (fe) 具有相对于面向外与边和面法线正交指向的法线集。 进行组件分割后,法线会与组件范围的 z 轴重合。

Lot --> primitiveQuad(10, 10)
        comp(fe) { all : color(getColor) Edge }
在面边上进行采样

有关应用,请参阅 setbackPerEdge 操作等。