qvectornd.sip 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. // qvectornd.sip generated by MetaSIP
  2. //
  3. // This file is part of the QtGui Python extension module.
  4. //
  5. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  6. //
  7. // This file is part of PyQt6.
  8. //
  9. // This file may be used under the terms of the GNU General Public License
  10. // version 3.0 as published by the Free Software Foundation and appearing in
  11. // the file LICENSE included in the packaging of this file. Please review the
  12. // following information to ensure the GNU General Public License version 3.0
  13. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  14. //
  15. // If you do not wish to use this file under the terms of the GPL version 3.0
  16. // then you may purchase a commercial license. For more information contact
  17. // info@riverbankcomputing.com.
  18. //
  19. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  20. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. %ModuleCode
  22. #include <qvectornd.h>
  23. %End
  24. class QVector2D
  25. {
  26. %TypeHeaderCode
  27. #include <qvectornd.h>
  28. %End
  29. public:
  30. QVector2D();
  31. QVector2D(float xpos, float ypos);
  32. explicit QVector2D(QPoint point);
  33. explicit QVector2D(QPointF point);
  34. explicit QVector2D(QVector3D vector);
  35. explicit QVector2D(QVector4D vector);
  36. SIP_PYOBJECT __repr__() const /TypeHint="str"/;
  37. %MethodCode
  38. PyObject *x = PyFloat_FromDouble(sipCpp->x());
  39. PyObject *y = PyFloat_FromDouble(sipCpp->y());
  40. if (x && y)
  41. sipRes = PyUnicode_FromFormat("PyQt6.QtGui.QVector2D(%R, %R)",
  42. x, y);
  43. Py_XDECREF(x);
  44. Py_XDECREF(y);
  45. %End
  46. bool isNull() const;
  47. float x() const;
  48. float y() const;
  49. void setX(float x);
  50. void setY(float y);
  51. float operator[](int i) const;
  52. float length() const;
  53. float lengthSquared() const;
  54. QVector2D normalized() const;
  55. void normalize();
  56. float distanceToPoint(QVector2D point) const;
  57. float distanceToLine(QVector2D point, QVector2D direction) const;
  58. QVector2D &operator+=(QVector2D vector);
  59. QVector2D &operator-=(QVector2D vector);
  60. QVector2D &operator*=(float factor);
  61. QVector2D &operator*=(QVector2D vector);
  62. QVector2D &operator/=(float divisor);
  63. QVector2D &operator/=(QVector2D vector);
  64. static float dotProduct(QVector2D v1, QVector2D v2);
  65. QVector3D toVector3D() const;
  66. QVector4D toVector4D() const;
  67. QPoint toPoint() const;
  68. QPointF toPointF() const;
  69. };
  70. class QVector3D
  71. {
  72. %TypeHeaderCode
  73. #include <qvectornd.h>
  74. %End
  75. public:
  76. QVector3D();
  77. QVector3D(float xpos, float ypos, float zpos);
  78. explicit QVector3D(QPoint point);
  79. explicit QVector3D(QPointF point);
  80. QVector3D(QVector2D vector, float zpos);
  81. %If (Qt_6_1_0 -)
  82. explicit QVector3D(QVector2D vector);
  83. %End
  84. %If (- Qt_6_1_0)
  85. QVector3D(QVector2D vector);
  86. %End
  87. explicit QVector3D(QVector4D vector);
  88. SIP_PYOBJECT __repr__() const /TypeHint="str"/;
  89. %MethodCode
  90. PyObject *x = PyFloat_FromDouble(sipCpp->x());
  91. PyObject *y = PyFloat_FromDouble(sipCpp->y());
  92. PyObject *z = PyFloat_FromDouble(sipCpp->z());
  93. if (x && y && z)
  94. sipRes = PyUnicode_FromFormat(
  95. "PyQt6.QtGui.QVector3D(%R, %R, %R)", x, y, z);
  96. Py_XDECREF(x);
  97. Py_XDECREF(y);
  98. Py_XDECREF(z);
  99. %End
  100. bool isNull() const;
  101. float x() const;
  102. float y() const;
  103. float z() const;
  104. void setX(float x);
  105. void setY(float y);
  106. void setZ(float z);
  107. float operator[](int i) const;
  108. float length() const;
  109. float lengthSquared() const;
  110. QVector3D normalized() const;
  111. void normalize();
  112. QVector3D &operator+=(QVector3D vector);
  113. QVector3D &operator-=(QVector3D vector);
  114. QVector3D &operator*=(float factor);
  115. QVector3D &operator*=(QVector3D vector);
  116. QVector3D &operator/=(float divisor);
  117. QVector3D &operator/=(QVector3D vector);
  118. static float dotProduct(QVector3D v1, QVector3D v2);
  119. static QVector3D crossProduct(QVector3D v1, QVector3D v2);
  120. static QVector3D normal(QVector3D v1, QVector3D v2);
  121. static QVector3D normal(QVector3D v1, QVector3D v2, QVector3D v3);
  122. QVector3D project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const;
  123. QVector3D unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const;
  124. float distanceToPoint(QVector3D point) const;
  125. float distanceToPlane(QVector3D plane, QVector3D normal) const;
  126. float distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const;
  127. float distanceToLine(QVector3D point, QVector3D direction) const;
  128. QVector2D toVector2D() const;
  129. QVector4D toVector4D() const;
  130. QPoint toPoint() const;
  131. QPointF toPointF() const;
  132. };
  133. class QVector4D
  134. {
  135. %TypeHeaderCode
  136. #include <qvectornd.h>
  137. %End
  138. public:
  139. QVector4D();
  140. QVector4D(float xpos, float ypos, float zpos, float wpos);
  141. explicit QVector4D(QPoint point);
  142. explicit QVector4D(QPointF point);
  143. %If (Qt_6_1_0 -)
  144. explicit QVector4D(QVector2D vector);
  145. %End
  146. %If (- Qt_6_1_0)
  147. QVector4D(QVector2D vector);
  148. %End
  149. QVector4D(QVector2D vector, float zpos, float wpos);
  150. %If (Qt_6_1_0 -)
  151. explicit QVector4D(QVector3D vector);
  152. %End
  153. %If (- Qt_6_1_0)
  154. QVector4D(QVector3D vector);
  155. %End
  156. QVector4D(QVector3D vector, float wpos);
  157. SIP_PYOBJECT __repr__() const /TypeHint="str"/;
  158. %MethodCode
  159. PyObject *x = PyFloat_FromDouble(sipCpp->x());
  160. PyObject *y = PyFloat_FromDouble(sipCpp->y());
  161. PyObject *z = PyFloat_FromDouble(sipCpp->z());
  162. PyObject *w = PyFloat_FromDouble(sipCpp->w());
  163. if (x && y && z && w)
  164. sipRes = PyUnicode_FromFormat(
  165. "PyQt6.QtGui.QVector4D(%R, %R, %R, %R)", x, y, z, w);
  166. Py_XDECREF(x);
  167. Py_XDECREF(y);
  168. Py_XDECREF(z);
  169. Py_XDECREF(w);
  170. %End
  171. bool isNull() const;
  172. float x() const;
  173. float y() const;
  174. float z() const;
  175. float w() const;
  176. void setX(float x);
  177. void setY(float y);
  178. void setZ(float z);
  179. void setW(float w);
  180. float operator[](int i) const;
  181. float length() const;
  182. float lengthSquared() const;
  183. QVector4D normalized() const;
  184. void normalize();
  185. QVector4D &operator+=(QVector4D vector);
  186. QVector4D &operator-=(QVector4D vector);
  187. QVector4D &operator*=(float factor);
  188. QVector4D &operator*=(QVector4D vector);
  189. QVector4D &operator/=(float divisor);
  190. QVector4D &operator/=(QVector4D vector);
  191. static float dotProduct(QVector4D v1, QVector4D v2);
  192. QVector2D toVector2D() const;
  193. QVector2D toVector2DAffine() const;
  194. QVector3D toVector3D() const;
  195. QVector3D toVector3DAffine() const;
  196. QPoint toPoint() const;
  197. QPointF toPointF() const;
  198. };
  199. bool operator==(QVector4D v1, QVector4D v2);
  200. bool operator==(QVector3D v1, QVector3D v2);
  201. bool operator==(QVector2D v1, QVector2D v2);
  202. bool operator!=(QVector4D v1, QVector4D v2);
  203. bool operator!=(QVector3D v1, QVector3D v2);
  204. bool operator!=(QVector2D v1, QVector2D v2);
  205. QVector4D operator+(QVector4D v1, QVector4D v2);
  206. QVector3D operator+(QVector3D v1, QVector3D v2);
  207. QVector2D operator+(QVector2D v1, QVector2D v2);
  208. QVector4D operator-(QVector4D vector);
  209. QVector4D operator-(QVector4D v1, QVector4D v2);
  210. QVector3D operator-(QVector3D vector);
  211. QVector3D operator-(QVector3D v1, QVector3D v2);
  212. QVector2D operator-(QVector2D vector);
  213. QVector2D operator-(QVector2D v1, QVector2D v2);
  214. QVector4D operator*(const QMatrix4x4 &matrix, const QVector4D &vector);
  215. QVector4D operator*(const QVector4D &vector, const QMatrix4x4 &matrix);
  216. QVector4D operator*(QVector4D v1, QVector4D v2);
  217. QVector4D operator*(QVector4D vector, float factor);
  218. QVector4D operator*(float factor, QVector4D vector);
  219. QVector3D operator*(const QMatrix4x4 &matrix, const QVector3D &vector);
  220. QVector3D operator*(const QVector3D &vector, const QMatrix4x4 &matrix);
  221. QVector3D operator*(QVector3D v1, QVector3D v2);
  222. QVector3D operator*(QVector3D vector, float factor);
  223. QVector3D operator*(float factor, QVector3D vector);
  224. QVector2D operator*(QVector2D v1, QVector2D v2);
  225. QVector2D operator*(QVector2D vector, float factor);
  226. QVector2D operator*(float factor, QVector2D vector);
  227. QVector4D operator/(QVector4D vector, QVector4D divisor);
  228. QVector4D operator/(QVector4D vector, float divisor);
  229. QVector3D operator/(QVector3D vector, QVector3D divisor);
  230. QVector3D operator/(QVector3D vector, float divisor);
  231. QVector2D operator/(QVector2D vector, QVector2D divisor);
  232. QVector2D operator/(QVector2D vector, float divisor);
  233. bool qFuzzyCompare(QVector4D v1, QVector4D v2);
  234. bool qFuzzyCompare(QVector3D v1, QVector3D v2);
  235. bool qFuzzyCompare(QVector2D v1, QVector2D v2);
  236. QDataStream &operator<<(QDataStream &, QVector4D) /ReleaseGIL/;
  237. QDataStream &operator<<(QDataStream &, QVector3D) /ReleaseGIL/;
  238. QDataStream &operator<<(QDataStream &, QVector2D) /ReleaseGIL/;
  239. QDataStream &operator>>(QDataStream &, QVector4D & /Constrained/) /ReleaseGIL/;
  240. QDataStream &operator>>(QDataStream &, QVector3D & /Constrained/) /ReleaseGIL/;
  241. QDataStream &operator>>(QDataStream &, QVector2D & /Constrained/) /ReleaseGIL/;