corrections to some comments
This commit is contained in:
@@ -1939,22 +1939,10 @@ PyTypeObject matrix_Type = {
|
|||||||
NULL /*tp_del*/
|
NULL /*tp_del*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/*------------------------Matrix_CreatePyObject (internal)-------------
|
|
||||||
creates a new matrix object
|
|
||||||
self->matrix self->contiguous_ptr (reference to data.xxx)
|
|
||||||
[0]------------->[0]
|
|
||||||
[1]
|
|
||||||
[2]
|
|
||||||
[1]------------->[3]
|
|
||||||
[4]
|
|
||||||
[5]
|
|
||||||
|
|
||||||
self->matrix[1][1] = self->contigPtr[4] */
|
|
||||||
|
|
||||||
/* pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER
|
/* pass Py_WRAP - if vector is a WRAPPER for data allocated by BLENDER
|
||||||
(i.e. it was allocated elsewhere by MEM_mallocN())
|
* (i.e. it was allocated elsewhere by MEM_mallocN())
|
||||||
pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON
|
* pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON
|
||||||
(i.e. it must be created here with PyMEM_malloc())*/
|
* (i.e. it must be created here with PyMEM_malloc()) */
|
||||||
PyObject *Matrix_CreatePyObject(float *mat,
|
PyObject *Matrix_CreatePyObject(float *mat,
|
||||||
const unsigned short row_size, const unsigned short col_size,
|
const unsigned short row_size, const unsigned short col_size,
|
||||||
int type, PyTypeObject *base_type)
|
int type, PyTypeObject *base_type)
|
||||||
@@ -1996,11 +1984,13 @@ PyObject *Matrix_CreatePyObject(float *mat,
|
|||||||
if (mat) { /*if a float array passed*/
|
if (mat) { /*if a float array passed*/
|
||||||
memcpy(self->contigPtr, mat, row_size * col_size * sizeof(float));
|
memcpy(self->contigPtr, mat, row_size * col_size * sizeof(float));
|
||||||
}
|
}
|
||||||
else if (row_size == col_size) { /*or if no arguments are passed return identity matrix for square matrices */
|
else if (row_size == col_size) {
|
||||||
|
/* or if no arguments are passed return identity matrix for square matrices */
|
||||||
PyObject *ret_dummy= Matrix_identity(self);
|
PyObject *ret_dummy= Matrix_identity(self);
|
||||||
Py_DECREF(ret_dummy);
|
Py_DECREF(ret_dummy);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
/* otherwise zero everything */
|
||||||
memset(self->contigPtr, 0, row_size * col_size * sizeof(float));
|
memset(self->contigPtr, 0, row_size * col_size * sizeof(float));
|
||||||
}
|
}
|
||||||
self->wrapped = Py_NEW;
|
self->wrapped = Py_NEW;
|
||||||
|
|||||||
@@ -38,15 +38,15 @@ extern PyTypeObject matrix_Type;
|
|||||||
#define MatrixObject_Check(_v) PyObject_TypeCheck((_v), &matrix_Type)
|
#define MatrixObject_Check(_v) PyObject_TypeCheck((_v), &matrix_Type)
|
||||||
#define MATRIX_MAX_DIM 4
|
#define MATRIX_MAX_DIM 4
|
||||||
|
|
||||||
/* to remove pymat->matrix[row][col] */
|
/* matrix[row][col] == MATRIX_ITEM_INDEX(matrix, row, col) */
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
# define MATRIX_ASSERT(_mat, _row, _col) (BLI_assert(_row < (_mat)->row_size && _col < (_mat)->col_size))
|
# define MATRIX_ITEM_ASSERT(_mat, _row, _col) (BLI_assert(_row < (_mat)->row_size && _col < (_mat)->col_size))
|
||||||
#else
|
#else
|
||||||
# define MATRIX_ASSERT(_mat, _row, _col) (void)0
|
# define MATRIX_ITEM_ASSERT(_mat, _row, _col) (void)0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MATRIX_ITEM_INDEX(_mat, _row, _col) (MATRIX_ASSERT(_mat, _row, _col), (((_mat)->col_size * (_row)) + (_col)))
|
#define MATRIX_ITEM_INDEX(_mat, _row, _col) (MATRIX_ITEM_ASSERT(_mat, _row, _col),(((_mat)->col_size * (_row)) + (_col)))
|
||||||
#define MATRIX_ITEM_PTR( _mat, _row, _col) ((_mat)->contigPtr + MATRIX_ITEM_INDEX(_mat, _row, _col))
|
#define MATRIX_ITEM_PTR( _mat, _row, _col) ((_mat)->contigPtr + MATRIX_ITEM_INDEX(_mat, _row, _col))
|
||||||
#define MATRIX_ITEM( _mat, _row, _col) ((_mat)->contigPtr [MATRIX_ITEM_INDEX(_mat, _row, _col)])
|
#define MATRIX_ITEM( _mat, _row, _col) ((_mat)->contigPtr [MATRIX_ITEM_INDEX(_mat, _row, _col)])
|
||||||
|
|
||||||
@@ -60,9 +60,9 @@ typedef struct {
|
|||||||
} MatrixObject;
|
} MatrixObject;
|
||||||
|
|
||||||
/* struct data contains a pointer to the actual data that the
|
/* struct data contains a pointer to the actual data that the
|
||||||
object uses. It can use either PyMem allocated data (which will
|
* object uses. It can use either PyMem allocated data (which will
|
||||||
be stored in py_data) or be a wrapper for data allocated through
|
* be stored in py_data) or be a wrapper for data allocated through
|
||||||
blender (stored in blend_data). This is an either/or struct not both*/
|
* blender (stored in blend_data). This is an either/or struct not both */
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
PyObject *Matrix_CreatePyObject(float *mat,
|
PyObject *Matrix_CreatePyObject(float *mat,
|
||||||
|
|||||||
Reference in New Issue
Block a user