Syntax FACTORY_DEF ConvexHullFactory [FACTORY_NAME ] [INPUT FEATURE_TYPE [ ]* []*]* [GROUP_BY []+]* [FLUSH_WHEN_GROUPS_CHANGE (Yes|No)] [MODE (CONVEX|CONCAVE) [ALPHA ]* [HANDLE_ARCS_AND_ELLIPSES [(yes|no)]] [MAKE3DMODE (MAKE3D|MAKE2D)] [REJECT_INVALID_GEOM (Yes|No)] [OUTPUT (ORIGINAL|CONVEX_HULL) FEATURE_TYPE [ ]* []*]* Overview This factory takes a set of point, linear, polygonal, and/or aggregate features and computes its hull. In CONVEX mode, the convex hull is defined as the minimum enclosing convex polygon for all input features. A convex polygon is one where no interior angle is greater than 180 degrees. In lay terms, the effect is similar to tightening a rubber band around the features. In CONCAVE mode, the concave hull, also known as the alpha hull, is calculated. The concave hull may consist of multiple donuts or polygons. When ALPHA is specified, it is used in the alpha hull calculation directly, a larger number will generally produce more generalized results. Points or features that are farther away than alpha from the rest of the geometries may be culled if they do not constitute a valid area on their own. It is possible that a null geometry will be returned if the specified alpha was too small for the spacing of the geometry. When ALPHA is not specified, an optimal alpha, which is the smallest alpha that generates a single area, will be used to generate the concave hull. The input features are partitioned into groups based on attribute values by way of the GROUP_BY clause, and one hull feature is output for each group. If FLUSH_WHEN_GROUPS_CHANGE is set to Yes, processing will be performed whenever a feature of a different group is encountered, doing output early. If the GROUP_BY clause is not specified, then all input features will be processed together and only a single hull will be output. No attributes are carried across from the INPUT features to the OUTPUT CONVEX_HULL features. However, all OUTPUT CONVEX_HULL features are assigned the GROUP_BY attributes before being output. The OUTPUT ORIGINAL features are untouched as a result of their visit to the factory. If this clause is not specified, then the original features will be deleted. This factory differs from the @ConvexHull() function in that the function computes the hull of a single feature, whereas this factory computes the hull of a group of features. Two parameters for MAKE3DMODE are MAKE3D and MAKE2D. If not provided, the default will be MAKE3D. The algorithm used to compute the convex hull is used by permission of the notice below: Ken Clarkson wrote this [convex hull algorithm]. Copyright (c) 1996 by AT&T. Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software. THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. When REJECT_INVALID_GEOM is Yes, the factory will output invalid features to Rejected port. Output Tags The ConvexHullFactory supports the following output tags. CONVEX_HULL The hull of the group of features, stored as a simple polygon. ORIGINAL The original, unchanged input features.