Edward K. Chew wrote:
> I have been getting reports from users of a -28376 error
> (kQ3ErrorInfiniteRationalPoint) appearing when they click in a view.
> I have not been able to reproduce this so far, but I have been looking
> closely at my picking code. There doesn't seem to be anything amiss
> with the coordinates going into the window point pick, so that
> suggests a geometry object in one of the display groups is acting up.
>
> Would I see that error if I were unlucky enough to click on a
> polygonal element edge on, so that it is oriented exactly
> perpendicular to the plane of view? I'm just trying to narrow down
> the possibilities here. In the event of such an error, would the pick
> simply not report any hits? That would be good. I could simply
> ignore the error in that case. :)
Assuming you are not explicitly using rational points,
kQ3ErrorInfiniteRationalPoint is most likely to be caused by
transforming a 3D point by a 4x4 matrix. Furthermore, the matrix would
need to be not a rigid motion -- for instance not a local-to-world
matrix, but maybe window-to-world or world-to-frustum or some such. I
don't see anything like that in E3Ray3D_IntersectTriangle or
E3Triangle_InterpolateHit, the key low-level routines used in picking.
You could change your program so that it crashes when it receives
kQ3ErrorInfiniteRationalPoint, and then the users could send you crash
logs. :-)
--
James W. Walker, Innoventive Software LLC
<http://www.frameforge3d.com/>
|