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

Function plot_P1_isoline

plugin/seq/plotPDF.cpp:1421–1469  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1419 st << "Q\n";
1420
1421 return;
1422}
1423
1424void plot_P1_isoline( std::stringstream &Content, const Fem2D::Mesh &Th, const KN<double> &f_P1,
1425 const KNM<double> &palette,
1426 const int sizex, const int sizey, const double scale, const double ar,
1427 const double x0, const double y0, const double y1,
1428 const int marginl, const int marginb,
1429 const double textfontsize, const bool monochrome,
1430 const bool legend, const int prec, const bool logscale,
1431 const double withmesh,
1432 const int NISOLINES, const KN<double>*const viso,
1433 const double linewidth )
1434{
1435 //------------------------------
1436 // values in plot
1437 //------------------------------
1438 const double fmax = (viso)? viso->max(): f_P1.max();
1439 const double fmin = (viso)? viso->min(): f_P1.min();
1440 std::vector<double> isoline_val;
1441
1442 find_isoline_values( isoline_val, fmax, fmin, NISOLINES, viso, logscale );
1443
1444 // color/gray-scale range to plot
1445#if 0
1446 // If user specifies an irrelevant color range (in viso array),
1447 const double cmax = *max_element( isoline_val.begin(), isoline_val.end() );
1448 const double cmin = *min_element( isoline_val.begin(), isoline_val.end() );
1449#else
1450 // map color/grayscale range to function values
1451 const double cmax = fmax;
1452 const double cmin = fmin;
1453#endif
1454
1455 std::stringstream &st = Content;
1456 st.str("");
1457
1458 if( 0 < withmesh )
1459 overlayMesh( st, Th, withmesh, scale, ar, x0, y0, marginl, marginb );
1460
1461 plot_P1_isoline_body( st, Th, f_P1, isoline_val, cmin, cmax, palette, scale, ar, x0, y0,
1462 marginl, marginb, monochrome, logscale, NISOLINES, linewidth );
1463
1464 if( legend )
1465 drawLegend_contour( st, isoline_val, prec, palette, cmin, cmax,
1466 monochrome, logscale, sizex, textfontsize, scale,
1467 y1, y0, marginl, marginb);
1468
1469 drawBoundary( st, Th, scale, ar, x0, y0, marginl, marginb );
1470
1471 return;
1472}

Callers 1

operator()Method · 0.85

Calls 9

find_isoline_valuesFunction · 0.85
overlayMeshFunction · 0.85
plot_P1_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