[Gtkradiant] Update: TranslateFree (Dominant axis movement)

Joseph, William WJoseph at europe.ea.com
Thu Mar 22 09:49:36 CDT 2007

Hi Eduard,

I am the one who implemented this feature originally.

TranslateFree is intended to manipulate objects in the plane of the camera view - there are situations where the behaviour you describe: "the vertex is translated into x-axis direction as well" is desired.

You may be unaware of the axis-constrained translation tool. Press 'w' to toggle it. See http://zerowing.idsoftware.com/files/radiant/docs/1.5/commands.html
for more keyboard shortcuts.

I suggest reading through these docs to gain some insights into some of the features in GtkRadiant 1.5 that you may not be aware of:

thanks for your contributions!


-----Original Message-----
From: gtkradiant-bounces at zerowing.idsoftware.com [mailto:gtkradiant-bounces at zerowing.idsoftware.com] On Behalf Of "Eduard Aumüller"
Sent: 21 March 2007 07:54
To: gtkradiant at zerowing.idsoftware.com
Subject: [Gtkradiant] Update: TranslateFree (Dominant axis movement)


at the current revision the TranslateFree behaves like this:

1. create a patch somewhere on the x-axis
2. in the camera view look parallel to the x-axis
3. rotate the camera at the downwards
4. if you select a vertex of the patch now and move it upwards( mouse delta on the y-axis) a lot
you will experience that the vertex is translated into x-axis direction as well, against your expectations

The reason why is because the ray through your mouse cursor is projected onto the far plane and the deltas between  mouse drag(x,y) and mouse drop(x,y) are computed and since you are looking downwards a little a little delta into x-axis direction is computed as well.

In my update I have calculated 2 reference directions, moving the cursor in window coordinates into (900,0) & (0,900) direction

I then calculate the drag&drop delta vectors  and use these to determine the main axis of movement

so 2 axis are used and the 3rd axis component of the translation vector is cancled out.

The result is a translate along the 2 main axis

For more information see the selection.cpp.diff 

Please at this to the svn

"Feel free" - 5 GB Mailbox, 50 FreeSMS/Monat ...
Jetzt GMX ProMail testen: www.gmx.net/de/go/mailfooter/promail-out

More information about the Gtkradiant mailing list