Progress

Tools can now be developed. The interface is there. I am going to
start adding a sidebar type thing so that we can have some sort of
selecting mechanism for the tools and some method of configuring the
tools. (for example drawing needs to be able to set the element).

Is it possible there can be one big tool for everything using shift /
ctrl / alt? Maybe we need ot have some sort of interface such that
certain keystrokes get sent to some plugins and some to others. I guess
there is always the future. We have all kinds of possibilities. I
should ask the guys i work with if they like using modifier keys or
actually changing the tool. Thing is we can have a swiss army knife
tool for those modifier happy people.

If anyone has any time some tool cleanup could be used. Especially with
translating. We need to translate before rotation so that we can rotate
around what we’re looking at… not rotating space around 0,0.

-Donald

On Jan 5, 2007, at 4:06 PM, Donald Ephraim Curtis wrote:

If anyone has any time some tool cleanup could be used. Especially
with
translating. We need to translate before rotation so that we can
rotate
around what we’re looking at… not rotating space around 0,0.

Actually there are some weird people (including myself) who prefer to
have both options. Sometimes you do actually want to move a molecule
relative to the origin.

Of course that’s the advantage of having tools as open source
plugins. :slight_smile:

Cheers,
-Geoff

I am not positive… .but i think that would require two matricies.
Which isn’t a problem. Just have a pre-translate rotation and a
post-translate rotation. :slight_smile:

(Fri, Jan 05, 2007 at 04:12:28PM -0500) Geoffrey Hutchison geoff.hutchison@gmail.com:

On Jan 5, 2007, at 4:06 PM, Donald Ephraim Curtis wrote:

If anyone has any time some tool cleanup could be used. Especially
with
translating. We need to translate before rotation so that we can
rotate
around what we’re looking at… not rotating space around 0,0.

Actually there are some weird people (including myself) who prefer to
have both options. Sometimes you do actually want to move a molecule
relative to the origin.

Of course that’s the advantage of having tools as open source
plugins. :slight_smile:

Cheers,
-Geoff

Is it possible there can be one big tool for everything using shift /
ctrl / alt?

for me (as kalzium 3d developer considering moving to avogadro) it’s pretty
important to be able to bind the avogadro camera-moving tools to whatever
form of user input I prefer. Precisely, I’d like to let the user move the
camera with the mouse only by drag&drop using two mouse buttons, as in the
eigen-opengl example. In addition I’ll experiment with making it so that when
the mouse is over an atom, movement is done relatively to this atom (though
this might turn out to be confusing, it’s worth experimenting) using OpenGL
selection.

Just to tell you that it’s important for me that avogadro leaves some freedom
to the app in the way user input is handled.

What about not doing any user input handling in avogadro, and instead only
providing methods that the application developer can use as he likes?

If anyone has any time some tool cleanup could be used. Especially with
translating. We need to translate before rotation so that we can rotate
around what we’re looking at… not rotating space around 0,0.

will you use Eigen or not to handle the camera ( = modelview ) matrix? If yes
translating is as easy as shown in the eigen-opengl example.

Benoit

Just to clarify for everyone (Donald already knows this :slight_smile: )

you need only one matrix for the camera whatsoever, but then you need to be
able to perform two different kinds of rotation methods on it:

  • multiplying the current matrix by a rotation on the right, i.e.
    current = current * rotation;
    this gives a rotation around the origin on the scene

  • multiplying the current matrix by a rotation on the left, i.e.
    current = rotation * current;
    this gives a rotation around the camera itself

In Eigen, rotation on the right is given by rotate3() and rotation on the left
is given by prerotate3(). In OpenGL, rotation on the right is given by
glRotated() and there is no function for rotation on the left.

Benoit

Le vendredi 05 janvier 2007 22:19, Donald Ephraim Curtis a écrit :

I am not positive… .but i think that would require two matricies.
Which isn’t a problem. Just have a pre-translate rotation and a
post-translate rotation. :slight_smile:

(Fri, Jan 05, 2007 at 04:12:28PM -0500) Geoffrey Hutchison
geoff.hutchison@gmail.com:

On Jan 5, 2007, at 4:06 PM, Donald Ephraim Curtis wrote:

If anyone has any time some tool cleanup could be used. Especially
with
translating. We need to translate before rotation so that we can
rotate
around what we’re looking at… not rotating space around 0,0.

Actually there are some weird people (including myself) who prefer to
have both options. Sometimes you do actually want to move a molecule
relative to the origin.

Of course that’s the advantage of having tools as open source
plugins. :slight_smile:

Cheers,
-Geoff


Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV


Avogadro-devel mailing list
Avogadro-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/avogadro-devel

(Sat, Jan 06, 2007 at 09:45:56AM +0100) Benoît Jacob jacob@math.jussieu.fr:

What about not doing any user input handling in avogadro, and instead only
providing methods that the application developer can use as he likes?

Well, there are two avogadros. There is libavogadro which at this time
makes no bindings to input. It simply emits signals when input is
generated meaning it’s up to whatever app is using libavogadro.

Avogadro the app itself actually uses tools to handle the input. That
is, each tool implements MousePress / MouseRelease / MouseMove and so
each plugins handles itself. We haven’t started dealing with bindings
yet.

If anyone has any time some tool cleanup could be used. Especially with
translating. We need to translate before rotation so that we can rotate
around what we’re looking at… not rotating space around 0,0.

will you use Eigen or not to handle the camera ( = modelview ) matrix? If yes
translating is as easy as shown in the eigen-opengl example.

It’s absolutly possible we will but at this point I just haven’t had
time to clean up the GL code nor have I had any reason to move to Eigen
yet. Most likely when it comes to needing to rotate the camera we’ll
move to that. It’s being used for the enginges generating the spheres
and cylinders.

-Donald