Blender
V3.3
|
#include <Python.h>
#include "mathutils.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "../generic/py_capi_utils.h"
#include "../generic/python_utildefines.h"
#include "BLI_dynstr.h"
#include "mathutils_geometry.h"
#include "mathutils_interpolate.h"
#include "mathutils_bvhtree.h"
#include "mathutils_kdtree.h"
#include "mathutils_noise.h"
Go to the source code of this file.
Macros | |
#define | SIGNMASK(i) (-(int)(((uint)(i)) >> 31)) |
#define | MATHUTILS_TOT_CB 17 |
Functions | |
PyDoc_STRVAR (M_Mathutils_doc, "This module provides access to math operations.\n" "\n" ".. note::\n" "\n" " Classes, methods and attributes that accept vectors also accept other numeric sequences,\n" " such as tuples, lists.\n" "\n" "The :mod:`mathutils` module provides the following classes:\n" "\n" "- :class:`Color`,\n" "- :class:`Euler`,\n" "- :class:`Matrix`,\n" "- :class:`Quaternion`,\n" "- :class:`Vector`,\n") | |
static int | mathutils_array_parse_fast (float *array, int size, PyObject *value_fast, const char *error_prefix) |
Py_hash_t | mathutils_array_hash (const float *array, size_t array_len) |
int | mathutils_array_parse (float *array, int array_num_min, int array_num_max, PyObject *value, const char *error_prefix) |
int | mathutils_array_parse_alloc (float **array, int array_num, PyObject *value, const char *error_prefix) |
int | mathutils_array_parse_alloc_v (float **array, int array_dim, PyObject *value, const char *error_prefix) |
int | mathutils_int_array_parse (int *array, int array_dim, PyObject *value, const char *error_prefix) |
int | mathutils_array_parse_alloc_vi (int **array, int array_dim, PyObject *value, const char *error_prefix) |
int | mathutils_array_parse_alloc_viseq (int **array, int **start_table, int **len_table, PyObject *value, const char *error_prefix) |
int | mathutils_any_to_rotmat (float rmat[3][3], PyObject *value, const char *error_prefix) |
int | EXPP_FloatsAreEqual (float af, float bf, int maxDiff) |
int | EXPP_VectorsAreEqual (const float *vecA, const float *vecB, int size, int floatSteps) |
PyObject * | mathutils_dynstr_to_py (struct DynStr *ds) |
uchar | Mathutils_RegisterCallback (Mathutils_Callback *cb) |
int | _BaseMathObject_CheckCallback (BaseMathObject *self) |
int | _BaseMathObject_ReadCallback (BaseMathObject *self) |
int | _BaseMathObject_WriteCallback (BaseMathObject *self) |
int | _BaseMathObject_ReadIndexCallback (BaseMathObject *self, int index) |
int | _BaseMathObject_WriteIndexCallback (BaseMathObject *self, int index) |
void | _BaseMathObject_RaiseFrozenExc (const BaseMathObject *self) |
void | _BaseMathObject_RaiseNotFrozenExc (const BaseMathObject *self) |
PyObject * | BaseMathObject_owner_get (BaseMathObject *self, void *UNUSED(closure)) |
PyObject * | BaseMathObject_is_wrapped_get (BaseMathObject *self, void *UNUSED(closure)) |
PyObject * | BaseMathObject_is_frozen_get (BaseMathObject *self, void *UNUSED(closure)) |
PyObject * | BaseMathObject_is_valid_get (BaseMathObject *self, void *UNUSED(closure)) |
PyObject * | BaseMathObject_freeze (BaseMathObject *self) |
int | BaseMathObject_traverse (BaseMathObject *self, visitproc visit, void *arg) |
int | BaseMathObject_clear (BaseMathObject *self) |
void | BaseMathObject_dealloc (BaseMathObject *self) |
PyMODINIT_FUNC | PyInit_mathutils (void) |
Variables | |
static Mathutils_Callback * | mathutils_callbacks [MATHUTILS_TOT_CB] = {NULL} |
char | BaseMathObject_owner_doc [] = "The item this is wrapping or None (read-only)." |
char | BaseMathObject_is_wrapped_doc [] |
char | BaseMathObject_is_frozen_doc [] |
char | BaseMathObject_is_valid_doc [] |
char | BaseMathObject_freeze_doc [] |
static struct PyMethodDef | M_Mathutils_methods [] |
static struct PyModuleDef | M_Mathutils_module_def |
#define MATHUTILS_TOT_CB 17 |
Definition at line 548 of file mathutils.c.
Definition at line 499 of file mathutils.c.
int _BaseMathObject_CheckCallback | ( | BaseMathObject * | self | ) |
Definition at line 569 of file mathutils.c.
References Mathutils_Callback::check, LIKELY, and mathutils_callbacks.
void _BaseMathObject_RaiseFrozenExc | ( | const BaseMathObject * | self | ) |
Definition at line 633 of file mathutils.c.
void _BaseMathObject_RaiseNotFrozenExc | ( | const BaseMathObject * | self | ) |
Definition at line 638 of file mathutils.c.
int _BaseMathObject_ReadCallback | ( | BaseMathObject * | self | ) |
Definition at line 579 of file mathutils.c.
References Mathutils_Callback::get, LIKELY, mathutils_callbacks, and self.
int _BaseMathObject_ReadIndexCallback | ( | BaseMathObject * | self, |
int | index | ||
) |
Definition at line 605 of file mathutils.c.
References Mathutils_Callback::get_index, LIKELY, mathutils_callbacks, and self.
int _BaseMathObject_WriteCallback | ( | BaseMathObject * | self | ) |
Definition at line 592 of file mathutils.c.
References LIKELY, mathutils_callbacks, self, and Mathutils_Callback::set.
int _BaseMathObject_WriteIndexCallback | ( | BaseMathObject * | self, |
int | index | ||
) |
Definition at line 619 of file mathutils.c.
References LIKELY, mathutils_callbacks, self, and Mathutils_Callback::set_index.
int BaseMathObject_clear | ( | BaseMathObject * | self | ) |
Definition at line 699 of file mathutils.c.
References self.
Referenced by BaseMathObject_dealloc().
void BaseMathObject_dealloc | ( | BaseMathObject * | self | ) |
Definition at line 705 of file mathutils.c.
References BASE_MATH_FLAG_IS_WRAP, BaseMathObject_clear(), and self.
PyObject* BaseMathObject_freeze | ( | BaseMathObject * | self | ) |
Definition at line 681 of file mathutils.c.
References BASE_MATH_FLAG_IS_FROZEN, BASE_MATH_FLAG_IS_WRAP, NULL, and self.
PyObject* BaseMathObject_is_frozen_get | ( | BaseMathObject * | self, |
void * | UNUSEDclosure | ||
) |
Definition at line 661 of file mathutils.c.
References BASE_MATH_FLAG_IS_FROZEN, and self.
PyObject* BaseMathObject_is_valid_get | ( | BaseMathObject * | self, |
void * | UNUSEDclosure | ||
) |
Definition at line 668 of file mathutils.c.
References BaseMath_CheckCallback.
PyObject* BaseMathObject_is_wrapped_get | ( | BaseMathObject * | self, |
void * | UNUSEDclosure | ||
) |
Definition at line 654 of file mathutils.c.
References BASE_MATH_FLAG_IS_WRAP, and self.
PyObject* BaseMathObject_owner_get | ( | BaseMathObject * | self, |
void * | UNUSEDclosure | ||
) |
Definition at line 646 of file mathutils.c.
References ret.
int BaseMathObject_traverse | ( | BaseMathObject * | self, |
visitproc | visit, | ||
void * | arg | ||
) |
Definition at line 693 of file mathutils.c.
References self.
Definition at line 501 of file mathutils.c.
References BLI_assert, KDL::diff(), SIGNMASK, v1, and v2.
Referenced by EXPP_VectorsAreEqual(), and quat__axis_angle_sanitize().
Definition at line 519 of file mathutils.c.
References EXPP_FloatsAreEqual(), size(), and x.
Referenced by Color_richcmpr(), Euler_richcmpr(), Matrix_richcmpr(), Quaternion_richcmpr(), and Vector_richcmpr().
int mathutils_any_to_rotmat | ( | float | rmat[3][3], |
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Definition at line 439 of file mathutils.c.
References BaseMath_ReadCallback, EulerObject_Check, eulO_to_mat3(), matrix_as_3x3(), MatrixObject_Check, normalize_m3(), normalize_qt_qt(), order, quat_to_mat3(), and QuaternionObject_Check.
Referenced by Euler_rotate(), Matrix_rotate(), Quaternion_rotate(), and Vector_rotate().
Py_hash_t mathutils_array_hash | ( | const float * | float_array, |
size_t | array_len | ||
) |
helper function that returns a Python __hash__
.
Definition at line 66 of file mathutils.c.
References len, mult(), NULL, x, and y.
Referenced by Color_hash(), Euler_hash(), Matrix_hash(), Quaternion_hash(), and Vector_hash().
int mathutils_array_parse | ( | float * | array, |
int | array_num_min, | ||
int | array_num_max, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Helper function.
value
, -1 on error. Definition at line 98 of file mathutils.c.
References BaseMath_ReadCallback, CLAMP_MAX, ColorObject_Check, data, EulerObject_Check, mathutils_array_parse_fast(), MU_ARRAY_FLAGS, MU_ARRAY_SPILL, MU_ARRAY_ZERO, NULL, QuaternionObject_Check, and VectorObject_Check.
Referenced by bpy_bm_geometry_intersect_face_point(), bpy_bmface_normal_set(), BPy_BMLayerItem_SetItem(), BPy_BMLoopColor_AssignPyObject(), bpy_bmloopuv_uv_set(), bpy_bmvert_co_set(), bpy_bmvert_normal_set(), bpy_bmvertseq_new(), bpy_bmvertskin_radius_set(), bpy_slot_from_py(), C_BVHTree_FromPolygons(), C_Matrix_Diagonal(), C_Matrix_LocRotScale(), C_Matrix_OrthoProjection(), C_Matrix_Rotation(), C_Matrix_Scale(), C_Matrix_Shear(), C_Matrix_Translation(), Color_ass_slice(), Color_hsv_set(), Color_new(), convert_v2(), convert_v3(), convert_v4(), Euler_ass_slice(), Euler_make_compatible(), Euler_new(), FEdgeSharp_normal_left_set(), FEdgeSharp_normal_right_set(), FEdgeSmooth_normal_set(), Freestyle_blendRamp(), FrsMaterial_ambient_set(), FrsMaterial_diffuse_set(), FrsMaterial_emission_set(), FrsMaterial_line_set(), FrsMaterial_specular_set(), M_Geometry_area_tri(), M_Geometry_barycentric_transform(), M_Geometry_closest_point_on_tri(), M_Geometry_distance_point_to_plane(), M_Geometry_interpolate_bezier(), M_Geometry_intersect_line_line(), M_Geometry_intersect_line_line_2d(), M_Geometry_intersect_line_plane(), M_Geometry_intersect_line_sphere(), M_Geometry_intersect_line_sphere_2d(), M_Geometry_intersect_plane_plane(), M_Geometry_intersect_point_line(), M_Geometry_intersect_point_quad_2d(), M_Geometry_intersect_point_tri(), M_Geometry_intersect_point_tri_2d(), M_Geometry_intersect_ray_tri(), M_Geometry_intersect_sphere_sphere_2d(), M_Geometry_intersect_tri_tri_2d(), M_Geometry_tessellate_polygon(), M_Geometry_volume_tetrahedron(), M_Interpolate_poly_3d_calc(), M_Noise_fractal(), M_Noise_hetero_terrain(), M_Noise_hybrid_multi_fractal(), M_Noise_multi_fractal(), M_Noise_noise(), M_Noise_noise_vector(), M_Noise_ridged_multi_fractal(), M_Noise_turbulence(), M_Noise_turbulence_vector(), M_Noise_variable_lacunarity(), M_Noise_voronoi(), mathutils_array_parse_alloc_v(), Matrix_ass_item_col(), Matrix_ass_item_row(), Matrix_ass_slice(), Matrix_translation_set(), py_bvhtree_find_nearest(), py_bvhtree_find_nearest_range(), py_bvhtree_ray_cast(), py_kdtree_find(), py_kdtree_find_n(), py_kdtree_find_range(), py_kdtree_insert(), pygpu_framebuffer_clear(), pygpu_matrix_scale(), pygpu_matrix_translate(), pygpu_shader_uniform_float(), Quaternion_ass_slice(), Quaternion_axis_vector_set(), Quaternion_cross(), Quaternion_dot(), Quaternion_make_compatible(), Quaternion_new(), Quaternion_rotation_difference(), Quaternion_slerp(), StrokeAttribute_color_set(), StrokeAttribute_thickness_set(), StrokeVertex_point_set(), SVertex_point_2d_set(), SVertex_point_3d_set(), Vector_angle(), Vector_angle_signed(), Vector_cross(), Vector_reflect(), Vector_rotation_difference(), Vector_slerp(), and Vector_swizzle_set().
int mathutils_array_parse_alloc | ( | float ** | array, |
int | array_num_min, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Definition at line 193 of file mathutils.c.
References BaseMath_ReadCallback, ColorObject_Check, data, EulerObject_Check, mathutils_array_parse_fast(), NULL, QuaternionObject_Check, ret, and VectorObject_Check.
Referenced by C_Vector_Repeat(), Vector_ass_slice(), Vector_dot(), Vector_lerp(), Vector_new(), and Vector_project().
int mathutils_array_parse_alloc_v | ( | float ** | array, |
int | array_dim, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Parse an array of vectors.
Definition at line 259 of file mathutils.c.
References mathutils_array_parse(), MU_ARRAY_FLAGS, and NULL.
Referenced by bpy_bm_utils_face_split(), M_Geometry_normal(), M_Geometry_points_in_planes(), and M_Interpolate_poly_3d_calc().
int mathutils_array_parse_alloc_vi | ( | int ** | array, |
int | array_dim, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Parse sequence of array_dim sequences of integers and return allocated result.
Definition at line 335 of file mathutils.c.
References mathutils_int_array_parse(), NULL, and size().
int mathutils_array_parse_alloc_viseq | ( | int ** | array, |
int ** | start_table, | ||
int ** | len_table, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Parse sequence of variable-length sequences of int and return allocated triple of arrays to represent the result: The flattened sequences are put into *array. The start index of each sequence goes into start_table. The length of each index goes into len_table.
Definition at line 372 of file mathutils.c.
References mathutils_int_array_parse(), NULL, and size().
|
static |
Definition at line 37 of file mathutils.c.
References size().
Referenced by mathutils_array_parse(), and mathutils_array_parse_alloc().
PyObject* mathutils_dynstr_to_py | ( | struct DynStr * | ds | ) |
Definition at line 531 of file mathutils.c.
References BLI_dynstr_free(), BLI_dynstr_get_cstring_ex(), BLI_dynstr_get_len(), and ret.
Referenced by Color_str(), Euler_str(), Matrix_str(), Quaternion_str(), and Vector_str().
int mathutils_int_array_parse | ( | int * | array, |
int | array_dim, | ||
PyObject * | value, | ||
const char * | error_prefix | ||
) |
Parse an sequence array_dim integers into array.
Definition at line 300 of file mathutils.c.
References size().
Referenced by mathutils_array_parse_alloc_vi(), and mathutils_array_parse_alloc_viseq().
uchar Mathutils_RegisterCallback | ( | Mathutils_Callback * | cb | ) |
Definition at line 551 of file mathutils.c.
References BLI_assert, mathutils_callbacks, and MATHUTILS_TOT_CB.
Referenced by bm_init_types_bmloopcol(), BPY_rna_init(), FEdgeSharp_mathutils_register_callback(), FEdgeSmooth_mathutils_register_callback(), FrsMaterial_mathutils_register_callback(), PyInit_mathutils(), StrokeAttribute_mathutils_register_callback(), StrokeVertex_mathutils_register_callback(), and SVertex_mathutils_register_callback().
PyDoc_STRVAR | ( | M_Mathutils_doc | , |
"This module provides access to math operations.\n" "\n" ".. note::\n" "\n" " | Classes, | ||
methods and attributes that accept vectors also accept other numeric | sequences, | ||
\n" " such as | tuples, | ||
lists.\n" "\n" "The :mod:`mathutils` module provides the following classes:\n" "\n" "- :class:`Color` | , | ||
\n" "- :class:`Euler` | , | ||
\n" "- :class:`Matrix` | , | ||
\n" "- :class:`Quaternion` | , | ||
\n" "- :class:`Vector` | , | ||
\n" | |||
) |
PyMODINIT_FUNC PyInit_mathutils | ( | void | ) |
Definition at line 746 of file mathutils.c.
References color_Type, euler_Type, M_Mathutils_module_def, mathutils_matrix_col_cb, mathutils_matrix_col_cb_index, mathutils_matrix_row_cb, mathutils_matrix_row_cb_index, mathutils_matrix_translation_cb, mathutils_matrix_translation_cb_index, Mathutils_RegisterCallback(), matrix_access_Type, matrix_Type, mod(), NULL, PyInit_mathutils_bvhtree(), PyInit_mathutils_geometry(), PyInit_mathutils_interpolate(), PyInit_mathutils_kdtree(), PyInit_mathutils_noise(), quaternion_Type, and vector_Type.
char BaseMathObject_freeze_doc[] |
Definition at line 673 of file mathutils.c.
char BaseMathObject_is_frozen_doc[] |
Definition at line 659 of file mathutils.c.
char BaseMathObject_is_valid_doc[] |
Definition at line 666 of file mathutils.c.
char BaseMathObject_is_wrapped_doc[] |
Definition at line 652 of file mathutils.c.
char BaseMathObject_owner_doc[] = "The item this is wrapping or None (read-only)." |
Definition at line 645 of file mathutils.c.
|
static |
Definition at line 705 of file mathutils.c.
|
static |
Definition at line 705 of file mathutils.c.
Referenced by PyInit_mathutils().
|
static |
Definition at line 549 of file mathutils.c.
Referenced by _BaseMathObject_CheckCallback(), _BaseMathObject_ReadCallback(), _BaseMathObject_ReadIndexCallback(), _BaseMathObject_WriteCallback(), _BaseMathObject_WriteIndexCallback(), and Mathutils_RegisterCallback().