corrections to some comments

This commit is contained in:
2011-12-19 05:23:52 +00:00
parent 0bc83a2f35
commit 53f88b231a
2 changed files with 16 additions and 26 deletions

View File

@@ -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;

View File

@@ -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,