Measure "belongingness" to point clouds

I have several "point clouds" in XYZ-space. Each point in these clouds have a certain identity (i.e. these points represent Charlie and those points represent Anna).

Now a new point appears without its identity known beforhand. I want to know which cloud it "belongs to", for exampel as in which cloud is the closest. How should I do?

The clouds are not spherical, but often elongated and bent. This means that average distance to the points in each cloud is not a good measure of likely "belonging".

One idea would be to "encapsulate" each cloud and then measure the distance from the new point to the closest point on the surface of each capsule. I could do it manually/intuitively with fairly good result, but how to do it mathematically in a programmable way? Also, it would be a nice-to-have to consider also the density of different parts of each cloud, and to ignore or down-weight outliers.

Any ideas are welcome, even name dropping of methods which could be of interest, since I dont even know what to call this problem...