ncca-ngl 0.2.7__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/PKG-INFO +1 -1
  2. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/pyproject.toml +1 -1
  3. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/quaternion.py +21 -0
  4. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/checker_fragment.glsl +1 -1
  5. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/checker_vertex.glsl +1 -1
  6. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/colour_vertex.glsl +1 -1
  7. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/LICENSE.txt +0 -0
  8. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/.ruff_cache/.gitignore +0 -0
  9. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/.ruff_cache/0.13.0/10564494386971134025 +0 -0
  10. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/.ruff_cache/0.13.0/7783445477288392980 +0 -0
  11. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/.ruff_cache/CACHEDIR.TAG +0 -0
  12. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/NGLDebug.log +0 -0
  13. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/Primitives.npz +0 -0
  14. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/buddah.npy +0 -0
  15. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/bunny.npy +0 -0
  16. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/cube.npy +0 -0
  17. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/dodecahedron.npy +0 -0
  18. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/dragon.npy +0 -0
  19. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/football.npy +0 -0
  20. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/icosahedron.npy +0 -0
  21. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/octahedron.npy +0 -0
  22. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/pack_arrays.py +0 -0
  23. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/teapot.npy +0 -0
  24. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/tetrahedron.npy +0 -0
  25. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/PrimData/troll.npy +0 -0
  26. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/__init__.py +0 -0
  27. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/abstract_vao.py +0 -0
  28. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/base_mesh.py +0 -0
  29. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/base_mesh.pyi +0 -0
  30. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/bbox.py +0 -0
  31. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/bezier_curve.py +0 -0
  32. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/first_person_camera.py +0 -0
  33. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/image.py +0 -0
  34. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/log.py +0 -0
  35. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/mat2.py +0 -0
  36. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/mat3.py +0 -0
  37. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/mat4.py +0 -0
  38. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/multi_buffer_vao.py +0 -0
  39. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/obj.py +0 -0
  40. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/plane.py +0 -0
  41. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/prim_data.py +0 -0
  42. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/primitives.py +0 -0
  43. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/pyside_event_handling_mixin.py +0 -0
  44. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/random.py +0 -0
  45. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shader.py +0 -0
  46. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shader_lib.py +0 -0
  47. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shader_program.py +0 -0
  48. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/colour_fragment.glsl +0 -0
  49. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/diffuse_fragment.glsl +0 -0
  50. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/diffuse_vertex.glsl +0 -0
  51. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/text_fragment.glsl +0 -0
  52. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/text_geometry.glsl +0 -0
  53. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/shaders/text_vertex.glsl +0 -0
  54. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/simple_index_vao.py +0 -0
  55. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/simple_vao.py +0 -0
  56. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/text.py +0 -0
  57. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/texture.py +0 -0
  58. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/transform.py +0 -0
  59. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/util.py +0 -0
  60. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vao_factory.py +0 -0
  61. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec2.py +0 -0
  62. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec2_array.py +0 -0
  63. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec3.py +0 -0
  64. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec3_array.py +0 -0
  65. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec4.py +0 -0
  66. {ncca_ngl-0.2.7 → ncca_ngl-0.3.0}/src/ncca/ngl/vec4_array.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ncca-ngl
3
- Version: 0.2.7
3
+ Version: 0.3.0
4
4
  Summary: A Python version of the NGL graphics library.
5
5
  Author: Jon Macey
6
6
  Author-email: Jon Macey <jmacey@bournemouth.ac.uk>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ncca-ngl"
3
- version = "0.2.7"
3
+ version = "0.3.0"
4
4
  description = "A Python version of the NGL graphics library."
5
5
  authors = [{ name = "Jon Macey", email = "jmacey@bournemouth.ac.uk" }]
6
6
  requires-python = ">=3.13"
@@ -75,6 +75,27 @@ class Quaternion:
75
75
 
76
76
  return Quaternion(s, x, y, z)
77
77
 
78
+ @staticmethod
79
+ def from_axis_angle(axis: "Vec3", angle: float) -> "Quaternion":
80
+ """
81
+ Creates a new Quaternion from an axis and angle.
82
+
83
+ Args:
84
+ axis (Vec3): The axis of rotation.
85
+ angle (float): The angle of rotation in degrees.
86
+
87
+ Returns:
88
+ Quaternion: A new Quaternion representing the rotation.
89
+ """
90
+ angle_rad = math.radians(angle)
91
+ half_angle = angle_rad * 0.5
92
+ s = math.cos(half_angle)
93
+ sin_half_angle = math.sin(half_angle)
94
+ x = axis.x * sin_half_angle
95
+ y = axis.y * sin_half_angle
96
+ z = axis.z * sin_half_angle
97
+ return Quaternion(s, x, y, z)
98
+
78
99
  def __add__(self, rhs):
79
100
  return Quaternion(self.s + rhs.s, self.x + rhs.x, self.y + rhs.y, self.z + rhs.z)
80
101
 
@@ -1,4 +1,4 @@
1
- #version 410 core
1
+ #version 330 core
2
2
  in vec3 fragmentNormal;
3
3
  in vec2 uv;
4
4
 
@@ -1,4 +1,4 @@
1
- #version 410 core
1
+ #version 330 core
2
2
 
3
3
 
4
4
  /// @brief the vertex passed in
@@ -1,4 +1,4 @@
1
- #version 410 core
1
+ #version 330 core
2
2
 
3
3
  uniform mat4 MVP;
4
4
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes