From Jean-Sebastien Guay, "When creating a cylinder without a bottom or a top (in the traits, createBottom=false and createTop=false), the cylinder could still be picked by picking its (non-existent) bottom or top. This is because the PrimitiveShapeFunctor does not consider the traits when returning the cylinder's geometry for the picking test, and always returns geometry for the whole cylinder, with bottom, top and body.
From Jean-Sebastien Guay, "When creating a cylinder without a bottom or a top (in the traits, createBottom=false and createTop=false), the cylinder could still be picked by picking its (non-existent) bottom or top. This is because the PrimitiveShapeFunctor does not consider the traits when returning the cylinder's geometry for the picking test, and always returns geometry for the whole cylinder, with bottom, top and body.

I have attached a fixed file where the traits are checked in the PrimitiveShapeFunctor where appropriate. They are checked for Box, Cone Capsule and Cylinder. These just mirror the checks that were already done in the DrawShapeVisitor.

(another instance where if the ShapeDrawable had just been osg::Geometry, there wouldn't have been a problem... :-) )

I also fixed a small typo in the file in two places ("implementated" --> "implemented")."


XiaoCC/osg,artoolkit/osg,artoolkit/osg,XiaoCC/osg,XiaoCC/osg,koshman86/osg,stmh/osg,omega-hub/osg,koshman86/osg,omega-hub/osg,koshman86/osg,XiaoCC/osg,koshman86/osg,ntoand/osg,XiaoCC/osg,omega-hub/osg,ntoand/osg,ghub/osg,stmh/osg,ghub/osg,ghub/osg,ntoand/osg,artoolkit/osg,stmh/osg,stmh/osg,omega-hub/osg,artoolkit/osg,stmh/osg,ntoand/osg,ghub/osg