| diff -up gdl-0.9.3/CMakeLists.txt.plwidth gdl-0.9.3/CMakeLists.txt |
| --- gdl-0.9.3/CMakeLists.txt.plwidth 2013-08-27 16:55:33.806600443 -0600 |
| +++ gdl-0.9.3/CMakeLists.txt 2013-08-27 16:55:36.589590528 -0600 |
| @@ -23,6 +23,7 @@ include(CheckLibraryExists) |
| include(CheckFunctionExists) |
| include(CheckSymbolExists) |
| include(CheckCSourceRuns) |
| +include(CheckCXXSourceCompiles) |
| include(FindPkgConfig) |
| include(FindPackageHandleStandardArgs) |
| |
| @@ -302,6 +303,18 @@ if(PLPLOT_FOUND) |
| message(STATUS "warning, due to old plplot library, [XYZ]TICKFORMAT option for plot axis will not be supported.\n" |
| "you should upgrade to plplot version > 5.9.6") |
| endif(HAVE_PLPLOT_SLABELFUNC) |
| + set(CMAKE_REQUIRED_INCLUDES "${PLPLOT_INCLUDE_DIR}") |
| + set(CMAKE_REQUIRED_LIBRARIES "${PLPLOT_LIBRARIES}") |
| + check_cxx_source_compiles(" |
| +#include <plplot/plstream.h> |
| +int main(int argc, char **argv) { |
| + plstream *p = new plstream(); |
| + PLFLT w = 0.5; |
| + p->width(w); |
| +}" HAVE_PLPLOT_WIDTH) |
| + if(HAVE_PLPLOT_WIDTH) |
| + set(HAVE_PLPLOT_WIDTH 1) |
| + endif(HAVE_PLPLOT_WIDTH) |
| check_library_exists("${PLPLOT_LIBRARIES}" plstrl "" PLPLOT_PRIVATE_NOT_HIDDEN) |
| if(PLPLOT_PRIVATE_NOT_HIDDEN) |
| set(PLPLOT_PRIVATE_NOT_HIDDEN 1) |
| diff -up gdl-0.9.3/config.h.cmake.plwidth gdl-0.9.3/config.h.cmake |
| --- gdl-0.9.3/config.h.cmake.plwidth 2013-08-27 16:55:33.808600436 -0600 |
| +++ gdl-0.9.3/config.h.cmake 2013-08-27 16:55:36.589590528 -0600 |
| @@ -28,6 +28,7 @@ |
| #cmakedefine HAVE_NEXTTOWARD 1 |
| #cmakedefine HAVE_OLDPLPLOT 1 |
| #cmakedefine HAVE_PLPLOT_SLABELFUNC 1 |
| +#cmakedefine HAVE_PLPLOT_WIDTH 1 |
| #cmakedefine PLPLOT_PRIVATE_NOT_HIDDEN 1 |
| #cmakedefine PLPLOT_HAS_LEGEND |
| #ifndef HAVE_STDINT_H |
| diff -up gdl-0.9.3/src/plotting_contour.cpp.plwidth gdl-0.9.3/src/plotting_contour.cpp |
| --- gdl-0.9.3/src/plotting_contour.cpp.plwidth 2013-08-27 16:55:33.883600169 -0600 |
| +++ gdl-0.9.3/src/plotting_contour.cpp 2013-08-27 16:55:36.590590524 -0600 |
| @@ -705,7 +705,11 @@ namespace lib |
| actStream->pat(1,&ori,&spa); |
| |
| if (docolors) actStream->Color ( ( *colors )[i%colors->N_Elements ( )], decomposed, (PLINT)colorindex_table_0_color ); |
| +#if (HAVE_PLPLOT_WIDTH) |
| + if (dothick) actStream->width ( static_cast<PLFLT>(( *thick )[i%thick->N_Elements ( )])); |
| +#else |
| if (dothick) actStream->wid ( ( *thick )[i%thick->N_Elements ( )]); |
| +#endif |
| if (dostyle) gdlLineStyle(actStream, ( *style )[i%style->N_Elements ( )]); |
| actStream->shade( map, xEl, yEl, isLog?doIt:NULL, xStart, xEnd, yStart, yEnd, |
| clevel[i], clevel[i+1], |
| @@ -788,7 +792,11 @@ namespace lib |
| actStream->stransform(gdl3dTo2dTransformContour, &Data3d); |
| } |
| if (docolors) actStream->Color ( ( *colors )[i%colors->N_Elements ( )], decomposed, 2); |
| +#if (HAVE_PLPLOT_WIDTH) |
| + if (dothick) actStream->width ( static_cast<PLFLT>(( *thick )[i%thick->N_Elements ( )])); |
| +#else |
| if (dothick) actStream->wid ( ( *thick )[i%thick->N_Elements ( )]); |
| +#endif |
| if (dostyle) gdlLineStyle(actStream, ( *style )[i%style->N_Elements ( )]); |
| if (dolabels) actStream->setcontlabelparam ( LABELOFFSET, (PLFLT) label_size, LABELSPACING, |
| (PLINT)(*labels)[i%labels->N_Elements()] ); |
| diff -up gdl-0.9.3/src/plotting.cpp.plwidth gdl-0.9.3/src/plotting.cpp |
| --- gdl-0.9.3/src/plotting.cpp.plwidth 2013-08-27 16:55:33.886600158 -0600 |
| +++ gdl-0.9.3/src/plotting.cpp 2013-08-27 16:58:33.707952697 -0600 |
| @@ -1891,7 +1891,11 @@ namespace lib |
| DFloatGDL* charthickVect=e->GetKWAs<DFloatGDL>( charthickIx ); |
| charthick=(*charthickVect)[0]; |
| } |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(static_cast<PLFLT>(charthick)); |
| +#else |
| a->wid(charthick); |
| +#endif |
| } |
| |
| void gdlSetAxisCharsize(EnvT *e, GDLGStream *a, string axis) |
| @@ -1919,7 +1923,11 @@ namespace lib |
| |
| e->AssureFloatScalarKWIfPresent("THICK", thick); |
| if ( thick<=0.0 ) thick=1.0; |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(static_cast<PLFLT>(thick)); |
| +#else |
| a->wid(static_cast<PLINT>(floor(thick-0.5))); |
| +#endif |
| } |
| |
| //LINESTYLE |
| @@ -2932,7 +2940,11 @@ namespace lib |
| a->smaj((PLFLT)OtherAxisSizeInMm, 1.0); //set base ticks to default 0.02 viewport converted to mm. |
| a->smin((PLFLT)OtherAxisSizeInMm/2.0,1.0); //idem min (plplt defaults) |
| //thick for box and ticks. |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(static_cast<PLFLT>(Thick)); |
| +#else |
| a->wid(Thick); |
| +#endif |
| //ticks or grid eventually with style and length: |
| if (abs(TickLen)<1e-6) Opt=""; else Opt="st"; //remove ticks if ticklen=0 |
| if (TickLen<0) {Opt+="i"; TickLen=-TickLen;} |
| @@ -2977,7 +2989,11 @@ namespace lib |
| else if (axis=="Y") a->box("", 0.0, 0 , Opt.c_str(), 0.0, 0); |
| } |
| //reset charsize & thick |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(1.0); |
| +#else |
| a->wid(1); |
| +#endif |
| a->sizeChar(1.0); |
| } |
| return 0; |
| @@ -3120,7 +3136,11 @@ namespace lib |
| a->smaj((PLFLT)OtherAxisSizeInMm, 1.0); //set base ticks to default 0.02 viewport converted to mm. |
| a->smin((PLFLT)OtherAxisSizeInMm/2.0,1.0); //idem min (plplt defaults) |
| //thick for box and ticks. |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(static_cast<PLFLT>(Thick)); |
| +#else |
| a->wid(Thick); |
| +#endif |
| //ticks or grid eventually with style and length: |
| if (abs(TickLen)<1e-6) Opt=""; else Opt="st"; //remove ticks if ticklen=0 |
| if (TickLen<0) {Opt+="i"; TickLen=-TickLen;} |
| @@ -3145,7 +3165,11 @@ namespace lib |
| else if (axis=="Z") a->box3("","",0,0,"","",0,0, Opt.c_str(), "", TickInterval, Minor); |
| } |
| //reset charsize & thick |
| +#if (HAVE_PLPLOT_WIDTH) |
| + a->width(1.0); |
| +#else |
| a->wid(1); |
| +#endif |
| a->sizeChar(1.0); |
| } |
| return 0; |
| diff -up gdl-0.9.3/src/plotting_xyouts.cpp.plwidth gdl-0.9.3/src/plotting_xyouts.cpp |
| --- gdl-0.9.3/src/plotting_xyouts.cpp.plwidth 2013-08-27 16:55:33.892600137 -0600 |
| +++ gdl-0.9.3/src/plotting_xyouts.cpp 2013-08-27 16:55:36.591590521 -0600 |
| @@ -339,7 +339,11 @@ namespace lib |
| //plot!
|
| if (docharsize) actStream->sizeChar(( *size )[i%size->N_Elements ( )]);
|
| if (docolor) actStream->Color ( ( *color )[i%color->N_Elements ( )], decomposed, 2);
|
| +#if (HAVE_PLPLOT_WIDTH)
|
| + if (docharthick) actStream->width ( static_cast<PLFLT>(( *charthick )[i%charthick->N_Elements ( )]));
|
| +#else
|
| if (docharthick) actStream->wid ( ( *charthick )[i%charthick->N_Elements ( )]);
|
| +#endif
|
| //orientation word is not orientation page depending on axes increment direction [0..1] vs. [1..0]
|
| PLFLT oriD=(( *orientation )[i%orientation->N_Elements ( )]); //ori DEVICE
|
| PLFLT oriW=oriD; //ori WORLD
|