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