Allan Rasmusson wrote:

Dirk Reiners wrote:

    Hi Bjoern,

On Fri, 2005-04-29 at 14:03 +0200, Björn Harmen Gerth wrote:
Oh great,

this is exactly the problem I have now. I divided the
window into three viewports, and assigned an extra
trackball navigator to the camera of each viewport.



I was a bit lazy, so the first VP is still managed by
the SSM and its Navigator. However, in my QT window I
check which VP has been hit. No I tried different
combinations to pass to the mouse methods of the ssm
or remaining navigators, respectively, and the
following happens:

VP 1 (from SSM) doesn't show anything :-(
VP 2 & 3: Rotating somehow works, zooming too, but
panning makes the scene (a torus) vanish and I can't
find it again.

So here's what I observed:
In Navigator::calcDeltas, getPixelWidth() of the VP is
used, but getPixelLeft() is neglected.
In Navigator::setCameraTransformation(), the matrix of
the given Node is not copied to the trackball matrix.


Did these changes fix your problems?

Has there been any progress since Allan started this
thread in March?


Not on my end. Allan?

    Dirk

Hi.
I've not done any work on this yet. I've alse noticed that the scene is scaled differently when splitting a viewport horizontally compared to a vertical split. The rotations does not behave the same way either. This is most likely because the getPixelLeft is missing. I'll look into it over the next week or two.
/Allan


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r _______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Hi!
   In OSGNavigator::moveTo I've replaced the following lines

   Real32 fromX = (2.0f * _lastX - width) / width;
   Real32 fromY = (height - 2.0f * _lastY) / height;
   Real32 toX   = (2.0f * x - width) / width;
   Real32 toY   = (height - 2.0f * y) / height;

by: Real32 winHeight = (Real32)_vp->getParent()->getHeight(); //Maybe a check for Parent!=NullFC is in order. Real32 fromX = (2.0f * (_lastX - _vp->getPixelLeft())- width)/ width;// + getLeft(); Real32 fromY = (2.0f * (winHeight - _lastY - _vp->getPixelBottom()) - height) / height; Real32 toX = (2.0f * (x - _vp->getPixelLeft()) - width) / width;// + getLeft(); Real32 toY = (2.0f * (winHeight - y - _vp->getPixelBottom()) -height)/height;

Now the navigator is able to handle multiple viewports.

/Allan


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_ids93&alloc_id281&op�ick
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to