Get the latest Blender, older versions, or experimental builds.
Stay up-to-date with the new features in the latest Blender releases.
Access production assets and knowledge from the open movies.
Documentation on the usage and features in Blender.
Latest development updates, by Blender developers.
Guidelines, release notes and development docs.
A platform to collect and share results of the Blender Benchmark.
The yearly event that brings the community together.
Support core development with a monthly contribution.
Perform a single donation with more payment options available.
Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.
/* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup pymathutils
*/
#pragma once
extern PyTypeObject vector_Type;
#define VectorObject_Check(v) PyObject_TypeCheck((v), &vector_Type)
#define VectorObject_CheckExact(v) (Py_TYPE(v) == &vector_Type)
typedef struct {
BASE_MATH_MEMBERS(vec);
/** Number of items in this vector (2 or more). */
int vec_num;
} VectorObject;
/* Prototypes. */
PyObject *Vector_CreatePyObject(const float *vec,
int vec_num,
PyTypeObject *base_type) ATTR_WARN_UNUSED_RESULT;
/**
* Create a vector that wraps existing memory.
*
* \param vec: Use this vector in-place.
PyObject *Vector_CreatePyObject_wrap(float *vec,
PyTypeObject *base_type) ATTR_WARN_UNUSED_RESULT
ATTR_NONNULL(1);
* Create a vector where the value is defined by registered callbacks,
* see: #Mathutils_RegisterCallback
PyObject *Vector_CreatePyObject_cb(PyObject *user,
unsigned char cb_type,
unsigned char subtype) ATTR_WARN_UNUSED_RESULT;
* \param vec: Initialized vector value to use in-place, allocated with #PyMem_Malloc
PyObject *Vector_CreatePyObject_alloc(float *vec,