Browse Source

use capital S for tilde if no lowercase S

David Rose 21 years ago
parent
commit
f540224561
2 changed files with 19 additions and 0 deletions
  1. 18 0
      panda/src/text/textAssembler.cxx
  2. 1 0
      panda/src/text/textAssembler.h

+ 18 - 0
panda/src/text/textAssembler.cxx

@@ -1067,7 +1067,10 @@ tack_on_accent(UnicodeLatinMap::AccentType accent_type,
     tack_on_accent('~', CP_above, CT_none, min_vert, max_vert, centroid,
                    properties, placement) ||
       tack_on_accent('s', CP_above, CT_squash_mirror_diag, min_vert, max_vert, centroid,
+                     properties, placement) ||
+      tack_on_accent('S', CP_above, CT_small_squash_mirror_diag, min_vert, max_vert, centroid,
                      properties, placement);
+
     break;
 
   case UnicodeLatinMap::AT_tilde_below:
@@ -1287,6 +1290,21 @@ tack_on_accent(char accent_mark, TextAssembler::CheesyPosition position,
           mirrored = true;
           break;
 
+        case CT_small_squash_mirror_diag:
+          accent_mat =
+            LMatrix4f::rotate_mat_normaxis(270.0f, LVecBase3f(0.0f, -1.0f, 0.0f)) *
+            LMatrix4f::scale_mat(-small_squash_accent_scale_x, 1.0f, small_squash_accent_scale_y);
+          
+          // rotate min, max
+          t = min_accent[0];
+          u = max_accent[0];
+          min_accent[0] = min_accent[2] * -small_squash_accent_scale_x;
+          max_accent[0] = max_accent[2] * -small_squash_accent_scale_x;
+          min_accent[2] = -u * small_squash_accent_scale_y;
+          max_accent[2] = -t * small_squash_accent_scale_y;
+          mirrored = true;
+          break;
+
         case CT_small:
           accent_mat = LMatrix4f::scale_mat(small_accent_scale);
           min_accent *= small_accent_scale;

+ 1 - 0
panda/src/text/textAssembler.h

@@ -146,6 +146,7 @@ private:
     CT_squash_mirror_diag,
     CT_small_squash,
     CT_small_squash_mirror_y,
+    CT_small_squash_mirror_diag,
     CT_small,
     CT_small_rotate_270,
     CT_tiny,