Example #1
0
 def render(self, time: float, frametime: float):
     self.ctx.enable(moderngl.DEPTH_TEST | moderngl.CULL_FACE)
     self.ctx.clear(1.0, 1.0, 0.5, 1.0)
     self.rotation.value = tuple(
         Matrix33.from_eulers((time/2, time/2, time/2)).reshape(9).tolist())
     self.prog['time'].value = time
     self.texture.use(location=0)
     self.cube.render(self.prog)
Example #2
0
 def test_euler_equivalence(self):
     eulers = euler.create_from_x_rotation(np.pi / 2.)
     m = Matrix33.from_x_rotation(np.pi / 2.)
     q = Quaternion.from_x_rotation(np.pi / 2.)
     qm = Matrix33.from_quaternion(q)
     em = Matrix33.from_eulers(eulers)
     self.assertTrue(np.allclose(qm, m))
     self.assertTrue(np.allclose(qm, em))
     self.assertTrue(np.allclose(m, em))
Example #3
0
 def test_euler_equivalence(self):
     eulers = euler.create_from_x_rotation(np.pi / 2.)
     m = Matrix33.from_x_rotation(np.pi / 2.)
     q = Quaternion.from_x_rotation(np.pi / 2.)
     qm = Matrix33.from_quaternion(q)
     em = Matrix33.from_eulers(eulers)
     self.assertTrue(np.allclose(qm, m))
     self.assertTrue(np.allclose(qm, em))
     self.assertTrue(np.allclose(m, em))
Example #4
0
import os
from dataclasses import dataclass, field
from itertools import combinations
from typing import Any, TextIO

import numpy as np
from parse import parse
from pyrr import Matrix33, Vector3


class ScannerMatched(Exception):
    pass


ROTATIONS = [
    Matrix33.from_eulers((0, 0, 0), dtype=np.int_),
    Matrix33.from_eulers((np.pi / 2, 0, 0), dtype=np.int_),
    Matrix33.from_eulers((np.pi, 0, 0), dtype=np.int_),
    Matrix33.from_eulers((3 * np.pi / 2, 0, 0), dtype=np.int_),
    Matrix33.from_eulers((0, 0, np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((np.pi / 2, 0, np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((np.pi, 0, np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((3 * np.pi / 2, 0, np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((0, 0, np.pi), dtype=np.int_),
    Matrix33.from_eulers((np.pi / 2, 0, np.pi), dtype=np.int_),
    Matrix33.from_eulers((np.pi, 0, np.pi), dtype=np.int_),
    Matrix33.from_eulers((3 * np.pi / 2, 0, np.pi), dtype=np.int_),
    Matrix33.from_eulers((0, 0, 3 * np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((np.pi / 2, 0, 3 * np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((np.pi, 0, 3 * np.pi / 2), dtype=np.int_),
    Matrix33.from_eulers((3 * np.pi / 2, 0, 3 * np.pi / 2), dtype=np.int_),