[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20332] trunk/blender/source/blender/ python/api2_2x: - Deprecated Mathutils.CrossVecs(v1, v2) for v1.cross(v2), ( same with .DotVecs -> v1.dot(v2), for CrossQuats and DotQuats too)

Campbell Barton ideasman42 at gmail.com
Fri May 22 05:22:59 CEST 2009


Revision: 20332
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20332
Author:   campbellbarton
Date:     2009-05-22 05:22:56 +0200 (Fri, 22 May 2009)

Log Message:
-----------
- Deprecated Mathutils.CrossVecs(v1,v2) for v1.cross(v2), (same with .DotVecs -> v1.dot(v2), for CrossQuats and DotQuats too)
- Grouped Mathutils deprecated functions
- Dont include source code in bpy epydocs

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Mathutils.h
    trunk/blender/source/blender/python/api2_2x/doc/Mathutils.py
    trunk/blender/source/blender/python/api2_2x/doc/epy_docgen.sh
    trunk/blender/source/blender/python/api2_2x/quat.c
    trunk/blender/source/blender/python/api2_2x/quat.h
    trunk/blender/source/blender/python/api2_2x/vector.c
    trunk/blender/source/blender/python/api2_2x/vector.h

Modified: trunk/blender/source/blender/python/api2_2x/Mathutils.h
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mathutils.h	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/Mathutils.h	2009-05-22 03:22:56 UTC (rev 20332)
@@ -45,8 +45,6 @@
 
 PyObject *M_Mathutils_Rand(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_Vector(PyObject * self, PyObject * args);
-PyObject *M_Mathutils_CrossVecs(PyObject * self, PyObject * args);
-PyObject *M_Mathutils_DotVecs(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_AngleBetweenVecs(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_MidpointVecs(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_ProjectVecs(PyObject * self, PyObject * args);
@@ -57,8 +55,6 @@
 PyObject *M_Mathutils_OrthoProjectionMatrix(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_ShearMatrix(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_Quaternion(PyObject * self, PyObject * args);
-PyObject *M_Mathutils_CrossQuats(PyObject * self, PyObject * args);
-PyObject *M_Mathutils_DotQuats(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_DifferenceQuats(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_Slerp(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_Euler(PyObject * self, PyObject * args);
@@ -75,6 +71,10 @@
 PyObject *M_Mathutils_RotateEuler(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_MatMultVec(PyObject * self, PyObject * args);
 PyObject *M_Mathutils_VecMultMat(PyObject * self, PyObject * args);
+PyObject *M_Mathutils_CrossVecs(PyObject * self, PyObject * args);
+PyObject *M_Mathutils_DotVecs(PyObject * self, PyObject * args);
+PyObject *M_Mathutils_CrossQuats(PyObject * self, PyObject * args);
+PyObject *M_Mathutils_DotQuats(PyObject * self, PyObject * args);
 
 int EXPP_FloatsAreEqual(float A, float B, int floatSteps);
 int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int floatSteps);

Modified: trunk/blender/source/blender/python/api2_2x/doc/Mathutils.py
===================================================================
--- trunk/blender/source/blender/python/api2_2x/doc/Mathutils.py	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/doc/Mathutils.py	2009-05-22 03:22:56 UTC (rev 20332)
@@ -26,6 +26,8 @@
 
   angle = DifferenceQuats(quat1, quat2)
   print angle  
+  
+ at group Deprecated: CopyMat, CopyVec, CopyQuat, CopyEuler, RotateEuler, MatMultVec, VecMultMat, CrossVecs, DotVecs, CrossQuats, DotQuats
 """
 
 def Rand (low=0.0, high = 1.0):
@@ -129,6 +131,7 @@
 def CrossVecs(vec1, vec2):
   """
   Return the cross product of two vectors.
+  @attention: B{DEPRECATED} use vector.cross(other) instead.
   @type vec1: Vector object.
   @param vec1: A 3d vector.
   @type vec2: Vector object.
@@ -141,6 +144,7 @@
 def DotVecs(vec1, vec2):
   """
   Return the dot product of two vectors.
+  @attention: B{DEPRECATED} use vector.dot(other) instead.
   @type vec1: Vector object.
   @param vec1: A 2d,3d or 4d vector.
   @type vec2: Vector object.
@@ -323,6 +327,7 @@
 def CrossQuats(quat1, quat2):
   """
   Return the cross product of two quaternions.
+  @attention: B{DEPRECATED} use quat.cross(other) instead.
   @type quat1: Quaternion object.
   @param quat1: Quaternion.
   @type quat2: Quaternion object.
@@ -335,6 +340,7 @@
 def DotQuats(quat1, quat2):
   """
   Return the dot product of two quaternions.
+  @attention: B{DEPRECATED} use quat.dot(other) instead.
   @type quat1: Quaternion object.
   @param quat1: Quaternion.
   @type quat2: Quaternion object.
@@ -541,6 +547,26 @@
     @return: The reflected vector.
     """
 
+  def cross(other):
+    """
+    Return the cross product of this vector and another.
+    @note: both vectors must be 3D.
+    @type other: Vector object
+    @param other: The other vector to perform the cross product with.
+    @rtype: Vector
+    @return: The cross product.
+    """
+
+  def dot(other):
+    """
+    Return the dot product of this vector and another.
+    @note: both vectors must be the same size.
+    @type other: Vector object
+    @param other: The other vector to perform the dot product with.
+    @rtype: float
+    @return: The dot product.
+    """
+
 class Euler:
   """
   The Euler object
@@ -740,6 +766,24 @@
     @return: A 3x3 rotation matrix representation of the quaternion.
     """
 
+  def cross(other):
+    """
+    Return the cross product of this quaternion and another.
+    @type other: Quaterion object
+    @param other: The other quaternion to perform the cross product with.
+    @rtype: Vector
+    @return: The cross product.
+    """
+
+  def dot(other):
+    """
+    Return the dot product of this quaternion and another.
+    @type other: Quaterion object
+    @param other: The other quaternion to perform the dot product with.
+    @rtype: float
+    @return: The dot product.
+    """
+
 class Matrix:
   """
   The Matrix Object

Modified: trunk/blender/source/blender/python/api2_2x/doc/epy_docgen.sh
===================================================================
--- trunk/blender/source/blender/python/api2_2x/doc/epy_docgen.sh	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/doc/epy_docgen.sh	2009-05-22 03:22:56 UTC (rev 20332)
@@ -8,4 +8,4 @@
 LC_ALL=POSIX
 
 epydoc --debug -v  -o BPY_API --url "http://www.blender.org" --top API_intro \
- --name "Blender" --no-private --no-frames [A-Z]*.py 
+ --name "Blender" --no-private --no-sourcecode [A-Z]*.py 

Modified: trunk/blender/source/blender/python/api2_2x/quat.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/quat.c	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/quat.c	2009-05-22 03:22:56 UTC (rev 20332)
@@ -41,6 +41,8 @@
 char Quaternion_Normalize_doc[] = "() - normalize the vector portion of the quaternion";
 char Quaternion_ToEuler_doc[] = "(eul_compat) - return a euler rotation representing the quaternion, optional euler argument that the new euler will be made compatible with.";
 char Quaternion_ToMatrix_doc[] = "() - return a rotation matrix representing the quaternion";
+char Quaternion_Cross_doc[] = "(other) - return the cross product between this quaternion and another";
+char Quaternion_Dot_doc[] = "(other) - return the dot product between this quaternion and another";
 char Quaternion_copy_doc[] = "() - return a copy of the quat";
 //-----------------------METHOD DEFINITIONS ----------------------
 struct PyMethodDef Quaternion_methods[] = {
@@ -51,6 +53,8 @@
 	{"normalize", (PyCFunction) Quaternion_Normalize, METH_NOARGS, Quaternion_Normalize_doc},
 	{"toEuler", (PyCFunction) Quaternion_ToEuler, METH_VARARGS, Quaternion_ToEuler_doc},
 	{"toMatrix", (PyCFunction) Quaternion_ToMatrix, METH_NOARGS, Quaternion_ToMatrix_doc},
+	{"cross", (PyCFunction) Quaternion_Cross, METH_O, Quaternion_Cross_doc},
+	{"dot", (PyCFunction) Quaternion_Dot, METH_O, Quaternion_Dot_doc},
 	{"__copy__", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc},
 	{"copy", (PyCFunction) Quaternion_copy, METH_NOARGS, Quaternion_copy_doc},
 	{NULL, NULL, 0, NULL}
@@ -96,6 +100,40 @@
 
 	return newMatrixObject(mat, 3, 3, Py_NEW);
 }
+
+//----------------------------Quaternion.cross(other)------------------
+//return the cross quat
+PyObject *Quaternion_Cross(QuaternionObject * self, QuaternionObject * value)
+{
+	float quat[4];
+	
+	if (!QuaternionObject_Check(value)) {
+		PyErr_SetString( PyExc_TypeError, "quat.cross(value): expected a quaternion argument" );
+		return NULL;
+	}
+	
+	QuatMul(quat, self->quat, value->quat);
+	return newQuaternionObject(quat, Py_NEW);
+}
+
+//----------------------------Quaternion.dot(other)------------------
+//return the dot quat
+PyObject *Quaternion_Dot(QuaternionObject * self, QuaternionObject * value)
+{
+	int x;
+	double dot = 0.0;
+	
+	if (!QuaternionObject_Check(value)) {
+		PyErr_SetString( PyExc_TypeError, "quat.dot(value): expected a quaternion argument" );
+		return NULL;
+	}
+	
+	for(x = 0; x < 4; x++) {
+		dot += self->quat[x] * value->quat[x];
+	}
+	return PyFloat_FromDouble(dot);
+}
+
 //----------------------------Quaternion.normalize()----------------
 //normalize the axis of rotation of [theta,vector]
 PyObject *Quaternion_Normalize(QuaternionObject * self)

Modified: trunk/blender/source/blender/python/api2_2x/quat.h
===================================================================
--- trunk/blender/source/blender/python/api2_2x/quat.h	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/quat.h	2009-05-22 03:22:56 UTC (rev 20332)
@@ -64,6 +64,8 @@
 PyObject *Quaternion_Normalize( QuaternionObject * self );
 PyObject *Quaternion_ToEuler( QuaternionObject * self, PyObject *args );
 PyObject *Quaternion_ToMatrix( QuaternionObject * self );
+PyObject *Quaternion_Cross( QuaternionObject * self, QuaternionObject * value );
+PyObject *Quaternion_Dot( QuaternionObject * self, QuaternionObject * value );
 PyObject *Quaternion_copy( QuaternionObject * self );
 PyObject *newQuaternionObject( float *quat, int type );
 

Modified: trunk/blender/source/blender/python/api2_2x/vector.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/vector.c	2009-05-22 01:16:26 UTC (rev 20331)
+++ trunk/blender/source/blender/python/api2_2x/vector.c	2009-05-22 03:22:56 UTC (rev 20332)
@@ -47,7 +47,9 @@
 char Vector_Resize3D_doc[] = "() - resize a vector to [x,y,z]";
 char Vector_Resize4D_doc[] = "() - resize a vector to [x,y,z,w]";
 char Vector_ToTrackQuat_doc[] = "(track, up) - extract a quaternion from the vector and the track and up axis";
-char Vector_reflect_doc[] = "(mirror) - return a vector reflected on the mirror normal";
+char Vector_Reflect_doc[] = "(mirror) - return a vector reflected on the mirror normal";
+char Vector_Cross_doc[] = "(other) - return the cross product between this vector and another";
+char Vector_Dot_doc[] = "(other) - return the dot product between this vector and another";
 char Vector_copy_doc[] = "() - return a copy of the vector";
 char Vector_swizzle_doc[] = "Swizzle: Get or set axes in specified order";
 /*-----------------------METHOD DEFINITIONS ----------------------*/
@@ -59,7 +61,9 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list