CampBuddy/Camp.Buddy v2.2.1/Camp_Buddy-2.2.1-pc/renpy/display/matrix.pxd
2025-03-03 23:00:33 +01:00

44 lines
1.5 KiB
Cython

cdef class Matrix:
cdef float m[0]
cdef public float xdx
cdef public float xdy
cdef public float xdz
cdef public float xdw
cdef public float ydx
cdef public float ydy
cdef public float ydz
cdef public float ydw
cdef public float zdx
cdef public float zdy
cdef public float zdz
cdef public float zdw
cdef public float wdx
cdef public float wdy
cdef public float wdz
cdef public float wdw
cdef inline void transform4(Matrix self, float *ox, float *oy, float *oz, float *ow, float x, float y, float z, float w):
ox[0] = x * self.xdx + y * self.xdy + z * self.xdz + w * self.xdw
oy[0] = x * self.ydx + y * self.ydy + z * self.ydz + w * self.ydw
oz[0] = x * self.zdx + y * self.zdy + z * self.zdz + w * self.zdw
ow[0] = x * self.wdx + y * self.wdy + z * self.wdz + w * self.wdw
cdef inline void transform3(Matrix self, float *ox, float *oy, float *oz, float x, float y, float z, float w):
ox[0] = x * self.xdx + y * self.xdy + z * self.xdz + w * self.xdw
oy[0] = x * self.ydx + y * self.ydy + z * self.ydz + w * self.ydw
oz[0] = x * self.zdx + y * self.zdy + z * self.zdz + w * self.zdw
cdef inline void transform2(Matrix self, float *ox, float *oy, float x, float y, float z, float w):
ox[0] = x * self.xdx + y * self.xdy + z * self.xdz + w * self.xdw
oy[0] = x * self.ydx + y * self.ydy + z * self.ydz + w * self.ydw
cpdef bint is_unit_aligned(Matrix self)
cdef class Matrix2D(Matrix):
pass