#### Description:

This function creates a new PointList object and optionally initialises its attributes.

A PointList object is a specialised type of Region which represents a collection of points in a coordinate Frame.

#### Synopsis

AstPointList ∗astPointList( AstFrame ∗frame, int npnt, int ncoord, int dim, const double ∗points, AstRegion ∗unc, const char ∗options, ... )

#### Parameters:

##### frame

A pointer to the Frame in which the region is defined. A deep copy is taken of the supplied Frame. This means that any subsequent changes made to the Frame using the supplied pointer will have no effect the Region.

##### npnt

The number of points in the Region.

##### ncoord

The number of coordinates being supplied for each point. This must equal the number of axes in the supplied Frame, given by its Naxes attribute.

##### dim

The number of elements along the second dimension of the `"` points`"` array (which contains the point coordinates). This value is required so that the coordinate values can be correctly located if they do not entirely fill this array. The value given should not be less than `"` npnt`"` .

##### points

The address of the first element of a 2-dimensional array of shape `"` [ncoord][dim]`"` giving the physical coordinates of the points. These should be stored such that the value of coordinate number `"` coord`"` for point number `"` pnt`"` is found in element `"` in[coord][pnt]`"` .

##### unc

An optional pointer to an existing Region which specifies the uncertainties associated with each point in the PointList being created. The uncertainty at any point in the PointList is found by shifting the supplied `"` uncertainty`"` Region so that it is centred at the point being considered. The area covered by the shifted uncertainty Region then represents the uncertainty in the position. The uncertainty is assumed to be the same for all points.

If supplied, the uncertainty Region must be of a class for which all instances are centro-symetric (e.g. Box, Circle, Ellipse, etc.) or be a Prism containing centro-symetric component Regions. A deep copy of the supplied Region will be taken, so subsequent changes to the uncertainty Region using the supplied pointer will have no effect on the created Box. Alternatively, a NULL Object pointer may be supplied, in which case a default uncertainty is used equivalent to a box 1.0E-6 of the size of the bounding box of the PointList being created.

The uncertainty Region has two uses: 1) when the astOverlap function compares two Regions for equality the uncertainty Region is used to determine the tolerance on the comparison, and 2) when a Region is mapped into a different coordinate system and subsequently simplified (using astSimplify), the uncertainties are used to determine if the transformed boundary can be accurately represented by a specific shape of Region.

##### options

Pointer to a null-terminated string containing an optional comma-separated list of attribute assignments to be used for initialising the new PointList. The syntax used is identical to that for the astSet function and may include `"` printf`"` format specifiers identified by `"` %`"` symbols in the normal way.

##### ...

If the `"` options`"` string contains `"` %`"` format specifiers, then an optional list of additional arguments may follow it in order to supply values to be substituted for these specifiers. The rules for supplying these are identical to those for the astSet function (and for the C `"` printf`"` function).

#### Returned Value

##### astPointList()

A pointer to the new PointList.

#### Notes:

- A null Object pointer (AST__NULL) will be returned if this function is invoked with the AST error status set, or if it should fail for any reason.

#### Status Handling

The protected interface to this function includes an extra parameter at the end of the parameter list descirbed above. This parameter is a pointer to the integer inherited status variable: `"` int ∗status`"` .
Copyright (C) 2021 East Asian Observatory