Hello Victor,

Victor Haefner wrote:
>         void mouse(int button, int state, int x, int y) {
>             //if(state) nav->buttonPress(button,x,y);
>             //else nav->buttonRelease(button,x,y);

I think you should track the pressed/released buttons from here and not 
change them in the motion callback.

>             //cout << "\nBUTTON " << button << "   " << state << " state 
> " << nav->getState() << " mode " << nav->getMode();
> 
>             //if(state) button_pressed |= 1 << button;
>             //else button_pressed &= ~(1 << button);
>             lastbutton = button;
>             lastx = x;
>             lasty = y;
> 
>             return true;
>         }
> 
>         void motion(int x, int y) {
>             switch(lastbutton) {
>                 case 0://rotating
>                     nav->buttonPress(lastbutton,x,y);
>                     cout << "\nMOVING " << x << "   " << y << "   " << 
> lastbutton << " state " << nav->getState() << " mode " << nav->getMode();
>                     nav->moveTo(x,y);
>                     nav->updateCameraTransformation();
>                     cout << "\nMATRIX " << nav->getMatrix();
>                     break;
>             }
> 
>             lastx = x;
>             lasty = y;
>             return true;
>         }
> 
> I used code from the ssm
> 
> my problem is in the motion function, moveTo doesn't do anything.. the 
> navigator state at this point is 1, the mode 0 (rotation, trackball)

have you looked into moveTo and why it does not do anything, i.e. does 
it return early because of a check at the beginning that is not 
satisfied? What are the values passed into it, do they make sense and 
match your mouse movement?
I don't see much of a difference between your code and what the SSM 
uses, so this is a bit puzzling. I assume you already made sure your 
callbacks are called, i.e. especially the motion() one gets called all 
the time when the mouse moves?

> I just want to use the simple navigation like the standart ssm navigation
> 
> ..I can't use the ssm because I have a cluster application, I allready 
> made a whole framework for that.. one camera, one client window/viewport 
> and one multiwindow for the cluster (with N viewports)..

hm, that setup does not sound overly exotic and there is nothing that 
prevents the SSM from being used in a cluster (the cluster examples use 
it). Have you tried to just have the SSM manage the client window and 
perhaps instead of calling ssm->redraw() call ssm->update() and 
clusterWin->render() to get the cluster and client windows to render?

        Cheers,
                Carsten


------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to