Changeset 7577
- Timestamp:
- 05/12/08 12:32:27 (2 months ago)
- Files:
-
- trunk/mapserver/HISTORY.TXT (modified) (1 diff)
- trunk/mapserver/mapagg.cpp (modified) (1 diff)
- trunk/mapserver/mapdraw.c (modified) (2 diffs)
- trunk/mapserver/mapgraticule.c (modified) (1 diff)
- trunk/mapserver/mapimagemap.c (modified) (1 diff)
- trunk/mapserver/maplabel.c (modified) (4 diffs)
- trunk/mapserver/maplegend.c (modified) (2 diffs)
- trunk/mapserver/mapscale.c (modified) (5 diffs)
- trunk/mapserver/mapserver.h (modified) (2 diffs)
- trunk/mapserver/mapsvg.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/mapserver/HISTORY.TXT
r7575 r7577 13 13 Current Version (5.1-dev, SVN trunk): 14 14 ------------------------------------- 15 - AGG: use an agg specific label size calculation function where possible (#2357) 15 16 16 17 - mapogcsld.c: fetch TextSymbolizer/Label/ogc:PropertyName correctly (#2611) trunk/mapserver/mapagg.cpp
r7476 r7577 1948 1948 } 1949 1949 1950 int msGetLabelSizeAGG(imageObj *img, char *string, labelObj *label, rectObj *rect, fontSetObj *fontset, double scalefactor, int adjustBaseline) 1951 { 1952 AGGMapserverRenderer* ren = getAGGRenderer(img); 1953 int size; 1954 size = MS_NINT(label->size*scalefactor); 1955 size = MS_MAX(size, label->minsize); 1956 size = MS_MIN(size, label->maxsize); 1957 char * font = msLookupHashTable(&(fontset->fonts), label->font); 1958 if(!font) { 1959 msSetError(MS_TTFERR, "Requested font (%s) not found.", "msGetLabelSizeAGG()", label->font); 1960 return MS_FAILURE; 1961 } 1962 if(ren->getLabelSize(string, font, label->size, rect) != MS_SUCCESS) 1963 return MS_FAILURE; 1964 if(adjustBaseline) { 1965 label->offsety += MS_NINT(((rect->miny+rect->maxy) + size) / 2); 1966 label->offsetx += MS_NINT(rect->minx / 2); 1967 } 1968 return MS_SUCCESS; 1969 } 1950 1970 // --------------------------------------------------------------------------- 1951 1971 // Draw a label curved along a line trunk/mapserver/mapdraw.c
r7544 r7577 1956 1956 rectObj r; 1957 1957 1958 if(msGetLabelSize( string, label, &r, fontset, scalefactor, MS_FALSE) == -1) return(-1);1958 if(msGetLabelSize(image,string, label, &r, fontset, scalefactor, MS_FALSE) == -1) return(-1); 1959 1959 p = get_metrics(&labelPnt, label->position, r, label->offsetx, label->offsety, label->angle, 0, NULL); 1960 1960 msDrawText(image, p, string, label, fontset, scalefactor); /* actually draw the label */ … … 2087 2087 continue; /* not an error, just don't want to do anything */ 2088 2088 2089 if(msGetLabelSize( cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1)2089 if(msGetLabelSize(image,cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1) 2090 2090 return(-1); 2091 2091 trunk/mapserver/mapgraticule.c
r7418 r7577 656 656 msTransformShapeToPixel( pShape, pLayer->map->extent, pLayer->map->cellsize ); 657 657 658 if (msGetLabelSize ( pShape->text, &pLayer->class[0]->label, &rectLabel, &pLayer->map->fontset, 1.0, MS_FALSE) != 0)658 if (msGetLabelSizeGD( pShape->text, &pLayer->class[0]->label, &rectLabel, &pLayer->map->fontset, 1.0, MS_FALSE) != 0) 659 659 return MS_FAILURE; /* msSetError already called */ 660 660 trunk/mapserver/mapimagemap.c
r7426 r7577 1851 1851 cachePtr->label.size = (int)(cachePtr->label.size*layerPtr->scalefactor); 1852 1852 1853 if(msGetLabelSize( cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1)1853 if(msGetLabelSize(img,cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1) 1854 1854 return(-1); 1855 1855 trunk/mapserver/maplabel.c
r7418 r7577 1 1 /****************************************************************************** 2 * $Id :$2 * $Id$ 3 3 * 4 4 * Project: MapServer … … 397 397 } 398 398 399 400 int msGetLabelSize(imageObj *img, char *string, labelObj *label, rectObj *rect, fontSetObj *fontset, double scalefactor, int adjustBaseline) 401 { 402 #ifdef USE_AGG 403 if(MS_RENDERER_AGG(img->format)) 404 return msGetLabelSizeAGG(img,string,label,rect,fontset,scalefactor,adjustBaseline); 405 else 406 #endif 407 return msGetLabelSizeGD(string,label,rect,fontset,scalefactor,adjustBaseline); 408 } 409 399 410 /* 400 411 ** Note: All these routines assume a reference point at the LL corner of the text. GD's … … 404 415 405 416 /* assumes an angle of 0 regardless of what's in the label object */ 406 int msGetLabelSize (char *string, labelObj *label, rectObj *rect, fontSetObj *fontset, double scalefactor, int adjustBaseline)417 int msGetLabelSizeGD(char *string, labelObj *label, rectObj *rect, fontSetObj *fontset, double scalefactor, int adjustBaseline) 407 418 { 408 419 int size; … … 803 814 label.antialias = symbol->antialias; 804 815 805 if(msGetLabelSize (symbol->character, &label, &label_rect, symbolset->fontset, scalefactor, MS_FALSE) == -1)816 if(msGetLabelSizeGD(symbol->character, &label, &label_rect, symbolset->fontset, scalefactor, MS_FALSE) == -1) 806 817 return(-1); 807 818 trunk/mapserver/maplegend.c
r7544 r7577 201 201 202 202 if ( transformedText == NULL 203 || msGetLabelSize (transformedText, &map->legend.label,203 || msGetLabelSizeGD(transformedText, &map->legend.label, 204 204 &rect, &(map->fontset), 1.0, MS_FALSE) != 0) 205 205 { /* something bad happened */ … … 310 310 head=cur; 311 311 if(cur->transformedText==NULL|| 312 msGetLabelSize (cur->transformedText, &map->legend.label, &rect, &(map->fontset), 1.0, MS_FALSE) != 0)312 msGetLabelSizeGD(cur->transformedText, &map->legend.label, &rect, &(map->fontset), 1.0, MS_FALSE) != 0) 313 313 { /* something bad happened, free allocated mem */ 314 314 while(cur) { trunk/mapserver/mapscale.c
r7418 r7577 1 1 /****************************************************************************** 2 * $Id :$2 * $Id$ 3 3 * 4 4 * Project: MapServer … … 311 311 p.x = ox + j*isx; /* + MS_NINT(fontPtr->w/2); */ 312 312 p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontPtr->h); 313 if(msGetLabelSize (label,&(map->scalebar.label), &r,313 if(msGetLabelSizeGD(label,&(map->scalebar.label), &r, 314 314 &(map->fontset), 1, MS_FALSE) == -1) return(NULL); 315 315 p2 = get_metrics(&p, MS_CC, r, 0,0, 0, 0, NULL); … … 324 324 p.x = ox; /* + MS_NINT(fontPtr->w/2); */ 325 325 p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontPtr->h); 326 if(msGetLabelSize (label,&(map->scalebar.label), &r,326 if(msGetLabelSizeGD(label,&(map->scalebar.label), &r, 327 327 &(map->fontset), 1, MS_FALSE) == -1) return(NULL); 328 328 p2 = get_metrics(&p, MS_CR, r, 0,0, 0, 0, NULL); … … 344 344 p.x = ox + j*isx; /* + MS_NINT(fontPtr->w/2); */ 345 345 p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontPtr->h); 346 if(msGetLabelSize (label,&(map->scalebar.label), &r,346 if(msGetLabelSizeGD(label,&(map->scalebar.label), &r, 347 347 &(map->fontset), 1, MS_FALSE) == -1) return(NULL); 348 348 p2 = get_metrics(&p, MS_CC, r, 0,0, 0, 0, NULL); … … 360 360 p.x = ox; /* + MS_NINT(fontPtr->w/2); */ 361 361 p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontPtr->h); 362 if(msGetLabelSize (label,&(map->scalebar.label), &r,362 if(msGetLabelSizeGD(label,&(map->scalebar.label), &r, 363 363 &(map->fontset), 1, MS_FALSE) == -1) return(NULL); 364 364 p2 = get_metrics(&p, MS_CR, r, 0,0, 0, 0, NULL); trunk/mapserver/mapserver.h
r7569 r7577 1681 1681 MS_DLL_EXPORT int msFreeFontSet(fontSetObj *fontset); 1682 1682 MS_DLL_EXPORT char *msTransformLabelText(labelObj *label, char *text); 1683 MS_DLL_EXPORT int msGetLabelSize(char *string, labelObj *label, rectObj *rect, fontSetObj *fontSet, double scalefactor, int adjustBaseline); 1683 MS_DLL_EXPORT int msGetLabelSize(imageObj *img, char *string, labelObj *label, rectObj *rect, fontSetObj *fontSet, double scalefactor, int adjustBaseline); 1684 MS_DLL_EXPORT int msGetLabelSizeGD(char *string, labelObj *label, rectObj *rect, fontSetObj *fontSet, double scalefactor, int adjustBaseline); 1685 1684 1686 MS_DLL_EXPORT int msGetLabelSizeEx(char *string, labelObj *label, rectObj *rect, fontSetObj *fontSet, double scalefactor, int adjustBaseline, double **offsets); 1685 1687 MS_DLL_EXPORT int msAddLabel(mapObj *map, int layerindex, int classindex, int shapeindex, int tileindex, pointObj *point, labelPathObj *labelpath, char *string, double featuresize, labelObj *label); … … 1927 1929 MS_DLL_EXPORT void msDrawShadeSymbolAGG(symbolSetObj *symbolset, imageObj *image,shapeObj *p, styleObj *style, double scalefactor); 1928 1930 1931 MS_DLL_EXPORT int msGetLabelSizeAGG(imageObj *img, char *string, labelObj *label, rectObj *rect, fontSetObj *fontSet, double scalefactor, int adjustBaseline); 1929 1932 MS_DLL_EXPORT int msDrawTextAGG(imageObj *imgage, pointObj labelPnt, char *string, labelObj *label, fontSetObj *fontset, double scalefactor); 1930 1933 MS_DLL_EXPORT int msDrawTextLineAGG(imageObj *image, char *string, labelObj *label, labelPathObj *labelpath, fontSetObj *fontset, double scalefactor); trunk/mapserver/mapsvg.c
r7418 r7577 1153 1153 continue; /* not an error, just don't want to do anything */ 1154 1154 1155 if(msGetLabelSize (cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1)1155 if(msGetLabelSizeGD(cachePtr->text, labelPtr, &r, &(map->fontset), layerPtr->scalefactor, MS_TRUE) == -1) 1156 1156 return(-1); 1157 1157
