Blender V5.0
mathutils_Vector.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <Python.h>
12
13#include "mathutils.hh"
14
15extern PyTypeObject vector_Type;
16
17#define VectorObject_Check(v) PyObject_TypeCheck((v), &vector_Type)
18#define VectorObject_CheckExact(v) (Py_TYPE(v) == &vector_Type)
19
22
25};
26
27/* Prototypes. */
28
29[[nodiscard]] PyObject *Vector_CreatePyObject(const float *vec,
30 int vec_num,
31 PyTypeObject *base_type);
37[[nodiscard]] PyObject *Vector_CreatePyObject_wrap(float *vec,
38 int vec_num,
39 PyTypeObject *base_type) ATTR_NONNULL(1);
44[[nodiscard]] PyObject *Vector_CreatePyObject_cb(PyObject *cb_user,
45 int vec_num,
46 unsigned char cb_type,
47 unsigned char cb_subtype);
51[[nodiscard]] PyObject *Vector_CreatePyObject_alloc(float *vec,
52 int vec_num,
53 PyTypeObject *base_type) ATTR_NONNULL(1);
#define ATTR_NONNULL(...)
PyTypeObject vector_Type
PyObject * Vector_CreatePyObject_wrap(float *vec, int vec_num, PyTypeObject *base_type) ATTR_NONNULL(1)
PyObject * Vector_CreatePyObject_cb(PyObject *cb_user, int vec_num, unsigned char cb_type, unsigned char cb_subtype)
PyObject * Vector_CreatePyObject(const float *vec, int vec_num, PyTypeObject *base_type)
PyObject * Vector_CreatePyObject_alloc(float *vec, int vec_num, PyTypeObject *base_type) ATTR_NONNULL(1)
BASE_MATH_MEMBERS(vec)