I was under the impression that the primitive ID returned by the various Segment_3 queries in the AABB package represented the index of the primitive in the original list given to the soup constructor. This doesn't seem to be the case.
Here's a snip of code:
s=# a list of 4 segments
sa= #a segment that intersects only one of the four segments in s
itr=[]
tree=AABB_tree_Segment_3_soup(s)
tree.accelerate_distance_queries()
tree.all_intersections(sa,itr)
if len(itr)==0:
return False
elif len(itr)==1:
print itr[0].second, len(s), s
the output from the print is:
7 4 [<CGAL.CGAL_Kernel.Segment_3; proxy of <Swig Object of type 'Segment_3 *' at 0x110252840> >, <CGAL.CGAL_Kernel.Segment_3; proxy of <Swig Object of type 'Segment_3 *' at 0x1102527b0> >, <CGAL.CGAL_Kernel.Segment_3; proxy of <Swig Object of type 'Segment_3 *' at 0x1102528a0> >, <CGAL.CGAL_Kernel.Segment_3; proxy of <Swig Object of type 'Segment_3 *' at 0x110252810> >]
the id is 7? what could that refer to? what's stranger is that if I add another segment to s, the id becomes 12. am I misunderstanding something?
Thanks for any clarification