Syntax FACTORY_DEF PointCloudSplitterFactory [FACTORY_NAME ] [INPUT FEATURE_TYPE [ ]* []*] [SPLIT_BY |FIRST_RETURN|LAST_RETURN] [RANGE_LIST [from,to,output_attr_val]+] [VALUES_TO_KEEP ] [REJECT_INVALID_FEATURES (yes|no)] [OUTPUT_ATTR output_attr] [OUTPUT SPLIT FEATURE_TYPE [ ]* []*]* Overview This factory separates each input point cloud feature into one or more output point cloud features based on the SPLIT_BY clause as explained below. If an OUTPUT_ATTR clause is specified, the output feature will contain a new attribute with the specified name. SPLIT_BY The SPLIT_BY clause accepts the following parameter values: Component list (e.g. "classification" or "color_red,color_green,color_blue") FIRST_RETURN LAST_RETURN When no RANGE_LIST clause is specified, one point cloud is output for each unique value of the specified component found in the point cloud. For example, if splitting by classification, then one point cloud is output for each distinct classification value in the point cloud, and all points in each of the output point clouds will have the same classification value. Additionally, if OUTPUT_ATTR is specified, the classification for the output feature will be recorded in the specified attribute. The FIRST_RETURN and LAST_RETURN options behave a bit differently from the above behavior. For FIRST_RETURN, a single point cloud feature will be output containing all points whose return number is 1. For LAST_RETURN, a single point cloud feature will be output containing all the points which represent the last return (i.e. where the return number is equal to the number of returns). If OUTPUT_ATTR is specified, the attribute value will be set to -1 since the last return value can vary from point to point. VALUES_TO_KEEP When a VALUES_TO_KEEP clause is specified, a point cloud will only be output for each unique value specified in the list. The list should be a comma- separated string of values. This parameter is not compatible with RANGE_LIST. RANGE_LIST When a RANGE_LIST clause is specified, rather than a point cloud being output for each unique value, a point cloud will be output for each range of values (provided at least one point falls in the range). The format of the range list is as follows: [from,to,output_attr_value]+ For example, the following range list would create one point cloud for component values between 0 and 100, a second point cloud for component values between 101 and 200, and a third point cloud for component values that don't fall into either of these ranges. If OUTPUT_ATTR is specified, the output attribute value will be set to the corresponding string for each range. 0,100,first_group,101,200,second_group To specify an output attribute value for the "default" group, add a group with empty from and to values. 0,100,first_group,101,200,second_group,,,default_group To specify multi-part component values (e.g. for color), enclose values in quotation marks. "0,0,0","255,0,0",red,"0,0,0","0,0,255",blue From or to values may be omitted to create open-ended ranges. For example, the following list specifies ranges for values less than or equal to 50, or greater than or equal to 100: ,50,low,100, ,high Note that multiple components for the SPLIT_BY clause can only be used with a RANGE_LIST. That is, it is not currently supported to split multiple components by unique values. The REJECT_INVALID_FEATURES clause specifies whether the factory will fail upon being supplied invalid features or output them to the port. This factory accepts only features that have point cloud geometry. Attributes will be carried across from the INPUT features to the respective SPLIT features. Output Tags The PointCloudSplitterFactory supports the following output tag. SPLIT Output features created from splitting the input feature(s). The output feature that is deemed to be invalid input for any of the following reasons: