HExp12-12|Houdini Expression functions全集之其他类:

1、转换类

string pluralize (string s)
将英语名词转换为它的复数形式。
string ftrim (float number)
将数字转换为字符串。类型转换通常是自动完成的。但是,您可能希望使用此选项来强制转换。该函数还将把数字四舍五入到6位小数精度,避免了由于浮点不能准确表示常见小数而导致的细微偏差。
string ftoa (float number)
将数字转换为字符串。
float atof (string source)
将字符串转换为浮点值。
string abspath (string relpath)
返回完整路径。
string relpath (string abspath)
返回相对路径。
float eval (string expression)
将字符串视作为表达式进行计算,并返回数值。
string evals (string expression)
将字符串视作为表达式进行计算,并返回字符串值。用于计算包含更复杂表达式的变量。
2、文本类

string tolower (string s)
返回字符串的全小写版本。
string toupper (string s)
返回字符串的全大写版本。
float index (string source, string pattern)
返回<source>中出现<pattern>之前的字符数。如果找不到模式,则返回-1。示例如下:
> index ("Testing index", "sting") 返回 2
> index ("Testing index", "i") 返回 4
float rindex (string source, string pattern)
返回<source>中最后出现的<pattern>之前的字符数。示例如下:
> index ("Testing rindex", "i") 返回 8
string padzero (float size, float value)
返回一个字符串,该字符串将一个数字用零填充到给定的长度。示例如下:
> padzero (5, 126) = 00126
string fpadzero (float integerpad, float fracpad, float value)
返回一个字符串,该字符串将一个数字用零填充到给定的长度。<integerpad>为整数部分的位数,<fracpad>为小数部分的位数。示例如下:
> padzero (5, 3, 126) = 00126.000
float stamp (string scope, string token, float value)
返回一个副本的浮点值。检索副本变量,通常来自下游的“复制”节点。此函数用于检索浮点数值。对于字符串值,请使用"stamps"。该函数替代了"param"。
* <scope>: 从中获取值的节点的路径。
* <token>: 要检索的变量的名称。
* <value>: 如果<token>不存在,则使用的默认值。
string stamps (string stamp_op_path, string token, string value)
返回一个副本的字符串值。
float iprquery (string query, string pane, float x, float y)
从交互式渲染窗格中查询数字(浮点)数据。<pane>参数指定要检索其信息的窗格的名称。某些查询类型使用<x>和<y>参数来指定其他查询参数。对于不需要额外参数的查询,将忽略这些参数。<query>字符串参数指定要检索的信息类型,参见下文:
>> cropx0, cropx1, cropy0, cropy1:返回当前选定裁剪区域的左、右、上或下值。
>> exist.<plane_name>:如果给定平面存在于渲染图像中,则返回该平面的索引;如果不存在,则返回-1。
>> ipr:如果“IPR”按钮处于启用状态,则返回1;如果禁用,则返回0。
>> lock:如果锁定按钮处于启用状态(防止自动重新渲染),则返回1;如果关闭,则返回0。
>> nplanes:返回当前图像中深层光栅平面的数目。
>> object.ptinstance:在<x>、<y>处贡献像素的实例对象的点号(请参见下面的对象查询)。<x>和<y>变量是渲染图像中的坐标。
>> object.primitive:在<x>、<y>处贡献像素的几何体对象的图元数(请参见下面的对象查询)。<x>和<y>变量是渲染图像中的坐标。
【对象查询】:
以对象开头的查询。提供有关生成IPR图像的胡迪尼对象的信息。这些查询使用咒语在渲染时自动创建的两个深度光栅平面。这些浮点平面被命名为Op-Id和Prim-Id。胡迪尼维护一个表,该表将数据Op-Id平面映射到渲染中有关实例和几何体的信息。否则,Op-Id平面中的数字是没有意义的。
>> pindex.<name>:返回名为<name>的深度光栅平面的索引。如果没有使用该名称的平面,则返回-1。
>> plane.vsize:返回此函数的<x>参数指定的索引处平面的矢量大小。例如,要获得第三个深光栅平面的矢量大小:
> iprquery("plane.vsize", $PANE, 2, 0) (此处设置为0的<y>参数将被忽略)
>> plane.<name>[.r|g|b|a]:返回名为<name>的平面的<x>、<y>处的像素分量的值。例如:
> iprquery("plane.C.g", $PANE, $IX, $IY)(如果未指定元素名称(.r、.g、.b或.a),则返回第一个组件的值,也可以使用.x、.y、.z和.w作为.r、.g、.b和.a的替代名称。例如,plane.N.y等效于plane.N.g)
>> xres, yres :交互式渲染查看器中图像的水平或垂直分辨率。
string iprquerys (string query, string pane, float x, float y)
从交互式渲染窗格中查询文本(字符串)数据。<query>字符串参数指定要检索的信息类型,参见下文:
>> object.instance:在<x>、<y>处贡献像素的实例化对象的完整路径。如果对象没有实例化,这将与object.geometry相同。请参阅下面的对象查询。<x>和<y>参数是渲染图像中的坐标。
>> object.geometry:在<x>、<y>处贡献像素的几何体对象的完整路径。请参见下面的对象查询。<x>和<y>参数是渲染图像中的坐标。
>> object.surface:在<x>、<y>处贡献像素的曲面着色器的完整路径。请参见下面的对象查询。<x>和<y>参数是渲染图像中的坐标。
>> object.displace:影响<x>、<y>处像素的置换着色器的完整路径。请参见下面的对象查询。<x>和<y>参数是渲染图像中的坐标。
>> plane.name:返回此函数的<x>参数指定的索引处的平面名称。例如,要获取第三个深层光栅平面的名称:
> iprquerys("plane.name", $PANE, 2, 0)(此处设置为0的<y>参数将被忽略)
>> rop:返回交互式渲染窗格中显示的输出驱动程序节点的完整路径。
float contextoption (string name)
以浮点值的形式返回上下文选项的值。说明:检索上下文选项的当前值。这可能是由一个节点向另一个节点请求数据或从HIP文件中存储的全局默认上下文选项值设置的。您还可以使用@name获取表达式中上下文选项的值。
string contextoptions (string name)
以字符串值的形式返回烘焙上下文选项。
float hascontextoption (string token)
如果存在指定的上下文选项,则返回非零值。
float parmisstring (string parameter_name)
如果指定的参数是字符串,则返回1。
3、编程类

float print (string label, float expression)
将消息打印到控制台。这对于诊断节点或通道中的参数非常有用。返回<expression>的值。示例如下:
> print ("wheel:", sin($T))
float pythonexprf (string expression)
计算Python表达式,如果表达式的计算结果不是字符串,或者引发异常,则此函数返回0。示例如下:
> pythonexprf("hou.frame()") 返回当前帧的值
string pythonexprs (string expression)
计算Python表达式,返回字符串结果。
string arg (string line, float argNum)
从HScript样式的参数列表中返回一个文字。说明:"arg"是argument的缩写,译为内容提要。arg对于从字符串中提取标记很有用。
float argc (string line)
返回HScript样式的字段列表中的文字数。
string system (string command_string)
运行系统命令行并返回输出。这将把所有换行和回车转换为空格。
float systemES (string command_string)
运行系统命令行并返回退出状态。
string systemRAW (string command_string)
运行系统命令行并返回输出,不进行任何处理。
string run (string command)
将字符串作为HScript命令运行,并返回命令的输出。
string runb (string command)
将字符串作为HScript命令运行,并返回命令和错误输出。
string rune (string command)
将字符串作为HScript命令运行,并返回任何错误输出。
string execute (string command)
将字符串作为HScript命令运行,并返回命令的输出。
string executeb (string command)
将字符串作为HScript命令运行,并返回命令和错误输出。
string executee (string command)
将字符串作为HScript命令运行,并返回任何错误输出。
string encode (string s)
将任何字符串编码为有效的变量名。说明:Houdini VEX变量名只能包含字母、数字和下划线,并且不能以数字开头。此方法获取任何字符串,并将其编码为遵守这些限制的字符串。可以使用解码方法恢复原始字符串。已遵守规则的字符串将不加修改地返回。这个规则的一个例外是,以xn__开头的字符串将被编码,即使它已经是一个有效的变量名。这是因为xn__是用于标识编码字符串的前缀。在这种情况下,将添加一个额外的xn__前缀。这意味着一个字符串可以被编码任意次数,然后被解码相同次数,以始终返回到原始字符串,而不管其内容如何。
string encodeattrib (string s)
将任何字符串编码为有效的几何体属性名称。
string encodeparm (string s)
将任何字符串编码为有效的节点参数名称。
string decode (string s)
对先前编码的变量名进行解码。
string decodeattrib (string s)
解码先前编码的几何体属性名称。
string decodeparm (string s)
解码先前编码的节点参数名称。
4、渲染特性类

float property (string "path", float default)
类似于ch(),但用于渲染属性,如果属性不存在,则使用默认值。
float propertyf (string "path", float frame, float default)
在给定帧处计算渲染属性。
float propertyt (string "path", float time, float default)
在给定时间计算渲染属性。
float propertys (string "path", float "default")
计算当前时间渲染属性的字符串值。
float propertysop (string "path", float "default")
将当前时间的渲染属性计算为节点路径字符串。
float propertysraw (string "path", float "default")
计算当前时间渲染属性的原始(未展开)字符串值。
5、字符串类

float strlen (string )
返回字符串中的字符数。
string strcat (string s1, string s2)
将两个字符串的串起来。
float strcmp (string s1, string s2)
比较两个字符串。根据ASCII,如果<s1>位于<s2>之前,则返回-1 ;如果<s1>位于<s2>之后,则返回1; 如果<s1>等于<s2>,则返回0。此函数区分大小写。对于不区分大小写的比较,请使用"strcasecmp"。
float strcasecmp (string s1, string s2)
比较两个字符串,忽略大小写。
float strmatch (string pattern, string s)
如果字符串<s>与范本<pattern>匹配,则返回1(区分大小写)。为了匹配,范本必须从头到尾与字符串匹配,也可使用通配符(*)匹配子字符串,例如:
> strmatch ("bar", "foobarbaz") = 0
> strmatch ("*bar*", "foobarbaz") = 1
<pattern>是一个以空格分隔的一个或多个范本的列表,则函数将并不会像看上去那样匹配。例如:
> strmatch ("foo bar", "foo bar")
此函数将返回0,因为第一个参数由两个范本组成,即foo和bar,而这两个范本都不匹配foo-bar(因为范本必须从头到尾匹配),看似匹配,实则不匹配。相反的,
> strmatch("foo bar", "foo")
此函数将返回1,因为该字符串匹配模式中两个参数(foo和bar)中的第一个,看似不匹配,实则匹配。
float strcasematch (string pattern, string s)
如果字符串与模式匹配,则返回1(不区分大小写)。
string stripmatrix (string mat)
从字符串表示的矩阵或向量中删除非必需字符。当您想要解释矩阵的值(即传递给VEX函数)时,这很有用。返回一个字符串,该字符串包含构成矩阵的浮点数(并且仅包含数字)。
string strdup (float count, string s2)
重复字符串。
string strreplace (string s, string old, string new)
用新字符串替换旧字符串。
string substr (string s, float start, float length)
返回字符串的子字符串。子字符串为原字符串<s>中位于<start>位置和<start>+<length>位置之间的字符。
6、曲面几何体类

string edgegrouplist (string surface_node)
返回曲面节点中边组的列表。
string edgegroupmask (string surface_node, string pattern)
返回与曲面节点中的范本匹配的边组列表。
float nearpoint (string surface_node, float x, float y, float z)
在几何图形中查找与特定三维坐标最近的点。
float metaweight (string surface_node, float x, float y, float z)
返回元球在特定位置的权重。
string seampoints (string surface_node, float whichside)
列出曲面节点中的所有接缝点。此函数返回一个字符串,其中包含指定曲面节点中所有接缝点的有序列表。接缝点由点上的接缝属性标识。<whichside>参数指定我们感兴趣的接缝的哪一侧,该值可以是零,也可以是一。调用一次whichside参数为零的函数和一次which side参数为一的函数,将提供两个点列表,其中将每个点与另一个列表中的对应点连接完全描述几何体上的所有接缝。
float curvature (string surface_node, float prim_num, float u, float v)
返回曲面在给定UV坐标下的曲率。说明:u和v是单位值,在[0,1]区间中定义。如果图元是网格,则u和v是根据其行数和列数定义的。
float spknot (string surface_node, float prim_num, float knot_index, float D_U|D_V)
返回样条曲线或曲面上的结值。此样条曲线特定函数返回浮点结值,给定U或V结序列中的结索引。第一个有效的结索引为0。如果图元是贝塞尔曲线或曲面,则返回的值是其断点的值。如果图元是曲线,则第四个参数(D_U或D_V)是无关的。
float mindist (string surface_node, float point_num, string surface_node, float prim_num, float return_type)
查找点和图元之间的最小距离。此表达式是pointdist的别名。
float xyzdist (float x, float y, float z, string surface_node, float prim_num, float return_type)
返回三维坐标和图元之间的距离。如果<prim_num>为-1,则查找到曲面节点中任一图元的最近距离。
* <return_type> = 0 返回最小距离。
* <return_type> = 1 返回最小距离点处的u参数值。
* <return_type> = 2 返回最小距离点处的v参数值。
* <return_type> = 3 返回最接近的图元数。
7、自定义类

cucwc ()
不推荐:自定义面板的当前工作容器。自定义面板是不推荐使用的功能。
cudatatype (gadget_path)
不推荐:小工具的数据类型,用于自定义面板。可能的值有float、int和string。自定义面板是不推荐使用的功能。
cumenuadd (gadget_path, menu_entry)
不推荐:在自定义面板上添加菜单项。如果指定的菜单项是菜单,则将其添加到给定的小工具中。如果已添加,则返回条目。自定义面板是不推荐使用的功能。
cuquery (panel_path, value_name)
不推荐:从自定义面板返回一个值。自定义面板是不推荐使用的功能。
cutype (gadget_path)
不推荐使用:返回自定义面板上小工具的类型。自定义面板是不推荐使用的功能。
8、未分类

float if (float expression, float true_value, float false_value)
根据第一个参数的真值返回第二个或第三个参数的值。
string ifs (float expression, string true_value, string false_value)
根据第一个参数的真值返回第二个或第三个参数的字符串值。
string findfile (string filename)
在胡迪尼路径中搜索文件。指定的文件名应相对于HOUDINI_PATH环境变量中指定的路径之一。
string findfiles (string filename, string separator)
在胡迪尼路径中搜索文件或目录。在houdini路径中搜索指定的文件或目录,返回由指定分隔符分隔的所有匹配项的列表。当回显结果时,使用分隔符\\n非常方便。指定的文件名应相对于HOUDINI_PATH环境变量中指定的路径之一。
float uniqueval (string surface_node, float class, string attribute, float index)
返回整数属性的唯一值。对于相应的属性类,<class>可以是D_VERTEX、D_POINT、D_PRIITIVE或D_DETAIL中的一个。
string uniquevals (string surface_node, float class, string attribute, float index)
返回字符串属性的唯一值。
float nuniquevals (string surface_node, float class, string attribute)
返回曲面节点中整数或字符串属性的唯一值的数目。
string groupbyval (string surface_node, float class, string attribute, float id)
返回一个字符串,该字符串描述具有给定值的整数属性的元素集。
string groupbyvals (string surface_node, float class, string attribute, string id)
返回一个字符串,该字符串描述具有给定字符串属性值的元素集。
string listbyval (string surface_node, float class, string attribute, float id)
为整数属性返回具有给定值的元素列表。
string listbyvals (string surface_node, float class, string attribute, string id)
为字符串属性返回具有给定值的元素列表。
matrix objpretransform (string object_name)
返回对象的预变换矩阵。
string objkinoverride ()
返回骨骼对象的当前全局运动学覆盖设置。这相当于在没有任何参数的情况下运行objkinoverride命令。返回值为:none(无覆盖)、rest(骨骼使用rest变换烹饪)或capture(骨骼使用捕捉姿势变换烹饪)。
string mousepane ()
返回当前鼠标指针下窗格的全名。如果当鼠标指针不在任何窗格上时(例如当它在胡迪尼窗口之外时)执行此函数,则返回一个空字符串。当在非图形Houdini应用程序(如hscript)中执行此函数时,还会返回一个空字符串。
string mousepath ()
返回当前鼠标指针下窗格的节点路径。
float instancepoint ()
返回当前正在实例化的点编号。说明:此函数不接受任何参数。可以在正在实例化的对象的参数表达式中使用此函数(请参见点实例化)。它返回对象正在实例化到的点编号。可以使用此选项在实例之间更改对象级别的参数(例如变换或材质替代)。不能在曲面级别使用此函数,因为实例化只能在对象级别使用。
float ocldeviceinfo (string flag)
使用提供的标志查询当前OpenCL设备。<flag>是一个字符串,包含设备标志的名称。此函数查询当前OpenCL设备并返回指定标志的数值。在内部,此函数调用OpenCL clGetDeviceInfo函数;可用的标志在OpenCL文档中进行了描述。一些有用的标志包括:
>> CL_DEVICE_TYPE:对于CPU设备返回2,对于GPU返回4装置;
>> CL_DEVICE_GLOBAL_MEM_SIZE和CL_DEVICE_MAX_MEM_ALLOC_SIZE:它们分别返回设备上可以进行的总内存和最大单次分配;
>> CL_DEVICE_DEVICE_ENQUEUE_SUPPORT:表示设备支持内核的设备侧排队。
string shopstring (string shop_path, string render_type)
返回着色器生成的着色器字符串。<render_type>是表示渲染器的字符串(例如,RIB或VMantra)。如果该字符串为空,则使用着色器的默认渲染类型。
float modblend (float val1, float val2, float length, float weight)
混合两个模块化值。此函数可用于正确混合两个角度或其他循环值。