MCPcopy Create free account
hub / github.com/FreeFem/FreeFem-sources / plot_P2_isoline

Function plot_P2_isoline

plugin/seq/plotPDF.cpp:2700–2751  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2698 } // for triangle
2699
2700 st << "Q\n";
2701
2702 return;
2703}
2704
2705void plot_P2_isoline( std::stringstream &Content, const Fem2D::Mesh &Th, const KN<double> &f_P2_,
2706 const KNM<double> &palette,
2707 const int sizex, const int sizey, const double scale, const double ar,
2708 const double x0, const double y0, const double y1,
2709 const int marginl, const int marginb,
2710 const double textfontsize, const bool monochrome,
2711 const bool legend, const int prec, const bool logscale,
2712 const double withmesh,
2713 const int NISOLINES, const KN<double>*const viso,
2714 const double linewidth )
2715{
2716 const double EPS = 1e-10;
2717
2718 //------------------------------
2719 // values to plot
2720 //------------------------------
2721 const double fmax = (viso)? viso->max(): f_P2_.max();
2722 const double fmin = (viso)? viso->min(): f_P2_.min();
2723 std::vector<double> isoline_val;
2724
2725 find_isoline_values( isoline_val, fmax, fmin, NISOLINES, viso, logscale );
2726
2727 // color/gray-scale range to plot
2728#if 1
2729 // If user specifies an irrelevant color range (in viso array),
2730 // we do not take care of it.
2731 const double cmax = *max_element( isoline_val.begin(), isoline_val.end() );
2732 const double cmin = *min_element( isoline_val.begin(), isoline_val.end() );
2733#else
2734 // map color/grayscale range to function values
2735 const double cmax = fmax;
2736 const double cmin = fmin;
2737#endif
2738
2739 std::stringstream &st = Content;
2740 st.str("");
2741
2742 if( 0 < withmesh )
2743 overlayMesh( st, Th, withmesh, scale, ar, x0, y0, marginl, marginb );
2744
2745 plot_P2_isoline_body( st, Th, f_P2_, isoline_val, cmin, cmax, palette, scale, ar, x0, y0,
2746 marginl, marginb, monochrome, logscale, NISOLINES, linewidth );
2747
2748 if( legend )
2749 drawLegend_contour( st, isoline_val, prec, palette, cmin, cmax,
2750 monochrome, logscale, sizex, textfontsize, scale,
2751 y1, y0, marginl, marginb);
2752
2753 drawBoundary( st, Th, scale, ar, x0, y0, marginl, marginb );
2754

Callers 1

operator()Method · 0.85

Calls 9

find_isoline_valuesFunction · 0.85
overlayMeshFunction · 0.85
plot_P2_isoline_bodyFunction · 0.85
drawLegend_contourFunction · 0.85
drawBoundaryFunction · 0.85
maxMethod · 0.45
minMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected