MCPcopy Index your code
hub / github.com/MapServer/MapServer / computeSymbolStyle

Function computeSymbolStyle

maprendering.c:66–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64 return MS_SUCCESS;
65}
66void 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) (\

Callers 3

msDrawLineSymbolFunction · 0.85
msDrawShadeSymbolFunction · 0.85
msDrawMarkerSymbolFunction · 0.85

Calls 1

msSymbolGetDefaultSizeFunction · 0.85

Tested by

no test coverage detected