55 lines
1.3 KiB
Smarty
55 lines
1.3 KiB
Smarty
from enum import Enum
|
|
import abc
|
|
|
|
class Vector2:
|
|
def __init__(self, x, y):
|
|
self.x = x
|
|
self.y = y
|
|
def __str__(self):
|
|
return '{%g,%g}' % (self.x, self.y)
|
|
|
|
@staticmethod
|
|
def fromJson(_json_):
|
|
x = _json_['x']
|
|
y = _json_['y']
|
|
if (x == None or y == None):
|
|
raise Exception()
|
|
return Vector2(x, y)
|
|
|
|
|
|
class Vector3:
|
|
def __init__(self, x, y, z):
|
|
self.x = x
|
|
self.y = y
|
|
self.z = z
|
|
def __str__(self):
|
|
return '{%f,%f,%f}' % (self.x, self.y, self.z)
|
|
@staticmethod
|
|
def fromJson(_json_):
|
|
x = _json_['x']
|
|
y = _json_['y']
|
|
z = _json_['z']
|
|
if (x == None or y == None or z == None):
|
|
raise Exception()
|
|
return Vector3(x, y, z)
|
|
|
|
class Vector4:
|
|
def __init__(self, x, y, z, w):
|
|
self.x = x
|
|
self.y = y
|
|
self.z = z
|
|
self.w = w
|
|
def __str__(self):
|
|
return '{%g,%g,%g,%g}' % (self.x, self.y, self.z, self.w)
|
|
|
|
@staticmethod
|
|
def fromJson(_json_):
|
|
x = _json_['x']
|
|
y = _json_['y']
|
|
z = _json_['z']
|
|
w = _json_['w']
|
|
if (x == None or y == None or z == None or w == None):
|
|
raise Exception()
|
|
return Vector4(x, y, z, w)
|
|
|