159 lines
6.6 KiB
Diff
159 lines
6.6 KiB
Diff
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
|