PointCloudExpressionEvaluator
输入端口
这个转换器只接受点云特性。
输出端口
计算表达式后的点云。
参数
指定要由相应表达式设置的组件。
指定输出点云中的组件类型。有效的类型有Real64、Real32、UInt64、UInt32、UInt16、UInt8、Int64、Int32、Int16、Int8、Auto和Preserve。Auto表示应该根据用于执行计算的类型自动确定输出类型。保存意味着组件应该保持与输入点云相同的类型。如果组件在输入点云中不存在,则save相当于Auto。
描述如何计算相应组件值的表达式。有关表达式结构的描述,请参阅下面的表达式语法部分。
表达式语法
表达式由操作数、运算符和括号组成。例如,一个简单的表达式可能是:
(@Component(x) + @Component(y) + @Component(z)) / 3.0
这个表达式计算x、y和z分量的平均值。
当表达式处理程序忽略空白时,可以在操作数、操作符和括号之间使用空白。
操作数可以是下列任何一种:
- 例如,来自输入点云的组件@ component (z)。注意,如果一个组件有一个比例/偏移量,那么该组件的“applied”值将在表达式中使用。
- 一个数字常量,可以是整数,也可以是浮点数。在可能的情况下,数值常量被解释为整数值;否则,操作数将被视为浮点数。除了“f”、“f”、“l”和“l”后缀在大多数安装中不被允许外,浮点数可以用符合ansi的C编译器所接受的任何方式指定。例如,以下所有都是有效的浮点数:2.1,3。、6 e4 7.91 e + 16。
- 属性的值@ value ()符号。
- 一种函数,其参数具有上述操作数的任何形式,例如@sin (@ component (z))。有关已定义函数的列表,请参阅函数一节。
下面列出的有效操作符按优先级降序分组:
函数 |
描述 |
---|---|
- + ~ ! |
一元减,一元加,按位不,逻辑不。 按位非仅对整数操作数有效。 |
* / % |
乘、除、余数。 余数仅对整数操作数有效。余数的符号与除数相同,绝对值小于除数。 |
+ - |
加和减。 |
<< >> |
左右移动。 仅对整数操作数有效。 |
< > <= >= |
布尔值小于、大于、小于或等于、大于或等于。 如果条件为真,每个操作符生成1,否则生成0。 |
= =。= |
布尔等于和不等于。 如果条件为真,每个操作符生成1,否则生成0。 |
& |
位操作。 仅对整数操作数有效。 |
^ |
位操作异或。 仅对整数操作数有效。 |
| |
位操作或。 仅对整数操作数有效。 |
&& |
逻辑。 如果两个操作数都非0,则生成1结果,否则为0。 |
|| |
逻辑或。 如果两个操作数都为0,则生成0结果,否则生成1。 |
下列函数可用于表达式。注意,math函数调用同名的C math库函数。有关这些函数的功能和哪些参数有效的详细信息,请参阅库函数的C手册条目。
函数 |
描述 |
---|---|
abs (arg) |
返回参数的绝对值。 |
这些“可信赖医疗组织”(arg) |
返回arccos (arg)在[0,pi]弧度范围内。Arg应该在[-1,1]的范围内。 |
正如(arg) |
返回arcsin,在[- /2,/2]弧度范围内。Arg应该在[-1,1]的范围内。 |
(arg)每股 |
返回在[- /2,/2]弧度范围内的arg的反正切值。 |
量化(y, x) |
返回arctan (y/x)在[-,]弧度范围内。x和y不可能都是0。 |
装天花板(arg) |
返回不小于arg的最小整数值。 |
因为(arg) |
返回arg的余弦值,以弧度表示。 |
cosh (arg) |
返回arg的双曲余弦。如果结果会导致溢出,则返回一个错误。 |
exp (arg) |
返回arg的指数,定义为e**arg。如果结果会导致溢出,则返回一个错误。 |
地板(arg) |
返回不大于arg的最大整数值。 |
在(x, y) |
返回x除以y的余数的浮点数。如果y为0,则返回一个错误。 |
如果(c, x, y) |
如果c = 0,则返回x,否则返回y。 |
index () |
返回点索引。点云中的第一个点是索引0,第二个点是索引1,以此类推。 |
日志(arg) |
返回arg的自然对数。Arg必须是一个正值。 |
log10 (arg) |
返回以10为底的对数。Arg必须是一个正值。 |
战俘(x, y) |
计算x的y次方的值。如果x是负的,y必须是一个整数值。 |
rand () |
返回0到1之间的随机值。 |
sin (arg) |
返回用弧度表示的arg的正弦值。 |
sinh (arg) |
返回arg的双曲正弦值。如果结果会导致溢出,则返回一个错误。 |
sqrt (arg) |
返回参数的平方根。Arg必须是非负的。 |
谭(arg) |
返回以弧度表示的arg的正切值。 |
双曲正切(arg) |
返回arg的双曲正切。 |
类型和溢出
该转换器试图通过在表达式求值过程中更改数据类型来避免溢出。例如,如果两个UInt8值相加,内部计算将使用UInt16类型执行;这确保不会发生溢出。
通常,对整数类型执行算术运算将生成整数类型。除法是一个例外:它总是会产生一个浮点结果。对浮点类型执行算术运算总是会产生浮点类型。
注意,在不同数据类型之间进行转换时,将使用有界强制转换。因此,当计算值不适合目标数据类型时,将相应的目标值设置为目标数据类型中可能的最小值或最大值。
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
FME授权级别
FME专业版及以上
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网、操作、文章、常见问题等的地方。获取问题的答案,向其他用户学习,并对新功能提出建议、投票和评论。
有关此变压器的示例和信息,请参阅FME社亚搏国际在线官网区。