Hi again,
tracking a single fiber which both ends are in a surface, I get 15 entries in the matrix 3 corresponding each corresponding to the 2x3 vertices of the triangles it encounters.
here is the matrix3:
array([[ 96362, 96388, 1],
[ 96362, 96389, 1],
[ 96388, 96389, 1],
[ 96362, 113067, 1],
[ 96388, 113067, 1],
[ 96389, 113067, 1],
[ 96362, 113068, 1],
[ 96388, 113068, 1],
[ 96389, 113068, 1],
[113067, 113068, 1],
[ 96362, 113080, 1],
[ 96388, 113080, 1],
[ 96389, 113080, 1],
[113067, 113080, 1],
[113068, 113080, 1],
[113151, 113151, 0]])
I think it loops to count the fibers is wrong as for any fiber hitting a triangle it will count the real fiber 3 or 9 times, but also counting between the vertices of the same triangle, which highly inflates the diagonal of the matrix when summing on ROIs.
Normalizing by 15=5x6/2 if both ends are on surfaces and 6=3*4/2 if only one end is on a surface seems to give more sensible results regarding the total number of fibers, but still the fiber count in the diagonal will be wrong, the diagonal is often discarded though.
Dividing by 3 or 9 should give the right number for the extra-diagonal elements.
Cheers.
basile
|