Added all new primitives

This commit is contained in:
STP
2023-11-27 21:37:00 -05:00
parent 5aa73bcc1a
commit 2757ce9730
7 changed files with 674 additions and 147 deletions

61
rhai/surfaces.rhai Normal file
View File

@@ -0,0 +1,61 @@
let scene = Scene();
let distance = 3.0;
let falloff = V(0.0,0.0,0.1);
let camera = Camera( P(0.0,0.0,distance), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("+Z Cam", camera);
let camera = Camera( P(0.0,distance,0.1), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("+Y Cam", camera);
let camera = Camera( P(distance,0.0,0.0), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("+X Cam", camera);
let camera = Camera( P(0.0,0.0,-distance), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("-Z Cam", camera);
let camera = Camera( P(0.0,-distance,0.1), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("-Y Cam", camera);
let camera = Camera( P(-distance,0.0,0.0), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("-X Cam", camera);
let height = 4.0;
let spacing = 4.0;
let blue = V(0.0,0.0,0.6);
let light = Light(P(0.0,height,spacing), blue, falloff);
scene.addLight("blue", light);
let green = V(0.0,0.6,0.0);
let light = Light(P(0.0,height,0.0), green, falloff);
scene.addLight("green", light);
let red = V(0.6,0.0,0.0);
let light = Light(P(0.0,height,-spacing), red, falloff);
scene.addLight("red", light);
let material = Material(V(0.2,0.2,0.2), V(0.2, 0.8, 0.8), 10.0);
scene.addMaterial("bluegreen", material);
let steiner = Steiner( material);
let steiner_node = Node(steiner);
scene.addNode("steiner", steiner_node);
let steiner2 = Steiner2( material);
let steiner2_node = Node(steiner2);
scene.addNode("steiner2", steiner2_node);
let crosscap = CrossCap(material);
let crosscap_node = Node(crosscap);
scene.addNode("crosscap", crosscap_node);
let (p,q) = (1.0,1.0);
let crosscap2 = CrossCap2( material);
let crosscap2_node = Node(crosscap2);
scene.addNode("crosscap2", crosscap2_node);
let k = 1.0;
let roman = Roman(k, material);
let roman_node = Node(roman);
scene.addNode("sphere", roman_node);
let (inner_rad, outer_rad) = (0.5, 0.5);
let torus = Torus(inner_rad, outer_rad, material);
let torus_node = Node(torus);
scene.addNode("sphere", torus_node);
scene