qtquick.cpp 974 B

123456789101112131415161718192021222324252627
  1. // Copyright (C) 2018 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. // @snippet qtquick
  4. PySide::initQuickSupport(module);
  5. // @snippet qtquick
  6. // @snippet qsgeometry-vertexdataaspoint2d
  7. auto *points = %CPPSELF->vertexDataAsPoint2D();
  8. const Py_ssize_t vertexCount = %CPPSELF->vertexCount();
  9. %PYARG_0 = PyList_New(vertexCount);
  10. for (Py_ssize_t i = 0; i < vertexCount; ++i) {
  11. QSGGeometry::Point2D p = points[i];
  12. PyList_SetItem(%PYARG_0, i, %CONVERTTOPYTHON[QSGGeometry::Point2D](p));
  13. }
  14. // @snippet qsgeometry-vertexdataaspoint2d
  15. // @snippet qsgeometry-setvertexdataaspoint2d
  16. const qsizetype vertexCount = %CPPSELF->vertexCount();
  17. if (vertexCount != %1.size()) {
  18. PyErr_SetString(PyExc_RuntimeError, "size mismatch");
  19. return {};
  20. }
  21. QSGGeometry::Point2D *points = %CPPSELF->vertexDataAsPoint2D();
  22. std::copy(%1.cbegin(), %1.cend(), points);
  23. // @snippet qsgeometry-setvertexdataaspoint2d