Hey Daniel, thanks I just found the tutorial. But I remembered that the OpenSG tutorial stated somewhere that ray intersection performs quite weak in presence of larger geometry. It says it should not be used for collision detection and things like that as it checks for ray intersection on each object (polygon? have not checked the source yet). Therefore I was interested if there is a faster way to get to the polygon like color picking. There is an tutorial which uses this technique for fast object picking but not for single polygons. I assume I have to implement it myself :(
Cheers Christoph -------- Original-Nachricht -------- > Datum: Fri, 14 Mar 2008 15:35:31 +0100 > Von: "Daniel Wickeroth" <[EMAIL PROTECTED]> > An: [email protected] > Betreff: Re: [Opensg-users] color picking in opensg > Hi, > > there is a picking mechanism included in OpenSG, which intersects a > ray with some geometry. The returned information include the Node that > was hit, the polygon within the node, the exact location on that > polygon, and so on. We have a method within our framework that looks > like this > > > void getObjectAt(int x, int y, OSG::NodePtr &node, > OSG::Pnt3f &hitPoint, OSG::Vec3f > &hitNormal, > OSG::Int32 &hitTriangleIndex) > { > > Line line; > > PerspectiveCameraPtr camera = scene->getCamera(); > NodePtr root = scene->getObjectsRoot(); > ViewportPtr vp = getViewport(); > > camera->calcViewRay(line, x, y, *vp); > > IntersectAction *action = IntersectAction::create(line); > > action->apply(root); > > if (action->didHit()) > { > // cerr << "SGQGLManagedWidgetP::selectObjectAt info: hit > something" << endl; > node = action->getHitObject(); > hitPoint = action->getHitPoint(); > hitNormal = action->getHitNormal(); > hitTriangleIndex = action->getHitTriangle(); > } > else > { > // cerr << "SGQGLManagedWidgetP::selectObjectAt info: hit > nothing" << endl; > node = NodePtr(0); > hitPoint = Pnt3f(0.0f, 0.0f, 0.0f); > hitNormal = Vec3f(0.0f, 1.0f, 0.0f); > hitTriangleIndex = 0; > } > > delete action; > } > > Maybe you want to look into the IntersectAction to see if there is > some other info you are interested in. I found that the normals are > not always computed the way I expected, so I wrote a little funtion > that computes the normal of the hitPoint based on the index of the hit > Polygon. If you need something like that, let me know. > > Cheers, > Daniel > > > > > > > > > > > > > > > > > On 14/03/2008, Christoph John <[EMAIL PROTECTED]> wrote: > > Hello, > > I am quite new to opensg and I am searching for a way to obtain a > polygon on which a user has clicked. > > Is there a kind of color picking or something similar already > integrated into opensg and where do I find it? > > Thanks for your help > > > > Cheers > > Christoph > > -- > > Psssst! Schon vom neuen GMX MultiMessenger gehört? > > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > Opensg-users mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/opensg-users > > > > > -- > Daniel Wickeroth > Moltkestraße 88 > 50674 Köln > > Home 0221 3569325 > Work 0221 478 86502 > Mobil 0176 700 40 252 > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Opensg-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/opensg-users ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
