Hi, I haven't heard of the tutorial you mentioned, but I'm quite interested. Mind sending me a link?
Cheers, Daniel On 14/03/2008, Christoph John <[EMAIL PROTECTED]> wrote: > 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 > -- 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
