summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 888b8e8)
raw | patch | inline | side by side (parent: 888b8e8)
| author | cth103 <cth103@users.sourceforge.net> | |
| Mon, 8 May 2006 11:28:31 +0000 (11:28 +0000) | ||
| committer | cth103 <cth103@users.sourceforge.net> | |
| Mon, 8 May 2006 11:28:31 +0000 (11:28 +0000) |
| src/seltrans.cpp | patch | blob | history |
diff --git a/src/seltrans.cpp b/src/seltrans.cpp
index 52907af30aaaebe3b4d1ab60e2b87bc8e4677b02..bbaaf2f9df1de0957925f6712865ef30f9ff2bd0 100644 (file)
--- a/src/seltrans.cpp
+++ b/src/seltrans.cpp
s,
_origin);
- /* Choose the smaller difference in scale. Since s[X] == s[Y] we can
- ** just compare difference in s[X].
- */
- double const bd = bb.second ? fabs(bb.first[NR::X] - s[NR::X]) : NR_HUGE;
- double const sd = sn.second ? fabs(sn.first[NR::X] - s[NR::X]) : NR_HUGE;
- s = (bd < sd) ? bb.first : sn.first;
-
+ if (bb.second == false && sn.second == false) {
+
+ /* We didn't snap, so just lock aspect ratio */
+ if (fabs(s[NR::X]) > fabs(s[NR::Y])) {
+ s[NR::X] = fabs(s[NR::Y]) * sign(s[NR::X]);
+ } else {
+ s[NR::Y] = fabs(s[NR::X]) * sign(s[NR::Y]);
+ }
+
+ } else {
+
+ /* Choose the smaller difference in scale. Since s[X] == s[Y] we can
+ ** just compare difference in s[X].
+ */
+ double const bd = bb.second ? fabs(bb.first[NR::X] - s[NR::X]) : NR_HUGE;
+ double const sd = sn.second ? fabs(sn.first[NR::X] - s[NR::X]) : NR_HUGE;
+ s = (bd < sd) ? bb.first : sn.first;
+ }
+
} else {
/* Scale aspect ratio is unlocked */