HExp12-3|Houdini Expression functions全集之Class属性类:


1、点属性系列

float point (string surface_node, float point_number, string attribute, float index)
返回一个点属性的值。<surface_node>是曲面节点的路径,例如 "/obj/geo1/grid1",可通过复制节点获取其路径。<point_number>是要读取属性的点序号。<attribute>是属性的名称(例如,Cd表示漫反射颜色),存在两个特殊属性:P和Pw,它们均表示点在空间中的位置(Pw允许您访问该位置的W项,即四维空间位置中的 w维)。<index>指定在多元素属性中的哪一个元素,例如,若属性是一种颜色,则索引值0返回红色分量,1返回绿色分量,2返回蓝色分量。
提示:如果<point_number>是分数,例如3.35,将获取点3与点4之间的插值。
string points (string surface_node, float point_number, string attribute)
返回一个点属性的值。该属性应为字符串属性。
string pointsmap (string surface_node, string attribute, float index)
返回指定点属性的值。该属性为字符串类型。
float pointsnummap (string surface_node, string attribute)
返回指定点属性的值的数量。
string pointattriblist (string surface_node)
返回点属性的名称列表。
float pointattribtype (string surface_node, string attribute)
返回一个点属性的数据类型。如果未找到指定节点或属性,则返回-1。属性的数据类型代号如下:
-1 - Unknown/Invalid 未知的/无效的;
0 - Integer 整型;
1 - Float 浮点型;
2 - String 字符串型;
3 - Array of integers 整数数组;
4 - Array of floats 浮点数数组;
5 - Array of strings 字符串数组;
6 - Dictionary 专业术语;
7 - Array of dictionaries 专业术语组;
float pointattribsize (string surface_node, string attribute)
返回一个点属性中元素的数量。
string pointgrouplist (string surface_node)
返回点编组的名称列表。
string pointgroupmask (string surface_node, string pattern)
返回按一定条件检索出的点编组的名称列表。<pattern>为需要检索的组的名称的一部分。
string pointlist (string surface_node, string group_name)
返回点编组内包含的所有点的序号列表。
float pointdist (string surface_node, float point_num, string surface_node, float prim_num, float return_type)
给定一个点和一个面,此函数会查找该点和面上最近点之间的距离。如果<prim_num>为-1,则可以找到与任何面最近的距离。<return_type> = 0 返回最小距离。= 1 返回最小距离点处的u参数值。 = 2 返回最小距离点处的v参数值。 = 3 返回最接近的面数
string pointneighbours (string surface_node, float point_num, float num_shared_prims)
此函数列出了与指定点至少共享指定面数的所有点的序号列表。也可以说有哪些与我共面的点,这些点里面有哪些与我共享两个面或一个面等。
float pointavg (string surface_node, string attribute, float index)
该函数的工作原理与点函数非常相似,只是它返回指定曲面节点中一个点属性中一个元素的所有值的平均值。
string pointpattern (string surface_node, string pattern)
返回与指定条件匹配的点的列表。示例如下:
> pointpattern ("/obj/model/sphere1", "2-5 10-12")
返回2 3 4 5 10 11 12,假设指定的曲面节点存在并且有那么多点。
> pointpattern("/obj/model/group1", "10 group1 20")
返回名为group1的组中所有点的列表,以及10和20。不保证返回点数的顺序。
2、顶点属性系列

float vertex (string surface_node, float primitive_number, float vertex_number, string attribute, float index)
返回一个顶点属性的值。用法同" point"。
string vertexs (string surface_node, float primitive_number, float vertex_number, string attribute)
返回一个顶点属性的值。该属性应为字符串类型。
string vertexsmap (string surface_node, string attribute, float index)
返回指定顶点属性的值。该属性为字符串类型。
float vertexsnummap (string surface_node, string attribute)
返回指定顶点属性的值的数量。
string vertexattriblist (string surface_node)
返回顶点属性的名称列表。
float vertexattribtype (string surface_node, string attribute)
返回一个顶点属性的数据类型。如果未找到指定节点或属性,则返回-1。属性的数据类型代号参见"pointattribtype"。
float vertexattribsize (string surface_node, string attribute)
返回一个顶点属性中元素的数量。
string vertexgrouplist (string surface_node)
返回顶点编组的名称列表。
string vertexgroupmask (string surface_node, string pattern)
返回按一定条件检索出的顶点编组的名称列表。<pattern>为需要检索的组的名称的一部分。
3、面属性系列

float prim (string surface_node, float prim_number, string attribute, float index)
返回一个面属性的值。当给定P或Pw属性时,返回面的中心位置。
string prims (string surface_node, float primitive_number, string attribute)
返回一个面属性的值。该属性应为字符串属性。
string primsmap (string surface_node, string attribute, float index)
返回指定面属性的值。该属性为字符串类型。
float primsnummap (string surface_node, string attribute)
返回指定面属性的值的数量。
string primattriblist (string surface_node)
返回面属性的名称列表。
float primattribtype (string surface_node, string attribute)
返回一个面属性的数据类型。属性的数据类型代号参见"pointattribtype"。
float primattribsize (string surface_node, string attribute)
返回一个面属性中元素的数量。
string primgrouplist (string surface_node)
返回面编组的名称列表。
string primgroupmask (string surface_node, string pattern)
返回按一定条件检索出的面编组的名称列表。<pattern>为需要检索的组的名称的一部分。
string primlist (string surface_node, string group_name)
返回面点编组内包含的所有面的序号列表。
float primdist (string surface_node, float prim1_num, string surface_node, float prim2_num, float return_type)
返回两个面之间的最小距离和最近点。<return_type> = 0 返回最小距离;= 1 返回prim1上最近点处的u参数值; = 2 返回prim1上最近点处的v参数值; = 3 返回prim2上最近点处的u参数值;=4 返回prim2上最近点处的v参数值;
提示:仅适用于面、曲线和样条曲线曲面。其他类型的面将始终返回0。
string primneighbours (string surface_node, float prim_num, float num_shared_pts)
列出与指定的面至少共享给定数量点的所有面。也可以说有哪些与我共点的面,这些面里面有哪些与我共享两个点或一个点等。
float primuv (string surface_node, float prim_num, string attrib_name, float attrib_index, float u, float v)
返回某个UV位置处的面属性的值。当给定P或Pw属性时,将返回(u,v)域点的x、y或z图像。如果面是面类型或圆,则忽略v。如果面是多边形或网格,则u和v分别根据顶点数、行数或列数进行定义。目前,只能评估二次曲面的位置属性。
float primduv (string surface_node, float prim_num, string attrib_name, float attrib_index, float u, float v, float du, float dv)
返回基元属性的(偏)导数。如果面是面类型,则忽略v和dv。如果du和dv都为0,那么就等同于primuv。
4、Detail属性系列

float detail (string surface_node, string attribute, float index)
返回一个Detail属性的值。用法同" point"。如果<surface_node>是当前烘焙节点,则此表达式可能不起作用,尝试指定上游节点。
string details (string surface_node, string attribute)
返回一个Detail属性的值。该属性应为字符串类型。
string detailsmap (string surface_node, string attribute, float index)
返回指定Detail属性的值。该属性为字符串类型。
float detailsnummap (string surface_node, string attribute)
返回指定Detail属性的值的数量。
string detailattriblist (string surface_node)
返回Detail属性的名称列表。
float detailattribtype (string surface_node, string attribute)
返回一个Detail属性的数据类型。如果未找到指定节点或属性,则返回-1。属性的数据类型代号参见"pointattribtype"。
float detailattribsize (string surface_node, string attribute)
返回一个Detail属性中元素的数量。
5、Has函数系列

float haspoint (string group_name, string surface_node, float point_num)
如果指定的点在指定的组中,则返回1。
float hasprim (string group_name, string surface_node, float prim_num)
如果指定的面在指定的组中,则返回1。
float haspointattrib (string surface_node, string attribute)
如果指定的点属性存在,则返回1。
float hasprimattrib (string surface_node, string attribute)
如果指定的面属性存在,则返回1。
float hasvertexattrib (string surface_node, string attribute)
如果指定的顶点属性存在,则返回1。
float hasdetailattrib (string surface_node, string attribute)
如果指定的Detail属性存在,则返回1。
6、N函数系列

float npoints (string surface_node)
返回几何体中的点数。
float nprims (string name)
返回曲面节点中的面数。
float nvertices (string surface_node)
返回几何体中的顶点数。
float npointsgroup (string surface_node, string group_name)
返回指定组中的点数。
float nprimsgroup (string surface_node, string group_name)
返回指定组中的面数。
float nverticesgroup (string surface_node, string group_name)
返回指定组中的顶点数。
7、全局变量属性系列

float bbox (string surface_node, float type)
返回曲面节点的边界框信息。<type>可以是边界框的相应值D_XMIN、D_YMIN、D_ZMIN、D_XMAX、D_YMAX、D_ZMAX、D_XSIZE、D_YSIZE或D_ZSIZE之一。
float centroid (string surface_node, float type)
返回曲面节点的中心位置信息。<type>可以是中心位的相应分量D_X、D_Y或D_Z中的一个。中心是对象边界框的中心,而不是点的平均位置。
string attriblist (string surface_node, float class)
返回指定属性的名称列表。<class>可以是属性类D_VERTEX、D_POINT、D_PRIITIVE或D_DETAIL之一。