Revision: 19838
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19838
Author:   campbellbarton
Date:     2009-04-21 11:44:29 +0200 (Tue, 21 Apr 2009)

Log Message:
-----------
Blender Python API
- Removed the gen_utils.c dependency from Mathutils (since gen_utils wont go 
into 2.5 but mathutils will), repalced with python functions.
- removed Blender.Mathutils.Point, since it was not documented, the C api never 
used it, none of our scripts used it (and I never saw a script that used it).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_scene.h
    trunk/blender/source/blender/python/BPY_interface.c
    trunk/blender/source/blender/python/api2_2x/Geometry.h
    trunk/blender/source/blender/python/api2_2x/Group.c
    trunk/blender/source/blender/python/api2_2x/Key.c
    trunk/blender/source/blender/python/api2_2x/Mathutils.c
    trunk/blender/source/blender/python/api2_2x/Mathutils.h
    trunk/blender/source/blender/python/api2_2x/Node.c
    trunk/blender/source/blender/python/api2_2x/Scene.c
    trunk/blender/source/blender/python/api2_2x/Texture.c
    trunk/blender/source/blender/python/api2_2x/Types.c
    trunk/blender/source/blender/python/api2_2x/euler.c
    trunk/blender/source/blender/python/api2_2x/gen_utils.c
    trunk/blender/source/blender/python/api2_2x/gen_utils.h
    trunk/blender/source/blender/python/api2_2x/matrix.c
    trunk/blender/source/blender/python/api2_2x/quat.c
    trunk/blender/source/blender/python/api2_2x/vector.c
    trunk/blender/source/blender/python/api2_2x/vector.h
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/gameengine/Ketsji/CMakeLists.txt
    trunk/blender/source/gameengine/Ketsji/SConscript

Removed Paths:
-------------
    trunk/blender/source/blender/python/api2_2x/point.c
    trunk/blender/source/blender/python/api2_2x/point.h

Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h 2009-04-21 09:38:27 UTC 
(rev 19837)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h 2009-04-21 09:44:29 UTC 
(rev 19838)
@@ -35,6 +35,7 @@
 struct Scene;
 struct Object;
 struct Base;
+struct Text;
 struct AviCodecData;
 struct QuicktimeCodecData;
 struct SculptData;

Modified: trunk/blender/source/blender/python/BPY_interface.c
===================================================================
--- trunk/blender/source/blender/python/BPY_interface.c 2009-04-21 09:38:27 UTC 
(rev 19837)
+++ trunk/blender/source/blender/python/BPY_interface.c 2009-04-21 09:44:29 UTC 
(rev 19838)
@@ -70,6 +70,7 @@
 #include "api2_2x/Object.h"
 #include "api2_2x/Registry.h"
 #include "api2_2x/Pose.h"
+#include "api2_2x/Mathutils.h"
 #include "api2_2x/bpy.h" /* for the new "bpy" module */
 #include "api2_2x/bpy_internal_import.h"
 

Modified: trunk/blender/source/blender/python/api2_2x/Geometry.h
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Geometry.h      2009-04-21 
09:38:27 UTC (rev 19837)
+++ trunk/blender/source/blender/python/api2_2x/Geometry.h      2009-04-21 
09:44:29 UTC (rev 19838)
@@ -32,7 +32,7 @@
 #define EXPP_Geometry_H
 
 #include <Python.h>
-#include "vector.h"
+#include "Mathutils.h"
 
 PyObject *Geometry_Init( void );
 

Modified: trunk/blender/source/blender/python/api2_2x/Group.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Group.c 2009-04-21 09:38:27 UTC 
(rev 19837)
+++ trunk/blender/source/blender/python/api2_2x/Group.c 2009-04-21 09:44:29 UTC 
(rev 19838)
@@ -46,7 +46,7 @@
 #include "gen_utils.h"
 #include "gen_library.h"
 
-#include "vector.h"
+#include "Mathutils.h"
 
 /* checks for the group being removed */
 #define GROUP_DEL_CHECK_PY(bpy_group) if (!(bpy_group->group)) return ( 
EXPP_ReturnPyObjError( PyExc_RuntimeError, "Group has been removed" ) )

Modified: trunk/blender/source/blender/python/api2_2x/Key.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Key.c   2009-04-21 09:38:27 UTC 
(rev 19837)
+++ trunk/blender/source/blender/python/api2_2x/Key.c   2009-04-21 09:44:29 UTC 
(rev 19838)
@@ -29,7 +29,7 @@
  */
 
 #include "Key.h" /*This must come first*/
-#include "vector.h"
+#include "Mathutils.h"
 
 #include "DNA_scene_types.h"
 

Modified: trunk/blender/source/blender/python/api2_2x/Mathutils.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mathutils.c     2009-04-21 
09:38:27 UTC (rev 19837)
+++ trunk/blender/source/blender/python/api2_2x/Mathutils.c     2009-04-21 
09:44:29 UTC (rev 19838)
@@ -69,7 +69,6 @@
 static char M_Mathutils_TriangleNormal_doc[] = "(v1, v2, v3) - returns the 
normal of the 3D triangle defined";
 static char M_Mathutils_QuadNormal_doc[] = "(v1, v2, v3, v4) - returns the 
normal of the 3D quad defined";
 static char M_Mathutils_LineIntersect_doc[] = "(v1, v2, v3, v4) - returns a 
tuple with the points on each line respectively closest to the other";
-static char M_Mathutils_Point_doc[] = "Creates a 2d or 3d point object";
 //-----------------------METHOD DEFINITIONS ----------------------
 struct PyMethodDef M_Mathutils_methods[] = {
        {"Rand", (PyCFunction) M_Mathutils_Rand, METH_VARARGS, 
M_Mathutils_Rand_doc},
@@ -103,7 +102,6 @@
        {"TriangleNormal", ( PyCFunction ) M_Mathutils_TriangleNormal, 
METH_VARARGS, M_Mathutils_TriangleNormal_doc},
        {"QuadNormal", ( PyCFunction ) M_Mathutils_QuadNormal, METH_VARARGS, 
M_Mathutils_QuadNormal_doc},
        {"LineIntersect", ( PyCFunction ) M_Mathutils_LineIntersect, 
METH_VARARGS, M_Mathutils_LineIntersect_doc},
-       {"Point", (PyCFunction) M_Mathutils_Point, METH_VARARGS, 
M_Mathutils_Point_doc},
        {NULL, NULL, 0, NULL}
 };
 /*----------------------------MODULE INIT-------------------------*/
@@ -184,36 +182,7 @@
        }
        return newVectorObject(vecNew, vec->size, Py_NEW);
 }
-//This is a helper for point/matrix translation 
 
-PyObject *column_point_multiplication(MatrixObject * mat, PointObject* pt)
-{
-       float ptNew[4], ptCopy[4];
-       double dot = 0.0f;
-       int x, y, z = 0;
-
-       if(mat->rowSize != pt->size){
-               if(mat->rowSize == 4 && pt->size != 3){
-                       return EXPP_ReturnPyObjError(PyExc_AttributeError,
-                               "matrix * point: matrix row size and point size 
must be the same\n");
-               }else{
-                       ptCopy[3] = 0.0f;
-               }
-       }
-
-       for(x = 0; x < pt->size; x++){
-               ptCopy[x] = pt->coord[x];
-               }
-
-       for(x = 0; x < mat->rowSize; x++) {
-               for(y = 0; y < mat->colSize; y++) {
-                       dot += mat->matrix[x][y] * ptCopy[y];
-               }
-               ptNew[z++] = (float)dot;
-               dot = 0.0f;
-       }
-       return newPointObject(ptNew, pt->size, Py_NEW);
-}
 //-----------------row_vector_multiplication (internal)-----------
 //ROW VECTOR Multiplication - Vector X Matrix
 //[x][y][z] *  [1][2][3]
@@ -249,36 +218,7 @@
        }
        return newVectorObject(vecNew, vec_size, Py_NEW);
 }
-//This is a helper for the point class
-PyObject *row_point_multiplication(PointObject* pt, MatrixObject * mat)
-{
-       float ptNew[4], ptCopy[4];
-       double dot = 0.0f;
-       int x, y, z = 0, size;
 
-       if(mat->colSize != pt->size){
-               if(mat->rowSize == 4 && pt->size != 3){
-                       return EXPP_ReturnPyObjError(PyExc_AttributeError, 
-                               "point * matrix: matrix column size and the 
point size must be the same\n");
-               }else{
-                       ptCopy[3] = 0.0f;
-               }
-       }
-       size = pt->size;
-       for(x = 0; x < pt->size; x++){
-               ptCopy[x] = pt->coord[x];
-       }
-
-       //muliplication
-       for(x = 0; x < mat->colSize; x++) {
-               for(y = 0; y < mat->rowSize; y++) {
-                       dot += mat->matrix[y][x] * ptCopy[y];
-               }
-               ptNew[z++] = (float)dot;
-               dot = 0.0f;
-       }
-       return newPointObject(ptNew, size, Py_NEW);
-}
 //-----------------quat_rotation (internal)-----------
 //This function multiplies a vector/point * quat or vice versa
 //to rotate the point/vector by the quaternion
@@ -288,7 +228,6 @@
        float rot[3];
        QuaternionObject *quat = NULL;
        VectorObject *vec = NULL;
-       PointObject *pt = NULL;
 
        if(QuaternionObject_Check(arg1)){
                quat = (QuaternionObject*)arg1;
@@ -307,21 +246,6 @@
                                quat->quat[2]*quat->quat[2]*vec->vec[2] + 
2*quat->quat[0]*quat->quat[1]*vec->vec[1] - 
                                quat->quat[1]*quat->quat[1]*vec->vec[2] + 
quat->quat[0]*quat->quat[0]*vec->vec[2];
                        return newVectorObject(rot, 3, Py_NEW);
-               }else if(PointObject_Check(arg2)){
-                       pt = (PointObject*)arg2;
-                       rot[0] = quat->quat[0]*quat->quat[0]*pt->coord[0] + 
2*quat->quat[2]*quat->quat[0]*pt->coord[2] - 
-                               2*quat->quat[3]*quat->quat[0]*pt->coord[1] + 
quat->quat[1]*quat->quat[1]*pt->coord[0] + 
-                               2*quat->quat[2]*quat->quat[1]*pt->coord[1] + 
2*quat->quat[3]*quat->quat[1]*pt->coord[2] - 
-                               quat->quat[3]*quat->quat[3]*pt->coord[0] - 
quat->quat[2]*quat->quat[2]*pt->coord[0];
-                       rot[1] = 2*quat->quat[1]*quat->quat[2]*pt->coord[0] + 
quat->quat[2]*quat->quat[2]*pt->coord[1] + 
-                               2*quat->quat[3]*quat->quat[2]*pt->coord[2] + 
2*quat->quat[0]*quat->quat[3]*pt->coord[0] - 
-                               quat->quat[3]*quat->quat[3]*pt->coord[1] + 
quat->quat[0]*quat->quat[0]*pt->coord[1] - 
-                               2*quat->quat[1]*quat->quat[0]*pt->coord[2] - 
quat->quat[1]*quat->quat[1]*pt->coord[1];
-                       rot[2] = 2*quat->quat[1]*quat->quat[3]*pt->coord[0] + 
2*quat->quat[2]*quat->quat[3]*pt->coord[1] + 
-                               quat->quat[3]*quat->quat[3]*pt->coord[2] - 
2*quat->quat[0]*quat->quat[2]*pt->coord[0] - 
-                               quat->quat[2]*quat->quat[2]*pt->coord[2] + 
2*quat->quat[0]*quat->quat[1]*pt->coord[1] - 
-                               quat->quat[1]*quat->quat[1]*pt->coord[2] + 
quat->quat[0]*quat->quat[0]*pt->coord[2];
-                       return newPointObject(rot, 3, Py_NEW);
                }
        }else if(VectorObject_Check(arg1)){
                vec = (VectorObject*)arg1;
@@ -341,24 +265,6 @@
                                quat->quat[1]*quat->quat[1]*vec->vec[2] + 
quat->quat[0]*quat->quat[0]*vec->vec[2];
                        return newVectorObject(rot, 3, Py_NEW);
                }
-       }else if(PointObject_Check(arg1)){
-               pt = (PointObject*)arg1;
-               if(QuaternionObject_Check(arg2)){
-                       quat = (QuaternionObject*)arg2;
-                       rot[0] = quat->quat[0]*quat->quat[0]*pt->coord[0] + 
2*quat->quat[2]*quat->quat[0]*pt->coord[2] - 
-                               2*quat->quat[3]*quat->quat[0]*pt->coord[1] + 
quat->quat[1]*quat->quat[1]*pt->coord[0] + 
-                               2*quat->quat[2]*quat->quat[1]*pt->coord[1] + 
2*quat->quat[3]*quat->quat[1]*pt->coord[2] - 
-                               quat->quat[3]*quat->quat[3]*pt->coord[0] - 
quat->quat[2]*quat->quat[2]*pt->coord[0];
-                       rot[1] = 2*quat->quat[1]*quat->quat[2]*pt->coord[0] + 
quat->quat[2]*quat->quat[2]*pt->coord[1] + 
-                               2*quat->quat[3]*quat->quat[2]*pt->coord[2] + 
2*quat->quat[0]*quat->quat[3]*pt->coord[0] - 
-                               quat->quat[3]*quat->quat[3]*pt->coord[1] + 
quat->quat[0]*quat->quat[0]*pt->coord[1] - 
-                               2*quat->quat[1]*quat->quat[0]*pt->coord[2] - 
quat->quat[1]*quat->quat[1]*pt->coord[1];
-                       rot[2] = 2*quat->quat[1]*quat->quat[3]*pt->coord[0] + 
2*quat->quat[2]*quat->quat[3]*pt->coord[1] + 
-                               quat->quat[3]*quat->quat[3]*pt->coord[2] - 
2*quat->quat[0]*quat->quat[2]*pt->coord[0] - 
-                               quat->quat[2]*quat->quat[2]*pt->coord[2] + 
2*quat->quat[0]*quat->quat[1]*pt->coord[1] - 
-                               quat->quat[1]*quat->quat[1]*pt->coord[2] + 
quat->quat[0]*quat->quat[0]*pt->coord[2];
-                       return newPointObject(rot, 3, Py_NEW);
-               }
        }
 
        return (EXPP_ReturnPyObjError(PyExc_RuntimeError,
@@ -1329,60 +1235,7 @@
        Py_DECREF(listObject);
        return newEulerObject(eul, Py_NEW);
 }
-//----------------------------------POINT FUNCTIONS---------------------
-//----------------------------------Mathutils.Point() ------------------
-PyObject *M_Mathutils_Point(PyObject * self, PyObject * args)
-{
-       PyObject *listObject = NULL;
-       int size, i;
-       float point[3];
-       PyObject *v, *f;
 
-       size = PySequence_Length(args);
-       if (size == 1) {
-               listObject = PySequence_GetItem(args, 0);
-               if (PySequence_Check(listObject)) {
-                       size = PySequence_Length(listObject);
-               } else { // Single argument was not a sequence
-                       Py_XDECREF(listObject);
-                       return EXPP_ReturnPyObjError(PyExc_TypeError, 
-                               "Mathutils.Point(): 2-3 floats or ints expected 
(optionally in a sequence)\n");
-               }
-       } else if (size == 0) {
-               //returns a new empty 3d point
-               return newPointObject(NULL, 3, Py_NEW); 
-       } else {
-               listObject = EXPP_incr_ret(args);
-       }
-
-       if (size<2 || size>3) { // Invalid vector size
-               Py_XDECREF(listObject);
-               return EXPP_ReturnPyObjError(PyExc_AttributeError, 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to