Dear community,
is it possible that the method c4d.utils.Neighbor.GetPointOneRingPoints()
is (currently) bugged?
The documentation states that it will return "the points that are attached through one edge to the given point". The problem occurs on points which are either edge or corner cases of a non-closed surface. Below is a simple example to illustrate the problem. The orange points are the inputs for the method, the green points are the output, and red points are points not included in the output - but I would expect them to be included:
- An edge case. We get the two green points but not the red one.
- A default case. Everything is fine here, we get four points.
- A corner case. We only get the green point but not the red one.
One can reproduce the behavior in the console on a similar topology (and different point IDs) with the following code:
>>> from c4d import utils
>>> nbr = utils.Neighbor()
>>> nbr.Init(op)
True
>>> nbr.GetPointOneRingPoints(26) #edge case
[52, 27]
>>> nbr.GetPointOneRingPoints(39) #default case
[65, 38, 40, 13]
>>> nbr.GetPointOneRingPoints(25) #corner case
[24]
Thank you for your attention,
zipit