I agree, that is the way I've observed it as working. And I agree it seems absurd that we should have to make everything pickable. It would be a lot more user friendly if anything that we didn't care about was automaticallly assumed to be "miss" and didn't generate an error.
Our "solution" is to put our pickable objects in one branchgroup and to put our "decorations" in a different branchgroup. Then only execute the pick against the pickable branchgroup.
- John Wright Starfire Research
Rick Brownrigg wrote:
I'm getting the dreaded "javax.media.j3d.CapabilityNotSetException: Shape3D: no capability to allow intersect" exception. I know from experimentation why it is happening.
But I'd like ask a broader question: why should this even happen at all? That is, I'd like to have some objects in the scene pickable, and others not. But should the user, for whatever reason, pick on something that is not enabled for it, the exception occurs, creating an error condition. It seems like the appropriate behavior is nothing should happen -- a pick "miss" in effect.
This can be easily demonstrated using the "PickText3DGeometry.java" example in the standard Java3D demos. Comment out the setCapability(Geometry.ALLOW_INTERSECT) call for one of the Text3D shapes. Run it, and observe that you can still pick the other Text3D shape, as expected, but upon trying to pick on the "disabled" one, the exception occurs, and the picking behavior for both shapes is busted from that point on.
Is this right, or am I missing something here? Is pick an all or nothing affair; i.e., must all shapes be enabled for it?
BTW: I'm not sure that catching the exception will solve anything. In a scene where a pickable object is very close to, or overlaps, something that is not intended to be pickable, the exception is bound to occur, thus short-circuiting the pick testing (?)
I appreciate any insights that might be offered....thanks!
Rick Brownrigg
=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".