73 lines
2.2 KiB
Cython
73 lines
2.2 KiB
Cython
from renpy.display.matrix cimport Matrix
|
|
|
|
cdef class Polygon:
|
|
|
|
# The number of points in the polygon.
|
|
cdef int points
|
|
|
|
# The stride of the polygon - the number of floats comprising a data
|
|
# point.
|
|
cdef int stride
|
|
|
|
# The data in a polygon.
|
|
cdef float *data
|
|
|
|
cpdef Polygon copy(Polygon self)
|
|
|
|
cpdef void offset_inplace(Polygon self, double x, double y, double z)
|
|
cpdef Polygon offset(Polygon self, double x, double y, double z)
|
|
|
|
cpdef void multiply_matrix_inplace(Polygon self, Matrix matrix)
|
|
cpdef Polygon multiply_matrix(Polygon self, Matrix matrix)
|
|
|
|
cpdef void perspective_divide_inplace(Polygon self)
|
|
cpdef Polygon perspective_divide(Polygon self)
|
|
|
|
cpdef Polygon intersect(Polygon self, Polygon other)
|
|
|
|
# Constructors for particularly useful polygons.
|
|
cpdef Polygon rectangle(double l, double t, double r, double b)
|
|
cpdef Polygon texture_rectangle(double pl, double pt, double pr, double pb, double tl, double tt, double tr, double tb)
|
|
|
|
cdef class Mesh:
|
|
|
|
# The total number of points.
|
|
cdef public int points
|
|
|
|
# The stride - the amount of data per point, in floats.
|
|
cdef public int stride
|
|
|
|
# A map from an attribute to the offset of that attribute.
|
|
cdef public dict attributes
|
|
|
|
# A list of polygons that comprise the mesh.
|
|
cdef public list polygons
|
|
|
|
# An array that contains all the data from the points. This is NULL
|
|
# until it's created.
|
|
cdef float *data
|
|
|
|
cdef float *get_data(self, int offset)
|
|
|
|
# The count of polygons that comprise the mesh. This is only valid after
|
|
# get_data is called.
|
|
cdef public int polygon_count
|
|
|
|
# If all the polygons in the mesh have the same number of points, this is
|
|
# that number of points. Else, it's 0.
|
|
cdef public int polygon_points
|
|
|
|
cpdef Mesh copy(Mesh self)
|
|
|
|
cpdef void offset_inplace(Mesh self, double x, double y, double z)
|
|
cpdef Mesh offset(Mesh self, double x, double y, double z)
|
|
|
|
cpdef void multiply_matrix_inplace(Mesh self, Matrix matrix)
|
|
cpdef Mesh multiply_matrix(Mesh self, Matrix matrix)
|
|
|
|
cpdef void perspective_divide_inplace(Mesh self)
|
|
cpdef Mesh perspective_divide(Mesh self)
|
|
|
|
cpdef Mesh intersect(Mesh self, Mesh other)
|
|
cpdef Mesh crop(Mesh self, Polygon other)
|
|
|