# OnGetSurfacePickOrder method

Provides the base class with the necessary information to perform surface picking for the transform.

## Syntax

```
object.OnGetSurfacePickOrder(OutPoint, ulInToTest, aInIndex, aWeight);
```

## Parameters

*OutPoint*[in, ref]

Type:**const CDXDBnds**Coordinates indicating the point in the transform output space to use for surface picking.

*ulInToTest*[out, ref]

Type:**unsigned long**Number of inputs to be tested by the transform.

*aInIndex*[out]

Type:**unsigned long**Array of input surface indices to test, in top-to-bottom order. The number of elements in the array is equal to m_ulMaxInputs. Any input whose bounds intersect

*OutPoint*should be added to the list.*aWeight*[out]

Type:**BYTE**Overall weight that should be attributed to each input listed by

*aInIndex*. The number of elements in the array is equal to m_ulMaxInputs. The weight of an input will be used in conjunction with the alpha weight of the corresponding hit pixel on the input. These weights are typically computed based on the progress of the current effect. For example, an alpha fade transition at 40 percent progress might attribute 60 percent of the result to input Image A, and 40 percent to input Image B. The weight values would be 153 and 102, respectively.

## Return value

This method does not return a value.

## Remarks

This function is intended to simplify the picking implementation for the majority of surface transforms. The information passed back to the base class will be used to lock down the appropriate input surfaces in order, retrieve the correct sample, weight it based on the current effect progress, and return the correct pick information to the container. The base class will map the *OutPoint* to the input space coordinates by using the **IDXTransform::MapBoundsOut2In** method after this function returns. If the transform has multiple inputs whose coordinate spaces are not aligned at zero, the **CDXBaseNTo1::OnSurfacePick** function should be overridden instead.