Symbol resizing using aspect ratio;

TODO: copy code for rarity box to other styles

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@622 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-08-24 02:05:50 +00:00
parent 0625a3ca87
commit bdd3429479
14 changed files with 69 additions and 30 deletions
+2 -2
View File
@@ -71,8 +71,8 @@ void filter_symbol(Image& symbol, const SymbolFilter& filter) {
}
}
Image render_symbol(const SymbolP& symbol, const SymbolFilter& filter, double border_radius, int width, int height, bool edit_hints) {
Image i = render_symbol(symbol, border_radius, width, height, edit_hints);
Image render_symbol(const SymbolP& symbol, const SymbolFilter& filter, double border_radius, int width, int height, bool edit_hints, bool allow_smaller) {
Image i = render_symbol(symbol, border_radius, width, height, edit_hints, allow_smaller);
filter_symbol(i, filter);
return i;
}
+1 -1
View File
@@ -35,7 +35,7 @@ class AColor : public Color {
void filter_symbol(Image& symbol, const SymbolFilter& filter);
/// Render a Symbol to an Image and filter it
Image render_symbol(const SymbolP& symbol, const SymbolFilter& filter, double border_radius = 0.05, int width = 100, int height = 100, bool edit_hints = false);
Image render_symbol(const SymbolP& symbol, const SymbolFilter& filter, double border_radius = 0.05, int width = 100, int height = 100, bool edit_hints = false, bool allow_smaller = false);
/// Is a point inside a symbol?
enum SymbolSet
+3 -3
View File
@@ -14,14 +14,14 @@ DECLARE_TYPEOF_COLLECTION(SymbolPartP);
// ----------------------------------------------------------------------------- : Simple rendering
Image render_symbol(const SymbolP& symbol, double border_radius, int width, int height, bool editing_hints) {
Image render_symbol(const SymbolP& symbol, double border_radius, int width, int height, bool editing_hints, bool allow_smaller) {
SymbolViewer viewer(symbol, editing_hints, width, border_radius);
// limit width/height ratio to aspect ratio of symbol
double ar = symbol->aspectRatio();
double par = (double)width/height;
if (par > ar && ar > 1) {
if (par > ar && (ar > 1 || (allow_smaller && height < width))) {
width = height * ar;
} else if (par < ar && ar < 1) {
} else if (par < ar && (ar < 1 || (allow_smaller && width < height))) {
height = width / ar;
}
if (width > height) {
+1 -1
View File
@@ -17,7 +17,7 @@
// ----------------------------------------------------------------------------- : Simple rendering
/// Render a Symbol to an Image
Image render_symbol(const SymbolP& symbol, double border_radius = 0.05, int width = 100, int height = 100, bool editing_hints = false);
Image render_symbol(const SymbolP& symbol, double border_radius = 0.05, int width = 100, int height = 100, bool editing_hints = false, bool allow_smaller = false);
// ----------------------------------------------------------------------------- : Symbol Viewer