ya2 · news · projects · code · about

removed unused code
[pmachines.git] / ya2 / lib / p3d / vec.py
CommitLineData
cb700bcc 1# from panda3d.core import Vec2, Vec3, Mat4, LVector2f, LVector3f
8ee66edd
FC
2
3
cb700bcc 4# class P3dVec2:
8ee66edd 5
cb700bcc
FC
6# attr_lst = ['x', 'y']
7# p3d_cls = Vec2
8ee66edd 8
cb700bcc
FC
9# def __init__(self, *args):
10# self._vec = self.p3d_cls(*args)
8ee66edd 11
cb700bcc
FC
12# @property
13# def x(self): return self._vec.x
8ee66edd 14
cb700bcc
FC
15# @property
16# def y(self): return self._vec.y
8ee66edd 17
cb700bcc
FC
18# @property
19# def xy(self): return P3dVec2(self._vec.x, self._vec.y)
8ee66edd 20
cb700bcc
FC
21# def signed_angle_deg(self, vec):
22# return self._vec.signed_angle_deg(LVector2f(vec.x, vec.y))
8ee66edd 23
cb700bcc
FC
24# def dot(self, other):
25# if isinstance(other, tuple): other = self.__class__(*other)
26# return self._vec.dot(other._vec)
27# #TODO: don't access a protected member
8ee66edd 28
cb700bcc
FC
29# def __neg__(self):
30# nvec = - self._vec
31# return self.__class__(*[getattr(nvec, attr) for attr in self.attr_lst])
8ee66edd 32
cb700bcc
FC
33# def __add__(self, vec):
34# if isinstance(vec, tuple): vec = self.__class__(*vec)
35# svec = self._vec + vec._vec #TODO: don't access a protected member
36# return self.__class__(*[getattr(svec, attr) for attr in self.attr_lst])
8ee66edd 37
cb700bcc
FC
38# def __sub__(self, vec):
39# if isinstance(vec, tuple): vec = self.__class__(*vec)
40# svec = self._vec - vec._vec #TODO: don't access a protected member
41# return self.__class__(*[getattr(svec, attr) for attr in self.attr_lst])
8ee66edd 42
cb700bcc
FC
43# def __mul__(self, val):
44# svec = self._vec * val
45# return self.__class__(*[getattr(svec, attr) for attr in self.attr_lst])
8ee66edd 46
cb700bcc
FC
47# def normalize(self):
48# self._vec.normalize()
49# return self.__class__(*self.attrs)
8ee66edd 50
cb700bcc
FC
51# @property
52# def attrs(self): return [getattr(self._vec, fld) for fld in self.attr_lst]
8ee66edd 53
cb700bcc
FC
54# @property
55# def normalized(self):
56# vec = self.p3d_cls(*self.attrs)
57# vec.normalize()
58# return self.__class__(*[getattr(vec, fld) for fld in self.attr_lst])
8ee66edd 59
cb700bcc
FC
60# def rotate(self, deg):
61# rot_mat = Mat4()
62# rot_mat.set_rotate_mat(deg, (0, 0, 1))
63# self._vec = rot_mat.xform_vec(self._vec)
8ee66edd 64
cb700bcc 65# def length(self): return self._vec.length()
8ee66edd 66
cb700bcc
FC
67# def __repr__(self):
68# tmpl = '%s(' + \
69# ', '.join(['%s' for _ in range(len(self.attr_lst))]) + ')'
70# rnd = lambda x: round(x, 3)
71# vals = [rnd(getattr(self._vec, attr)) for attr in self.attr_lst]
72# pars = tuple([self.__class__.__name__] + vals)
73# return tmpl % pars
8ee66edd
FC
74
75
cb700bcc 76# class P3dVec3(P3dVec2):
8ee66edd 77
cb700bcc
FC
78# attr_lst = ['x', 'y', 'z']
79# p3d_cls = Vec3
8ee66edd 80
cb700bcc
FC
81# @property
82# def z(self): return self._vec.z
8ee66edd 83
cb700bcc
FC
84# def signed_angle_deg(self, vec):
85# v_up = LVector3f(0, 0, 1)
86# return self._vec.signed_angle_deg(LVector3f(vec.x, vec.y, vec.z), v_up)