Commit | Line | Data |
---|---|---|
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) |