Houdini 11 VEX VEX functions

Filters the points found by `pcopen` using a simple reconstruction filter.

1. `float pcfilter(int handle, string channel_name)`

2. `vector pcfilter(int handle, string channel_name)`

3. `vector4 pcfilter(int handle, string channel_name)`

4. `matrix pcfilter(int handle, string channel_name)`

5. `matrix3 pcfilter(int handle, string channel_name)`

Filters the points queued up by pcopen using a simple reconstruction filter.

This function is roughly equivalent to:

```float pcfilter(int handle; string channel)
{
float    sum, w, d;
float    value, result = 0;
while (pciterate(handle))
{
pcimport(handle, "point.distance", d);
pcimport(handle, channel, value);
w = 1 - smooth(0, radius, d);
sum += w;
result += w * value;
}
result /= sum;
return result;
}
```

`pcfilter` takes the points that were opened by the point cloud and produces a filtered value. The following equation shows how the individual points are weighted.

`w_i = 1-smooth(0, maxd*1.1, d_i);`

`maxd` is the farthest point, and `w_i` is the weight for a given point at distance (`d_i`). Points that are closer to the center will be weighted higher with that formula, rather than it being an average.

Contexts: all