[Bf-blender-cvs] [b40bdad1041] functions: utility to generate constant random numbers per line

Jacques Lucke noreply at git.blender.org
Sun Jan 19 12:45:53 CET 2020


Commit: b40bdad10419d57c647bc8cf01643cb567017999
Author: Jacques Lucke
Date:   Sun Jan 19 10:57:14 2020 +0100
Branches: functions
https://developer.blender.org/rBb40bdad10419d57c647bc8cf01643cb567017999

utility to generate constant random numbers per line

===================================================================

A	source/blender/blenlib/BLI_rand_cxx.h
M	source/blender/blenlib/CMakeLists.txt
M	source/blender/functions/intern/node_tree_multi_function_network/generate.cc

===================================================================

diff --git a/source/blender/blenlib/BLI_rand_cxx.h b/source/blender/blenlib/BLI_rand_cxx.h
new file mode 100644
index 00000000000..bb21dfd8e71
--- /dev/null
+++ b/source/blender/blenlib/BLI_rand_cxx.h
@@ -0,0 +1,26 @@
+#ifndef __BLI_RAND_CXX_H__
+#define __BLI_RAND_CXX_H__
+
+#include "BLI_utildefines.h"
+
+#include <iostream>
+
+namespace BLI {
+
+inline uint32_t hash_from_path_and_line(const char *path, uint32_t line)
+{
+  uint32_t hash = 5381;
+  const char *str = path;
+  char c = 0;
+  while ((c = *str++)) {
+    hash = hash * 37 + c;
+  }
+  hash = hash ^ ((line + 573259433) * 654188383);
+  return hash;
+}
+
+}  // namespace BLI
+
+#define BLI_RAND_PER_LINE_UINT32 BLI::hash_from_path_and_line(__FILE__, __LINE__)
+
+#endif /* __BLI_RAND_CXX_H__ */
diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt
index 40f6fa6f769..bafd0b8bf41 100644
--- a/source/blender/blenlib/CMakeLists.txt
+++ b/source/blender/blenlib/CMakeLists.txt
@@ -277,6 +277,7 @@ set(SRC
   BLI_parallel.h
   BLI_string_multi_map.h
   BLI_index_to_ref_map.h
+  BLI_rand_cxx.h
 )
 
 set(LIB
diff --git a/source/blender/functions/intern/node_tree_multi_function_network/generate.cc b/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
index 6e845290f53..f60bc77ee85 100644
--- a/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
+++ b/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
@@ -270,10 +270,10 @@ std::unique_ptr<FunctionTreeMFNetwork> generate_node_tree_multi_function_network
     BLI_assert(false);
   }
 
-  // optimize_network__constant_folding(network_builder, resources);
-  // optimize_network__remove_duplicates(network_builder);
-  // optimize_network__remove_unused_nodes(network_builder);
-  // network_builder.to_dot__clipboard();
+  optimize_network__constant_folding(network_builder, resources);
+  optimize_network__remove_duplicates(network_builder);
+  optimize_network__remove_unused_nodes(network_builder);
+  network_builder.to_dot__clipboard();
   auto function_tree_network = build(function_tree, network_builder, dummy_socket_mapping);
   return function_tree_network;
 }



More information about the Bf-blender-cvs mailing list