diff --git a/include/openmc/plot.h b/include/openmc/plot.h index 088699883..b1432b442 100644 --- a/include/openmc/plot.h +++ b/include/openmc/plot.h @@ -14,6 +14,7 @@ #include "openmc/geometry.h" #include "openmc/particle.h" #include "openmc/xml_interface.h" +#include "openmc/random_lcg.h" namespace openmc { @@ -27,6 +28,8 @@ namespace model { extern std::vector plots; //!< Plot instance container extern std::unordered_map plot_map; //!< map of plot ids to index +extern uint64_t plotter_prn_seeds[N_STREAMS]; +extern int plotter_stream; } // namespace model @@ -285,7 +288,7 @@ void create_voxel(Plot pl); //! Create a randomly generated RGB color //! \return RGBColor with random value -RGBColor random_color(uint64_t * prn_seeds, int stream); +RGBColor random_color(void); } // namespace openmc diff --git a/src/plot.cpp b/src/plot.cpp index cd8aa2c27..07c612952 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -80,6 +80,8 @@ namespace model { std::vector plots; std::unordered_map plot_map; +uint64_t plotter_prn_seeds[N_STREAMS] = {1, 2, 3, 4, 5, 6}; +int plotter_stream = STREAM_TRACKING; } // namespace model @@ -396,15 +398,11 @@ Plot::set_default_colors(pugi::xml_node plot_node) fatal_error(err_msg); } - // Initialize a random number stream - uint64_t prn_seed = 1; - int stream = 0; - for (auto& c : colors_) { - c = random_color(&prn_seed, stream); + c = random_color(); // make sure we don't interfere with some default colors while (c == RED || c == WHITE) { - c = random_color(&prn_seed, stream); + c = random_color(); } } } @@ -962,8 +960,10 @@ voxel_finalize(hid_t dspace, hid_t dset, hid_t memspace) H5Sclose(memspace); } -RGBColor random_color(uint64_t * prn_seeds, int stream) { - return {int(prn(prn_seeds, stream)*255), int(prn(prn_seeds, stream)*255), int(prn(prn_seeds, stream)*255)}; +RGBColor random_color(void) { + return {int(prn(model::plotter_prn_seeds, model::plotter_stream)*255), + int(prn(model::plotter_prn_seeds, model::plotter_stream)*255), + int(prn(model::plotter_prn_seeds, model::plotter_stream)*255)}; } extern "C" int openmc_id_map(const void* plot, int32_t* data_out)