-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.py
65 lines (50 loc) · 2.17 KB
/
data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import utility
class Point:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __eq__(self, other):
return utility.epsilon_equal(self.x, other.x) and utility.epsilon_equal(self.y, other.y) and utility.epsilon_equal(self.z, other.z)
class Vector:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __eq__(self, other):
return utility.epsilon_equal(self.x, other.x) and utility.epsilon_equal(self.y, other.y) and utility.epsilon_equal(self.z, other.z)
class Ray:
def __init__(self, pt, dir):
self.pt = pt
self.dir = dir
def __eq__(self, other):
return utility.epsilon_equal(self.pt, other.pt) and utility.epsilon_equal(self.dir, other.dir)
class Sphere:
def __init__(self, center, radius, color, finish):
self.center = center
self.radius = radius
self.color = color
self.finish = finish
def __eq__(self, other):
return utility.epsilon_equal(self.center, other.center) and utility.epsilon_equal(self.radius, other.radius) and utility.epsilon_equal(self.color, other.color) and utility.epsilon_equal(self.finish, other.finish)
class Color:
def __init__(self, r,g,b):
self.r = r
self.g = g
self.b = b
def __eq__(self, other):
return utility.epsilon_equal(self.r, other.r) and utility.epsilon_equal(self.g, other.g) and utility.epsilon_equal(self.b, other.b)
class Finish:
def __init__(self, ambient, diffuse, specular, roughness):
self.ambient = ambient
self.diffuse = diffuse
self.specular = specular
self.roughness = roughness
def __eq__(self, other):
return utility.epsilon_equal(self.ambient, other.ambient) and utility.epsilon_equal(self.diffuse, other.diffuse) and utility.epsilon_equal(self.specular, other.specular) and utility.epsilon_equal(self.roughness, other.roughness)
class Light:
def __init__(self, point, color):
self.point = point
self.color = color
def __eq__(self, other):
return utility.epsilon_equal(self.point, other.point) and utility.epsilon_equal(self.color, other.color)