2009/12/27 Bryan Bishop <kanz...@gmail.com>

> On Sun, Dec 27, 2009 at 3:42 PM, M. Nawijn <naw...@gmail.com> wrote:
> > I have not been a hardcore user of any of these software tools. But the
> way they
> > handle rotating and moving camera/viewport is different for everyone of
> them.
>
> I am actually somewhat okay with that. But what really gets to me is
> when there is entire chunks of functionality blatantly missing. I find
> it "cramped" and hard to move around because there's literally only
> one or two ways to move (rotation, or click on the front/side view
> buttons). There has to be a better way to get to exactly where I want
> to be.
>
> - Bryan
> http://heybryan.org/
> 1 512 203 0507
>
>
Hi Bryan, hi Marco,

I agree it's actually impossible to implement *the* best way to handle
geometry/view point with the mouse. Each vendor implements its own solution
to achieve it, some of them being more intuitive for some users. I can
remember how difficult it was when I moved from SolidWorks to Catia. It took
me a few hours of practice before I can forget the mouse and my fingers and
focus on the design. Something strange is that it's generally impossible to
modify and customize these settings.

When I started to implement the Viewer3d class, I thought about that issue.
I wanted the code to be as simple as possible in a first draft, that's why I
chose 'left button=rotate', 'right button=zoom' and 'middle button=pan'.
When Andy Haywood contributed the InteractiveViewer demo, he decided to
implement another way to handle the viewpoint.

I think the best solution, for pythonOCC, would be to let the user choose
(or easily customize) his favorite behavior. A kind of 'Controller' class
could be instanciated and connected to the viewer. This Controller would map
a set of defined events (LEFT_CLICK, MIDDLE_CLICK, CTRL+LEFT_CLICK etc.)
coming from the GUI (wx, Qt etc.) to the pan/rotate/zoom functions of
OpenCASCADE. Well, something that would surely be interesting to
test/develop...

In the meantime, if you want to modify the built-in viewpoint handling, you
should:
- subclass the wxBaseViewer class,
- implement what you want in the methods OnLeftDown, OnLeftUp, OnMotion etc.

Happy new year to everyone!

Best Regards,

Thomas
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to