-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make reset_camera=Camera.KEEP
the default behavior
#144
Comments
I don't think this is a good idea. That'll be totally confusing for new users: set_defaults(reset_camera=Camera.KEEP)
show(Pos(1, 1, 1) * Box(1, 2, 3))
# %%
show(Pos(-2, -2, -2) * Sphere(1)) You can't see the sphere. New users might wonder. I wonder how hard it is to |
If my understanding is correct the issue is not really "reset bad, keep good" or the other way around but "don't overrule the user", in which case part of the solution would need to be on the viewer side with the UI keeping track of whether the camera has been changed manually or not. Then you could have some logic (new parameter? different semantics for (obviously this is very handwavy and there would be further points to address such as subsequent |
This is not about bad or good. I simply don't want to get "Viewer is broken" issues because of the behaviour described above (sphere not visible because of And, I don't want to make an already complex logic not even more complex. |
@bernhard-42 I agree with your argument; I also agree with @jdegenstein's but I don't think having Personally what I like about I admit my earlier suggestion for "don't reset if the user has touched the camera manually" is probably over complicated, maybe there is a simpler middle-ground solution... something like "don't reset if the objects are (roughly) in the same place" based on some kind of overall bounding box heuristic? Assuming there's interest for such an improvement (if it is an improvement at all) that is.
"not a bug, won't fix" is also a valid take :D in that case I'll stop wasting your time |
First off, thank you for the thoughtful responses and discussion so far. Responding to a few points raised above:
You are correct. It is not hard, but that requires users to know about this setting (and there are a myriad of options for
RE: some of @snoyer 's suggestions and this point from bernhard, I completely agree with bernhard on this point. Given this discussion so far I decided to consult with the defacto most popular CodeCAD user interface -- OpenSCAD (note: I am not saying we SHOULD consider anything below as "sacred" or "perfect" but I think it is worthwhile to research other software as inspiration because UI generally comes with a heritage that usually conforms to user expectations/experience). Here are a few relevant observations:
I also want to say that I fully agree with snoyer that some version of "won't fix" is a totally acceptable answer (this is just a friendly suggestion as a user of this software). I am obviously an avid user of |
@jdegenstein I really like your idea of looking into what OpenSCAD does. Thanks for the idea. I also checked it out.
Now, OCP CAD Viewer Now, let's address the point of Two proposals (both to implement):
I think 2) solves two problems:
Of course, What do you think? |
Not my preference, but this is your project. (just to recap: I prefer that the viewer by default never moves the camera upon "re-render" without separate user input (like OpenSCAD)).
These are great and will go a long way to improving the user experience. I also like the interaction between I think it is also worth reviewing these two buttons to see if they are still relevant given your proposal. I don't have a strong preference on how they should act but they seem related to this. |
They are still relevant. The left button will return camera angles and zoom to where you started and the right one will keep camera angles and only zooms to fit the window. I use both very regularly.
I can additionally make |
Resetting the view direction on re-running show is very disruptive to my workflow since it often requires me to take one hand off the keyboard and re-orient the camera manually. To address this concern the
Camera.KEEP
option was added previously, I propose that this becomes the default behavior.The text was updated successfully, but these errors were encountered: