Thread: [cgkit-commits] SF.net SVN: cgkit: [42] maya/trunk/maya_wrapper/src_aux
Brought to you by:
mbaas
From: <mb...@us...> - 2006-09-20 14:24:03
|
Revision: 42 http://svn.sourceforge.net/cgkit/?rev=42&view=rev Author: mbaas Date: 2006-09-20 07:23:57 -0700 (Wed, 20 Sep 2006) Log Message: ----------- Added a an operator double*MPoint which is missing in the Maya SDK Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mpoint.cpp maya/trunk/maya_wrapper/src_aux/mpoint.h Modified: maya/trunk/maya_wrapper/src_aux/mpoint.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpoint.cpp 2006-09-20 14:22:27 UTC (rev 41) +++ maya/trunk/maya_wrapper/src_aux/mpoint.cpp 2006-09-20 14:23:57 UTC (rev 42) @@ -43,3 +43,8 @@ return boost::python::str(s.str()); } } + +MPoint operator*(double s, const MPoint& pnt) +{ + return pnt*s; +} Modified: maya/trunk/maya_wrapper/src_aux/mpoint.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpoint.h 2006-09-20 14:22:27 UTC (rev 41) +++ maya/trunk/maya_wrapper/src_aux/mpoint.h 2006-09-20 14:23:57 UTC (rev 42) @@ -36,3 +36,5 @@ int __len__(MPoint& self); boost::python::str __str__(MPoint& self); } + +MPoint operator*(double s, const MPoint& pnt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-22 16:50:39
|
Revision: 46 http://svn.sourceforge.net/cgkit/?rev=46&view=rev Author: mbaas Date: 2006-09-22 09:50:31 -0700 (Fri, 22 Sep 2006) Log Message: ----------- 1) Switched to using the GILGuard class. 2) Added more doxygen comments. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp Modified: maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-09-22 16:49:36 UTC (rev 45) +++ maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-09-22 16:50:31 UTC (rev 46) @@ -1,8 +1,9 @@ -/* +/** \file creatorfuncs.cpp.h + Plugin creator functions. - - This file was generated automatically and is included in the file - creatorfuncmanager.cpp. + + This file was generated automatically by the script \c createplugincode.py + and is included in the file creatorfuncmanager.cpp. */ #include <maya/MPxCommand.h> @@ -16,6 +17,7 @@ #include <maya/MPxNode.h> #include <maya/MPxObjectSet.h> #include <maya/MPxSpringNode.h> +#include "aux_threading.h" static const int MAX_CREATOR_FUNCTIONS = 200; static const int MAX_CREATESYNTAX_FUNCTIONS = 200; @@ -71,8 +73,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -104,7 +106,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -119,8 +121,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -152,7 +154,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -167,8 +169,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -200,7 +202,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -215,8 +217,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -248,7 +250,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -263,8 +265,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -296,7 +298,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -311,8 +313,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -344,7 +346,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -359,8 +361,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -392,7 +394,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -407,8 +409,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -440,7 +442,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -455,8 +457,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -488,7 +490,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -503,8 +505,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -536,7 +538,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -551,8 +553,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -584,7 +586,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -599,8 +601,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -632,7 +634,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -647,8 +649,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -680,7 +682,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -695,8 +697,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -728,7 +730,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -743,8 +745,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -776,7 +778,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -791,8 +793,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -824,7 +826,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -839,8 +841,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -872,7 +874,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -887,8 +889,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -920,7 +922,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -935,8 +937,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -968,7 +970,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -983,8 +985,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1016,7 +1018,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1031,8 +1033,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1064,7 +1066,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1079,8 +1081,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1112,7 +1114,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1127,8 +1129,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1160,7 +1162,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1175,8 +1177,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1208,7 +1210,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1223,8 +1225,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1256,7 +1258,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1271,8 +1273,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1304,7 +1306,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1319,8 +1321,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1352,7 +1354,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1367,8 +1369,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1400,7 +1402,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1415,8 +1417,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1448,7 +1450,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1463,8 +1465,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1496,7 +1498,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1511,8 +1513,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1544,7 +1546,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1559,8 +1561,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1592,7 +1594,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1607,8 +1609,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1640,7 +1642,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1655,8 +1657,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1688,7 +1690,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1703,8 +1705,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1736,7 +1738,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1751,8 +1753,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1784,7 +1786,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1799,8 +1801,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1832,7 +1834,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1847,8 +1849,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1880,7 +1882,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1895,8 +1897,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1928,7 +1930,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1943,8 +1945,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -1976,7 +1978,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -1991,8 +1993,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2024,7 +2026,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2039,8 +2041,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2072,7 +2074,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2087,8 +2089,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2120,7 +2122,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2135,8 +2137,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2168,7 +2170,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2183,8 +2185,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2216,7 +2218,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2231,8 +2233,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2264,7 +2266,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2279,8 +2281,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2312,7 +2314,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2327,8 +2329,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2360,7 +2362,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2375,8 +2377,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2408,7 +2410,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2423,8 +2425,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2456,7 +2458,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2471,8 +2473,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2504,7 +2506,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2519,8 +2521,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2552,7 +2554,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2567,8 +2569,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2600,7 +2602,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2615,8 +2617,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2648,7 +2650,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2663,8 +2665,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2696,7 +2698,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2711,8 +2713,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2744,7 +2746,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2759,8 +2761,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2792,7 +2794,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2807,8 +2809,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2840,7 +2842,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2855,8 +2857,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2888,7 +2890,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2903,8 +2905,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2936,7 +2938,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2951,8 +2953,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -2984,7 +2986,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -2999,8 +3001,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3032,7 +3034,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3047,8 +3049,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3080,7 +3082,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3095,8 +3097,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3128,7 +3130,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3143,8 +3145,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3176,7 +3178,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3191,8 +3193,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3224,7 +3226,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3239,8 +3241,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3272,7 +3274,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3287,8 +3289,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3320,7 +3322,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3335,8 +3337,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3368,7 +3370,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3383,8 +3385,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3416,7 +3418,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3431,8 +3433,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3464,7 +3466,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3479,8 +3481,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3512,7 +3514,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3527,8 +3529,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3560,7 +3562,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3575,8 +3577,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3608,7 +3610,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3623,8 +3625,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3656,7 +3658,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3671,8 +3673,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3704,7 +3706,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3719,8 +3721,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3752,7 +3754,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3767,8 +3769,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3800,7 +3802,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3815,8 +3817,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3848,7 +3850,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3863,8 +3865,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3896,7 +3898,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3911,8 +3913,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3944,7 +3946,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -3959,8 +3961,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -3992,7 +3994,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4007,8 +4009,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4040,7 +4042,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4055,8 +4057,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4088,7 +4090,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4103,8 +4105,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4136,7 +4138,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4151,8 +4153,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4184,7 +4186,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4199,8 +4201,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4232,7 +4234,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4247,8 +4249,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4280,7 +4282,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4295,8 +4297,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4328,7 +4330,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4343,8 +4345,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4376,7 +4378,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4391,8 +4393,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4424,7 +4426,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4439,8 +4441,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4472,7 +4474,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4487,8 +4489,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4520,7 +4522,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4535,8 +4537,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4568,7 +4570,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4583,8 +4585,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4616,7 +4618,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4631,8 +4633,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4664,7 +4666,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4679,8 +4681,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4712,7 +4714,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4727,8 +4729,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4760,7 +4762,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4775,8 +4777,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4808,7 +4810,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4823,8 +4825,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4856,7 +4858,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4871,8 +4873,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4904,7 +4906,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4919,8 +4921,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -4952,7 +4954,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -4967,8 +4969,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5000,7 +5002,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5015,8 +5017,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5048,7 +5050,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5063,8 +5065,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5096,7 +5098,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5111,8 +5113,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5144,7 +5146,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5159,8 +5161,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5192,7 +5194,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5207,8 +5209,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5240,7 +5242,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5255,8 +5257,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5288,7 +5290,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5303,8 +5305,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5336,7 +5338,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5351,8 +5353,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5384,7 +5386,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5399,8 +5401,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5432,7 +5434,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5447,8 +5449,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5480,7 +5482,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5495,8 +5497,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5528,7 +5530,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5543,8 +5545,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5576,7 +5578,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5591,8 +5593,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5624,7 +5626,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5639,8 +5641,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5672,7 +5674,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5687,8 +5689,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5720,7 +5722,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5735,8 +5737,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5768,7 +5770,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5783,8 +5785,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5816,7 +5818,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5831,8 +5833,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5864,7 +5866,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5879,8 +5881,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5912,7 +5914,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5927,8 +5929,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -5960,7 +5962,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -5975,8 +5977,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6008,7 +6010,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6023,8 +6025,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6056,7 +6058,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6071,8 +6073,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6104,7 +6106,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6119,8 +6121,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6152,7 +6154,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6167,8 +6169,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6200,7 +6202,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6215,8 +6217,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6248,7 +6250,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6263,8 +6265,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6296,7 +6298,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6311,8 +6313,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6344,7 +6346,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6359,8 +6361,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6392,7 +6394,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6407,8 +6409,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6440,7 +6442,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6455,8 +6457,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6488,7 +6490,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6503,8 +6505,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6536,7 +6538,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6551,8 +6553,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6584,7 +6586,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6599,8 +6601,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6632,7 +6634,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6647,8 +6649,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6680,7 +6682,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6695,8 +6697,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6728,7 +6730,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6743,8 +6745,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6776,7 +6778,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6791,8 +6793,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6824,7 +6826,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6839,8 +6841,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6872,7 +6874,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6887,8 +6889,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6920,7 +6922,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6935,8 +6937,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -6968,7 +6970,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -6983,8 +6985,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7016,7 +7018,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7031,8 +7033,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7064,7 +7066,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7079,8 +7081,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7112,7 +7114,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7127,8 +7129,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7160,7 +7162,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7175,8 +7177,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7208,7 +7210,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7223,8 +7225,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7256,7 +7258,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7271,8 +7273,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7304,7 +7306,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7319,8 +7321,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7352,7 +7354,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7367,8 +7369,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7400,7 +7402,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7415,8 +7417,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7448,7 +7450,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7463,8 +7465,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7496,7 +7498,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7511,8 +7513,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7544,7 +7546,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7559,8 +7561,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7592,7 +7594,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7607,8 +7609,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7640,7 +7642,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7655,8 +7657,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7688,7 +7690,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7703,8 +7705,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7736,7 +7738,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7751,8 +7753,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7784,7 +7786,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7799,8 +7801,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7832,7 +7834,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7847,8 +7849,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7880,7 +7882,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7895,8 +7897,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7928,7 +7930,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7943,8 +7945,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -7976,7 +7978,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -7991,8 +7993,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8024,7 +8026,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8039,8 +8041,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8072,7 +8074,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8087,8 +8089,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8120,7 +8122,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8135,8 +8137,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8168,7 +8170,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8183,8 +8185,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8216,7 +8218,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8231,8 +8233,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8264,7 +8266,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8279,8 +8281,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8312,7 +8314,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8327,8 +8329,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8360,7 +8362,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8375,8 +8377,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8408,7 +8410,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8423,8 +8425,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8456,7 +8458,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8471,8 +8473,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8504,7 +8506,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8519,8 +8521,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8552,7 +8554,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8567,8 +8569,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8600,7 +8602,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8615,8 +8617,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8648,7 +8650,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8663,8 +8665,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8696,7 +8698,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8711,8 +8713,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8744,7 +8746,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8759,8 +8761,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8792,7 +8794,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8807,8 +8809,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8840,7 +8842,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8855,8 +8857,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8888,7 +8890,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8903,8 +8905,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8936,7 +8938,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8951,8 +8953,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -8984,7 +8986,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -8999,8 +9001,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9032,7 +9034,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9047,8 +9049,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9080,7 +9082,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9095,8 +9097,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9128,7 +9130,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9143,8 +9145,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9176,7 +9178,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9191,8 +9193,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9224,7 +9226,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9239,8 +9241,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9272,7 +9274,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9287,8 +9289,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9320,7 +9322,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9335,8 +9337,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9368,7 +9370,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9383,8 +9385,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9416,7 +9418,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9431,8 +9433,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9464,7 +9466,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9479,8 +9481,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9512,7 +9514,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9527,8 +9529,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9560,7 +9562,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9575,8 +9577,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9608,7 +9610,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9623,8 +9625,8 @@ { void* res = 0; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9656,7 +9658,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9671,8 +9673,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9699,7 +9701,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9714,8 +9716,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9742,7 +9744,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9757,8 +9759,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9785,7 +9787,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9800,8 +9802,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9828,7 +9830,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9843,8 +9845,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9871,7 +9873,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9886,8 +9888,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9914,7 +9916,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9929,8 +9931,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -9957,7 +9959,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -9972,8 +9974,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10000,7 +10002,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10015,8 +10017,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10043,7 +10045,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10058,8 +10060,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10086,7 +10088,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10101,8 +10103,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10129,7 +10131,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10144,8 +10146,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10172,7 +10174,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10187,8 +10189,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10215,7 +10217,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10230,8 +10232,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10258,7 +10260,7 @@ } } - PyGILState_Release(gstate); + gilguard.release(); return res; } @@ -10273,8 +10275,8 @@ { MSyntax res; - PyGILState_STATE gstate; - gstate = PyGILState_Ensure(); + GILGuard gilguard; + gilguard.ensure(); try { @@ -10301,7 +10303,7 @@ } } - PyGILState_Rele... [truncated message content] |
From: <mb...@us...> - 2006-09-25 15:54:59
|
Revision: 49 http://svn.sourceforge.net/cgkit/?rev=49&view=rev Author: mbaas Date: 2006-09-25 08:54:54 -0700 (Mon, 25 Sep 2006) Log Message: ----------- Added the function threadingEnabled() that can be used to determine whether support for multi-threading is currently enabled or not. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/_main.cpp maya/trunk/maya_wrapper/src_aux/_main.h Modified: maya/trunk/maya_wrapper/src_aux/_main.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-09-22 16:58:41 UTC (rev 48) +++ maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-09-25 15:54:54 UTC (rev 49) @@ -21,6 +21,7 @@ * ***** END LICENSE BLOCK ***** */ #include <maya/MObject.h> +#include <python.h> /** Cast a long value to an MObject. @@ -41,3 +42,14 @@ MObject* obj = (MObject*)addr; return *obj; } + +/** + Return whether support for multi-threading is enabled or not. + + \return True if multi-threading is enabled + */ +bool threadingEnabled() +{ + return PyEval_ThreadsInitialized(); +} + Modified: maya/trunk/maya_wrapper/src_aux/_main.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.h 2006-09-22 16:58:41 UTC (rev 48) +++ maya/trunk/maya_wrapper/src_aux/_main.h 2006-09-25 15:54:54 UTC (rev 49) @@ -28,3 +28,6 @@ #include <maya/MObject.h> MObject toMObject(long addr); + +bool threadingEnabled(); + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-25 15:55:38
|
Revision: 50 http://svn.sourceforge.net/cgkit/?rev=50&view=rev Author: mbaas Date: 2006-09-25 08:55:32 -0700 (Mon, 25 Sep 2006) Log Message: ----------- Moved the implementation of the class GILGuard into a cpp file. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/aux_threading.h Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/aux_threading.cpp Added: maya/trunk/maya_wrapper/src_aux/aux_threading.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/aux_threading.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/aux_threading.cpp 2006-09-25 15:55:32 UTC (rev 50) @@ -0,0 +1,86 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +#include "aux_threading.h" + +/** + Constructor. +*/ +GILGuard::GILGuard() + : numlocks(0), multi_threaded(false) +{ + // Determine whether multi-threading support is enabled or not + multi_threaded = PyEval_ThreadsInitialized(); +} + +/** + Destructor. + + Releases the GIL if it was acquired. +*/ +GILGuard::~GILGuard() +{ + while (numlocks>0) + release(); +} + +/** + Acquire the GIL. + + This method corresponds to the PyGILState_Ensure() function + from the Python/C API. + It can be called several times but must be matched by an + equivalent number of calls to release(). +*/ +void GILGuard::ensure() +{ + if (!multi_threaded) + return; + + if (numlocks==0) + { + gstate = PyGILState_Ensure(); + } + numlocks++; +} + +/** + Release the GIL. + + This method corresponds to the PyGILState_Release() function + from the Python/C API. + It must be called as many times as ensure() was called. + + If it is called without that ensure() has been called, the + method returns immediately. +*/ +void GILGuard::release() +{ + if (numlocks==0) + return; + + numlocks--; + if (numlocks==0) + { + PyGILState_Release(gstate); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/aux_threading.cpp ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/src_aux/aux_threading.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/aux_threading.h 2006-09-25 15:54:54 UTC (rev 49) +++ maya/trunk/maya_wrapper/src_aux/aux_threading.h 2006-09-25 15:55:32 UTC (rev 50) @@ -32,8 +32,10 @@ /** - This class should be used for acquiring/releasing the Python GIL. + This class is used for acquiring/releasing the Python GIL. + If multi-threading is not enabled (i.e. PyEval_ThreadsInitialized() + returns false), then any threading API function is not called. */ class GILGuard { @@ -43,65 +45,15 @@ PyGILState_STATE gstate; + /// This flag stored the result of PyEval_ThreadsInitialized() + bool multi_threaded; + public: - /** - Constructor. - */ - GILGuard() - : numlocks(0) - { - } + GILGuard(); + ~GILGuard(); - /** - Destructor. - - Releases the GIL if it was acquired. - */ - ~GILGuard() - { - while (numlocks>0) - release(); - } - - /** - Acquire the GIL. - - This method corresponds to the PyGILState_Ensure() function - from the Python/C API. - It can be called several times but must be matched by an - equivalent number of calls to release(). - */ - void ensure() - { - if (numlocks==0) - { - gstate = PyGILState_Ensure(); - } - numlocks++; - } - - /** - Release the GIL. - - This method corresponds to the PyGILState_Release() function - from the Python/C API. - It must be called as many times as ensure() was called. - - If it is called without that ensure() has been called, the - method returns immediately. - */ - void release() - { - if (numlocks==0) - return; - - numlocks--; - if (numlocks==0) - { - PyGILState_Release(gstate); - } - } - + void ensure(); + void release(); }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-25 15:57:21
|
Revision: 52 http://svn.sourceforge.net/cgkit/?rev=52&view=rev Author: mbaas Date: 2006-09-25 08:57:14 -0700 (Mon, 25 Sep 2006) Log Message: ----------- Brushed up MMatrix and MFloatMatrix (index operators for reading/writing rows/elements, get() method). Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mfloatmatrix.cpp maya/trunk/maya_wrapper/src_aux/mfloatmatrix.h maya/trunk/maya_wrapper/src_aux/mmatrix.cpp maya/trunk/maya_wrapper/src_aux/mmatrix.h Modified: maya/trunk/maya_wrapper/src_aux/mfloatmatrix.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatmatrix.cpp 2006-09-25 15:56:18 UTC (rev 51) +++ maya/trunk/maya_wrapper/src_aux/mfloatmatrix.cpp 2006-09-25 15:57:14 UTC (rev 52) @@ -26,9 +26,94 @@ #include <sstream> #include "mfloatmatrix.h" +#include "exceptions.h" namespace pyMFloatMatrix { + /** get() + Return the entire matrix as a list of lists. + */ + boost::python::list get(MFloatMatrix& self) + { + boost::python::list res; + for (int i=0; i<4; i++) + { + res.append(__getitem1__(self, i)); + } + return res; + } + + /** __getitem1__ + Return a matrix row as a list of floats. + */ + boost::python::list __getitem1__(MFloatMatrix& self, unsigned int row) + { + if (row>3) + throw EIndexError(); + + float* clist = self[row]; + boost::python::list res; + + for (int i=0; i<4; i++) + res.append(clist[i]); + + return res; + } + + /** __getitem2__ + Return a matrix element. + */ + double __getitem2__(MFloatMatrix& self, boost::python::tuple idxs) + { + unsigned int row = boost::python::extract<unsigned int>(idxs[0]); + unsigned int col = boost::python::extract<unsigned int>(idxs[1]); + + if ((row>3) || (col>3)) + throw EIndexError(); + + return self(row, col); + } + + /** __setitem1__ + Set a matrix row. + */ + void __setitem1__(MFloatMatrix& self, unsigned int row, boost::python::object value) + { + if (row>3) + throw EIndexError(); + + // Assert that 'value' is really a sequence... + if (!PySequence_Check(value.ptr())) + { + PyErr_SetString(PyExc_ValueError, "The value must be a sequence"); + boost::python::throw_error_already_set(); + } + // Assert that the sequence has 4 elements... + if (value.attr("__len__")()!=4) + { + PyErr_SetString(PyExc_ValueError, "The value must contain 4 elements"); + boost::python::throw_error_already_set(); + } + // Set the values... + float* rowptr = self[row]; + for(int i=0; i<4; i++) + rowptr[i] = boost::python::extract< float >(value[i]); + } + + /** __setitem2__ + Set a matrix element. + */ + void __setitem2__(MFloatMatrix& self, boost::python::tuple idxs, float value) + { + unsigned int row = boost::python::extract<unsigned int>(idxs[0]); + unsigned int col = boost::python::extract<unsigned int>(idxs[1]); + + if ((row>3) || (col>3)) + throw EIndexError(); + + self(row, col) = value; + } + // __str__ method boost::python::str __str__(MFloatMatrix& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatmatrix.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatmatrix.h 2006-09-25 15:56:18 UTC (rev 51) +++ maya/trunk/maya_wrapper/src_aux/mfloatmatrix.h 2006-09-25 15:57:14 UTC (rev 52) @@ -33,5 +33,11 @@ */ namespace pyMFloatMatrix { + boost::python::list get(MFloatMatrix& self); + boost::python::list __getitem1__(MFloatMatrix& self, unsigned int row); + double __getitem2__(MFloatMatrix& self, boost::python::tuple idxs); + void __setitem1__(MFloatMatrix& self, unsigned int row, boost::python::object value); + void __setitem2__(MFloatMatrix& self, boost::python::tuple idxs, float value); + boost::python::str __str__(MFloatMatrix& self); } Modified: maya/trunk/maya_wrapper/src_aux/mmatrix.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mmatrix.cpp 2006-09-25 15:56:18 UTC (rev 51) +++ maya/trunk/maya_wrapper/src_aux/mmatrix.cpp 2006-09-25 15:57:14 UTC (rev 52) @@ -26,9 +26,94 @@ #include <sstream> #include "mmatrix.h" +#include "exceptions.h" namespace pyMMatrix { + /** get() + Return the entire matrix as a list of lists. + */ + boost::python::list get(MMatrix& self) + { + boost::python::list res; + for (int i=0; i<4; i++) + { + res.append(__getitem1__(self, i)); + } + return res; + } + + /** __getitem1__ + Return a matrix row as a list of floats. + */ + boost::python::list __getitem1__(MMatrix& self, unsigned int row) + { + if (row>3) + throw EIndexError(); + + double* clist = self[row]; + boost::python::list res; + + for (int i=0; i<4; i++) + res.append(clist[i]); + + return res; + } + + /** __getitem2__ + Return a matrix element. + */ + double __getitem2__(MMatrix& self, boost::python::tuple idxs) + { + unsigned int row = boost::python::extract<unsigned int>(idxs[0]); + unsigned int col = boost::python::extract<unsigned int>(idxs[1]); + + if ((row>3) || (col>3)) + throw EIndexError(); + + return self(row, col); + } + + /** __setitem1__ + Set a matrix row. + */ + void __setitem1__(MMatrix& self, unsigned int row, boost::python::object value) + { + if (row>3) + throw EIndexError(); + + // Assert that 'value' is really a sequence... + if (!PySequence_Check(value.ptr())) + { + PyErr_SetString(PyExc_ValueError, "The value must be a sequence"); + boost::python::throw_error_already_set(); + } + // Assert that the sequence has 4 elements... + if (value.attr("__len__")()!=4) + { + PyErr_SetString(PyExc_ValueError, "The value must contain 4 elements"); + boost::python::throw_error_already_set(); + } + // Set the values... + double* rowptr = self[row]; + for(int i=0; i<4; i++) + rowptr[i] = boost::python::extract< double >(value[i]); + } + + /** __setitem2__ + Set a matrix element. + */ + void __setitem2__(MMatrix& self, boost::python::tuple idxs, double value) + { + unsigned int row = boost::python::extract<unsigned int>(idxs[0]); + unsigned int col = boost::python::extract<unsigned int>(idxs[1]); + + if ((row>3) || (col>3)) + throw EIndexError(); + + self(row, col) = value; + } + // __str__ method boost::python::str __str__(MMatrix& self) { Modified: maya/trunk/maya_wrapper/src_aux/mmatrix.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mmatrix.h 2006-09-25 15:56:18 UTC (rev 51) +++ maya/trunk/maya_wrapper/src_aux/mmatrix.h 2006-09-25 15:57:14 UTC (rev 52) @@ -33,5 +33,11 @@ */ namespace pyMMatrix { + boost::python::list get(MMatrix& self); + boost::python::list __getitem1__(MMatrix& self, unsigned int row); + double __getitem2__(MMatrix& self, boost::python::tuple idxs); + void __setitem1__(MMatrix& self, unsigned int row, boost::python::object value); + void __setitem2__(MMatrix& self, boost::python::tuple idxs, double value); + boost::python::str __str__(MMatrix& self); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-26 16:34:18
|
Revision: 57 http://svn.sourceforge.net/cgkit/?rev=57&view=rev Author: mbaas Date: 2006-09-26 09:34:10 -0700 (Tue, 26 Sep 2006) Log Message: ----------- Bugfix: Misspelled the python header (which didn't get noticed on Windows) Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/_main.cpp maya/trunk/maya_wrapper/src_aux/aux_threading.h Modified: maya/trunk/maya_wrapper/src_aux/_main.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-09-26 13:27:15 UTC (rev 56) +++ maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-09-26 16:34:10 UTC (rev 57) @@ -21,7 +21,7 @@ * ***** END LICENSE BLOCK ***** */ #include <maya/MObject.h> -#include <python.h> +#include <Python.h> /** Cast a long value to an MObject. Modified: maya/trunk/maya_wrapper/src_aux/aux_threading.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/aux_threading.h 2006-09-26 13:27:15 UTC (rev 56) +++ maya/trunk/maya_wrapper/src_aux/aux_threading.h 2006-09-26 16:34:10 UTC (rev 57) @@ -28,7 +28,7 @@ Contains code for supporting multi-threading. */ -#include <python.h> +#include <Python.h> /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-28 12:17:16
|
Revision: 63 http://svn.sourceforge.net/cgkit/?rev=63&view=rev Author: mbaas Date: 2006-09-28 05:17:10 -0700 (Thu, 28 Sep 2006) Log Message: ----------- Added an extra operator (scalar*vector). Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp maya/trunk/maya_wrapper/src_aux/mfloatpoint.h Modified: maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp 2006-09-27 11:28:41 UTC (rev 62) +++ maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp 2006-09-28 12:17:10 UTC (rev 63) @@ -43,3 +43,8 @@ return boost::python::str(s.str()); } } + +MFloatPoint operator*(float s, const MFloatPoint& pnt) +{ + return pnt*s; +} Modified: maya/trunk/maya_wrapper/src_aux/mfloatpoint.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpoint.h 2006-09-27 11:28:41 UTC (rev 62) +++ maya/trunk/maya_wrapper/src_aux/mfloatpoint.h 2006-09-28 12:17:10 UTC (rev 63) @@ -36,3 +36,5 @@ int __len__(MFloatPoint& self); boost::python::str __str__(MFloatPoint& self); } + +MFloatPoint operator*(float s, const MFloatPoint& pnt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-30 11:57:32
|
Revision: 67 http://svn.sourceforge.net/cgkit/?rev=67&view=rev Author: mbaas Date: 2006-09-30 04:57:11 -0700 (Sat, 30 Sep 2006) Log Message: ----------- Added manual wrappe code Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp maya/trunk/maya_wrapper/src_aux/mcolorarray.h maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp maya/trunk/maya_wrapper/src_aux/mdoublearray.h maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp maya/trunk/maya_wrapper/src_aux/mfloatarray.h maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h maya/trunk/maya_wrapper/src_aux/muintarray.cpp maya/trunk/maya_wrapper/src_aux/muintarray.h Added: maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,73 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MColorArray class. +*/ + +#include <sstream> +#include "mcolorarray.h" + +namespace pyMColorArray +{ + + // get() method returning a list + boost::python::list get1(MColorArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MColor& c = self[i]; + res.append(boost::python::make_tuple(c.r, c.g, c.b, c.a)); + } + return res; + } + + // get() method filling a user-provided list + void get2(MColorArray& self, boost::python::list lst) + { + // Delete any existing element.. + lst.slice(boost::python::_, boost::python::_) = boost::python::list(); + + // Fill the list... + for(unsigned int i=0; i<self.length(); i++) + { + MColor& c = self[i]; + lst.append(boost::python::make_tuple(c.r, c.g, c.b, c.a)); + } + } + + + // __setitem__ method + void __setitem__(MColorArray& self, int key, MColor& val) + { + self.set(val, key); + } + + // __str__ method + boost::python::str __str__(MColorArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mcolorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mcolorarray.h + Additional methods for the MColorArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MColorArray.h> + + +/** + This namespace contains extra methods for the MColorArray class. + */ +namespace pyMColorArray +{ + + boost::python::list get1(MColorArray& self); + void get2(MColorArray& self, boost::python::list lst); + + void __setitem__(MColorArray& self, int key, MColor& val); + + boost::python::str __str__(MColorArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mcolorarray.h ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MDoubleArray class. +*/ + +#include <sstream> +#include "mdoublearray.h" + +namespace pyMDoubleArray +{ + + // __str__ method + boost::python::str __str__(MDoubleArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mdoublearray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdoublearray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mdoublearray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mdoublearray.h + Additional methods for the MDoubleArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MDoubleArray.h> + + +/** + This namespace contains extra methods for the MDoubleArray class. + */ +namespace pyMDoubleArray +{ + boost::python::str __str__(MDoubleArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mdoublearray.h ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MFloatArray class. +*/ + +#include <sstream> +#include "mfloatarray.h" + +namespace pyMFloatArray +{ + + // __str__ method + boost::python::str __str__(MFloatArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatarray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mfloatarray.h + Additional methods for the MFloatArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MFloatArray.h> + + +/** + This namespace contains extra methods for the MFloatArray class. + */ +namespace pyMFloatArray +{ + boost::python::str __str__(MFloatArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatarray.h ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MFloatPointArray class. +*/ + +#include <sstream> +#include "mfloatpointarray.h" + +namespace pyMFloatPointArray +{ + + // __str__ method + boost::python::str __str__(MFloatPointArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mfloatpointarray.h + Additional methods for the MFloatPointArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MFloatPointArray.h> + + +/** + This namespace contains extra methods for the MFloatPointArray class. + */ +namespace pyMFloatPointArray +{ + boost::python::str __str__(MFloatPointArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MFloatVectorArray class. +*/ + +#include <sstream> +#include "mfloatvectorarray.h" + +namespace pyMFloatVectorArray +{ + + // __str__ method + boost::python::str __str__(MFloatVectorArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mfloatvectorarray.h + Additional methods for the MFloatVectorArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MFloatVectorArray.h> + + +/** + This namespace contains extra methods for the MFloatVectorArray class. + */ +namespace pyMFloatVectorArray +{ + boost::python::str __str__(MFloatVectorArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/muintarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/muintarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/muintarray.cpp 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MUintArray class. +*/ + +#include <sstream> +#include "muintarray.h" + +namespace pyMUintArray +{ + + // __str__ method + boost::python::str __str__(MUintArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/muintarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/muintarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/muintarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/muintarray.h 2006-09-30 11:57:11 UTC (rev 67) @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file muintarray.h + Additional methods for the MUintArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MUintArray.h> + + +/** + This namespace contains extra methods for the MUintArray class. + */ +namespace pyMUintArray +{ + boost::python::str __str__(MUintArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/muintarray.h ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-02 10:11:50
|
Revision: 71 http://svn.sourceforge.net/cgkit/?rev=71&view=rev Author: mbaas Date: 2006-10-02 03:11:30 -0700 (Mon, 02 Oct 2006) Log Message: ----------- Added some more array methods. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp maya/trunk/maya_wrapper/src_aux/mcolorarray.h maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp maya/trunk/maya_wrapper/src_aux/mdoublearray.h maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp maya/trunk/maya_wrapper/src_aux/mfloatarray.h maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp maya/trunk/maya_wrapper/src_aux/mobjectarray.h maya/trunk/maya_wrapper/src_aux/mpointarray.cpp maya/trunk/maya_wrapper/src_aux/mpointarray.h maya/trunk/maya_wrapper/src_aux/mvectorarray.cpp maya/trunk/maya_wrapper/src_aux/mvectorarray.h Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/mdagpatharray.cpp maya/trunk/maya_wrapper/src_aux/mdagpatharray.h Modified: maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,6 +26,7 @@ #include <sstream> #include "mcolorarray.h" +#include "exceptions.h" namespace pyMColorArray { @@ -58,8 +59,11 @@ // __setitem__ method - void __setitem__(MColorArray& self, int key, MColor& val) + void __setitem__(MColorArray& self, unsigned int key, MColor& val) { + if (key>=self.length()) + throw EIndexError(); + self.set(val, key); } Modified: maya/trunk/maya_wrapper/src_aux/mcolorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -38,7 +38,7 @@ boost::python::list get1(MColorArray& self); void get2(MColorArray& self, boost::python::list lst); - void __setitem__(MColorArray& self, int key, MColor& val); + void __setitem__(MColorArray& self, unsigned int key, MColor& val); boost::python::str __str__(MColorArray& self); } Added: maya/trunk/maya_wrapper/src_aux/mdagpatharray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdagpatharray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mdagpatharray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -0,0 +1,50 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MDagPathArray class. +*/ + +#include <sstream> +#include "mdagpatharray.h" +#include "exceptions.h" + +namespace pyMDagPathArray +{ + + // __setitem__ method + void __setitem__(MDagPathArray& self, unsigned int key, MDagPath& val) + { + if (key>=self.length()) + throw EIndexError(); + + self[key] = val; + } + + // __str__ method + boost::python::str __str__(MDagPathArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mdagpatharray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mdagpatharray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdagpatharray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mdagpatharray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mdagpatharray.h + Additional methods for the MDagPathArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MDagPathArray.h> +#include <maya/MDagPath.h> + +/** + This namespace contains extra methods for the MDagPathArray class. + */ +namespace pyMDagPathArray +{ + void __setitem__(MDagPathArray& self, unsigned int key, MDagPath& val); + + boost::python::str __str__(MDagPathArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mdagpatharray.h ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mdoublearray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,10 +26,46 @@ #include <sstream> #include "mdoublearray.h" +#include "exceptions.h" namespace pyMDoubleArray { + // get() method returning a list + boost::python::list get1(MDoubleArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + double v = self[i]; + res.append(v); + } + return res; + } + + // get() method filling a user-provided list + void get2(MDoubleArray& self, boost::python::list lst) + { + // Delete any existing element.. + lst.slice(boost::python::_, boost::python::_) = boost::python::list(); + + // Fill the list... + for(unsigned int i=0; i<self.length(); i++) + { + double v = self[i]; + lst.append(v); + } + } + + // __setitem__ method + void __setitem__(MDoubleArray& self, unsigned int key, double val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MDoubleArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mdoublearray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mdoublearray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mdoublearray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -34,5 +34,10 @@ */ namespace pyMDoubleArray { + + boost::python::list get1(MDoubleArray& self); + void get2(MDoubleArray& self, boost::python::list lst); + void __setitem__(MDoubleArray& self, unsigned int key, double val); + boost::python::str __str__(MDoubleArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mfloatarray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,10 +26,46 @@ #include <sstream> #include "mfloatarray.h" +#include "exceptions.h" namespace pyMFloatArray { + // get() method returning a list + boost::python::list get1(MFloatArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + float v = self[i]; + res.append(v); + } + return res; + } + + // get() method filling a user-provided list + void get2(MFloatArray& self, boost::python::list lst) + { + // Delete any existing element.. + lst.slice(boost::python::_, boost::python::_) = boost::python::list(); + + // Fill the list... + for(unsigned int i=0; i<self.length(); i++) + { + float v = self[i]; + lst.append(v); + } + } + + // __setitem__ method + void __setitem__(MFloatArray& self, unsigned int key, float val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MFloatArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatarray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mfloatarray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -34,5 +34,10 @@ */ namespace pyMFloatArray { + + boost::python::list get1(MFloatArray& self); + void get2(MFloatArray& self, boost::python::list lst); + void __setitem__(MFloatArray& self, unsigned int key, float val); + boost::python::str __str__(MFloatArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,6 +26,7 @@ #include <sstream> #include "mobjectarray.h" +#include "exceptions.h" namespace pyMObjectArray { @@ -58,8 +59,11 @@ // __setitem__ method - void __setitem__(MObjectArray& self, int key, MObject& val) + void __setitem__(MObjectArray& self, unsigned int key, MObject& val) { + if (key>=self.length()) + throw EIndexError(); + self.set(val, key); } Modified: maya/trunk/maya_wrapper/src_aux/mobjectarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mobjectarray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mobjectarray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -38,7 +38,7 @@ boost::python::list get1(MObjectArray& self); void get2(MObjectArray& self, boost::python::list lst); - void __setitem__(MObjectArray& self, int key, MObject& val); + void __setitem__(MObjectArray& self, unsigned int key, MObject& val); // boost::python::str __str__(MObjectArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mpointarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpointarray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mpointarray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,6 +26,7 @@ #include <sstream> #include "mpointarray.h" +#include "exceptions.h" namespace pyMPointArray { @@ -58,8 +59,11 @@ // __setitem__ method - void __setitem__(MPointArray& self, int key, MPoint& val) + void __setitem__(MPointArray& self, unsigned int key, MPoint& val) { + if (key>=self.length()) + throw EIndexError(); + self.set(val, key); } Modified: maya/trunk/maya_wrapper/src_aux/mpointarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpointarray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mpointarray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -38,7 +38,7 @@ boost::python::list get1(MPointArray& self); void get2(MPointArray& self, boost::python::list lst); - void __setitem__(MPointArray& self, int key, MPoint& val); + void __setitem__(MPointArray& self, unsigned int key, MPoint& val); boost::python::str __str__(MPointArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mvectorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mvectorarray.cpp 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mvectorarray.cpp 2006-10-02 10:11:30 UTC (rev 71) @@ -26,6 +26,7 @@ #include <sstream> #include "mvectorarray.h" +#include "exceptions.h" namespace pyMVectorArray { @@ -58,8 +59,11 @@ // __setitem__ method - void __setitem__(MVectorArray& self, int key, MVector& val) + void __setitem__(MVectorArray& self, unsigned int key, MVector& val) { + if (key>=self.length()) + throw EIndexError(); + self.set(val, key); } Modified: maya/trunk/maya_wrapper/src_aux/mvectorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mvectorarray.h 2006-10-01 16:37:17 UTC (rev 70) +++ maya/trunk/maya_wrapper/src_aux/mvectorarray.h 2006-10-02 10:11:30 UTC (rev 71) @@ -37,7 +37,7 @@ boost::python::list get1(MVectorArray& self); void get2(MVectorArray& self, boost::python::list lst); - void __setitem__(MVectorArray& self, int key, MVector& val); + void __setitem__(MVectorArray& self, unsigned int key, MVector& val); boost::python::str __str__(MVectorArray& self); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-02 15:54:20
|
Revision: 74 http://svn.sourceforge.net/cgkit/?rev=74&view=rev Author: mbaas Date: 2006-10-02 08:54:03 -0700 (Mon, 02 Oct 2006) Log Message: ----------- Added __setitem__ methods. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp maya/trunk/maya_wrapper/src_aux/mfloatpoint.h maya/trunk/maya_wrapper/src_aux/mfloatvector.cpp maya/trunk/maya_wrapper/src_aux/mfloatvector.h maya/trunk/maya_wrapper/src_aux/mpoint.cpp maya/trunk/maya_wrapper/src_aux/mpoint.h maya/trunk/maya_wrapper/src_aux/mvector.cpp maya/trunk/maya_wrapper/src_aux/mvector.h Modified: maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mfloatpoint.cpp 2006-10-02 15:54:03 UTC (rev 74) @@ -26,6 +26,7 @@ #include <sstream> #include "mfloatpoint.h" +#include "exceptions.h" namespace pyMFloatPoint { @@ -35,6 +36,15 @@ return 4; } + // __setitem__ method + void __setitem__(MFloatPoint& self, unsigned int key, float val) + { + if (key>=4) + throw EIndexError(); + + self[key] = val; + } + // __str__ method boost::python::str __str__(MFloatPoint& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatpoint.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpoint.h 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mfloatpoint.h 2006-10-02 15:54:03 UTC (rev 74) @@ -34,6 +34,7 @@ namespace pyMFloatPoint { int __len__(MFloatPoint& self); + void __setitem__(MFloatPoint& self, unsigned int key, float val); boost::python::str __str__(MFloatPoint& self); } Modified: maya/trunk/maya_wrapper/src_aux/mfloatvector.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvector.cpp 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mfloatvector.cpp 2006-10-02 15:54:03 UTC (rev 74) @@ -26,6 +26,7 @@ #include <sstream> #include "mfloatvector.h" +#include "exceptions.h" namespace pyMFloatVector { @@ -35,6 +36,15 @@ return 3; } + // __setitem__ method + void __setitem__(MFloatVector& self, unsigned int key, float val) + { + if (key>=3) + throw EIndexError(); + + self[key] = val; + } + // __str__ method boost::python::str __str__(MFloatVector& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatvector.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvector.h 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mfloatvector.h 2006-10-02 15:54:03 UTC (rev 74) @@ -34,5 +34,6 @@ namespace pyMFloatVector { int __len__(MFloatVector& self); + void __setitem__(MFloatVector& self, unsigned int key, float val); boost::python::str __str__(MFloatVector& self); } Modified: maya/trunk/maya_wrapper/src_aux/mpoint.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpoint.cpp 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mpoint.cpp 2006-10-02 15:54:03 UTC (rev 74) @@ -26,6 +26,7 @@ #include <sstream> #include "mpoint.h" +#include "exceptions.h" namespace pyMPoint { @@ -35,6 +36,15 @@ return 4; } + // __setitem__ method + void __setitem__(MPoint& self, unsigned int key, double val) + { + if (key>=4) + throw EIndexError(); + + self[key] = val; + } + // __str__ method boost::python::str __str__(MPoint& self) { Modified: maya/trunk/maya_wrapper/src_aux/mpoint.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpoint.h 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mpoint.h 2006-10-02 15:54:03 UTC (rev 74) @@ -34,6 +34,7 @@ namespace pyMPoint { int __len__(MPoint& self); + void __setitem__(MPoint& self, unsigned int key, double val); boost::python::str __str__(MPoint& self); } Modified: maya/trunk/maya_wrapper/src_aux/mvector.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mvector.cpp 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mvector.cpp 2006-10-02 15:54:03 UTC (rev 74) @@ -45,6 +45,15 @@ return boost::python::str(s.str()); } + // __setitem__ method + void __setitem__(MVector& self, unsigned int key, double val) + { + if (key>=3) + throw EIndexError(); + + self[key] = val; + } + /* Replacement for rotateBy(const double rotXYZ[3], RotationOrder order) The replacement accepts a Python sequence as first argument. Modified: maya/trunk/maya_wrapper/src_aux/mvector.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mvector.h 2006-10-02 14:11:11 UTC (rev 73) +++ maya/trunk/maya_wrapper/src_aux/mvector.h 2006-10-02 15:54:03 UTC (rev 74) @@ -39,5 +39,6 @@ MVector rotateBy(MVector& self, object rotXYZ, MTransformationMatrix::RotationOrder order); int __len__(MVector& self); + void __setitem__(MVector& self, unsigned int key, double val); boost::python::str __str__(MVector& self); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-02 16:31:44
|
Revision: 75 http://svn.sourceforge.net/cgkit/?rev=75&view=rev Author: mbaas Date: 2006-10-02 09:31:36 -0700 (Mon, 02 Oct 2006) Log Message: ----------- Added a manual wrapper for the set() method that can be used to set the entire array. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp maya/trunk/maya_wrapper/src_aux/mcolorarray.h Modified: maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp 2006-10-02 15:54:03 UTC (rev 74) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.cpp 2006-10-02 16:31:36 UTC (rev 75) @@ -67,6 +67,41 @@ self.set(val, key); } + // Replacement for set(double elements[][4], unsigned size) + void set_list(MColorArray& self, boost::python::object elements) + { + // Check if elements is a sequence... + if (!PySequence_Check(elements.ptr())) + throw EValueError("Argument must be a sequence"); + + // Get the number of elements... + unsigned int size = boost::python::extract<unsigned int>(elements.attr("__len__")()); + if (size!=self.length()) + throw EValueError("Invalid sequence length. The length must be identical to the length of the color array."); + + // Copy the colors into the array... + for(unsigned int i=0; i<size; i++) + { + boost::python::object color = elements[i]; + // Is the element a sequence? + if (!PySequence_Check(color.ptr())) + throw EValueError("The items must be sequences."); + + unsigned int colsize = boost::python::extract<int>(color.attr("__len__")()); + if (colsize<3 || colsize>4) + throw EValueError("The items must be sequences of 3 or 4 floats."); + + float r = boost::python::extract<float>(color[0]); + float g = boost::python::extract<float>(color[1]); + float b = boost::python::extract<float>(color[2]); + float a = 1.0; + if (colsize==4) + a = boost::python::extract<float>(color[3]);; + + self.set(i, r, g, b, a); + } + } + // __str__ method boost::python::str __str__(MColorArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mcolorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mcolorarray.h 2006-10-02 15:54:03 UTC (rev 74) +++ maya/trunk/maya_wrapper/src_aux/mcolorarray.h 2006-10-02 16:31:36 UTC (rev 75) @@ -37,8 +37,8 @@ boost::python::list get1(MColorArray& self); void get2(MColorArray& self, boost::python::list lst); - void __setitem__(MColorArray& self, unsigned int key, MColor& val); + void set_list(MColorArray& self, boost::python::object elements); boost::python::str __str__(MColorArray& self); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-03 10:05:33
|
Revision: 84 http://svn.sourceforge.net/cgkit/?rev=84&view=rev Author: mbaas Date: 2006-10-03 03:05:25 -0700 (Tue, 03 Oct 2006) Log Message: ----------- Added manual wrappers for the MTimeArray class. Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/mtimearray.cpp maya/trunk/maya_wrapper/src_aux/mtimearray.h Added: maya/trunk/maya_wrapper/src_aux/mtimearray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mtimearray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mtimearray.cpp 2006-10-03 10:05:25 UTC (rev 84) @@ -0,0 +1,76 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MTimeArray class. +*/ + +#include <sstream> +#include "mtimearray.h" +#include "exceptions.h" + +namespace pyMTimeArray +{ + + // get() method returning a list + boost::python::list get1(MTimeArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MTime& p = self[i]; + res.append(p); + } + return res; + } + + // get() method filling a user-provided list + void get2(MTimeArray& self, boost::python::list lst) + { + // Delete any existing element.. + lst.slice(boost::python::_, boost::python::_) = boost::python::list(); + + // Fill the list... + for(unsigned int i=0; i<self.length(); i++) + { + MTime& p = self[i]; + lst.append(p); + } + } + + // __setitem__ method + void __setitem__(MTimeArray& self, unsigned int key, MTime& val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + + // __str__ method + boost::python::str __str__(MTimeArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Property changes on: maya/trunk/maya_wrapper/src_aux/mtimearray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mtimearray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mtimearray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mtimearray.h 2006-10-03 10:05:25 UTC (rev 84) @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/** + \file mtimearray.h + Additional methods for the MTimeArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MTimeArray.h> +#include <maya/MTime.h> + +/** + This namespace contains extra methods for the MTimeArray class. + */ +namespace pyMTimeArray +{ + + boost::python::list get1(MTimeArray& self); + void get2(MTimeArray& self, boost::python::list lst); + + void __setitem__(MTimeArray& self, unsigned int key, MTime& val); + + boost::python::str __str__(MTimeArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mtimearray.h ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-18 13:43:30
|
Revision: 132 http://svn.sourceforge.net/cgkit/?rev=132&view=rev Author: mbaas Date: 2006-10-18 06:43:19 -0700 (Wed, 18 Oct 2006) Log Message: ----------- Added the data exchange functionality. Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/data_exchange.cpp maya/trunk/maya_wrapper/src_aux/data_exchange.h Added: maya/trunk/maya_wrapper/src_aux/data_exchange.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/data_exchange.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/data_exchange.cpp 2006-10-18 13:43:19 UTC (rev 132) @@ -0,0 +1,65 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +#include <iostream> +#include "data_exchange.h" + +/** + Retrieve the data exchange table from the sourcepy plugin. + + The return value is a pointer to the table from the plugin or NULL + if the table couldn't be retrieved. + */ +ExchangeTable* getExchangeTable() +{ + // Import the module 'sys' + PyObject* sysmod = PyImport_ImportModule("sys"); + if (sysmod==NULL) + { + std::cout<<"Error: Could not import Python module 'sys'."<<std::endl; + return NULL; + } + + // Get the CObject object that contains the pointer to the table + PyObject* ctable = PyObject_GetAttrString(sysmod, "_py_data_exchange_table"); + if (ctable==NULL) + { + std::cout<<"Error: No Python data exchange table found."<<std::endl; + Py_DECREF(sysmod); + return NULL; + } + + // Check if the obtained object really is a CObject + if (!PyCObject_Check(ctable)) + { + std::cout<<"Error: Python data exchange table is of invalid type."<<std::endl; + Py_DECREF(ctable); + Py_DECREF(sysmod); + return NULL; + } + + ExchangeTable* ptr = (ExchangeTable*)(PyCObject_AsVoidPtr(ctable)); + + Py_DECREF(ctable); + Py_DECREF(sysmod); + return ptr; +} Property changes on: maya/trunk/maya_wrapper/src_aux/data_exchange.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/data_exchange.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/data_exchange.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/data_exchange.h 2006-10-18 13:43:19 UTC (rev 132) @@ -0,0 +1,41 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Python Computer Graphics Kit. + * + * The Initial Developer of the Original Code is Matthias Baas. + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +#include <maya/MObject.h> +#include <Python.h> + +/** + Data exchange table structure. + + This class describes the data structure that is filled by the sourcepy + plugin to pass information from the plugin to the maya Python package. + + (This one must match the one in sourcepy) + */ +struct ExchangeTable +{ + MObject* pluginobj; + + ExchangeTable() : pluginobj(0) {} +}; + +ExchangeTable* getExchangeTable(); Property changes on: maya/trunk/maya_wrapper/src_aux/data_exchange.h ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-18 13:45:24
|
Revision: 133 http://svn.sourceforge.net/cgkit/?rev=133&view=rev Author: mbaas Date: 2006-10-18 06:45:16 -0700 (Wed, 18 Oct 2006) Log Message: ----------- Added the pluginObject() function that retrieves the plugin object from the sourcepy plugin. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/_main.cpp maya/trunk/maya_wrapper/src_aux/_main.h Modified: maya/trunk/maya_wrapper/src_aux/_main.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-10-18 13:43:19 UTC (rev 132) +++ maya/trunk/maya_wrapper/src_aux/_main.cpp 2006-10-18 13:45:16 UTC (rev 133) @@ -22,25 +22,32 @@ #include <maya/MObject.h> #include <Python.h> +#include "exceptions.h" +#include "data_exchange.h" /** - Cast a long value to an MObject. + Return the MObject that was passed to the C++ initializePlugin() function. - This function takes a long value and casts it to an MObject. - The only purpose of this function is to "recreate" the Python object - of the MObject that was passed to the Python plugin in its - initializePlugin() function. This way Python programs can use the - MFnPlugin function set and register plugin classes. + The pointer is obtained by retrieving the data exchange table where + the sourcepy plugin has stored the pointer. + A RuntimeError exception is thrown when the exchange table could not + be retrieved. - \param addr The address of an MObject object. - \return The object that \a addr was referencing. - \warning Only for internal use! (the function doesn't check if \a addr - really references a MObject) + \return The plugin object that was passed to initializePlugin() in the sourcepy plugin. */ -MObject toMObject(long addr) +MObject pluginObject() { - MObject* obj = (MObject*)addr; - return *obj; + static MObject* pluginobj = 0; + + if (pluginobj==0) + { + ExchangeTable* table = getExchangeTable(); + if (table==0) + throw ERuntimeError("Could not retrieve data exchange table to obtain the plugin object."); + + pluginobj = table->pluginobj; + } + return *pluginobj; } /** Modified: maya/trunk/maya_wrapper/src_aux/_main.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/_main.h 2006-10-18 13:43:19 UTC (rev 132) +++ maya/trunk/maya_wrapper/src_aux/_main.h 2006-10-18 13:45:16 UTC (rev 133) @@ -27,7 +27,7 @@ #include <maya/MObject.h> -MObject toMObject(long addr); +MObject pluginObject(); bool threadingEnabled(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2007-01-02 14:58:21
|
Revision: 202 http://svn.sourceforge.net/cgkit/?rev=202&view=rev Author: mbaas Date: 2007-01-02 06:58:20 -0800 (Tue, 02 Jan 2007) Log Message: ----------- Switched to Py_ssize_t which is necessary for Python 2.5. For previous Python versions an appropriate typedef is introduced so that these versions should still continue to work. Modified Paths: -------------- maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp maya/trunk/maya_wrapper/src_aux/messagehelpers.h Modified: maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp 2006-12-30 14:45:51 UTC (rev 201) +++ maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp 2007-01-02 14:58:20 UTC (rev 202) @@ -1420,7 +1420,7 @@ boost::python::object clientData) { char* buffer = 0; - int length = 0; + Py_ssize_t length = 0; // Obtain the string buffer if clientData is not None if (clientData!=boost::python::object()) Modified: maya/trunk/maya_wrapper/src_aux/messagehelpers.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/messagehelpers.h 2006-12-30 14:45:51 UTC (rev 201) +++ maya/trunk/maya_wrapper/src_aux/messagehelpers.h 2007-01-02 14:58:20 UTC (rev 202) @@ -51,6 +51,10 @@ #include <maya/MDGModifier.h> #include <maya/MUintArray.h> +#if PY_VERSION_HEX < 0x02050000 +typedef int Py_ssize_t; +#endif + namespace pyMMessage { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |