| 64 | return MS_SUCCESS; |
| 65 | } |
| 66 | void computeSymbolStyle(symbolStyleObj *s, styleObj *src, symbolObj *symbol, double scalefactor) { |
| 67 | double default_size; |
| 68 | double target_size; |
| 69 | double style_size; |
| 70 | |
| 71 | default_size = msSymbolGetDefaultSize(symbol); |
| 72 | style_size = (src->size==-1)?default_size:src->size; |
| 73 | |
| 74 | INIT_SYMBOL_STYLE(*s); |
| 75 | if(symbol->type == MS_SYMBOL_PIXMAP) { |
| 76 | s->color = s->outlinecolor = NULL; |
| 77 | } else if(symbol->filled || symbol->type == MS_SYMBOL_TRUETYPE) { |
| 78 | if(MS_VALID_COLOR(src->color)) |
| 79 | s->color = &src->color; |
| 80 | if(MS_VALID_COLOR(src->outlinecolor)) |
| 81 | s->outlinecolor = &src->outlinecolor; |
| 82 | } else { |
| 83 | if(MS_VALID_COLOR(src->color)) |
| 84 | s->outlinecolor = &(src->color); |
| 85 | else if(MS_VALID_COLOR(src->outlinecolor)) |
| 86 | s->outlinecolor = &(src->outlinecolor); |
| 87 | s->color = NULL; |
| 88 | } |
| 89 | |
| 90 | |
| 91 | if(MS_VALID_COLOR(src->backgroundcolor)) { |
| 92 | s->backgroundcolor = &(src->backgroundcolor); |
| 93 | } |
| 94 | |
| 95 | target_size = style_size * scalefactor; |
| 96 | target_size = MS_MAX(target_size, src->minsize); |
| 97 | target_size = MS_MIN(target_size, src->maxsize); |
| 98 | s->scale = target_size / default_size; |
| 99 | s->gap = src->gap * target_size / style_size; |
| 100 | |
| 101 | if(s->outlinecolor) { |
| 102 | s->outlinewidth = src->width * scalefactor; |
| 103 | s->outlinewidth = MS_MAX(s->outlinewidth, src->minwidth); |
| 104 | s->outlinewidth = MS_MIN(s->outlinewidth, src->maxwidth); |
| 105 | } else { |
| 106 | s->outlinewidth = 0; |
| 107 | } |
| 108 | |
| 109 | s->rotation = src->angle * MS_DEG_TO_RAD; |
| 110 | } |
| 111 | |
| 112 | |
| 113 | #define COMPARE_COLORS(a,b) (\ |
no test coverage detected