TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ Evaluate()

NodeOutput RandomNumberNode::Evaluate ( NodeInputParam  input,
NodeEditorPin pin 
)
virtual

Implements NodeEditorNode.

Definition at line 8 of file RandomNumberNode.cpp.

9{
10 int s, mx, mn;
11 s = mx = mn = 0;
12
13 if (inputPins[0]->IsLinked())
14 {
15 s = inputPins[0]->other->Evaluate(input).value;
16 }
17
18 else
19 {
20 s = seed;
21 }
22
23 if (inputPins[1]->IsLinked())
24 {
25 mn *= inputPins[1]->other->Evaluate(input).value;
26 }
27
28 else
29 {
30 mn *= min;
31 }
32
33 if (inputPins[2]->IsLinked())
34 {
35 mx *= inputPins[2]->other->Evaluate(input).value;
36 }
37
38 else
39 {
40 mx *= max;
41 }
42
43 if(mn > mx)
44 {
45 int t = mn;
46 mn = mx;
47 mx = t;
48 }
49
50 std::seed_seq seq{seed};
51 engine.seed(seq);
52 std::uniform_int_distribution<int> dist(mn, mx);
53 return NodeOutput({(float)dist(engine)});
54}