Syntax FACTORY_DEF PointCloudEvaluationFactory [FACTORY_NAME ] [INPUT FEATURE_TYPE [ ]* []*]* [MODE (SET_COMPONENT_VALUES|FILTER)] [COMPONENT_LIST ] [COMPONENT_TYPE_LIST ] [EXPRESSION_LIST ] [FORCE_FLOAT_DIVISION (yes|no)] [FILTER_ATTRIBUTE ] [FILTER_ATTRIBUTE_VALUES_LIST ] [OUTPUT_UNFILTERED_POINTS (yes|no)] [REJECT_INVALID_FEATURES (yes|no)] [OUTPUT RESULT FEATURE_TYPE [ ]* []*]* [OUTPUT FEATURE_TYPE [ ]* []*]* Overview This factory is used to evaluate expressions on each point in a point cloud, such as algebraic operations or conditional statements. The MODE parameter specifies what actions will be taken by the factory based on the EXPRESSION_LIST. The FORCE_FLOAT_DIVISION parameter specifies how division should be handled. If no, division of integer arguments will result in integer values, so an expression like "1/2" will produce a result of 0. If yes, division will always result in floating point values, so an expression like "1/2" will produce a result of 0.5. Set Component Values When the MODE is SET_COMPONENT_VALUES, each expression describes how to calculate a component value. In this mode, the COMPONENT_LIST parameter must be specified. This parameter is a semicolon-delimited list of the component value to be set by each corresponding expression (e.g. the first component in the component list will be set by the first expression in the expression list). This list must have the same number of entries as EXPRESSION_LIST. The COMPONENT_TYPE_LIST parameter is a semicolon-delimited list of the component type for each output component. Valid component types are Real64, Real32, UInt64, UInt32, UInt16, UInt8, Int64, Int32, Int16, Int8. Additionally, there are some special values that may be used: AUTO and PRESERVE. AUTO indicates that the output component type should be automatically determined based on the data types used to perform the calculations. PRESERVE indicates that the component should keep the same type from the input point cloud. If the component did not exist in the input, this is equivalent to AUTO. Filter When the MODE is FILTER, points will be filtered into output point clouds based on the EXPRESSION_LIST. One point cloud will be output for each expression, containing all the points that matched that expression (i.e. the expression resulted in a non-zero value). Note that each point will only be filtered into a single point cloud. For example, if a point matches both the first and second expression, the point will only be placed in the point cloud for the first expression. An additional point cloud will be output containing all the points that did not match any expression. Note that empty point clouds will not be output. In this mode the FILTER_ATTRIBUTE and FILTER_ATTRIBUTE_VALUES_LIST may be specified. FILTER_ATTRIBUTE specifies the name of an attribute that will be added to each output feature. FILTER_ATTRIBUTE_VALUES_LIST is a semicolon-delimited list of the value to which that attribute will be set for each expression. This list should contain one entry for each expression, plus an additional entry for the unfiltered point cloud. The OUTPUT_UNFILTERED_POINTS parameter specifies whether a point cloud will be output for unfiltered points. The REJECT_INVALID_FEATURES clause specifies whether the factory will fail upon being supplied invalid features or output them to the port. Output Tags RESULT The point cloud(s) resulting from evaluating the specified expressions. The output feature that is deemed to be invalid input for any of the following reasons: - The feature has type 'string' for a required component - The feature is missing a required component - The feature is missing a required attribute