MCPcopy Create free account
hub / github.com/alandefreitas/matplotplusplus / grid_data_string

Method grid_data_string

source/matplot/axes_objects/surface.cpp:351–474  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

349 }
350
351 std::string surface::grid_data_string() {
352 std::stringstream ss;
353 ss.precision(10);
354 ss << std::fixed;
355 const bool contour = (contour_base_ || contour_surface_);
356 const bool palette_map_3d = palette_map_at_bottom_ ||
357 palette_map_at_surface_ ||
358 palette_map_at_top_;
359 const bool repeat_data_for_contour_labels = contour && contour_text_;
360 const bool manual_color = size(Z_data_) == size(C_data_);
361 const size_t replicates = 1 + repeat_data_for_contour_labels;
362
363 auto send_point = [](std::stringstream &ss, double x, double y,
364 double z, double c) {
365 ss << " " << x;
366 ss << " " << y;
367 ss << " " << z;
368 if (std::isfinite(c)) {
369 ss << " " << c;
370 }
371 ss << "\n";
372 };
373
374 auto send_point_fill = [](std::stringstream &ss, double x, double y,
375 double z, double zlow, double zhigh,
376 double c) {
377 ss << " " << x;
378 ss << " " << y;
379 ss << " " << z;
380 ss << " " << zlow;
381 ss << " " << zhigh;
382 if (std::isfinite(c)) {
383 ss << " " << c;
384 }
385 ss << "\n";
386 };
387
388 auto color_value = [&](size_t data_replicate, size_t i, size_t j) {
389 if (manual_color && data_replicate == 0) {
390 return C_data_[i][j];
391 } else if (!palette_map_3d && !line_spec_.user_color()) {
392 return Z_data_[i][j];
393 } else {
394 return NaN;
395 }
396 };
397
398 for (size_t data_replicate = 0; data_replicate < replicates;
399 ++data_replicate) {
400 if (curtain_) {
401 // open curtain - first line with zmin instead of z
402 size_t i = Y_data_.size() - 1;
403 send_point(ss, X_data_[i][0], Y_data_[i][0], zmin_,
404 color_value(data_replicate, i, 0));
405 for (size_t j = 0; j < Y_data_[i].size(); ++j) {
406 send_point(ss, X_data_[i][j], Y_data_[i][j], zmin_,
407 color_value(data_replicate, i, j));
408 }

Callers

nothing calls this directly

Calls 3

sizeFunction · 0.85
user_colorMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected