Thread: [cgkit-commits] SF.net SVN: cgkit: [6] maya/trunk/maya_wrapper
Brought to you by:
mbaas
From: <mb...@us...> - 2006-05-30 15:47:51
|
Revision: 6 Author: mbaas Date: 2006-05-30 08:47:35 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=6&view=rev Log Message: ----------- Switched from upper-case GUI to lower-case gui Modified Paths: -------------- maya/trunk/maya_wrapper/maya/gui/guiobjectbase.py maya/trunk/maya_wrapper/maya/gui/scripttable.py maya/trunk/maya_wrapper/maya/gui/textscrolllist.py maya/trunk/maya_wrapper/maya/initmaya/pythoneditor.py maya/trunk/maya_wrapper/maya/pluginmanagergui.py maya/trunk/maya_wrapper/maya/unittest/unittestgui.py maya/trunk/maya_wrapper/setup.py Modified: maya/trunk/maya_wrapper/maya/gui/guiobjectbase.py =================================================================== --- maya/trunk/maya_wrapper/maya/gui/guiobjectbase.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/gui/guiobjectbase.py 2006-05-30 15:47:35 UTC (rev 6) @@ -3,7 +3,7 @@ ###################################################################### import maya.api -import maya.GUI +import maya.gui from maya import mel from maya import _mel import types, copy, inspect @@ -328,7 +328,7 @@ if ((shortname in cdesc.commandattrs) or (shortname in cdesc.callbackattrs)): id = self.callableId(shortname) - func,args = maya.GUI._getCallable(id) + func,args = maya.gui._getCallable(id) # Return the function if it is set, otherwise proceed # as normal and return the string that is set if func!=None: @@ -369,7 +369,7 @@ """Return a string containing the MEL attribute value. """ id = self.callableId(shortname) - maya.GUI._deregisterCallable(id) + maya.gui._deregisterCallable(id) if val==None: return "" # Is the value a string? Then it's MEL code... @@ -384,7 +384,7 @@ args = None # print "Register callback callable",cmd - maya.GUI._registerCallable(id, cmd, args) + maya.gui._registerCallable(id, cmd, args) funcname = id.replace("|", "_") melcode = self._classdesc.callbackattrs[shortname]%(funcname, id) # print "EXECUTING:" @@ -397,7 +397,7 @@ """Return a string containing the command string. """ id = self.callableId(shortname) - maya.GUI._deregisterCallable(id) + maya.gui._deregisterCallable(id) if val==None: return "" # Is the value a string? Then it's MEL code... @@ -412,7 +412,7 @@ args = None # print "Register callable",cmd - maya.GUI._registerCallable(id, cmd, args) + maya.gui._registerCallable(id, cmd, args) return self._classdesc.commandattrs[shortname]%id def callableId(self, shortname): @@ -450,7 +450,7 @@ ## key = self._name ## if id!=None: ## key += str(id) -## maya.GUI._registerCallable(key, cmd, args) +## maya.gui._registerCallable(key, cmd, args) ## command = 'python "_callCallable(\'%s\')"'%key ## return command Modified: maya/trunk/maya_wrapper/maya/gui/scripttable.py =================================================================== --- maya/trunk/maya_wrapper/maya/gui/scripttable.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/gui/scripttable.py 2006-05-30 15:47:35 UTC (rev 6) @@ -2,7 +2,7 @@ # ScriptTable control ###################################################################### -import maya.GUI +import maya.gui from guiobjectbase import GUIObjectBase, declareCallbackAttr from maya import mel Modified: maya/trunk/maya_wrapper/maya/gui/textscrolllist.py =================================================================== --- maya/trunk/maya_wrapper/maya/gui/textscrolllist.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/gui/textscrolllist.py 2006-05-30 15:47:35 UTC (rev 6) @@ -2,7 +2,7 @@ # TextScrollList control ###################################################################### -import maya.GUI +import maya.gui from guiobjectbase import GUIObjectBase, declareCommandAttr from maya import mel Modified: maya/trunk/maya_wrapper/maya/initmaya/pythoneditor.py =================================================================== --- maya/trunk/maya_wrapper/maya/initmaya/pythoneditor.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/initmaya/pythoneditor.py 2006-05-30 15:47:35 UTC (rev 6) @@ -1,7 +1,7 @@ # Python Editor import sys, StringIO -from maya.GUI import * +from maya.gui import * from maya import mel from maya import api Modified: maya/trunk/maya_wrapper/maya/pluginmanagergui.py =================================================================== --- maya/trunk/maya_wrapper/maya/pluginmanagergui.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/pluginmanagergui.py 2006-05-30 15:47:35 UTC (rev 6) @@ -1,7 +1,7 @@ # Python plugin manager window import os.path, glob -from maya.GUI import * +from maya.gui import * from maya import pluginmanager from maya import mel import maya._mel Modified: maya/trunk/maya_wrapper/maya/unittest/unittestgui.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/unittestgui.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/maya/unittest/unittestgui.py 2006-05-30 15:47:35 UTC (rev 6) @@ -1,7 +1,7 @@ # Unit test GUI import os.path, types -from maya.GUI import * +from maya.gui import * from maya import mel from maya import api import maya.unittest Modified: maya/trunk/maya_wrapper/setup.py =================================================================== --- maya/trunk/maya_wrapper/setup.py 2006-05-29 13:32:40 UTC (rev 5) +++ maya/trunk/maya_wrapper/setup.py 2006-05-30 15:47:35 UTC (rev 6) @@ -189,7 +189,7 @@ url = "http://cgkit.sourceforge.net", packages = ["maya", "maya.api", "maya._mel", "maya.mel", - "maya.initmaya", "maya.GUI", + "maya.initmaya", "maya.gui", "maya.unittest", "maya.unittest.sdk_unittests"], ext_modules=[Extension("maya._api", srcs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-05-30 15:50:38
|
Revision: 7 Author: mbaas Date: 2006-05-30 08:50:26 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=7&view=rev Log Message: ----------- Added some ignore entries Modified Paths: -------------- maya/trunk/maya_wrapper/maya_sdk.h maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h Property Changed: ---------------- maya/trunk/maya_wrapper/ Property changes on: maya/trunk/maya_wrapper ___________________________________________________________________ Name: svn:ignore - config.cfg build dist query.log decoration.log cache html *.pyc MANIFEST + config.cfg build dist *.log cache html *.pyc MANIFEST env.sh Modified: maya/trunk/maya_wrapper/maya_sdk.h =================================================================== --- maya/trunk/maya_wrapper/maya_sdk.h 2006-05-30 15:47:35 UTC (rev 6) +++ maya/trunk/maya_wrapper/maya_sdk.h 2006-05-30 15:50:26 UTC (rev 7) @@ -1,238 +1,238 @@ -#include <maya/M3dView.h> -#include <maya/MAngle.h> -#include <maya/MAnimControl.h> -#include <maya/MAnimCurveChange.h> -#include <maya/MAnimCurveClipboard.h> -#include <maya/MAnimCurveClipboardItem.h> -#include <maya/MAnimCurveClipboardItemArray.h> -#include <maya/MAnimUtil.h> -#include <maya/MArgDatabase.h> -#include <maya/MArgList.h> -#include <maya/MArgParser.h> -#include <maya/MArrayDataBuilder.h> -#include <maya/MArrayDataHandle.h> -#include <maya/MAttributeIndex.h> -#include <maya/MAttributeSpec.h> -#include <maya/MAttributeSpecArray.h> -#include <maya/MBoundingBox.h> -#include <maya/MClothConstraint.h> -#include <maya/MColor.h> -#include <maya/MColorArray.h> -#include <maya/MCommandResult.h> -#include <maya/MComputation.h> -#include <maya/MDGContext.h> -#include <maya/MDGModifier.h> -#include <maya/MDagModifier.h> -#include <maya/MDagPath.h> -#include <maya/MDagPathArray.h> -#include <maya/MDataBlock.h> -#include <maya/MDataHandle.h> -#include <maya/MDeviceChannel.h> -#include <maya/MDeviceState.h> -#include <maya/MDistance.h> -#include <maya/MDoubleArray.h> -#include <maya/MDrawInfo.h> -#include <maya/MDrawProcedureBase.h> -#include <maya/MDrawRequest.h> -#include <maya/MDrawRequestQueue.h> -#include <maya/MDynSweptLine.h> -#include <maya/MDynSweptTriangle.h> -#include <maya/MEulerRotation.h> -#include <maya/MEvent.h> -#include <maya/MFeedbackLine.h> -#include <maya/MFileIO.h> -#include <maya/MFileObject.h> -#include <maya/MFloatArray.h> -#include <maya/MFloatMatrix.h> -#include <maya/MFloatPoint.h> -#include <maya/MFloatPointArray.h> -#include <maya/MFloatVector.h> -#include <maya/MFloatVectorArray.h> -#include <maya/MFn.h> -#include <maya/MFnAirField.h> -#include <maya/MFnAmbientLight.h> -#include <maya/MFnAnimCurve.h> -#include <maya/MFnAnisotropyShader.h> -#include <maya/MFnAreaLight.h> -#include <maya/MFnArrayAttrsData.h> -#include <maya/MFnAttribute.h> -#include <maya/MFnBase.h> -#include <maya/MFnBlendShapeDeformer.h> -#include <maya/MFnBlinnShader.h> -#include <maya/MFnCamera.h> -#include <maya/MFnCharacter.h> -#include <maya/MFnCircleSweepManip.h> -#include <maya/MFnClip.h> -#include <maya/MFnComponent.h> -#include <maya/MFnComponentListData.h> -#include <maya/MFnCompoundAttribute.h> -#include <maya/MFnCurveSegmentManip.h> -#include <maya/MFnDagNode.h> -#include <maya/MFnData.h> -#include <maya/MFnDependencyNode.h> -#include <maya/MFnDirectionManip.h> -#include <maya/MFnDirectionalLight.h> -#include <maya/MFnDiscManip.h> -#include <maya/MFnDistanceManip.h> -#include <maya/MFnDoubleIndexedComponent.h> -#include <maya/MFnDragField.h> -#include <maya/MFnDynSweptGeometryData.h> -#include <maya/MFnEnumAttribute.h> -#include <maya/MFnExpression.h> -#include <maya/MFnField.h> -#include <maya/MFnFreePointTriadManip.h> -#include <maya/MFnGenericAttribute.h> -#include <maya/MFnGeometryData.h> -#include <maya/MFnGeometryFilter.h> -#include <maya/MFnGravityField.h> -#include <maya/MFnHikEffector.h> -#include <maya/MFnIkEffector.h> -#include <maya/MFnIkHandle.h> -#include <maya/MFnIkJoint.h> -#include <maya/MFnIkSolver.h> -#include <maya/MFnIntArrayData.h> -#include <maya/MFnKeyframeDelta.h> -#include <maya/MFnKeyframeDeltaAddRemove.h> -#include <maya/MFnKeyframeDeltaBlockAddRemove.h> -#include <maya/MFnKeyframeDeltaBreakdown.h> -#include <maya/MFnKeyframeDeltaInfType.h> -#include <maya/MFnKeyframeDeltaMove.h> -#include <maya/MFnKeyframeDeltaScale.h> -#include <maya/MFnKeyframeDeltaTangent.h> -#include <maya/MFnKeyframeDeltaWeighted.h> -#include <maya/MFnLambertShader.h> -#include <maya/MFnLattice.h> -#include <maya/MFnLatticeDeformer.h> -#include <maya/MFnLayeredShader.h> -#include <maya/MFnLight.h> -#include <maya/MFnLightDataAttribute.h> -#include <maya/MFnManip3D.h> -#include <maya/MFnMatrixAttribute.h> -#include <maya/MFnMatrixData.h> -#include <maya/MFnMesh.h> -#include <maya/MFnMessageAttribute.h> -#include <maya/MFnMotionPath.h> -#include <maya/MFnNewtonField.h> -#include <maya/MFnNonAmbientLight.h> -#include <maya/MFnNonExtendedLight.h> -#include <maya/MFnNumericAttribute.h> -#include <maya/MFnNumericData.h> -#include <maya/MFnNurbsCurve.h> -#include <maya/MFnNurbsCurveData.h> -#include <maya/MFnNurbsSurface.h> -#include <maya/MFnNurbsSurfaceData.h> -#include <maya/MFnParticleSystem.h> -#include <maya/MFnPartition.h> -#include <maya/MFnPfxGeometry.h> -#include <maya/MFnPhongEShader.h> -#include <maya/MFnPhongShader.h> -#include <maya/MFnPlugin.h> -#include <maya/MFnPointArrayData.h> -#include <maya/MFnPointLight.h> -#include <maya/MFnPointOnCurveManip.h> -#include <maya/MFnPointOnSurfaceManip.h> -#include <maya/MFnRadialField.h> -#include <maya/MFnReflectShader.h> -#include <maya/MFnRenderLayer.h> -#include <maya/MFnRotateManip.h> -#include <maya/MFnScaleManip.h> -#include <maya/MFnSet.h> -#include <maya/MFnSingleIndexedComponent.h> -#include <maya/MFnSkinCluster.h> -#include <maya/MFnSphereData.h> -#include <maya/MFnSpotLight.h> -#include <maya/MFnStateManip.h> -#include <maya/MFnStringArrayData.h> -#include <maya/MFnStringData.h> -#include <maya/MFnSubd.h> -#include <maya/MFnSubdNames.h> -#include <maya/MFnToggleManip.h> -#include <maya/MFnTransform.h> -#include <maya/MFnTripleIndexedComponent.h> -#include <maya/MFnTurbulenceField.h> -#include <maya/MFnTypedAttribute.h> -#include <maya/MFnUInt64ArrayData.h> -#include <maya/MFnUniformField.h> -#include <maya/MFnUnitAttribute.h> -#include <maya/MFnVectorArrayData.h> -#include <maya/MFnVolumeAxisField.h> -#include <maya/MFnVolumeLight.h> -#include <maya/MFnVortexField.h> -#include <maya/MFnWeightGeometryFilter.h> -#include <maya/MFnWireDeformer.h> -#include <maya/MGlobal.h> -#include <maya/MHardwareRenderer.h> -#include <maya/MIkHandleGroup.h> -#include <maya/MIkSystem.h> -#include <maya/MImage.h> -#include <maya/MIntArray.h> -#include <maya/MItCurveCV.h> -#include <maya/MItDag.h> -#include <maya/MItDependencyGraph.h> -#include <maya/MItDependencyNodes.h> -#include <maya/MItGeometry.h> -#include <maya/MItInstancer.h> -#include <maya/MItMeshEdge.h> -#include <maya/MItMeshFaceVertex.h> -#include <maya/MItMeshPolygon.h> -#include <maya/MItMeshVertex.h> -#include <maya/MItSelectionList.h> -#include <maya/MItSubdEdge.h> -#include <maya/MItSubdFace.h> -#include <maya/MItSubdVertex.h> -#include <maya/MItSurfaceCV.h> -#include <maya/MIteratorType.h> -#include <maya/MLibrary.h> -#include <maya/MLightLinks.h> -#include <maya/MManipData.h> -#include <maya/MMaterial.h> -#include <maya/MMatrix.h> -#include <maya/MObject.h> -#include <maya/MObjectArray.h> -#include <maya/MObjectHandle.h> -#include <maya/MPlug.h> -#include <maya/MPlugArray.h> -#include <maya/MPoint.h> -#include <maya/MPointArray.h> -#include <maya/MProgressWindow.h> -#include <maya/MPxCommand.h> -#include <maya/MPxContext.h> -#include <maya/MPxData.h> -#include <maya/MPxDeformerNode.h> -#include <maya/MPxEmitterNode.h> -#include <maya/MPxFieldNode.h> -#include <maya/MPxFileTranslator.h> -#include <maya/MPxLocatorNode.h> -#include <maya/MPxNode.h> -#include <maya/MPxObjectSet.h> -#include <maya/MPxSpringNode.h> -#include <maya/MQuaternion.h> -#include <maya/MRampAttribute.h> -#include <maya/MRenderData.h> -#include <maya/MRenderLine.h> -#include <maya/MRenderLineArray.h> -#include <maya/MRenderShadowData.h> -#include <maya/MRenderUtil.h> -#include <maya/MRenderView.h> -#include <maya/MSelectInfo.h> -#include <maya/MSelectionList.h> -#include <maya/MSelectionMask.h> -#include <maya/MTypes.h> -#include <maya/MStatus.h> -#include <maya/MString.h> -#include <maya/MStringArray.h> -#include <maya/MSwatchRenderBase.h> -#include <maya/MSyntax.h> -#include <maya/MTesselationParams.h> -#include <maya/MTime.h> -#include <maya/MTimeArray.h> -#include <maya/MTimer.h> -#include <maya/MToolsInfo.h> -#include <maya/MTransformationMatrix.h> -#include <maya/MTrimBoundaryArray.h> -#include <maya/MTypeId.h> -#include <maya/MUintArray.h> -#include <maya/MUint64Array.h> -#include <maya/MVector.h> -#include <maya/MVectorArray.h> -#include <src_aux/_main.h> +#include <maya/M3dView.h> +#include <maya/MAngle.h> +#include <maya/MAnimControl.h> +#include <maya/MAnimCurveChange.h> +#include <maya/MAnimCurveClipboard.h> +#include <maya/MAnimCurveClipboardItem.h> +#include <maya/MAnimCurveClipboardItemArray.h> +#include <maya/MAnimUtil.h> +#include <maya/MArgDatabase.h> +#include <maya/MArgList.h> +#include <maya/MArgParser.h> +#include <maya/MArrayDataBuilder.h> +#include <maya/MArrayDataHandle.h> +#include <maya/MAttributeIndex.h> +#include <maya/MAttributeSpec.h> +#include <maya/MAttributeSpecArray.h> +#include <maya/MBoundingBox.h> +#include <maya/MClothConstraint.h> +#include <maya/MColor.h> +#include <maya/MColorArray.h> +#include <maya/MCommandResult.h> +#include <maya/MComputation.h> +#include <maya/MDGContext.h> +#include <maya/MDGModifier.h> +#include <maya/MDagModifier.h> +#include <maya/MDagPath.h> +#include <maya/MDagPathArray.h> +#include <maya/MDataBlock.h> +#include <maya/MDataHandle.h> +#include <maya/MDeviceChannel.h> +#include <maya/MDeviceState.h> +#include <maya/MDistance.h> +#include <maya/MDoubleArray.h> +#include <maya/MDrawInfo.h> +#include <maya/MDrawProcedureBase.h> +#include <maya/MDrawRequest.h> +#include <maya/MDrawRequestQueue.h> +#include <maya/MDynSweptLine.h> +#include <maya/MDynSweptTriangle.h> +#include <maya/MEulerRotation.h> +#include <maya/MEvent.h> +#include <maya/MFeedbackLine.h> +#include <maya/MFileIO.h> +#include <maya/MFileObject.h> +#include <maya/MFloatArray.h> +#include <maya/MFloatMatrix.h> +#include <maya/MFloatPoint.h> +#include <maya/MFloatPointArray.h> +#include <maya/MFloatVector.h> +#include <maya/MFloatVectorArray.h> +#include <maya/MFn.h> +#include <maya/MFnAirField.h> +#include <maya/MFnAmbientLight.h> +#include <maya/MFnAnimCurve.h> +#include <maya/MFnAnisotropyShader.h> +#include <maya/MFnAreaLight.h> +#include <maya/MFnArrayAttrsData.h> +#include <maya/MFnAttribute.h> +#include <maya/MFnBase.h> +#include <maya/MFnBlendShapeDeformer.h> +#include <maya/MFnBlinnShader.h> +#include <maya/MFnCamera.h> +#include <maya/MFnCharacter.h> +#include <maya/MFnCircleSweepManip.h> +#include <maya/MFnClip.h> +#include <maya/MFnComponent.h> +#include <maya/MFnComponentListData.h> +#include <maya/MFnCompoundAttribute.h> +#include <maya/MFnCurveSegmentManip.h> +#include <maya/MFnDagNode.h> +#include <maya/MFnData.h> +#include <maya/MFnDependencyNode.h> +#include <maya/MFnDirectionManip.h> +#include <maya/MFnDirectionalLight.h> +#include <maya/MFnDiscManip.h> +#include <maya/MFnDistanceManip.h> +#include <maya/MFnDoubleIndexedComponent.h> +#include <maya/MFnDragField.h> +#include <maya/MFnDynSweptGeometryData.h> +#include <maya/MFnEnumAttribute.h> +#include <maya/MFnExpression.h> +#include <maya/MFnField.h> +#include <maya/MFnFreePointTriadManip.h> +#include <maya/MFnGenericAttribute.h> +#include <maya/MFnGeometryData.h> +#include <maya/MFnGeometryFilter.h> +#include <maya/MFnGravityField.h> +#include <maya/MFnHikEffector.h> +#include <maya/MFnIkEffector.h> +#include <maya/MFnIkHandle.h> +#include <maya/MFnIkJoint.h> +#include <maya/MFnIkSolver.h> +#include <maya/MFnIntArrayData.h> +#include <maya/MFnKeyframeDelta.h> +#include <maya/MFnKeyframeDeltaAddRemove.h> +#include <maya/MFnKeyframeDeltaBlockAddRemove.h> +#include <maya/MFnKeyframeDeltaBreakdown.h> +#include <maya/MFnKeyframeDeltaInfType.h> +#include <maya/MFnKeyframeDeltaMove.h> +#include <maya/MFnKeyframeDeltaScale.h> +#include <maya/MFnKeyframeDeltaTangent.h> +#include <maya/MFnKeyframeDeltaWeighted.h> +#include <maya/MFnLambertShader.h> +#include <maya/MFnLattice.h> +#include <maya/MFnLatticeDeformer.h> +#include <maya/MFnLayeredShader.h> +#include <maya/MFnLight.h> +#include <maya/MFnLightDataAttribute.h> +#include <maya/MFnManip3D.h> +#include <maya/MFnMatrixAttribute.h> +#include <maya/MFnMatrixData.h> +#include <maya/MFnMesh.h> +#include <maya/MFnMessageAttribute.h> +#include <maya/MFnMotionPath.h> +#include <maya/MFnNewtonField.h> +#include <maya/MFnNonAmbientLight.h> +#include <maya/MFnNonExtendedLight.h> +#include <maya/MFnNumericAttribute.h> +#include <maya/MFnNumericData.h> +#include <maya/MFnNurbsCurve.h> +#include <maya/MFnNurbsCurveData.h> +#include <maya/MFnNurbsSurface.h> +#include <maya/MFnNurbsSurfaceData.h> +#include <maya/MFnParticleSystem.h> +#include <maya/MFnPartition.h> +#include <maya/MFnPfxGeometry.h> +#include <maya/MFnPhongEShader.h> +#include <maya/MFnPhongShader.h> +#include <maya/MFnPlugin.h> +#include <maya/MFnPointArrayData.h> +#include <maya/MFnPointLight.h> +#include <maya/MFnPointOnCurveManip.h> +#include <maya/MFnPointOnSurfaceManip.h> +#include <maya/MFnRadialField.h> +#include <maya/MFnReflectShader.h> +#include <maya/MFnRenderLayer.h> +#include <maya/MFnRotateManip.h> +#include <maya/MFnScaleManip.h> +#include <maya/MFnSet.h> +#include <maya/MFnSingleIndexedComponent.h> +#include <maya/MFnSkinCluster.h> +#include <maya/MFnSphereData.h> +#include <maya/MFnSpotLight.h> +#include <maya/MFnStateManip.h> +#include <maya/MFnStringArrayData.h> +#include <maya/MFnStringData.h> +#include <maya/MFnSubd.h> +#include <maya/MFnSubdNames.h> +#include <maya/MFnToggleManip.h> +#include <maya/MFnTransform.h> +#include <maya/MFnTripleIndexedComponent.h> +#include <maya/MFnTurbulenceField.h> +#include <maya/MFnTypedAttribute.h> +#include <maya/MFnUInt64ArrayData.h> +#include <maya/MFnUniformField.h> +#include <maya/MFnUnitAttribute.h> +#include <maya/MFnVectorArrayData.h> +#include <maya/MFnVolumeAxisField.h> +#include <maya/MFnVolumeLight.h> +#include <maya/MFnVortexField.h> +#include <maya/MFnWeightGeometryFilter.h> +#include <maya/MFnWireDeformer.h> +#include <maya/MGlobal.h> +#include <maya/MHardwareRenderer.h> +#include <maya/MIkHandleGroup.h> +#include <maya/MIkSystem.h> +#include <maya/MImage.h> +#include <maya/MIntArray.h> +#include <maya/MItCurveCV.h> +#include <maya/MItDag.h> +#include <maya/MItDependencyGraph.h> +#include <maya/MItDependencyNodes.h> +#include <maya/MItGeometry.h> +#include <maya/MItInstancer.h> +#include <maya/MItMeshEdge.h> +#include <maya/MItMeshFaceVertex.h> +#include <maya/MItMeshPolygon.h> +#include <maya/MItMeshVertex.h> +#include <maya/MItSelectionList.h> +#include <maya/MItSubdEdge.h> +#include <maya/MItSubdFace.h> +#include <maya/MItSubdVertex.h> +#include <maya/MItSurfaceCV.h> +#include <maya/MIteratorType.h> +#include <maya/MLibrary.h> +#include <maya/MLightLinks.h> +#include <maya/MManipData.h> +#include <maya/MMaterial.h> +#include <maya/MMatrix.h> +#include <maya/MObject.h> +#include <maya/MObjectArray.h> +#include <maya/MObjectHandle.h> +#include <maya/MPlug.h> +#include <maya/MPlugArray.h> +#include <maya/MPoint.h> +#include <maya/MPointArray.h> +#include <maya/MProgressWindow.h> +#include <maya/MPxCommand.h> +#include <maya/MPxContext.h> +#include <maya/MPxData.h> +#include <maya/MPxDeformerNode.h> +#include <maya/MPxEmitterNode.h> +#include <maya/MPxFieldNode.h> +#include <maya/MPxFileTranslator.h> +#include <maya/MPxLocatorNode.h> +#include <maya/MPxNode.h> +#include <maya/MPxObjectSet.h> +#include <maya/MPxSpringNode.h> +#include <maya/MQuaternion.h> +#include <maya/MRampAttribute.h> +#include <maya/MRenderData.h> +#include <maya/MRenderLine.h> +#include <maya/MRenderLineArray.h> +#include <maya/MRenderShadowData.h> +#include <maya/MRenderUtil.h> +#include <maya/MRenderView.h> +#include <maya/MSelectInfo.h> +#include <maya/MSelectionList.h> +#include <maya/MSelectionMask.h> +#include <maya/MTypes.h> +#include <maya/MStatus.h> +#include <maya/MString.h> +#include <maya/MStringArray.h> +#include <maya/MSwatchRenderBase.h> +#include <maya/MSyntax.h> +#include <maya/MTesselationParams.h> +#include <maya/MTime.h> +#include <maya/MTimeArray.h> +#include <maya/MTimer.h> +#include <maya/MToolsInfo.h> +#include <maya/MTransformationMatrix.h> +#include <maya/MTrimBoundaryArray.h> +#include <maya/MTypeId.h> +#include <maya/MUintArray.h> +#include <maya/MUint64Array.h> +#include <maya/MVector.h> +#include <maya/MVectorArray.h> +#include <src_aux/_main.h> Modified: maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-05-30 15:47:35 UTC (rev 6) +++ maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-05-30 15:50:26 UTC (rev 7) @@ -1,14677 +1,14677 @@ -/* - Plugin creator functions. - - This file was generated automatically and is included in the file - creatorfuncmanager.cpp. -*/ - -#include <maya/MPxCommand.h> -#include <maya/MPxContext.h> -#include <maya/MPxData.h> -#include <maya/MPxDeformerNode.h> -#include <maya/MPxEmitterNode.h> -#include <maya/MPxFieldNode.h> -#include <maya/MPxFileTranslator.h> -#include <maya/MPxLocatorNode.h> -#include <maya/MPxNode.h> -#include <maya/MPxObjectSet.h> -#include <maya/MPxSpringNode.h> - -static const int MAX_CREATOR_FUNCTIONS = 200; -static const int MAX_CREATESYNTAX_FUNCTIONS = 200; -static const int MAX_INIT_FUNCTIONS = 200; -static boost::python::object pycreatorfuncs[MAX_CREATOR_FUNCTIONS]; -static boost::python::object pycreatesyntaxfuncs[MAX_CREATOR_FUNCTIONS]; -static boost::python::object pyinitfuncs[MAX_INIT_FUNCTIONS]; - -/** - Convert a Python object into a raw pointer. - - The Python object must be an instance of a MPx... class, otherwise - 0 is returned. - - \param obj The Python object that holds a MPx instance - \returns Corresponding C++ object or 0. - */ -void* object2ptr(boost::python::object& obj) -{ - boost::python::extract<MPxCommand&> x0(obj); - if (x0.check()) return &(x0()); - boost::python::extract<MPxContext&> x1(obj); - if (x1.check()) return &(x1()); - boost::python::extract<MPxData&> x2(obj); - if (x2.check()) return &(x2()); - boost::python::extract<MPxDeformerNode&> x3(obj); - if (x3.check()) return &(x3()); - boost::python::extract<MPxEmitterNode&> x4(obj); - if (x4.check()) return &(x4()); - boost::python::extract<MPxFieldNode&> x5(obj); - if (x5.check()) return &(x5()); - boost::python::extract<MPxFileTranslator&> x6(obj); - if (x6.check()) return &(x6()); - boost::python::extract<MPxLocatorNode&> x7(obj); - if (x7.check()) return &(x7()); - boost::python::extract<MPxNode&> x8(obj); - if (x8.check()) return &(x8()); - boost::python::extract<MPxObjectSet&> x9(obj); - if (x9.check()) return &(x9()); - boost::python::extract<MPxSpringNode&> x10(obj); - if (x10.check()) return &(x10()); - return 0; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 0. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0000() -{ - boost::python::object pyres = pycreatorfuncs[0](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 1. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0001() -{ - boost::python::object pyres = pycreatorfuncs[1](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 2. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0002() -{ - boost::python::object pyres = pycreatorfuncs[2](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 3. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0003() -{ - boost::python::object pyres = pycreatorfuncs[3](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 4. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0004() -{ - boost::python::object pyres = pycreatorfuncs[4](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 5. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0005() -{ - boost::python::object pyres = pycreatorfuncs[5](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 6. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0006() -{ - boost::python::object pyres = pycreatorfuncs[6](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 7. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0007() -{ - boost::python::object pyres = pycreatorfuncs[7](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 8. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0008() -{ - boost::python::object pyres = pycreatorfuncs[8](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 9. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0009() -{ - boost::python::object pyres = pycreatorfuncs[9](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 10. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0010() -{ - boost::python::object pyres = pycreatorfuncs[10](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 11. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0011() -{ - boost::python::object pyres = pycreatorfuncs[11](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 12. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0012() -{ - boost::python::object pyres = pycreatorfuncs[12](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 13. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0013() -{ - boost::python::object pyres = pycreatorfuncs[13](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 14. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0014() -{ - boost::python::object pyres = pycreatorfuncs[14](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 15. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0015() -{ - boost::python::object pyres = pycreatorfuncs[15](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 16. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0016() -{ - boost::python::object pyres = pycreatorfuncs[16](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 17. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0017() -{ - boost::python::object pyres = pycreatorfuncs[17](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 18. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0018() -{ - boost::python::object pyres = pycreatorfuncs[18](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 19. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0019() -{ - boost::python::object pyres = pycreatorfuncs[19](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 20. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0020() -{ - boost::python::object pyres = pycreatorfuncs[20](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 21. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0021() -{ - boost::python::object pyres = pycreatorfuncs[21](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 22. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0022() -{ - boost::python::object pyres = pycreatorfuncs[22](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 23. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0023() -{ - boost::python::object pyres = pycreatorfuncs[23](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 24. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0024() -{ - boost::python::object pyres = pycreatorfuncs[24](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 25. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0025() -{ - boost::python::object pyres = pycreatorfuncs[25](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 26. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0026() -{ - boost::python::object pyres = pycreatorfuncs[26](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 27. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0027() -{ - boost::python::object pyres = pycreatorfuncs[27](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 28. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0028() -{ - boost::python::object pyres = pycreatorfuncs[28](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 29. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0029() -{ - boost::python::object pyres = pycreatorfuncs[29](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 30. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0030() -{ - boost::python::object pyres = pycreatorfuncs[30](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 31. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0031() -{ - boost::python::object pyres = pycreatorfuncs[31](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 32. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0032() -{ - boost::python::object pyres = pycreatorfuncs[32](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 33. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0033() -{ - boost::python::object pyres = pycreatorfuncs[33](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 34. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0034() -{ - boost::python::object pyres = pycreatorfuncs[34](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 35. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0035() -{ - boost::python::object pyres = pycreatorfuncs[35](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 36. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0036() -{ - boost::python::object pyres = pycreatorfuncs[36](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 37. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0037() -{ - boost::python::object pyres = pycreatorfuncs[37](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 38. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0038() -{ - boost::python::object pyres = pycreatorfuncs[38](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 39. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0039() -{ - boost::python::object pyres = pycreatorfuncs[39](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 40. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0040() -{ - boost::python::object pyres = pycreatorfuncs[40](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 41. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0041() -{ - boost::python::object pyres = pycreatorfuncs[41](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 42. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0042() -{ - boost::python::object pyres = pycreatorfuncs[42](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 43. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0043() -{ - boost::python::object pyres = pycreatorfuncs[43](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 44. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0044() -{ - boost::python::object pyres = pycreatorfuncs[44](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes the Python function with index 45. This function - must return an object derived from a MPx class. The C++ object is extracted - from the Python object and a reference to that object is returned. - */ -void* createFunc0045() -{ - boost::python::object pyres = pycreatorfuncs[45](); - void* res = object2ptr(pyres); - if (res==0) - { - std::cerr<<"ERROR: creator function did not return a MPx object."<<std::endl; - } - else - { - // Increase the reference count of the created plugin object, - // otherwise the instance would be deleted by Python when this function - // terminates. Maya will take over the responsibility of deleting the - // object (the reference count will however never decrease again). - Py_XINCREF(pyres.ptr()); - } - return res; -} - -/** - Creator function that will be passed to Maya via the C++ MFnPlugin object. - - This function invokes th... [truncated message content] |
From: <mb...@us...> - 2006-07-10 14:47:14
|
Revision: 20 Author: mbaas Date: 2006-07-10 07:46:34 -0700 (Mon, 10 Jul 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=20&view=rev Log Message: ----------- Added MMessage, MEventMessage and a few more methods of MObjectArray and a __str__ method for MStringArray Modified Paths: -------------- maya/trunk/maya_wrapper/extraheaders.h maya/trunk/maya_wrapper/maya_sdk.h maya/trunk/maya_wrapper/pypp_config_7.0.py maya/trunk/maya_wrapper/pypp_setup.py Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp maya/trunk/maya_wrapper/src_aux/messagehelpers.h maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp maya/trunk/maya_wrapper/src_aux/mobjectarray.h maya/trunk/maya_wrapper/src_aux/mstringarray.cpp maya/trunk/maya_wrapper/src_aux/mstringarray.h Modified: maya/trunk/maya_wrapper/extraheaders.h =================================================================== --- maya/trunk/maya_wrapper/extraheaders.h 2006-07-04 15:42:49 UTC (rev 19) +++ maya/trunk/maya_wrapper/extraheaders.h 2006-07-10 14:46:34 UTC (rev 20) @@ -5,6 +5,7 @@ #include <maya/MAngle.h> #include <maya/MArgList.h> #include <maya/MBoundingBox.h> +#include <maya/MCallbackIdArray.h> #include <maya/MClothParticle.h> #include <maya/MColorArray.h> #include <maya/MCommonRenderSettingsData.h> @@ -46,7 +47,6 @@ #include <maya/MUintArray.h> #include <maya/MVector.h> - #include "mangle.h" #include "mcolor.h" #include "mdatahandle.h" @@ -60,6 +60,7 @@ #include "mitselectionlist.h" #include "mmatrix.h" #include "mobject.h" +#include "mobjectarray.h" #include "mplug.h" #include "mpoint.h" #include "mpointarray.h" @@ -67,8 +68,10 @@ #include "mselectionlist.h" #include "mstatus.h" #include "mstring.h" +#include "mstringarray.h" #include "mtime.h" #include "mtransformationmatrix.h" #include "mvector.h" #include "mvectorarray.h" +#include "messagehelpers.h" Modified: maya/trunk/maya_wrapper/maya_sdk.h =================================================================== --- maya/trunk/maya_wrapper/maya_sdk.h 2006-07-04 15:42:49 UTC (rev 19) +++ maya/trunk/maya_wrapper/maya_sdk.h 2006-07-10 14:46:34 UTC (rev 20) @@ -15,6 +15,7 @@ #include <maya/MAttributeSpec.h> #include <maya/MAttributeSpecArray.h> #include <maya/MBoundingBox.h> +#include <maya/MCallbackIdArray.h> #include <maya/MClothConstraint.h> #include <maya/MColor.h> #include <maya/MColorArray.h> @@ -39,6 +40,7 @@ #include <maya/MDynSweptTriangle.h> #include <maya/MEulerRotation.h> #include <maya/MEvent.h> +#include <maya/MEventMessage.h> #include <maya/MFeedbackLine.h> #include <maya/MFileIO.h> #include <maya/MFileObject.h> @@ -187,6 +189,7 @@ #include <maya/MManipData.h> #include <maya/MMaterial.h> #include <maya/MMatrix.h> +#include <maya/MMessage.h> #include <maya/MObject.h> #include <maya/MObjectArray.h> #include <maya/MObjectHandle.h> Modified: maya/trunk/maya_wrapper/pypp_config_7.0.py =================================================================== --- maya/trunk/maya_wrapper/pypp_config_7.0.py 2006-07-04 15:42:49 UTC (rev 19) +++ maya/trunk/maya_wrapper/pypp_config_7.0.py 2006-07-10 14:46:34 UTC (rev 20) @@ -29,7 +29,7 @@ "MAttributeSpec", "MAttributeSpecArray", "MBoundingBox", -# "MCallbackIdArray", + "MCallbackIdArray", "MClothConstraint", "MColor", "MColorArray", @@ -54,6 +54,7 @@ "MDynSweptTriangle", "MEulerRotation", "MEvent", + "MEventMessage", "MFeedbackLine", "MFileIO", "MFileObject", @@ -203,6 +204,7 @@ "MManipData", "MMaterial", "MMatrix", + "MMessage", "MObject", "MObjectArray", "MObjectHandle", Modified: maya/trunk/maya_wrapper/pypp_setup.py =================================================================== --- maya/trunk/maya_wrapper/pypp_setup.py 2006-07-04 15:42:49 UTC (rev 19) +++ maya/trunk/maya_wrapper/pypp_setup.py 2006-07-10 14:46:34 UTC (rev 20) @@ -15,11 +15,17 @@ import logging import arrayinfo -logger = logging.getLogger('pyplusplus') -logger.setLevel(logging.INFO) logger = logging.getLogger('pygccxml') logger.setLevel(logging.INFO) +#logger.setLevel(logging.DEBUG) +logger = logging.getLogger('pyplusplus') +logger.setLevel(logging.INFO) +#logger.setLevel(logging.DEBUG) +filehandler = logging.FileHandler("pyplusplus.log", "wt") +logger.addHandler(filehandler) + + MAX_CREATOR_FUNCTIONS = 200 MAX_CREATESYNTAX_FUNCTIONS = 200 MAX_INIT_FUNCTIONS = 200 @@ -90,7 +96,7 @@ sys.exit(1) execfile(configname) -#classes = filter(lambda x: x in ["MAnimControl"], classes) +#classes = filter(lambda x: x in ["MFnDagNode"], classes) #classes = filter(lambda x: x in ["MGlobal", "MObject", "MStatus", # "MVector", "MTransformationMatrix", # "MString", "MStringArray", @@ -426,8 +432,8 @@ mod.Methods(accesstype=PRIVATE).ignore() # Ignore methods that have too many arguments for Boost.Python... -print "Ignoring methods with too many arguments..." -root.Methods(recursive=True, filter=lambda decl: len(getattr(decl, "arguments",[]))>10).ignore() +#print "Ignoring methods with too many arguments..." +#root.Methods(recursive=True, filter=lambda decl: len(getattr(decl, "arguments",[]))>10).ignore() # Assign special policies print "Assigning policies..." @@ -601,12 +607,16 @@ """) # Ignore all [] operators that return a reference or a pointer... -mod.Methods("operator[]", retval="/.*&/").exclude() -mod.Methods("operator[]", retval="/.*\*/").exclude() +#mod.Methods("operator[]", retval="/.*&/").exclude() +#mod.Methods("operator[]", retval="/.*\*/").exclude() +mod.Methods("operator[]", retval="/.*const &/").exclude() +mod.Methods("operator[]", retval="/.*const \*/").exclude() # Ignore all call and index operators that return a reference to float or double -mod.Methods("operator()", retval=["float &", "double &"]).exclude() -mod.Methods("operator[]", retval=["float &", "double &"]).exclude() +mod.Methods("operator()", retval=["float &", "double &", "int &"]).exclude() +mod.Methods("operator[]", retval=["float &", "double &", "int &"]).exclude() +mod.Methods("operator()", retval=["float *", "double *", "int *"]).exclude() +mod.Methods("operator[]", retval=["float *", "double *", "int *"]).exclude() # Ignore some constructors from MPointArray, MVectorArray, ... mod.Methods(args=["double[4] const *", "unsigned int"]).ignore() @@ -667,6 +677,16 @@ MVectorArray.cdef("get", "pyMVectorArray::get1") MVectorArray.cdef("get", "pyMVectorArray::get2") +MStringArray = mod.Class("MStringArray") +MStringArray.cdef("__str__", "pyMStringArray::__str__") + +MObjectArray = mod.Class("MObjectArray") +MObjectArray.Method("get").ignore() +#MObjectArray.cdef("__str__", "pyMObjectArray::__str__") +MObjectArray.cdef("__setitem__", "pyMObjectArray::__setitem__") +MObjectArray.cdef("get", "pyMObjectArray::get1") +MObjectArray.cdef("get", "pyMObjectArray::get2") + MImage = mod.Class("MImage") MImage.Method("pixels").ignore() @@ -914,6 +934,25 @@ MFnIkJoint.Method("getScaleOrientation", args=["double *", "MTransformationMatrix::RotationOrder &"]).setArgPolicy(OutputArray(1,3), Output(2), ConvertMStatusRetVal()) MFnIkJoint.Method("getOrientation", args=["double *", "MTransformationMatrix::RotationOrder &"]).setArgPolicy(OutputArray(1,3), Output(2), ConvertMStatusRetVal()) +# MMessage classes +MMessage = mod.Class("MMessage") +MMessage.Method("removeCallback").ignore() +MMessage.Methods("removeCallbacks").ignore() +MMessage.cdef("removeCallback", "pyMMessage::removeCallback") +MMessage.staticmethod("removeCallback") +MMessage.cdef("removeCallbacks", "pyMMessage::removeCallbacks") +MMessage.staticmethod("removeCallbacks") + +MEventMessage = mod.Class("MEventMessage") +MEventMessage.cdef("addEventCallback", "pyMMessage::MEventMessage_addEventCallback") +MEventMessage.staticmethod("addEventCallback") +mod.addBodyTailText('def("pyDataLut", pyMMessage::pyDataLut);') + +#for dw in MEventMessage: +# decl = dw.decl_handles[0] +# print "****", decl.readme() + + # Automatic arg policy creation... print "Assigning automatic arg policies..." autoArgPolicies() Added: maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp 2006-07-10 14:46:34 UTC (rev 20) @@ -0,0 +1,155 @@ +/* ***** 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 <boost/python.hpp> +#include <maya/MStatus.h> +#include <maya/MMessage.h> +#include <maya/MEventMessage.h> +#include <maya/MCallbackIdArray.h> + +namespace pyMMessage +{ + +// Lookup table: CallbackId -> Tuple (pyFunc, pyClientData) +boost::python::dict pyData_lut; + +/** + Return the lookup table (dict). + + This function is exposed in Python to provide access to the dict + for debugging/information. +*/ +boost::python::dict pyDataLut() +{ + return pyData_lut; +} + +////////////////////////////////////////////////////////////////////// +// C++ callbacks that invoke equivalent Python callbacks +////////////////////////////////////////////////////////////////////// + +/** + Callback function that just takes a clientData pointer. + */ +void callback(void* clientData) +{ + PyGILState_STATE gstate = PyGILState_Ensure(); + + // Cast client data to a tuple and check if it's really a tuple + PyObject* datatuple = (PyObject*)clientData; + if (!PyTuple_Check(datatuple)) + return; + + // Obtain the Python function and the Python clientData... + PyObject* func = PyTuple_GetItem(datatuple, 0); + if (func==NULL) + return; + PyObject* data = PyTuple_GetItem(datatuple, 1); + if (data==NULL) + return; + + // Call the Python function (if it's really a callable) + if (PyCallable_Check(func)) + { + PyObject_CallFunctionObjArgs(func, data, NULL); + } + + PyGILState_Release(gstate); +} + +////////////////////////////////////////////////////////////////////// +// removeCallback functions +////////////////////////////////////////////////////////////////////// + +/** + MMessage::removeCallback() + */ +MStatus removeCallback(MCallbackId id) +{ + // Check if the callback id is present in the pyData_lut dict + // (i.e. check if the callback was registered in Python) + // and remove the entry + boost::python::object key(id); + if (pyData_lut.has_key(key)) + { + PyDict_DelItem(pyData_lut.ptr(), key.ptr()); + } + + // Invoke the original removeCallback() function + return MMessage::removeCallback(id); +} + +/** + MMessage::removeCallbacks() + */ +MStatus removeCallbacks(MCallbackIdArray& idList) +{ + MStatus res; + + // Invoke removeCallback() for every item, the origina. + // removeCallbacks() function is never called + for(unsigned int i=0; i<idList.length(); i++) + { + MStatus stat = removeCallback(idList[i]); + // Copy the first error which will be the result of this function + if ((!stat) && res) + res = stat; + } + return res; +} + +////////////////////////////////////////////////////////////////////// +// addCallback functions +////////////////////////////////////////////////////////////////////// + +/** + MEventMessage::addEventCallback() + */ +MCallbackId MEventMessage_addEventCallback( + const MString& event, + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + // Create tuple (pyFunc, pyClientData) + boost::python::tuple pyData = boost::python::make_tuple(func, clientData); + + MStatus stat; + MStatus* pstat = &stat; + if (ReturnStatus!=NULL) + { + pstat = ReturnStatus; + } + + MCallbackId id = MEventMessage::addEventCallback(event, callback, pyData.ptr(), pstat); + if (*pstat) + { + // Store the callback tuple + pyData_lut[id] = pyData; + } + + return id; +} + + +} // end of namespace Added: maya/trunk/maya_wrapper/src_aux/messagehelpers.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/messagehelpers.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/messagehelpers.h 2006-07-10 14:46:34 UTC (rev 20) @@ -0,0 +1,42 @@ +/* ***** 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 messagehelpers.h + Contains helper functions for the MMessage classes. + */ + +namespace pyMMessage +{ + +boost::python::dict pyDataLut(); + +MStatus removeCallback(MCallbackId id); +MStatus removeCallbacks(MCallbackIdArray& idList); + +MCallbackId MEventMessage_addEventCallback( + const MString& event, + boost::python::object func, + boost::python::object clientData = boost::python::object(), + MStatus* ReturnStatus = NULL); + +} // end of namespace Added: maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mobjectarray.cpp 2006-07-10 14:46:34 UTC (rev 20) @@ -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 MObjectArray class. +*/ + +#include <sstream> +#include "mobjectarray.h" + +namespace pyMObjectArray +{ + + // get() method returning a list + boost::python::list get1(MObjectArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MObject& obj = self[i]; + res.append(obj); + } + return res; + } + + // get() method filling a user-provided list + void get2(MObjectArray& 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++) + { + MObject& obj = self[i]; + lst.append(obj); + } + } + + + // __setitem__ method + void __setitem__(MObjectArray& self, int key, MObject& val) + { + self.set(val, key); + } + + // __str__ method + /* boost::python::str __str__(MObjectArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + }*/ +} Added: maya/trunk/maya_wrapper/src_aux/mobjectarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mobjectarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mobjectarray.h 2006-07-10 14:46:34 UTC (rev 20) @@ -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 mobjectarray.h + Additional methods for the MObjectArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MObjectArray.h> + + +/** + This namespace contains extra methods for the MObjectArray class. + */ +namespace pyMObjectArray +{ + + boost::python::list get1(MObjectArray& self); + void get2(MObjectArray& self, boost::python::list lst); + + void __setitem__(MObjectArray& self, int key, MObject& val); + + // boost::python::str __str__(MObjectArray& self); +} Added: maya/trunk/maya_wrapper/src_aux/mstringarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mstringarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mstringarray.cpp 2006-07-10 14:46:34 UTC (rev 20) @@ -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 MStringArray class. +*/ + +#include <sstream> +#include "mstringarray.h" + +namespace pyMStringArray +{ + + // __str__ method + boost::python::str __str__(MStringArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } +} Added: maya/trunk/maya_wrapper/src_aux/mstringarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mstringarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mstringarray.h 2006-07-10 14:46:34 UTC (rev 20) @@ -0,0 +1,37 @@ +/* ***** 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 mstringarray.h + Additional methods for the MStringArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MStringArray.h> + +/** + This namespace contains extra methods for the MStringArray class. + */ +namespace pyMStringArray +{ + boost::python::str __str__(MStringArray& self); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-07-18 11:19:29
|
Revision: 23 Author: mbaas Date: 2006-07-18 04:19:19 -0700 (Tue, 18 Jul 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=23&view=rev Log Message: ----------- Completed the message classes. Modified Paths: -------------- maya/trunk/maya_wrapper/doc/tex/api.tex maya/trunk/maya_wrapper/maya_sdk.h maya/trunk/maya_wrapper/pypp_config_7.0.py maya/trunk/maya_wrapper/pypp_setup.py maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp maya/trunk/maya_wrapper/src_aux/messagehelpers.h Modified: maya/trunk/maya_wrapper/doc/tex/api.tex =================================================================== --- maya/trunk/maya_wrapper/doc/tex/api.tex 2006-07-14 14:45:16 UTC (rev 22) +++ maya/trunk/maya_wrapper/doc/tex/api.tex 2006-07-18 11:19:19 UTC (rev 23) @@ -125,7 +125,24 @@ \begin{methoddesc}{getResult}{status=None} \end{methoddesc} +% MDagMessage +\subsection{\class{MDagMessage}} +The following \class{MDagMessage} methods differ from their C++ +counterparts. + +\begin{methoddesc}{addDagCallback2}{[node,] msgType, func, clientData=None, status=None} +In the C++ API there are four overloads of the \cfunction{addDagCallback()} +method. Two of them register a callback that just takes the child node, the +parent node and the client data as input whereas the other two register +a callback that receives the DAG message as well. +In this Python binding these two groups are split into two methods. +The \method{addDagCallback()} method registers the callback that receives +the message whereas \method{addDagCallback2()} registers +the callback without the message argument. +\end{methoddesc} + + % MEvent %\subsection{\class{MEvent}} %{\em ...this class still contains some methods that cannot be called...} @@ -189,18 +206,6 @@ is its parameter value. \end{methoddesc} -% MFnPhongEShader -%\subsection{\class{MFnPhongEShader}} -%{\em ...this class still contains some methods that cannot be called...} - -% MFnPointOnSurfaceManip -%\subsection{\class{MFnPointOnSurfaceManip}} -%{\em ...this class still contains some methods that cannot be called...} - -% MFnSpotLight -%\subsection{\class{MFnSpotLight}} -%{\em ...this class still contains some methods that cannot be called...} - % MFnTransform \subsection{\class{MFnTransform}} @@ -235,26 +240,25 @@ counterparts. \end{methoddesc} -% MFnUnitAttribute -%\subsection{\class{MFnUnitAttribute}} -%{\em ...this class still contains some methods that cannot be called...} +% MNodeMessage +\subsection{\class{MNodeMessage}} -% MFnVolumeLight -%\subsection{\class{MFnVolumeLight}} -%{\em ...this class still contains some methods that cannot be called...} +The following \class{MNodeMessage} methods differ from their C++ +counterparts. -% MPxNode -%\subsection{\class{MPxNode}} -%{\em ...this class still contains some methods that cannot be called...} +\begin{methoddesc}{addNodeDirtyCallback}{node, func, clientData=None, status=None} +This is the version that registers the callback that takes the node, the plug +and the client data as input. The other functions that register the callbacks +that take fewer arguments are not available (just ignore the arguments you +don't need). +\end{methoddesc} -% MRenderUtil -%\subsection{\class{MRenderUtil}} -%{\em ...this class still contains some methods that cannot be called...} +\begin{methoddesc}{addNameChangedCallback}{node, func, clientData=None, status=None} +This is the version that registers the callback that takes the node, the +previous name and the client data as input. The other function that registers +the callback that takes fewer arguments is not available. +\end{methoddesc} -% MQuaternion -%\subsection{\class{MQuaternion}} -%{\em ...this class still contains some methods that cannot be called...} - % MPoint \subsection{\class{MPoint}} @@ -267,6 +271,102 @@ object that receives the result code. \end{methoddesc} +% MPolyMessage +\subsection{\class{MPolyMessage}} + +The following \class{MPolyMessage} methods differ from their C++ +counterparts. + +\begin{methoddesc}{addPolyComponentIdChangedCallback}{node, wantIdModifications, func, clientData=None, status=None} +As in the C++ version the argument \var{wantIdModifications} is a list of +booleans. The \var{count} argument is omitted in the Python version as +this can be automatically determined from the Python list. +Similarly, the callback function \var{func} just receives a list +\var{componentIds} with +integers and the client data as input. The size of the list is omitted +as it is again just \code{len(componentIds)}. +\end{methoddesc} + +% MSceneMessage +\subsection{\class{MSceneMessage}} + +The following \class{MSceneMessage} methods differ from their C++ +counterparts. + +\begin{methoddesc}{addCallback}{msg, func, clientData=None, status=None} +This method wraps the version that registers a callback that has the option +to abort the operation. The callback \function{func} only takes the client +data as input and has to return a \code{bool}. You may also return nothing +at all which actually returns the value \code{None} which is interpreted +as \code{False}. So similar to the C++ version you can either register +a callback that does not return any value or that returns a boolean. +However, in both cases the wrapper uses the same C++ version of +\cfunction{addCallback()}. +\end{methoddesc} + +% MTimerMessage +\subsection{\class{MTimerMessage}} + +The following \class{MTimerMessage} methods differ from their C++ +counterparts. + +\begin{methoddesc}{sleepCallback}{} +If a Python function has been set using \method{setSleepCallback()} and this +function is still active the Python function object is returned. If a C++ +function has been set by another plugin then the function pointer is +returned as an integer indicating that the callback is not a Python function. +\code{None} is returned if no callback is set at all. +\end{methoddesc} + +% MUserEventMessage +\subsection{\class{MUserEventMessage}} + +The Python bindings of the \class{MUserEventMessage} class also allow +communicating with C++ plugins. On the Python side, the client data +that is passed to the callbacks is represented as a string containing +the binary data (you can use the standard Python module \module{struct} +to construct or parse such strings). In order to process those strings +the size of the binary data has to be known in advance. So before you +register a callback you must declare the data size using the +\method{setUserEventSize()} method (which is specific to the Python +bindings). Any client data passed to \method{postEvent()} (no matter +if the Python version or the C++ version of \method{postEvent()} was +called) will be wrapped into a Python string of the specified size +and passed to the callback. If no client data was specified when +calling \method{postEvent()} a callback will just receive the +client data that has been passed to the \method{addUserEventCallback()} +method (which may be any Python object). + +The following \class{MUserEventMessage} methods differ from their C++ +counterparts or are specific to the Python bindings: + +\begin{methoddesc}{setUserEventSize}{event, size} +This is an additional static method that you have to use to declare the +size (in bytes) of the client data that a callback will receive. The Python +callbacks will receive a string as argument that contains the binary data +that was passed to \method{postEvent()} (either the Python version or the +C++ version). + +\note{You must call this function {\em before} registering a callback +using \method{addUserEventCallback()}. The function cannot be used to +change the size of any previously registered callback.} +\end{methoddesc} + +\begin{methoddesc}{getUserEventSize}{event} +Returns the client data size of a particular user event. +\end{methoddesc} + +\begin{methoddesc}{postUserEvent}{event, clientData=None} +An event posted by this method can also be received by C++ code (which +doesn't have to be aware of the source of the event being Python code). +If \var{clientData} is provided it must be a string containing the binary +data that the registered callbacks will receive. You can create the +string using the Python \module{struct} module. If no client data is +provided the object that has been passed to \method{addUserEventCallback()} +is received by the Python callbacks (this object may be any Python object, +not just a string). +\end{methoddesc} + % MVector \subsection{\class{MVector}} Modified: maya/trunk/maya_wrapper/maya_sdk.h =================================================================== --- maya/trunk/maya_wrapper/maya_sdk.h 2006-07-14 14:45:16 UTC (rev 22) +++ maya/trunk/maya_wrapper/maya_sdk.h 2006-07-18 11:19:19 UTC (rev 23) @@ -5,6 +5,7 @@ #include <maya/MAnimCurveClipboard.h> #include <maya/MAnimCurveClipboardItem.h> #include <maya/MAnimCurveClipboardItemArray.h> +#include <maya/MAnimMessage.h> #include <maya/MAnimUtil.h> #include <maya/MArgDatabase.h> #include <maya/MArgList.h> @@ -19,10 +20,15 @@ #include <maya/MClothConstraint.h> #include <maya/MColor.h> #include <maya/MColorArray.h> +#include <maya/MCommandMessage.h> #include <maya/MCommandResult.h> +#include <maya/MCommonRenderSettingsData.h> #include <maya/MComputation.h> +#include <maya/MConditionMessage.h> #include <maya/MDGContext.h> +#include <maya/MDGMessage.h> #include <maya/MDGModifier.h> +#include <maya/MDagMessage.h> #include <maya/MDagModifier.h> #include <maya/MDagPath.h> #include <maya/MDagPathArray.h> @@ -76,6 +82,7 @@ #include <maya/MFnDirectionalLight.h> #include <maya/MFnDiscManip.h> #include <maya/MFnDistanceManip.h> +#include <maya/MFnDoubleArrayData.h> #include <maya/MFnDoubleIndexedComponent.h> #include <maya/MFnDragField.h> #include <maya/MFnDynSweptGeometryData.h> @@ -104,6 +111,7 @@ #include <maya/MFnKeyframeDeltaWeighted.h> #include <maya/MFnLambertShader.h> #include <maya/MFnLattice.h> +#include <maya/MFnLatticeData.h> #include <maya/MFnLatticeDeformer.h> #include <maya/MFnLayeredShader.h> #include <maya/MFnLight.h> @@ -112,6 +120,7 @@ #include <maya/MFnMatrixAttribute.h> #include <maya/MFnMatrixData.h> #include <maya/MFnMesh.h> +#include <maya/MFnMeshData.h> #include <maya/MFnMessageAttribute.h> #include <maya/MFnMotionPath.h> #include <maya/MFnNewtonField.h> @@ -147,6 +156,7 @@ #include <maya/MFnStringArrayData.h> #include <maya/MFnStringData.h> #include <maya/MFnSubd.h> +#include <maya/MFnSubdData.h> #include <maya/MFnSubdNames.h> #include <maya/MFnToggleManip.h> #include <maya/MFnTransform.h> @@ -174,6 +184,7 @@ #include <maya/MItDependencyNodes.h> #include <maya/MItGeometry.h> #include <maya/MItInstancer.h> +#include <maya/MItKeyframe.h> #include <maya/MItMeshEdge.h> #include <maya/MItMeshFaceVertex.h> #include <maya/MItMeshPolygon.h> @@ -186,17 +197,22 @@ #include <maya/MIteratorType.h> #include <maya/MLibrary.h> #include <maya/MLightLinks.h> +#include <maya/MLockMessage.h> #include <maya/MManipData.h> #include <maya/MMaterial.h> #include <maya/MMatrix.h> #include <maya/MMessage.h> +#include <maya/MModelMessage.h> +#include <maya/MNodeMessage.h> #include <maya/MObject.h> #include <maya/MObjectArray.h> #include <maya/MObjectHandle.h> +#include <maya/MObjectSetMessage.h> #include <maya/MPlug.h> #include <maya/MPlugArray.h> #include <maya/MPoint.h> #include <maya/MPointArray.h> +#include <maya/MPolyMessage.h> #include <maya/MProgressWindow.h> #include <maya/MPxCommand.h> #include <maya/MPxContext.h> @@ -217,6 +233,7 @@ #include <maya/MRenderShadowData.h> #include <maya/MRenderUtil.h> #include <maya/MRenderView.h> +#include <maya/MSceneMessage.h> #include <maya/MSelectInfo.h> #include <maya/MSelectionList.h> #include <maya/MSelectionMask.h> @@ -230,12 +247,15 @@ #include <maya/MTime.h> #include <maya/MTimeArray.h> #include <maya/MTimer.h> +#include <maya/MTimerMessage.h> #include <maya/MToolsInfo.h> #include <maya/MTransformationMatrix.h> #include <maya/MTrimBoundaryArray.h> #include <maya/MTypeId.h> #include <maya/MUintArray.h> #include <maya/MUint64Array.h> +#include <maya/MUiMessage.h> +#include <maya/MUserEventMessage.h> #include <maya/MVector.h> #include <maya/MVectorArray.h> #include <src_aux/_main.h> Modified: maya/trunk/maya_wrapper/pypp_config_7.0.py =================================================================== --- maya/trunk/maya_wrapper/pypp_config_7.0.py 2006-07-14 14:45:16 UTC (rev 22) +++ maya/trunk/maya_wrapper/pypp_config_7.0.py 2006-07-18 11:19:19 UTC (rev 23) @@ -18,7 +18,7 @@ "MAnimCurveClipboard", "MAnimCurveClipboardItem", "MAnimCurveClipboardItemArray", -### "MAnimMessage", + "MAnimMessage", "MAnimUtil", "MArgDatabase", "MArgList", @@ -31,12 +31,29 @@ "MBoundingBox", "MCallbackIdArray", "MClothConstraint", +# "MClothConstraintBridge", +# "MClothConstraintCmd", +# "MClothControl", +# "MClothEdge", +# "MClothForce", +# "MClothMaterial", +# "MClothParticle", +# "MClothPolyhedron", +# "MClothSolverRegister", +# "MClothSystem", +# "MClothTriangle", "MColor", "MColorArray", + "MCommandMessage", "MCommandResult", + "MCommonRenderSettingsData", "MComputation", + "MConditionMessage", +# "MCursor", "MDGContext", + "MDGMessage", "MDGModifier", + "MDagMessage", "MDagModifier", "MDagPath", "MDagPathArray", @@ -46,6 +63,7 @@ "MDeviceState", "MDistance", "MDoubleArray", +# "MDrawData", "MDrawInfo", "MDrawProcedureBase", "MDrawRequest", @@ -90,12 +108,14 @@ "MFnDirectionalLight", "MFnDiscManip", "MFnDistanceManip", + "MFnDoubleArrayData", "MFnDoubleIndexedComponent", "MFnDragField", "MFnDynSweptGeometryData", "MFnEnumAttribute", "MFnExpression", "MFnField", +# "MFnFluid", "MFnFreePointTriadManip", "MFnGenericAttribute", "MFnGeometryData", @@ -118,6 +138,7 @@ "MFnKeyframeDeltaWeighted", "MFnLambertShader", "MFnLattice", + "MFnLatticeData", "MFnLatticeDeformer", "MFnLayeredShader", "MFnLight", @@ -126,6 +147,7 @@ "MFnMatrixAttribute", "MFnMatrixData", "MFnMesh", + "MFnMeshData", "MFnMessageAttribute", "MFnMotionPath", "MFnNewtonField", @@ -143,6 +165,7 @@ "MFnPhongEShader", "MFnPhongShader", "MFnPlugin", +# "MFnPluginData", "MFnPointArrayData", "MFnPointLight", "MFnPointOnCurveManip", @@ -161,6 +184,7 @@ "MFnStringArrayData", "MFnStringData", "MFnSubd", + "MFnSubdData", "MFnSubdNames", "MFnToggleManip", "MFnTransform", @@ -178,6 +202,7 @@ "MFnWireDeformer", # "MGeometryData", "MGlobal", +# "MHWShaderSwatchGenerator", "MHardwareRenderer", "MIkHandleGroup", "MIkSystem", @@ -189,6 +214,7 @@ "MItDependencyNodes", "MItGeometry", "MItInstancer", + "MItKeyframe", "MItMeshEdge", "MItMeshFaceVertex", "MItMeshPolygon", @@ -201,21 +227,28 @@ "MIteratorType", "MLibrary", "MLightLinks", + "MLockMessage", "MManipData", "MMaterial", "MMatrix", "MMessage", + "MModelMessage", + "MNodeMessage", "MObject", "MObjectArray", "MObjectHandle", + "MObjectSetMessage", "MPlug", "MPlugArray", "MPoint", "MPointArray", + "MPolyMessage", "MProgressWindow", +# "MPx3dModelView", "MPxCommand", # "MPxComponentShape", "MPxContext", +# "MPxContextCommand", "MPxData", "MPxDeformerNode", # "MPxDragAndDropBehavior", @@ -223,20 +256,36 @@ "MPxFieldNode", "MPxFileTranslator", # "MPxFluidEmitterNode", +# "MPxGeometryData, +# "MPxGeometryIterator", +# "MPxGlBuffer", +# "MPxHwShaderNode", +# "MPxIkSolverNode", "MPxLocatorNode", +# "MPxManipContainer", +# "MPxMidiInputDevice", +# "MPxModelEditorCommand", "MPxNode", "MPxObjectSet", +# "MPxPolyTrg", +# "MPxPolyTweakUVCommand", +# "MPxSelectionContext", "MPxSpringNode", # "MPxSurfaceShape", +# "MPxSurfaceShapeUI", # "MPxToolCommand", +# "MPxTransform", +# "MPxTransformationMatrix", "MQuaternion", "MRampAttribute", +# "MRenderCallback", "MRenderData", "MRenderLine", "MRenderLineArray", "MRenderShadowData", "MRenderUtil", "MRenderView", + "MSceneMessage", "MSelectInfo", "MSelectionList", "MSelectionMask", @@ -245,17 +294,21 @@ "MString", "MStringArray", "MSwatchRenderBase", +# "MSwatchRenderRegister", "MSyntax", "MTesselationParams", "MTime", "MTimeArray", "MTimer", + "MTimerMessage", "MToolsInfo", "MTransformationMatrix", "MTrimBoundaryArray", "MTypeId", "MUintArray", "MUint64Array", + "MUiMessage", + "MUserEventMessage", "MVector", "MVectorArray", ] Modified: maya/trunk/maya_wrapper/pypp_setup.py =================================================================== --- maya/trunk/maya_wrapper/pypp_setup.py 2006-07-14 14:45:16 UTC (rev 22) +++ maya/trunk/maya_wrapper/pypp_setup.py 2006-07-18 11:19:19 UTC (rev 23) @@ -23,6 +23,7 @@ logger.setLevel(logging.INFO) #logger.setLevel(logging.DEBUG) filehandler = logging.FileHandler("pyplusplus.log", "wt") +filehandler.setLevel(logging.WARNING) logger.addHandler(filehandler) @@ -35,6 +36,15 @@ # "::M3dView::glxContext" : return_internal_reference(), "::MAnimCurveClipboard::theAPIClipboard" : return_internal_reference(), "::MClothConstraint::getParticle" : return_internal_reference(), + "::MClothConstraintCmd::getCustomConstraintBehavior" : return_internal_reference(), + "::MClothEdge::getParticle" : return_internal_reference(), + "::MClothEdge::getTriangle" : return_internal_reference(), + "::MClothForce::getParticle" : return_internal_reference(), + "::MClothParticle::getEdge" : return_internal_reference(), + "::MClothParticle::getMaterial" : return_internal_reference(), + "::MClothTriangle::getEdge" : return_internal_reference(), + "::MClothTriangle::getParticle" : return_internal_reference(), + "::MClothTriangle::getMaterial" : return_internal_reference(), "::MDataHandle::asFloatMatrix" : return_internal_reference(), "::MDataHandle::asFloatVector" : return_internal_reference(), "::MDataHandle::asMatrix" : return_internal_reference(), @@ -381,6 +391,7 @@ moduleName = "_api", output = "_api", multiFile = True, + maxArity = 20, # BOOST_PYTHON_MAX_ARITY queryLog = "query.log", decorationLog = "decoration.log" ) @@ -943,11 +954,381 @@ MMessage.cdef("removeCallbacks", "pyMMessage::removeCallbacks") MMessage.staticmethod("removeCallbacks") +mod.addBodyTailText('def("pyDataLut", pyMMessage::pyDataLut);') +mod.addBodyTailText('def("pyBufferSizeLut", pyMMessage::pyBufferSizeLut);') + +MAnimMessage = mod.Class("MAnimMessage") +MAnimMessage.cdef("addAnimCurveEditedCallback", + "pyMMessage::MAnimMessage_addAnimCurveEditedCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MAnimMessage.staticmethod("addAnimCurveEditedCallback") +MAnimMessage.cdef("addAnimKeyframeEditedCallback", + "pyMMessage::MAnimMessage_addAnimKeyframeEditedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MAnimMessage.cdef("addAnimKeyframeEditedCallback", + "pyMMessage::MAnimMessage_addAnimKeyframeEditedCallback2", + (arg("animNode"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MAnimMessage.staticmethod("addAnimKeyframeEditedCallback") + +MCommandMessage = mod.Class("MCommandMessage") +MCommandMessage.cdef("addCommandCallback", + "pyMMessage::MCommandMessage_addCommandCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MCommandMessage.staticmethod("addCommandCallback") +MCommandMessage.cdef("addCommandOutputCallback", + "pyMMessage::MCommandMessage_addCommandOutputCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MCommandMessage.staticmethod("addCommandOutputCallback") + +MConditionMessage = mod.Class("MConditionMessage") +MConditionMessage.cdef("addConditionCallback", + "pyMMessage::MConditionMessage_addConditionCallback", + (arg("condition"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MConditionMessage.staticmethod("addConditionCallback") + +MDGMessage = mod.Class("MDGMessage") +MDGMessage.cdef("addTimeChangeCallback", + "pyMMessage::MDGMessage_addTimeChangeCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDGMessage.staticmethod("addTimeChangeCallback") +MDGMessage.cdef("addForceUpdateCallback", + "pyMMessage::MDGMessage_addForceUpdateCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDGMessage.staticmethod("addForceUpdateCallback") +MDGMessage.cdef("addNodeAddedCallback", + "pyMMessage::MDGMessage_addNodeAddedCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDGMessage.staticmethod("addNodeAddedCallback") +MDGMessage.cdef("addNodeRemovedCallback", + "pyMMessage::MDGMessage_addNodeRemovedCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDGMessage.staticmethod("addNodeRemovedCallback") +MDGMessage.cdef("addConnectionCallback", + "pyMMessage::MDGMessage_addConnectionCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDGMessage.staticmethod("addConnectionCallback") + +MDagMessage = mod.Class("MDagMessage") +MDagMessage.cdef("addParentAddedCallback", + "pyMMessage::MDagMessage_addParentAddedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addParentAddedCallback", + "pyMMessage::MDagMessage_addParentAddedCallback2", + (arg("dagpath"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addParentAddedCallback") +MDagMessage.cdef("addParentRemovedCallback", + "pyMMessage::MDagMessage_addParentRemovedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addParentRemovedCallback", + "pyMMessage::MDagMessage_addParentRemovedCallback2", + (arg("dagpath"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addParentRemovedCallback") +MDagMessage.cdef("addChildAddedCallback", + "pyMMessage::MDagMessage_addChildAddedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addChildAddedCallback", + "pyMMessage::MDagMessage_addChildAddedCallback2", + (arg("dagpath"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addChildAddedCallback") +MDagMessage.cdef("addChildRemovedCallback", + "pyMMessage::MDagMessage_addChildRemovedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addChildRemovedCallback", + "pyMMessage::MDagMessage_addChildRemovedCallback2", + (arg("dagpath"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addChildRemovedCallback") +MDagMessage.cdef("addChildReorderedCallback", + "pyMMessage::MDagMessage_addChildReorderedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addChildReorderedCallback", + "pyMMessage::MDagMessage_addChildReorderedCallback2", + (arg("dagpath"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addChildReorderedCallback") +MDagMessage.cdef("addDagCallback", + "pyMMessage::MDagMessage_addDagCallback1_1", + (arg("msgType"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addDagCallback", + "pyMMessage::MDagMessage_addDagCallback2_1", + (arg("msgType"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addDagCallback") +MDagMessage.cdef("addDagCallback2", + "pyMMessage::MDagMessage_addDagCallback2_1", + (arg("msgType"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addDagCallback2", + "pyMMessage::MDagMessage_addDagCallback2_2", + (arg("msgType"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addDagCallback2") +MDagMessage.cdef("addAllDagChangesCallback", + "pyMMessage::MDagMessage_addAllDagChangesCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addAllDagChangesCallback", + "pyMMessage::MDagMessage_addAllDagChangesCallback2", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addAllDagChangesCallback") +MDagMessage.cdef("addInstanceAddedCallback", + "pyMMessage::MDagMessage_addInstanceAddedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addInstanceAddedCallback", + "pyMMessage::MDagMessage_addInstanceAddedCallback2", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addInstanceAddedCallback") +MDagMessage.cdef("addInstanceRemovedCallback", + "pyMMessage::MDagMessage_addInstanceRemovedCallback1", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.cdef("addInstanceRemovedCallback", + "pyMMessage::MDagMessage_addInstanceRemovedCallback2", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MDagMessage.staticmethod("addInstanceRemovedCallback") + MEventMessage = mod.Class("MEventMessage") -MEventMessage.cdef("addEventCallback", "pyMMessage::MEventMessage_addEventCallback") +MEventMessage.cdef("addEventCallback", + "pyMMessage::MEventMessage_addEventCallback", + (arg("event"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) MEventMessage.staticmethod("addEventCallback") -mod.addBodyTailText('def("pyDataLut", pyMMessage::pyDataLut);') +MLockMessage = mod.Class("MLockMessage") +MLockMessage.cdef("setNodeLockQueryCallback", + "pyMMessage::MLockMessage_setNodeLockQueryCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MLockMessage.staticmethod("setNodeLockQueryCallback") +MLockMessage.cdef("setNodeLockDAGQueryCallback", + "pyMMessage::MLockMessage_setNodeLockDAGQueryCallback", + (arg("path"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MLockMessage.staticmethod("setNodeLockDAGQueryCallback") +MLockMessage.cdef("setPlugLockQueryCallback", + "pyMMessage::MLockMessage_setPlugLockQueryCallback1", + (arg("plug"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MLockMessage.cdef("setPlugLockQueryCallback", + "pyMMessage::MLockMessage_setPlugLockQueryCallback2", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MLockMessage.staticmethod("setPlugLockQueryCallback") + +MModelMessage = mod.Class("MModelMessage") +MModelMessage.cdef("addCallback", "pyMMessage::MModelMessage_addCallback", + (arg("msg"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MModelMessage.staticmethod("addCallback") +MModelMessage.cdef("addBeforeDuplicateCallback", + "pyMMessage::MModelMessage_addBeforeDuplicateCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MModelMessage.staticmethod("addBeforeDuplicateCallback") +MModelMessage.cdef("addAfterDuplicateCallback", + "pyMMessage::MModelMessage_addAfterDuplicateCallback", + (arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MModelMessage.staticmethod("addAfterDuplicateCallback") + +MNodeMessage = mod.Class("MNodeMessage") +MNodeMessage.cdef("addAttributeChangedCallback", + "pyMMessage::MNodeMessage_addAttributeChangedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addAttributeChangedCallback") +MNodeMessage.cdef("addAttributeAddedOrRemovedCallback", + "pyMMessage::MNodeMessage_addAttributeAddedOrRemovedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addAttributeAddedOrRemovedCallback") +MNodeMessage.cdef("addNodeDirtyCallback", + "pyMMessage::MNodeMessage_addNodeDirtyCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addNodeDirtyCallback") +MNodeMessage.cdef("addNameChangedCallback", + "pyMMessage::MNodeMessage_addNameChangedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addNameChangedCallback") +MNodeMessage.cdef("addNodeAboutToDeleteCallback", + "pyMMessage::MNodeMessage_addNodeAboutToDeleteCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addNodeAboutToDeleteCallback") +MNodeMessage.cdef("addNodePreRemovalCallback", + "pyMMessage::MNodeMessage_addNodePreRemovalCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addNodePreRemovalCallback") +MNodeMessage.cdef("addNodeDestroyedCallback", + "pyMMessage::MNodeMessage_addNodeDestroyedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MNodeMessage.staticmethod("addNodeDestroyedCallback") + +MObjectSetMessage = mod.Class("MObjectSetMessage") +MObjectSetMessage.cdef("addSetMembersModifiedCallback", + "pyMMessage::MObjectSetMessage_addSetMembersModifiedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MObjectSetMessage.staticmethod("addSetMembersModifiedCallback") + +MPolyMessage = mod.Class("MPolyMessage") +MPolyMessage.cdef("addPolyComponentIdChangedCallback", + "pyMMessage::MPolyMessage_addPolyComponentIdChangedCallback", + (arg("node"), arg("wantIdModifications"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MPolyMessage.staticmethod("addPolyTopologyChangedCallback") +MPolyMessage.cdef("addPolyTopologyChangedCallback", + "pyMMessage::MPolyMessage_addPolyTopologyChangedCallback", + (arg("node"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MPolyMessage.staticmethod("addPolyTopologyChangedCallback") + +MSceneMessage = mod.Class("MSceneMessage") +MSceneMessage.cdef("addCallback", "pyMMessage::MSceneMessage_addCallback", + (arg("msg"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MSceneMessage.staticmethod("addCallback") + +MTimerMessage = mod.Class("MTimerMessage") +MTimerMessage.cdef("addTimerCallback", + "pyMMessage::MTimerMessage_addTimerCallback", + (arg("period"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MTimerMessage.staticmethod("addTimerCallback") +MTimerMessage.cdef("setSleepCallback", "pyMMessage::MTimerMessage_setSleepCallback") +MTimerMessage.staticmethod("setSleepCallback") +MTimerMessage.cdef("sleepCallback", "pyMMessage::MTimerMessage_sleepCallback") +MTimerMessage.staticmethod("sleepCallback") + +MUiMessage = mod.Class("MUiMessage") +MUiMessage.cdef("addUiDeletedCallback", + "pyMMessage::MUiMessage_addUiDeletedCallback", + (arg("uiName"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUiMessage.staticmethod("addUiDeletedCallback") +MUiMessage.cdef("addCameraChangedCallback", + "pyMMessage::MUiMessage_addCameraChangedCallback", + (arg("panelName"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUiMessage.staticmethod("addCameraChangedCallback") +MUiMessage.cdef("add3dViewDestroyMsgCallback", + "pyMMessage::MUiMessage_add3dViewDestroyMsgCallback", + (arg("panelName"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUiMessage.staticmethod("add3dViewDestroyMsgCallback") +MUiMessage.cdef("add3dViewPreRenderMsgCallback", + "pyMMessage::MUiMessage_add3dViewPreRenderMsgCallback", + (arg("panelName"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUiMessage.staticmethod("add3dViewPreRenderMsgCallback") +MUiMessage.cdef("add3dViewPostRenderMsgCallback", + "pyMMessage::MUiMessage_add3dViewPostRenderMsgCallback", + (arg("panelName"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUiMessage.staticmethod("add3dViewPostRenderMsgCallback") + +MUserEventMessage = mod.Class("MUserEventMessage") +MUserEventMessage.cdef("setUserEventSize", "pyMMessage::MUserEventMessage_setUserEventSize") +MUserEventMessage.staticmethod("setUserEventSize") +MUserEventMessage.cdef("getUserEventSize", "pyMMessage::MUserEventMessage_getUserEventSize") +MUserEventMessage.staticmethod("getUserEventSize") +MUserEventMessage.cdef("addUserEventCallback", + "pyMMessage::MUserEventMessage_addUserEventCallback", + (arg("event"), arg("func"), + arg("clientData", cpp("boost::python::object()")), + arg("status", cpp("boost::python::object()")))) +MUserEventMessage.staticmethod("addUserEventCallback") +MUserEventMessage.Method("postUserEvent").ignore() +MUserEventMessage.cdef("postUserEvent", + "pyMMessage::MUserEventMessage_postUserEvent", + (arg("event"), arg("clientData", + cpp("boost::python::object()")))) +MUserEventMessage.staticmethod("postUserEvent") + #for dw in MEventMessage: # decl = dw.decl_handles[0] # print "****", decl.readme() Modified: maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp 2006-07-14 14:45:16 UTC (rev 22) +++ maya/trunk/maya_wrapper/src_aux/messagehelpers.cpp 2006-07-18 11:19:19 UTC (rev 23) @@ -20,19 +20,19 @@ * * ***** END LICENSE BLOCK ***** */ +#include "messagehelpers.h" -#include <boost/python.hpp> -#include <maya/MStatus.h> -#include <maya/MMessage.h> -#include <maya/MEventMessage.h> -#include <maya/MCallbackIdArray.h> - namespace pyMMessage { +////////////////////////////////////////////////////////////////////// // Lookup table: CallbackId -> Tuple (pyFunc, pyClientData) +////////////////////////////////////////////////////////////////////// boost::python::dict pyData_lut; +// Lookup table: user event name(MString) -> data size(int) +boost::python::dict pyBufferSize_lut; + /** Return the lookup table (dict). @@ -44,36 +44,408 @@ return pyData_lut; } +boost::python::dict pyBufferSizeLut() +{ + return pyBufferSize_lut; +} + ////////////////////////////////////////////////////////////////////// // C++ callbacks that invoke equivalent Python callbacks ////////////////////////////////////////////////////////////////////// +/* The code before the Python callback invocation: + + - Lock the interpreter + - Obtain the (pyFunc,pyClientData) tuple from the current callback id + + -> then the Python callback (pyFunc) has to be called providing whatever + arguments are required + */ +#define CALLBACK_BEGIN \ + PyGILState_STATE gstate = PyGILState_Ensure();\ + MCallbackId id = MMessage::currentCallbackId();\ + try\ + {\ + boost::python::object datatup = pyData_lut[id];\ + boost::python::object pyFunc = datatup[0];\ + boost::python::object pyClientData = datatup[1]; + +/* The code after the Python callback invocation: + + - Catch any exception (so that the interpreter doesn't remain locked!) + - Print the exception if there was one and disable the callback + - Release the interpreter + */ +#define CALLBACK_END \ + }\ + catch(...)\ + {\ + std::cerr<<"The following exception has occurred in a Python message callback (the callback is removed):"<<std::endl;\ + if (PyErr_Occurred())\ + {\ + PyErr_Print();\ + }\ + removeCallback(id);\ + }\ + PyGILState_Release(gstate); + + /** Callback function that just takes a clientData pointer. + void (*func)( void* clientData ) */ void callback(void* clientData) { + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObjectArray and a clientData pointer + as input. + void (*func)( MObjectArray &editedCurves, void *clientData ) + */ +void callback_ObjArr(MObjectArray& editedCurves, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), editedCurves, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObjectArray and a clientData pointer + as input. + void (*func)( MObject &animNode, MObjectArray &editedKeys, void *clientData) + */ +void callback_Obj_ObjArr(MObject& animNode, MObjectArray& editedCurves, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), animNode, editedCurves, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes two MDagPath objects as input. + void (*func)( MDagPath &child, MDagPath &parent, void * clientData ) + */ +void callback_DagPath_DagPath(MDagPath& child, MDagPath& parent, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), child, parent, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a DagMessage type and two MDagPath objects as input. + void (*func)( DagMessage msgType, MDagPath &child, MDagPath &parent, void *clientData ) + */ +void callback_DagMsg_DagPath_DagPath(MDagMessage::DagMessage msgType, MDagPath& child, MDagPath& parent, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), msgType, child, parent, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MString object as input. + void (*func)( const MString &, void* clientData ) + */ +void callback_Str(const MString& s, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), s, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MString object as input. + void (*func)( const MString &, void* clientData ) + */ +void callback_Str2(MString& s, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), s, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MString object and a MessageType as input. + void (*func)( const MString & message, MessageType messageType, void* clientData ) + */ +void callback_Str_MsgType(const MString& msg, MCommandMessage::MessageType msgType, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), msg, msgType, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a bool as input. + void (*func)( bool state, void* clientData ) + */ +void callback_bool(bool state, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), state, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MTime object as input. + void (*func)( MTime & time, void * clientData ) + */ +void callback_Time(MTime& time, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), time, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObject object as input. + void (*func)( MObject & node, void* clientData ) + */ +void callback_Obj(MObject& node, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), node, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes two MPlug objects and a bool as input. + void (*func)( MPlug & srcPlug, MPlug & destPlug, bool made, void* clientData ) + */ +void callback_Plug_Plug_bool(MPlug& srcPlug, MPlug& destPlug, bool made, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), srcPlug, destPlug, made, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes two floats as input. + void (*func)( float elapsedTime, float lastTime, void* clientData ) + */ +void callback_float_float(float t1, float t2, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), t1, t2, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes an AttributeMessage and two MPlugs as input. + void (*func)( MNodeMessage::AttributeMessage msg, MPlug & plug, MPlug & otherPlug, void* clientData ) + */ +void callback_AttrMsg_Plug_Plug(MNodeMessage::AttributeMessage msg, MPlug& plug, MPlug& otherPlug, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), msg, plug, otherPlug, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes an AttributeMessage and a MPlug as input. + void (*func)( AttributeMessage msg, MPlug & plug, void* clientData ) + */ +void callback_AttrMsg_Plug(MNodeMessage::AttributeMessage msg, MPlug& plug, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), msg, plug, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObject and a MPlug as input. + void (*func)( MObject & node, MPlug & plug, void* clientData ) + */ +void callback_Obj_Plug(MObject& node, MPlug& plug, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), node, plug, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObject and a MString as input. + void (*func)( MObject & node, const MString & prevName, void* clientData ) + */ +void callback_Obj_Str(MObject& node, const MString& prevName, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), node, prevName, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MObject and a MDGModifier as input. + void (*func)( MObject & node, MDGModifier & modifier, void* clientData ) + */ +void callback_Obj_DGMod(MObject& node, MDGModifier& modifier, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), node, modifier, pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a bool* as input. The Python function takes + only the client data as input and has to return a bool. + void (*func)( bool* retCode, void* clientData ) + */ +void callback_boolout(bool* retCode, void* clientData) +{ + CALLBACK_BEGIN + *retCode = boost::python::call<bool>(pyFunc.ptr(), pyClientData); + CALLBACK_END +} + +/** + Callback function that takes a MString and a MObject as input. + void (*func)( MString &panelName, MObject &camera, void* clientData ) + */ +void callback_Str_Obj(MString& name, MObject& camera, void* clientData) +{ + CALLBACK_BEGIN + boost::python::call<void>(pyFunc.ptr(), name, camera, pyClientData); + CALLBACK_END +} + +/** + Callback function for the MLockMessage::setNodeLockQueryCallback() function. + The Python function has to return a boolean which is returned via the + "decision" variable. + void (*func)( MObject &node, MObject &aux, void *clientData, LockEvent eventType, bool &decision ) + */ +void callback_Obj_Obj_LockEvent(MObject& node, MObject& aux, void* clientData, MLockMessage::LockEvent eventType, bool& decision) +{ + CALLBACK_BEGIN + decision = boost::python::call<bool>(pyFunc.ptr(), node, aux, pyClientData, eventType); + CALLBACK_END +} + +/** + Callback function for the MLockMessage::setNodeLockDAGQueryCallback() + function. + The Python function has to return a boolean which is returned via the + "decision" variable. + void (*func)( MDagPath &dagPath, MDagPath &otherPath, void *clientData, LockDAGEvent eventType, bool &decision ) + */ +void callback_DagPath_DagPath_LockDAGEvent(MDagPath& dagPath, MDagPath& otherPath, void* clientData, MLockMessage::LockDAGEvent eventType, bool& decision) +{ + CALLBACK_BEGIN + decision = boost::python::call<bool>(pyFunc.ptr(), dagPath, otherPath, pyClientData, eventType); + CALLBACK_END +} + +/** + Callback function for the MLockMessage::setPlugLockQueryCallback() + function. + The Python function has to return a boolean which is returned via the + "decision" variable. + void (*func)( MPlug &plug, MPlug &otherPlug, void *clientData, LockPlugEvent eventType, bool &decision ) + */ +void callback_Plug_Plug_LockPlugEvent(MPlug& plug, MPlug& otherPlug, void* clientData, MLockMessage::LockPlugEvent eventType, bool& decision) +{ + CALLBACK_BEGIN + decision = boost::python::call<bool>(pyFunc.ptr(), plug, otherPlug, pyClientData, eventType); + CALLBACK_END +} + +/** + Callback function that takes a MUintArray as input. + void (*func)( MUintArray componentIds[], unsigned int count, void *clientData ) + */ +void callback_UintArray(MUintArray componentIds[], unsigned int count, void* clientData) +{ + CALLBACK_BEGIN + // Copy the IDs into a Python list... + boost::python::list pyCompIds; + for(unsigned int i=0; i<count; i++) + { + pyCompIds.append(componentIds[i]); + } + boost::python::call<void>(pyFunc.ptr(), pyCompIds, pyClientData); + CALLBACK_END +} + + +////////////////////////////////////////////////////////////////////// +// MUserEvent callback +////////////////////////////////////////////////////////////////////// + +/** + User event callback. + If clientData is NULL then the Python clientData is used just as usual, + otherwise the binary clientData is wrapped into a string and passed to + the Python callback. + */ +void userEventCallback(void* clientData) +{ PyGILState_STATE gstate = PyGILState_Ensure(); + MCallbackId id = MMessage::currentCallbackId(); + try + { + boost::python::object datatup = pyData_lut[id]; + boost::python::object pyFunc = datatup[0]; + boost::python::object clientDataAndSizeTup = datatup[1]; + if (clientData==NULL) + { + // Invoke the Python function with the clientData that was provided + // during registration + boost::python::object pyClientData = clientDataAndSizeTup[0]; + boost::python::call<void>(pyFunc.ptr(), pyClientData); + } + else + { + // Extract the length of the binary buffer that will be passed to the + // Python function + boost::python::object dataSize = clientDataAndSizeTup[1]; + std::size_t size = boost::python::extract<int>(dataSize); + // Invoke the Python function with the C++ client data + boost::python::str binClientData((char*)clientData, size); + boost::python::call<void>(pyFunc.ptr(), binClientData); + } + } + catch(...) + { + std::cerr<<"The following exception has occurred in a Python user event message callback (the callback is removed):"<<std::endl; + if (PyErr_Occurred()) + { + PyErr_Print(); + } + removeCallback(id); + } + PyGILState_Release(gstate); +} - // Cast client data to a tuple and check if it's really a tuple - PyObject* datatuple = (PyObject*)clientData; - if (!PyTuple_Check(datatuple)) - return; - // Obtain the Python function and the Python clientData... - PyObject* func = PyTuple_GetItem(datatuple, 0); - if (func==NULL) - return; - PyObject* data = PyTuple_GetItem(datatuple, 1); - if (data==NULL) - return; +////////////////////////////////////////////////////////////////////// +// MTimerMessage sleepCallback() +////////////////////////////////////////////////////////////////////// - // Call the Python function (if it's really a callable) - if (PyCallable_Check(func)) +boost::python::object pySleepCallbackFunc; + +// sleepCallback +void sleepCallbackFunc() +{ + PyGILState_STATE gstate = PyGILState_Ensure(); + + try { - PyObject_CallFunctionObjArgs(func, data, NULL); + boost::python::call<void>(pySleepCallbackFunc.ptr()); } - + catch(...) + { + std::cerr<<"The following exception has occurred in the Python sleepCallback function (the function is disabled):"<<std::endl; + if (PyErr_Occurred()) + { + PyErr_Print(); + } + MTimerMessage::setSleepCallback(NULL); + } PyGILState_Release(gstate); } @@ -122,34 +494,914 @@ // addCallback functions ////////////////////////////////////////////////////////////////////// -/** +/* + Code before the original C++ addCallback function is called. + */ +#define ADD_CALLBACK_BEGIN \ + boost::python::tuple pyData = boost::python::make_tuple(func, clientData);\ + MStatus stat;\ + MStatus* pstat = &stat;\ + if (ReturnStatus!=NULL)\ + {\ + pstat = ReturnStatus;\ + }\ + MCallbackId id = 0; + +/* + Code after the original C++ addCallback function is called. + */ +#define ADD_CALLBACK_END \ + if (*pstat)\ + {\ + pyData_lut[id] = pyData;\ + }\ + return id; + + +/** ---------------------------------------------------------------------- MEventMessage::addEventCallback() - */ + ---------------------------------------------------------------------- */ MCallbackId MEventMessage_addEventCallback( const MString& event, boost::python::object func, boost::python::object clientData, MStatus* ReturnStatus) { - // Create tuple (pyFunc, pyClientData) - boost::python::tuple pyData = boost::python::make_tuple(func, clientData); + ADD_CALLBACK_BEGIN + id = MEventMessage::addEventCallback(event, callback, NULL, pstat); + ADD_CALLBACK_END +} +/** ---------------------------------------------------------------------- + MAnimMessage::addAnimCurveEditedCallback() + ---------------------------------------------------------------------- */ +MCallbackId MAnimMessage_addAnimCurveEditedCallback( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MAnimMessage::addAnimCurveEditedCallback(callback_ObjArr, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MAnimMessage::addAnimKeyframeEditedCallback() + ---------------------------------------------------------------------- */ +MCallbackId MAnimMessage_addAnimKeyframeEditedCallback1( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MAnimMessage::addAnimKeyframeEditedCallback(callback_ObjArr, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MAnimMessage::addAnimKeyframeEditedCallback() + ---------------------------------------------------------------------- */ +MCallbackId MAnimMessage_addAnimKeyframeEditedCallback2( + MObject& animNode, + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MAnimMessage::addAnimKeyframeEditedCallback(animNode, callback_Obj_ObjArr, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MCommandMessage::addCommandCallback() + ---------------------------------------------------------------------- */ +MCallbackId MCommandMessage_addCommandCallback( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MCommandMessage::addCommandCallback(callback_Str, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MCommandMessage::addCommandOutputCallback() + ---------------------------------------------------------------------- */ +MCallbackId MCommandMessage_addCommandOutputCallback( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MCommandMessage::addCommandOutputCallback(callback_Str_MsgType, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MConditionMessage::addConditionCallback() + ---------------------------------------------------------------------- */ +MCallbackId MConditionMessage_addConditionCallback( + const MString& condition, + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MConditionMessage::addConditionCallback(condition, callback_bool, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MDGMessage::addTimeChangeCallback() + ---------------------------------------------------------------------- */ +MCallbackId MDGMessage_addTimeChangeCallback( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MDGMessage::addTimeChangeCallback(callback_Time, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MDGMessage::addForceUpdateCallback() + ---------------------------------------------------------------------- */ +MCallbackId MDGMessage_addForceUpdateCallback( + boost::python::object func, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MDGMessage::addForceUpdateCallback(callback_Time, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MDGMessage::addNodeAddedCallback() + ---------------------------------------------------------------------- */ +MCallbackId MDGMessage_addNodeAddedCallback( + boost::python::object func, + const MString& nodeType, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MDGMessage::addNodeAddedCallback(callback_Obj, nodeType, NULL, pstat); + ADD_CALLBACK_END +} + +/** ---------------------------------------------------------------------- + MDGMessage::addNodeRemovedCallback() + ---------------------------------------------------------------------- */ +MCallbackId MDGMessage_addNodeRemovedCallback( + boost::python::object func, + const MString& nodeType, + boost::python::object clientData, + MStatus* ReturnStatus) +{ + ADD_CALLBACK_BEGIN + id = MDGMessage::addN... [truncated message content] |
From: <mb...@us...> - 2006-10-02 14:11:26
|
Revision: 73 http://svn.sourceforge.net/cgkit/?rev=73&view=rev Author: mbaas Date: 2006-10-02 07:11:11 -0700 (Mon, 02 Oct 2006) Log Message: ----------- Added array wrapper functions (get(), __setitem__). Modified Paths: -------------- maya/trunk/maya_wrapper/extraheaders.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/mintarray.cpp maya/trunk/maya_wrapper/src_aux/mintarray.h maya/trunk/maya_wrapper/src_aux/mpointarray.cpp maya/trunk/maya_wrapper/src_aux/mstringarray.cpp maya/trunk/maya_wrapper/src_aux/mstringarray.h maya/trunk/maya_wrapper/src_aux/muintarray.cpp maya/trunk/maya_wrapper/src_aux/muintarray.h Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/mplugarray.cpp maya/trunk/maya_wrapper/src_aux/mplugarray.h Modified: maya/trunk/maya_wrapper/extraheaders.h =================================================================== --- maya/trunk/maya_wrapper/extraheaders.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/extraheaders.h 2006-10-02 14:11:11 UTC (rev 73) @@ -71,6 +71,7 @@ #include "mplug.h" #include "mpoint.h" #include "mpointarray.h" +#include "mplugarray.h" #include "mquaternion.h" #include "mselectionlist.h" #include "mstatus.h" Modified: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mfloatpointarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -26,10 +26,46 @@ #include <sstream> #include "mfloatpointarray.h" +#include "exceptions.h" namespace pyMFloatPointArray { + // get() method returning a list + boost::python::list get1(MFloatPointArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MFloatPoint& p = self[i]; + res.append(boost::python::make_tuple(p.x, p.y, p.z, p.w)); + } + return res; + } + + // get() method filling a user-provided list + void get2(MFloatPointArray& 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++) + { + MFloatPoint& p = self[i]; + lst.append(boost::python::make_tuple(p.x, p.y, p.z, p.w)); + } + } + + // __setitem__ method + void __setitem__(MFloatPointArray& self, unsigned int key, MFloatPoint& val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MFloatPointArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mfloatpointarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -34,5 +34,10 @@ */ namespace pyMFloatPointArray { + + boost::python::list get1(MFloatPointArray& self); + void get2(MFloatPointArray& self, boost::python::list lst); + void __setitem__(MFloatPointArray& self, unsigned int key, MFloatPoint& val); + boost::python::str __str__(MFloatPointArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -26,10 +26,46 @@ #include <sstream> #include "mfloatvectorarray.h" +#include "exceptions.h" namespace pyMFloatVectorArray { + // get() method returning a list + boost::python::list get1(MFloatVectorArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MFloatVector& v = self[i]; + res.append(boost::python::make_tuple(v.x, v.y, v.z)); + } + return res; + } + + // get() method filling a user-provided list + void get2(MFloatVectorArray& 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++) + { + MFloatVector& v = self[i]; + lst.append(boost::python::make_tuple(v.x, v.y, v.z)); + } + } + + // __setitem__ method + void __setitem__(MFloatVectorArray& self, unsigned int key, MFloatVector& val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MFloatVectorArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mfloatvectorarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -34,5 +34,10 @@ */ namespace pyMFloatVectorArray { + + boost::python::list get1(MFloatVectorArray& self); + void get2(MFloatVectorArray& self, boost::python::list lst); + void __setitem__(MFloatVectorArray& self, unsigned int key, MFloatVector& val); + boost::python::str __str__(MFloatVectorArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/mintarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mintarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mintarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -26,9 +26,45 @@ #include <sstream> #include "mintarray.h" +#include "exceptions.h" namespace pyMIntArray { + // get() method returning a list + boost::python::list get1(MIntArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + int v = self[i]; + res.append(v); + } + return res; + } + + // get() method filling a user-provided list + void get2(MIntArray& 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++) + { + int v = self[i]; + lst.append(v); + } + } + + // __setitem__ method + void __setitem__(MIntArray& self, unsigned int key, int val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MIntArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mintarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mintarray.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mintarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -34,5 +34,10 @@ */ namespace pyMIntArray { + + boost::python::list get1(MIntArray& self); + void get2(MIntArray& self, boost::python::list lst); + void __setitem__(MIntArray& self, unsigned int key, int val); + boost::python::str __str__(MIntArray& self); } Added: maya/trunk/maya_wrapper/src_aux/mplugarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mplugarray.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mplugarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -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 MPlugArray class. +*/ + +#include <sstream> +#include "mplugarray.h" +#include "exceptions.h" + +namespace pyMPlugArray +{ + + // get() method returning a list + boost::python::list get1(MPlugArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MPlug p = self[i]; + res.append(p); + } + return res; + } + + // get() method filling a user-provided list + void get2(MPlugArray& 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++) + { + MPlug p = self[i]; + lst.append(p); + } + } + + // __setitem__ method + void __setitem__(MPlugArray& self, unsigned int key, MPlug& val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + + // __str__ method + /* boost::python::str __str__(MPlugArray& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + }*/ +} Property changes on: maya/trunk/maya_wrapper/src_aux/mplugarray.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/mplugarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mplugarray.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/mplugarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -0,0 +1,43 @@ +/* ***** 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 mplugarray.h + Additional methods for the MPlugArray class. +*/ + +#include <boost/python.hpp> +#include <maya/MPlugArray.h> +#include <maya/MPlug.h> + +/** + This namespace contains extra methods for the MPlugArray class. + */ +namespace pyMPlugArray +{ + + boost::python::list get1(MPlugArray& self); + void get2(MPlugArray& self, boost::python::list lst); + void __setitem__(MPlugArray& self, unsigned int key, MPlug& val); + + // boost::python::str __str__(MPlugArray& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/mplugarray.h ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/src_aux/mpointarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mpointarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mpointarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -57,7 +57,6 @@ } } - // __setitem__ method void __setitem__(MPointArray& self, unsigned int key, MPoint& val) { Modified: maya/trunk/maya_wrapper/src_aux/mstringarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mstringarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mstringarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -26,10 +26,46 @@ #include <sstream> #include "mstringarray.h" +#include "exceptions.h" namespace pyMStringArray { + // get() method returning a list + boost::python::list get1(MStringArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + MString& p = self[i]; + res.append(p); + } + return res; + } + + // get() method filling a user-provided list + void get2(MStringArray& 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++) + { + MString& p = self[i]; + lst.append(p); + } + } + + // __setitem__ method + void __setitem__(MStringArray& self, unsigned int key, MString& val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MStringArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/mstringarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/mstringarray.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/mstringarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -33,5 +33,10 @@ */ namespace pyMStringArray { + + boost::python::list get1(MStringArray& self); + void get2(MStringArray& self, boost::python::list lst); + void __setitem__(MStringArray& self, unsigned int key, MString& val); + boost::python::str __str__(MStringArray& self); } Modified: maya/trunk/maya_wrapper/src_aux/muintarray.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/muintarray.cpp 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/muintarray.cpp 2006-10-02 14:11:11 UTC (rev 73) @@ -26,10 +26,45 @@ #include <sstream> #include "muintarray.h" +#include "exceptions.h" namespace pyMUintArray { + // get() method returning a list + boost::python::list get1(MUintArray& self) + { + boost::python::list res; + for(unsigned int i=0; i<self.length(); i++) + { + unsigned int v = self[i]; + res.append(v); + } + return res; + } + // get() method filling a user-provided list + void get2(MUintArray& 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++) + { + unsigned int v = self[i]; + lst.append(v); + } + } + + // __setitem__ method + void __setitem__(MUintArray& self, unsigned int key, unsigned int val) + { + if (key>=self.length()) + throw EIndexError(); + + self.set(val, key); + } + // __str__ method boost::python::str __str__(MUintArray& self) { Modified: maya/trunk/maya_wrapper/src_aux/muintarray.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/muintarray.h 2006-10-02 10:12:07 UTC (rev 72) +++ maya/trunk/maya_wrapper/src_aux/muintarray.h 2006-10-02 14:11:11 UTC (rev 73) @@ -34,5 +34,10 @@ */ namespace pyMUintArray { + + boost::python::list get1(MUintArray& self); + void get2(MUintArray& self, boost::python::list lst); + void __setitem__(MUintArray& self, unsigned int key, unsigned int val); + boost::python::str __str__(MUintArray& 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 19:12:47
|
Revision: 76 http://svn.sourceforge.net/cgkit/?rev=76&view=rev Author: mbaas Date: 2006-10-02 12:12:35 -0700 (Mon, 02 Oct 2006) Log Message: ----------- Added the arrayinfo 'package' that is used by pypp_setup Added Paths: ----------- maya/trunk/maya_wrapper/arrayinfo/ maya/trunk/maya_wrapper/arrayinfo/__init__.py maya/trunk/maya_wrapper/arrayinfo/arrayinfo.py maya/trunk/maya_wrapper/arrayinfo/cpptokenize.py maya/trunk/maya_wrapper/arrayinfo/createarrayinfo.py maya/trunk/maya_wrapper/arrayinfo/readme.txt Added: maya/trunk/maya_wrapper/arrayinfo/__init__.py =================================================================== --- maya/trunk/maya_wrapper/arrayinfo/__init__.py (rev 0) +++ maya/trunk/maya_wrapper/arrayinfo/__init__.py 2006-10-02 19:12:35 UTC (rev 76) @@ -0,0 +1,3 @@ +# This file makes the directory a package so that the arrayinfo +# module can be imported by pypp_setup.py without having to +# set up any additional pathes. Property changes on: maya/trunk/maya_wrapper/arrayinfo/__init__.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/arrayinfo/arrayinfo.py =================================================================== --- maya/trunk/maya_wrapper/arrayinfo/arrayinfo.py (rev 0) +++ maya/trunk/maya_wrapper/arrayinfo/arrayinfo.py 2006-10-02 19:12:35 UTC (rev 76) @@ -0,0 +1,71 @@ +###################################################################### +# Array info +# +# Author: Matthias Baas (ba...@ir...) +###################################################################### + +# ArrayInfo +class ArrayInfo: + """Reads the information that was created by createarrayinfo.py. + + Usage: + + Create an instance of this class and either provide the file + name in the constructor or call read() manually. After the info + file has been read you can call arraySize() to retrieve the + size of a particular argument. + """ + + def __init__(self, datfile=None): + """Constructor. + + datfile is the name of the file that contains the array size + information (as created by the createarrayinfo.py utility). + If a name is provided is already read in (so there's no need + to manually call read() anymore). + """ + + # Key: (filename, firstline, funcname) + self.funcargs = {} + + if datfile!=None: + self.read(datfile) + + # read + def read(self, datfile): + """Read an info file. + """ + + n = 0 + for s in file(datfile, "rt"): + a = s.split(";") + filename, firstline, lastline, classname, funcname, args = a + firstline = int(firstline) + lastline = int(lastline) + args = eval(args) + key = (filename, lastline, funcname) + self.funcargs[key] = args + n += 1 + print n,"entries read from",datfile + + # arraySize + def arraySize(self, decl, idx): + """Return the array size of an argument. + + decl is the pygccxml calldef declaration whose argument list + should be inspected. idx is the index of the argument (0-based). + The return value is None if the argument is no array or the + array size is not known, otherwise the size of the array is + returned. + """ + filename = decl.location.file_name + line = decl.location.line + funcname = decl.name + args = self.funcargs.get((filename, line, funcname)) + if args==None: + return None + if idx>=len(args): + return None + else: + return args[idx] + Property changes on: maya/trunk/maya_wrapper/arrayinfo/arrayinfo.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/arrayinfo/cpptokenize.py =================================================================== --- maya/trunk/maya_wrapper/arrayinfo/cpptokenize.py (rev 0) +++ maya/trunk/maya_wrapper/arrayinfo/cpptokenize.py 2006-10-02 19:12:35 UTC (rev 76) @@ -0,0 +1,119 @@ +########################################################################### +# C/C++ tokenizer +# Copyright (C) 2006 Matthias Baas (ba...@ir...) +########################################################################### + +"""C/C++ tokenizer module. + +This module provides the function tokenize() that just works like the +equivalent Python function with the only difference that it scans +C/C++ source code. +""" + +import re + +WHITESPACE = 0 +NAME = 1 +NUMBER = 2 +STRING = 3 +NEWLINE = 4 +OPERATOR = 5 +CHARACTER = 6 + +# tokenize +def tokenize(readline, tokeater): + """Reads a C/C++ input stream and creates tokens. + + The first parameter, readline, must be a callable object which + provides the same interface as the readline() method of built-in + file objects. Each call to the function should return one line of + input as a string. + + The second parameter, tokeneater, must also be a callable object. + It is called with six parameters: the token type, the token + string, a tuple (srow, scol) specifying the row and column where + the token begins in the source, a tuple (erow, ecol) giving the + ending position of the token, the line on which the token was + found and the filename of the current file. + + By default the filename argument is an empty string. It will only + be the actual filename if you provide a preprocessed file stream + as input (so you should first run cpp on any source code). The + tokenizer actually expects preprocessed data as it doesn't handle + comments. + """ + + regs = ( (WHITESPACE, re.compile(r"[ \t]+")), + (NAME, re.compile(r"[A-Za-z_][A-Za-z_0-9]*")), + (NUMBER, re.compile(r"[0-9]+(\.[0-9]+)?(E(\+|-)?[0-9]+)?")), + (STRING, re.compile(r"\"[^\"]*\"|'[^\']*\'")), + (OPERATOR, re.compile(r"->|::|\+\+|--|->\*|\.\*|<<|>>|<=|>=|==|!=|&&|\|\||\+=|-=|\*=|/=|%=|&=|\^=|\|=|<<=|>>=|\(|\)|\[|\]|\.|\+|-|!|~|\*|/|&|\^|%|<|>|\?|:|=")), + (NEWLINE, re.compile(r"\n")) + ) + + linenr = 0 + filename = "" + while 1: + # Read next line + line = readline() + # No more lines? then finish + if line=="": + break + + linenr+=1 + # Base for starting column... + scolbase = 0 + + # Process preprocessor lines... + if line[0]=="#": + try: + f = line.strip().split(" ") + linenr = int(f[1])-1 + filename = f[2][1:-1] + except: + pass + continue + + s = line + + # Create tokens... + while s!="": + unmatched=1 + # Check all regular expressions... + for r in regs: + m=r[1].match(s) + # Does it match? then the token is found + if m!=None: + scol = m.start() + ecol = m.end() + tok = s[scol:ecol] + s = s[ecol:] + typ = r[0] + tokeater(typ, tok, (linenr, scolbase+scol), (linenr, scolbase+ecol), line, filename) + scolbase += ecol + unmatched=0 + continue + + # No match? then report a single character... + if unmatched: + tok = s[0] + tokeater(CHARACTER, tok, (linenr, scolbase), (linenr, scolbase+1), line, filename) + s = s[1:] + scolbase += 1 + + +def _tokeater(type, s, start, end, line, filename): + """Test token eater.""" + if type==WHITESPACE or type==NEWLINE: + return + type_str = ["WHITESPACE", "NAME", "NUMBER", "STRING", "NEWLINE", "OPERATOR", "CHARACTER"] + + print "Token: %-11s %-20s %s %s %s"%(type_str[type],s, start,end,filename) + +###################################################################### + +if __name__=="__main__": + + f=open("header.h") + tokenize(f.readline, _tokeater) + \ No newline at end of file Property changes on: maya/trunk/maya_wrapper/arrayinfo/cpptokenize.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/arrayinfo/createarrayinfo.py =================================================================== --- maya/trunk/maya_wrapper/arrayinfo/createarrayinfo.py (rev 0) +++ maya/trunk/maya_wrapper/arrayinfo/createarrayinfo.py 2006-10-02 19:12:35 UTC (rev 76) @@ -0,0 +1,169 @@ +#!/usr/bin/env python +###################################################################### +# This tool parses header files inside a directory and stores info +# about the array size of function arguments into a file for later +# retrieval. +# +# usage: createarrayinfo.py [options] <headerpath> +# +# options: +# -h, --help show this help message and exit +# -o FILENAME, --output=FILENAME +# Output file name (default: stdout) +# -a ARGSTRING, --cppargs=ARGSTRING +# Additional C preproceesor arguments +# +# Author: Matthias Baas (ba...@ir...) +###################################################################### + +import sys, os, os.path, glob, optparse +from cpptokenize import * + +# Parser +class Parser: + """Parser class. + + This class contains the token eater method that processes the tokens + generated by cpptokenize. + Whenever a function signature is parsed a line is written to the output. + """ + + def __init__(self, headerpath, output=sys.stdout): + """Constructor. + """ + + self.headerpath = os.path.normpath(headerpath) + self.output = output + + # Buffer for the last NAME token (which might be a function name) + self.lastname = None + # The current state + self.state = "Outside" + + self.classname = None + self.funcname = None + self.args = None + self.arraysize = None + self.no_arg = False + self.firstline = None + + def tokeater(self, type, s, start, end, line, filename): + """Token eater.""" + if type==WHITESPACE or type==NEWLINE: + return + + method = getattr(self, "state%s"%self.state) + method(type, s, start, end, line, filename) + + # The state methods. They are called by the token eater and must take + # the same arguments than the token eater. + + def stateOutside(self, type, s, start, end, line, filename): + if type==NAME and s=="class": + self.state = "ClassName" + if type==NAME: + self.firstline = start[0] + self.lastname = s + elif self.lastname=="operator": + self.lastname += s + elif type==OPERATOR and s=="(": + self.funcname = self.lastname + self.args = [] + self.arraysize = None + self.no_arg = True + self.state = "Args" + + def stateClassName(self, type, s, start, end, line, filename): + if s.upper()==s: + return + self.classname = s + self.state = "Outside" + + def stateArgs(self, type, s, start, end, line, filename): + if s==")": + if not self.no_arg: + self.args.append(self.arraysize) + self.state = "End" + elif s==",": + self.args.append(self.arraysize) + self.arraysize = None + elif s=="[": + self.state = "ArgsSize" + self.no_arg = False + + def stateArgsSize(self, type, s, start, end, line, filename): + if s=="]": + self.state = "Args" + else: + self.arraysize = int(s) + self.state = "Args" + + def stateEnd(self, type, s, start, end, line, filename): + if s==";": + if os.path.normpath(os.path.dirname(filename))==self.headerpath: + self.onFuncComplete(self.classname, self.funcname, self.args, self.firstline, end[0], filename) + self.state = "Outside" + + + def onFuncComplete(self, classname, funcname, args, firstline, lastline, filename): + """Callback that is called when one function is completely processed. + """ + print >>self.output, "%s;%d;%d;%s;%s;%s"%(filename, firstline, lastline, classname, funcname, args) + + +# parseHeader +def parseHeader(filename, cpp="cpp", cppargs="", output=sys.stdout): + """Parse a header file. + + filename is the header file name and cppargs is a string with + additional arguments for the invocation of the preprocessor 'cpp'. + output is the output stream. + """ + # Run the file through the preprocessor... + filename = os.path.abspath(filename) + print >>sys.stderr, "Parsing",filename + cmd = "%s %s %s >_tmp.h"%(cpp, cppargs, filename) + print >>sys.stderr, cmd + os.system(cmd) + + # Parse the preprocessed file... + parser = Parser(os.path.dirname(filename), output) + tokenize(file("_tmp.h").readline, parser.tokeater) + +###################################################################### + +# Preprocessor +cpp = "cpp" +# Preprocessor arguments +cppargs = "" +# Output stream +output = sys.stdout + +usage = "usage: %prog [options] <headerpath>" +op = optparse.OptionParser(usage) +op.add_option("-o", "--output", metavar="FILENAME", + help="Output file name") +op.add_option("-a", "--cppargs", metavar="ARGSTRING", default="", + help="Additional C preproceesor arguments") + +options, args = op.parse_args() + +if len(args)==0: + op.print_help() + sys.exit(1) + +if options.output!=None: + print >>sys.stderr, "Output file: %s"%options.output + output = file(options.output, "wt") + +headerpath = args[0] +headernames = os.path.join(headerpath, "*.h") +print >>sys.stderr, "Input files: %s"%headernames + +cppargs = options.cppargs +print >>sys.stderr, "Preprocessor args: %s"%cppargs + +headers = glob.glob(headernames) +print >>sys.stderr, "%d header files found"%len(headers) +for header in headers: + parseHeader(header, cpp, cppargs, output) \ No newline at end of file Property changes on: maya/trunk/maya_wrapper/arrayinfo/createarrayinfo.py ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/arrayinfo/readme.txt =================================================================== --- maya/trunk/maya_wrapper/arrayinfo/readme.txt (rev 0) +++ maya/trunk/maya_wrapper/arrayinfo/readme.txt 2006-10-02 19:12:35 UTC (rev 76) @@ -0,0 +1,33 @@ +Array info utility +================== + +Author: Matthias Baas (ba...@ir...) + +This directory contains a small utility that can be used to determine +the array size of a function argument. For example, suppose you have +a C function that is defined as: + + void foo(double v[3]); + +When this function is parsed by gccxml the type of "v" will just be +reported as "double *" and the array size has got lost. +However, for creating Python wrappers the array size is a valuable +information that can be exploited for creating appropriate wrapper +functions automatically. + +The command line utility "createarrayinfo.py" can be used to parse +the original header files and extract just the above array sizes +from function definitions. This information is stored in a file that +can then be read by your own Python scripts that create Python bindings +using pyplusplus. In your own scripts you can use the "arrayinfo" module +to read the info file and query the array size of a particular argument +from a particular function (given as a pygccxml declaration object). + +See the comments and doc strings in the Python files to get more +usage information. + +NOTE: While the utility did work for me, it is not as general to deal +with all eventualities (it only uses a very simple C/C++ parser). +So it might well be that you have to adjust the code in +createarrayinfo.py to your own needs. + Property changes on: maya/trunk/maya_wrapper/arrayinfo/readme.txt ___________________________________________________________________ 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-08 15:15:43
|
Revision: 115 http://svn.sourceforge.net/cgkit/?rev=115&view=rev Author: mbaas Date: 2006-10-08 08:15:37 -0700 (Sun, 08 Oct 2006) Log Message: ----------- Updates Modified Paths: -------------- maya/trunk/maya_wrapper/dox/mainpage.dox maya/trunk/maya_wrapper/pypp_setup.py Modified: maya/trunk/maya_wrapper/dox/mainpage.dox =================================================================== --- maya/trunk/maya_wrapper/dox/mainpage.dox 2006-10-08 15:10:17 UTC (rev 114) +++ maya/trunk/maya_wrapper/dox/mainpage.dox 2006-10-08 15:15:37 UTC (rev 115) @@ -55,7 +55,7 @@ - Maya SDK The source code for the SDK bindings are generated using -<a href="http://www.language-binding.net/">Py++</a> (revision 621). This tool +<a href="http://www.language-binding.net/">Py++</a> (revision 628*). This tool generates source code for an extension module that uses Boost.Python to generate Python wrappers around the Maya SDK classes. To install pyplusplus you actually have to obtain two Python packages: pygccxml Modified: maya/trunk/maya_wrapper/pypp_setup.py =================================================================== --- maya/trunk/maya_wrapper/pypp_setup.py 2006-10-08 15:10:17 UTC (rev 114) +++ maya/trunk/maya_wrapper/pypp_setup.py 2006-10-08 15:15:37 UTC (rev 115) @@ -120,7 +120,7 @@ sys.exit(1) execfile(configname) -#classes = filter(lambda x: x in ["MPointArray"], classes) +#classes = filter(lambda x: x in ["MPxCommand"], classes) #classes = filter(lambda x: x in ["MGlobal", "MObject", "MStatus", # "MVector", "MTransformationMatrix", # "MString", "MStringArray", @@ -538,6 +538,11 @@ clss.expose() print len(clss) +pvs = clss.Methods(virtuality=PURE_VIRTUAL, recursive=True) +print len(pvs), "pure virtual methods:" +for pv in pvs: + print " ",pv + ###TEST #MGlobal = mod.Class("MItDag") #createClassWrappers(MGlobal) @@ -586,7 +591,7 @@ # Make all methods thread-safe print "Make all methods thread-safe...", -meth = mod.Classes("/MPx.*/").Methods() +meth = mod.Classes("/M.*/").Methods(virtuality=VIRTUAL) print len(meth) meth.setAttr("thread_safe", True) @@ -1436,7 +1441,9 @@ disableAutoArgPolicy(MPlug.Methods("getValue")) MPxCommand = mod.Class("MPxCommand") -disableAutoArgPolicy(MPxCommand.Methods()) +MPxCommand.Method("getCurrentResult", args=["int &"]).rename("getCurrentResultInt") +MPxCommand.Method("getCurrentResult", args=["double &"]).rename("getCurrentResultFloat") +#disableAutoArgPolicy(MPxCommand.Methods()) MFnTransform = mod.Class("MFnTransform") #MFnTransform.Method("getScale").setArgPolicy(OutputArray(1,3), ConvertMStatusRetVal()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2007-01-02 15:01:52
|
Revision: 206 http://svn.sourceforge.net/cgkit/?rev=206&view=rev Author: mbaas Date: 2007-01-02 07:01:50 -0800 (Tue, 02 Jan 2007) Log Message: ----------- Added two new scripts Added Paths: ----------- maya/trunk/maya_wrapper/filterxml.py maya/trunk/maya_wrapper/linkframeworks.py Added: maya/trunk/maya_wrapper/filterxml.py =================================================================== --- maya/trunk/maya_wrapper/filterxml.py (rev 0) +++ maya/trunk/maya_wrapper/filterxml.py 2007-01-02 15:01:50 UTC (rev 206) @@ -0,0 +1,225 @@ +#!/usr/bin/env python +###################################################################### +# Filter gccxml output +###################################################################### + +import sys +import xml.parsers.expat +import optparse + +class Filter: + + def __init__(self, out=sys.stdout): + self.out = out + self.ignore = 0 + self.keep = 0 + + print >>self.out, '<?xml version="1.0"?>' + + def startElement(self, name, attrs): + global headers, keep_ids + + if self.ignore>0: + self.ignore += 1 + return + + id = attrs.get("id") + if id!=None and id not in keep_ids and self.keep==0: + self.ignore = 1 + return + + if name not in ["GCC_XML", "Namespace"]: + self.keep += 1 + + c = [name] + c += map(lambda key: '%s="%s"'%(key,self.strToXML(attrs[key])), attrs.keys()) + + print >>self.out, '<%s>'%(" ".join(c)) + + def endElement(self, name): + if self.ignore>0: + self.ignore -= 1 + return + + if name not in ["GCC_XML", "Namespace"]: + self.keep -= 1 + print >>self.out, '</%s>'%name + + def charData(self, data): + if self.ignore>0: + return + + if data.strip()!="": + print >>self.out, data + + @staticmethod + def strToXML(s): + s = s.replace("&", "&") + s = s.replace("<", "<") + s = s.replace(">", ">") + s = s.replace('"', """) + return s + + +###################################################################### +# First pass: Extract File nodes and store all node IDs +###################################################################### + +class Pass1: + + def __init__(self): + # A list (stack) containing attribute lists + self.attr_lists = [] + # This is the same as attr_lists but without None values + self.filtered_attr_lists = [] + + def startElement(self, name, attrs): + global headers, all_ids + + if name=="Namespace": + # Remove the 'members' attribute on namespaces so that they + # aren't mistaken as dependencies. + if "members" in attrs: + del attrs["members"] + + # Store the ID + id = attrs.get("id") + if id==None: + self.attr_lists.append(None) + else: + attrlist = [] + all_ids[id] = attrlist + self.attr_lists.append(attrlist) + + for lst in self.attr_lists: + if lst!=None: + lst.append(attrs) + + # Check if it's a File node + if name=="File": + id = attrs.get("id") + name = attrs.get("name") + if id!=None and name!=None: + headers[id] = name + + def endElement(self, name): + self.attr_lists.pop() + + +###################################################################### +###################################################################### + +def isAllowed(header): + global includedirs + for inc in includedirs: + if header.startswith(inc): + return True + return False + +def getReferencedNodeIds(attrs): + global all_ids + # todo (?): split and check the splitted values + res = [] + for val in attrs.values(): + a = val.split() + for s in a: + if s in all_ids: + res.append(s) + return res + +def keep(id): + """Keep the element with the specified ID and all dependencies. + """ + global all_ids, keep_ids + + if id in keep_ids: + return + + keep_ids[id] = 1 + + attrlist = all_ids[id] + refs = [] + for al in attrlist: + refs += getReferencedNodeIds(al) + for rid in refs: + keep(rid) + +def checkNodes(name, attrs): + global headers, keep_ids + + id = attrs.get("id") + headerid = attrs.get("file") + if headerid!=None: + header = headers[headerid] + if isAllowed(header): + keep(id) + else: + keep_ids[id] = 1 + + +###################################################################### +# Key: ID / Value: Attribute dict +all_ids = {} +keep_ids = {} +headers = {} +includedirs = [] +filename = None +output = sys.stdout + +# Parse options... +usage = "usage: %prog [options] inputfile" +parser = optparse.OptionParser(usage) +parser.add_option("-o", "--output", metavar="FILE", + help="Output file name") +parser.add_option("-I", "--includedir", metavar="FILE", action="append", + default=[], help="Allowed include paths") +opts, args = parser.parse_args() + +if len(args)!=1: + parser.print_help() + sys.exit(0) + +filename = args[0] + +includedirs = opts.includedir +if includedirs==[]: + print >>sys.stderr, "No include directories specified." + sys.exit(1) + +if opts.output!=None: + output = file(opts.output, "wt") + +# Extract the file names +try: + f = file(filename, "rt") +except IOError, e: + print >>sys.stderr, e + sys.exit(1) +print >>sys.stderr, "Reading File nodes..." +p = xml.parsers.expat.ParserCreate() +pass1 = Pass1() +p.StartElementHandler = pass1.startElement +p.EndElementHandler = pass1.endElement +p.ParseFile(f) +f.close() + +# Determine nodes to keep... +print >>sys.stderr, "Determining elements to keep..." +f = file(filename, "rt") +p = xml.parsers.expat.ParserCreate() +p.StartElementHandler = checkNodes +p.ParseFile(f) +f.close() +print >>sys.stderr, "Keeping %s elements."%len(keep_ids) + +# Filter the file +print >>sys.stderr, 'Writing XML file...' +f = file(filename, "rt") +p = xml.parsers.expat.ParserCreate() +filter = Filter(out=output) +p.StartElementHandler = filter.startElement +p.EndElementHandler = filter.endElement +p.CharacterDataHandler = filter.charData +p.ParseFile(f) +f.close() + Property changes on: maya/trunk/maya_wrapper/filterxml.py ___________________________________________________________________ Name: svn:executable + * Added: maya/trunk/maya_wrapper/linkframeworks.py =================================================================== --- maya/trunk/maya_wrapper/linkframeworks.py (rev 0) +++ maya/trunk/maya_wrapper/linkframeworks.py 2007-01-02 15:01:50 UTC (rev 206) @@ -0,0 +1,215 @@ +#!/usr/bin/env python +###################################################################### +# Process Apple frameworks +# +# This script has to be run before invoking pypp_setup.py on OSX. +# +# The script creates a directory "include_osx" which contains links +# to framework headers that get included by the Maya SDK. +# This directory is required for gccxml which does not know about +# frameworks. So for example, if <OpenGL/gl.h> gets included this +# script creates a link include_osx/OpenGL which points to the +# Headers directory of the OpenGL framework. +###################################################################### +# g++ -E -I/Applications/Alias/maya8.0/devkit/include -I. -D_BOOL -DMAC_PLUGIN -DOSMac_ -DOSMac_MachO_ maya_sdk.h >maya_sdk_preprocessed.h + +import sys, os, os.path +from arrayinfo.cpptokenize import * + +# iterFilenames +def iterFilenames(f): + """Iterate over all header file names. + + f must be a file-like object that yields a preprocessed C/C++ + file. + """ + filenames = {} + + for s in f: + if len(s)==0 or s[0]!="#": + continue + a = s.split() + if len(a)==0 or a[0]=="#pragma": + continue + + filename = a[2] + if filename not in filenames: + yield filename[1:-1] + filenames[filename] = 1 + + +# reconstructFramworkInclude +def reconstructFramworkInclude(filename): + """Reconstruct the framework include. + + This function reconstructs the framework and the header name as it + must have been included in the original source file. + The return value is a tuple (framework, frameworkpath, header) where + framework is just the name of the framework, frameworkpath is the + full path to the framework and header is the actual header file + (which still may include a path). + The actual include file would then be <framework/header>. + """ + c = filename.split(os.sep) +# if c[:4]!=["", "System", "Library", "Frameworks"]: +# return None + + framework = None + frameworkpath = None + header = None + for i in range(len(c)): + s = c[i] + if s=="Headers": + header = os.sep.join(c[i+1:]) + break + if s[-10:]==".framework": + framework = s[:-10] + frameworkpath = os.sep.join(c[:i+1]) + + if framework!=None and header!=None: + return framework, frameworkpath, header + else: + return None,None,None + +# symlink +def symlink(src, dst): + """Create a symbolic link. + """ + dry_run = False +# dry_run = True + + print 'Linking "%s" -> "%s"'%(dst, src) + if not dry_run: + os.symlink(src, dst) + + +###################################################################### +###################################################################### +###################################################################### + +class TokEater: + """Token-eater that clears function bodies. + """ + + def __init__(self, out=sys.stdout): + """Constructor. + + out is the stream that receives the filtered output. + """ + self.out = out + self.brackets = 0 + + def __call__(self, type, s, start, end, line, filename): + """Keep everything except stuff in curly brackets.""" + if s=="{": + self.brackets += 1 + elif s=="}": + self.brackets -= 1 + elif self.brackets>0: + return + + self.out.write(s) + +# removeBodies +def removeBodies(filename, destdir): + """Remove function bodies inside a header file. + + filename is the absolute path to a (system) header file. + The filtered version is written directly into include_osx. + """ + # Output file + dstname = os.path.join(destdir, os.path.basename(filename)) + print "%s -> %s"%(filename, dstname) + src = open(filename, "rt") + dst = open(dstname, "wt") + # Filter the header (i.e. clear all function bodies) + tokenize(src.readline, TokEater(dst), preprocessed=False) + +# patchHeaders +def patchHeaders(destdir): + """Remove the bodies on a couple of files. + + gccxml would produce errors because of some function bodies which + contain special commands that a "normal" gcc does not understand. + So we write 'patched' versions of those headers into include_osx + were the function bodies are removed. + + destdir is the directory where the output files are written + (i.e. include_osx). + """ + incpath = "/usr/lib/gcc/i686-apple-darwin8/4.0.1/include" + p = os.path.join(incpath, "mmintrin.h") + removeBodies(p, destdir) + + p = os.path.join(incpath, "xmmintrin.h") + removeBodies(p, destdir) + + p = os.path.join(incpath, "emmintrin.h") + removeBodies(p, destdir) + + +###################################################################### + +destdir = "include_osx" + +if os.path.exists(destdir): + print 'Directory "%s" already exists. Remove the directory first if you want to regenerate it.'%destdir + sys.exit(1) + + +# Preprocess the file maya_sdk.h to obtain a list of all included header files +mayaincpath = "/Applications/Alias/maya8.0/devkit/include" +cmd = "g++ -E -I%s -I. -D_BOOL -DMAC_PLUGIN -DOSMac_ -DOSMac_MachO_ maya_sdk.h >maya_sdk_preprocessed.h"%mayaincpath +print cmd +os.system(cmd) + +# Create the target directory +os.mkdir(destdir) + +# Create the links... + +# Key: Framework name / Value: Framework path +frameworks = {} + +for filename in iterFilenames(file("maya_sdk_preprocessed.h")): + + framework, frameworkpath, header = reconstructFramworkInclude(filename) + # No framework header? then go to the next file + if framework==None: + continue + +# print frameworkpath, framework, header +# continue + + # Check if the header part contains path information... + hc = header.split(os.sep) + if len(hc)>1: + if hc[0]=="..": + print "WARNING: Include file contains a path starting with '..'" + print " Header :",filename + print " Framework :",framework,"(%s)"%frameworkpath + print " Included :",header + src = os.path.join(frameworkpath, hc[1]) + dst = os.path.join(destdir, hc[1]) + symlink(src, dst) + + # Check if a link for this framework was already created... + if framework in frameworks: + if frameworks[framework]!=frameworkpath: + print 'WARNING: Two frameworks "%s" with different paths:'%framework + print " ",frameworks[framework] + print " ",frameworkpath + continue + + frameworks[framework] = frameworkpath + + # Create a link + src = os.path.join(frameworkpath, "Headers") + dst = os.path.join(destdir, framework) + symlink(src, dst) + +# Remove the preprocessed sdk file... +os.remove("maya_sdk_preprocessed.h") + +# Remove the function bodies on a few system header files... +patchHeaders(destdir) Property changes on: maya/trunk/maya_wrapper/linkframeworks.py ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2007-01-02 15:05:52
|
Revision: 207 http://svn.sourceforge.net/cgkit/?rev=207&view=rev Author: mbaas Date: 2007-01-02 07:05:51 -0800 (Tue, 02 Jan 2007) Log Message: ----------- Ignore some more files that don't belong into the repository Property Changed: ---------------- maya/trunk/maya_wrapper/ maya/trunk/maya_wrapper/doc/ Property changes on: maya/trunk/maya_wrapper ___________________________________________________________________ Name: svn:ignore - config.cfg build dist *.log cache html *.pyc MANIFEST env.sh + config.cfg build dist *.log cache html *.pyc MANIFEST env.sh include_osx cache_query.dat Property changes on: maya/trunk/maya_wrapper/doc ___________________________________________________________________ Name: svn:ignore + maya_a4.pdf maya_letter.pdf maya setpath.sh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-06-06 02:26:02
|
Revision: 9 Author: mbaas Date: 2006-06-04 01:39:03 -0700 (Sun, 04 Jun 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=9&view=rev Log Message: ----------- Switched to the MPL license Modified Paths: -------------- maya/trunk/maya_wrapper/doc/tex/license.tex maya/trunk/maya_wrapper/maya/__init__.py maya/trunk/maya_wrapper/maya/_mel/__init__.py maya/trunk/maya_wrapper/maya/api/__init__.py maya/trunk/maya_wrapper/maya/api/mfnplugin.py maya/trunk/maya_wrapper/maya/api/mvector.py maya/trunk/maya_wrapper/maya/gui/__init__.py maya/trunk/maya_wrapper/maya/gui/buttons.py maya/trunk/maya_wrapper/maya/gui/checkboxes.py maya/trunk/maya_wrapper/maya/gui/groups.py maya/trunk/maya_wrapper/maya/gui/guiobjectbase.py maya/trunk/maya_wrapper/maya/gui/layouts.py maya/trunk/maya_wrapper/maya/gui/menu.py maya/trunk/maya_wrapper/maya/gui/radiobuttons.py maya/trunk/maya_wrapper/maya/gui/scripttable.py maya/trunk/maya_wrapper/maya/gui/scrollfield.py maya/trunk/maya_wrapper/maya/gui/textfield.py maya/trunk/maya_wrapper/maya/gui/textscrolllist.py maya/trunk/maya_wrapper/maya/gui/window.py maya/trunk/maya_wrapper/maya/initmaya/__init__.py maya/trunk/maya_wrapper/maya/initmaya/pythoneditor.py maya/trunk/maya_wrapper/maya/mel/__init__.py maya/trunk/maya_wrapper/maya/node.py maya/trunk/maya_wrapper/maya/pluginmanager.py maya/trunk/maya_wrapper/maya/pluginmanagergui.py maya/trunk/maya_wrapper/maya/unittest/__init__.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAngle.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFn.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFnBase.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MImage.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPoint.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStatus.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MString.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVector.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py maya/trunk/maya_wrapper/maya/unittest/unittestgui.py maya/trunk/maya_wrapper/setup.py maya/trunk/maya_wrapper/src_aux/_main.cpp maya/trunk/maya_wrapper/src_aux/_main.h maya/trunk/maya_wrapper/src_aux/creatorfuncmanager.cpp maya/trunk/maya_wrapper/src_aux/creatorfuncmanager.h maya/trunk/maya_wrapper/src_aux/exceptions.h maya/trunk/maya_wrapper/src_aux/mangle.cpp maya/trunk/maya_wrapper/src_aux/mangle.h maya/trunk/maya_wrapper/src_aux/mcolor.cpp maya/trunk/maya_wrapper/src_aux/mcolor.h maya/trunk/maya_wrapper/src_aux/mdatahandle.cpp maya/trunk/maya_wrapper/src_aux/mdatahandle.h maya/trunk/maya_wrapper/src_aux/mdistance.cpp maya/trunk/maya_wrapper/src_aux/mdistance.h maya/trunk/maya_wrapper/src_aux/mfloatmatrix.cpp maya/trunk/maya_wrapper/src_aux/mfloatmatrix.h 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/mfnplugin.cpp maya/trunk/maya_wrapper/src_aux/mfnplugin.h maya/trunk/maya_wrapper/src_aux/mglobal.cpp maya/trunk/maya_wrapper/src_aux/mglobal.h maya/trunk/maya_wrapper/src_aux/mintarray.cpp maya/trunk/maya_wrapper/src_aux/mintarray.h maya/trunk/maya_wrapper/src_aux/mitselectionlist.cpp maya/trunk/maya_wrapper/src_aux/mitselectionlist.h maya/trunk/maya_wrapper/src_aux/mmatrix.cpp maya/trunk/maya_wrapper/src_aux/mmatrix.h maya/trunk/maya_wrapper/src_aux/mobject.cpp maya/trunk/maya_wrapper/src_aux/mobject.h maya/trunk/maya_wrapper/src_aux/mplug.cpp maya/trunk/maya_wrapper/src_aux/mplug.h maya/trunk/maya_wrapper/src_aux/mpoint.cpp maya/trunk/maya_wrapper/src_aux/mpoint.h maya/trunk/maya_wrapper/src_aux/mpointarray.cpp maya/trunk/maya_wrapper/src_aux/mpointarray.h maya/trunk/maya_wrapper/src_aux/mquaternion.cpp maya/trunk/maya_wrapper/src_aux/mquaternion.h maya/trunk/maya_wrapper/src_aux/mselectionlist.cpp maya/trunk/maya_wrapper/src_aux/mselectionlist.h maya/trunk/maya_wrapper/src_aux/mstatus.cpp maya/trunk/maya_wrapper/src_aux/mstatus.h maya/trunk/maya_wrapper/src_aux/mstring.cpp maya/trunk/maya_wrapper/src_aux/mstring.h maya/trunk/maya_wrapper/src_aux/mtime.cpp maya/trunk/maya_wrapper/src_aux/mtime.h maya/trunk/maya_wrapper/src_aux/mtransformationmatrix.cpp maya/trunk/maya_wrapper/src_aux/mtransformationmatrix.h maya/trunk/maya_wrapper/src_aux/mvector.cpp maya/trunk/maya_wrapper/src_aux/mvector.h maya/trunk/maya_wrapper/src_aux/mvectorarray.cpp maya/trunk/maya_wrapper/src_aux/mvectorarray.h maya/trunk/plug-ins/sourcepy/src/evalpy.cpp maya/trunk/plug-ins/sourcepy/src/evalpy.h maya/trunk/plug-ins/sourcepy/src/plugin_main.cpp maya/trunk/plug-ins/sourcepy/src/plugin_main.h maya/trunk/plug-ins/sourcepy/src/sourcepy.cpp maya/trunk/plug-ins/sourcepy/src/sourcepy.h Added Paths: ----------- maya/trunk/maya_wrapper/license.txt maya/trunk/plug-ins/sourcepy/license.txt Modified: maya/trunk/maya_wrapper/doc/tex/license.tex =================================================================== --- maya/trunk/maya_wrapper/doc/tex/license.tex 2006-06-03 17:24:47 UTC (rev 8) +++ maya/trunk/maya_wrapper/doc/tex/license.tex 2006-06-04 08:39:03 UTC (rev 9) @@ -1,3 +1,460 @@ \begin{verbatim} + MOZILLA PUBLIC LICENSE + Version 1.1 + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``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): + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] \end{verbatim} Added: maya/trunk/maya_wrapper/license.txt =================================================================== --- maya/trunk/maya_wrapper/license.txt (rev 0) +++ maya/trunk/maya_wrapper/license.txt 2006-06-04 08:39:03 UTC (rev 9) @@ -0,0 +1,458 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``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): + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] Modified: maya/trunk/maya_wrapper/maya/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/__init__.py 2006-06-03 17:24:47 UTC (rev 8) +++ maya/trunk/maya_wrapper/maya/__init__.py 2006-06-04 08:39:03 UTC (rev 9) @@ -1,4 +1,24 @@ -# Init +# ***** 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 ***** import sys import _api Modified: maya/trunk/maya_wrapper/maya/_mel/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/_mel/__init__.py 2006-06-03 17:24:47 UTC (rev 8) +++ maya/trunk/maya_wrapper/maya/_mel/__init__.py 2006-06-04 08:39:03 UTC (rev 9) @@ -1,8 +1,25 @@ -########################################################################### -# Maya Python package -# Copyright (C) 2006 Matthias Baas (ba...@ir...) +# ***** BEGIN LICENSE BLOCK ***** # -# http://cgkit.sourceforge.net +# 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 ***** + ########################################################################### # "Raw" mel module ########################################################################### Modified: maya/trunk/maya_wrapper/maya/api/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/api/__init__.py 2006-06-03 17:24:47 UTC (rev 8) +++ maya/trunk/maya_wrapper/maya/api/__init__.py 2006-06-04 08:39:03 UTC (rev 9) @@ -1,3 +1,25 @@ +# ***** 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 ***** + # Init function for the api module # Import everything from the C++ wrappers Modified: maya/trunk/maya_wrapper/may... [truncated message content] |
From: <mb...@us...> - 2006-06-21 13:21:09
|
Revision: 12 Author: mbaas Date: 2006-06-21 06:21:00 -0700 (Wed, 21 Jun 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=12&view=rev Log Message: ----------- Move the stuff that depends on a particular version of Maya into a separate config file (pypp_config_7.0.py) so that several Maya versions could be supported. Modified Paths: -------------- maya/trunk/maya_wrapper/pypp_setup.py Added Paths: ----------- maya/trunk/maya_wrapper/pypp_config_7.0.py Added: maya/trunk/maya_wrapper/pypp_config_7.0.py =================================================================== --- maya/trunk/maya_wrapper/pypp_config_7.0.py (rev 0) +++ maya/trunk/maya_wrapper/pypp_config_7.0.py 2006-06-21 13:21:00 UTC (rev 12) @@ -0,0 +1,268 @@ +###################################################################### +# Config file for pypp_setup.py +# +# The contents of this file depend on the Maya version. +###################################################################### + +# Location of the Maya include files +mayaincpath = "/usr/aw/maya7.0/include" + +###################################################################### + +# A list of classes the should be included in the wrappers +classes = [ + "M3dView", + "MAngle", + "MAnimControl", + "MAnimCurveChange", + "MAnimCurveClipboard", + "MAnimCurveClipboardItem", + "MAnimCurveClipboardItemArray", +### "MAnimMessage", + "MAnimUtil", + "MArgDatabase", + "MArgList", + "MArgParser", + "MArrayDataBuilder", + "MArrayDataHandle", + "MAttributeIndex", + "MAttributeSpec", + "MAttributeSpecArray", + "MBoundingBox", +# "MCallbackIdArray", + "MClothConstraint", + "MColor", + "MColorArray", + "MCommandResult", + "MComputation", + "MDGContext", + "MDGModifier", + "MDagModifier", + "MDagPath", + "MDagPathArray", + "MDataBlock", + "MDataHandle", + "MDeviceChannel", + "MDeviceState", + "MDistance", + "MDoubleArray", + "MDrawInfo", + "MDrawProcedureBase", + "MDrawRequest", + "MDrawRequestQueue", + "MDynSweptLine", + "MDynSweptTriangle", + "MEulerRotation", + "MEvent", + "MFeedbackLine", + "MFileIO", + "MFileObject", + "MFloatArray", + "MFloatMatrix", + "MFloatPoint", + "MFloatPointArray", + "MFloatVector", + "MFloatVectorArray", + "MFn", + "MFnAirField", + "MFnAmbientLight", + "MFnAnimCurve", + "MFnAnisotropyShader", + "MFnAreaLight", + "MFnArrayAttrsData", + "MFnAttribute", + "MFnBase", + "MFnBlendShapeDeformer", + "MFnBlinnShader", + "MFnCamera", + "MFnCharacter", + "MFnCircleSweepManip", + "MFnClip", + "MFnComponent", + "MFnComponentListData", + "MFnCompoundAttribute", + "MFnCurveSegmentManip", + "MFnDagNode", + "MFnData", + "MFnDependencyNode", + "MFnDirectionManip", + "MFnDirectionalLight", + "MFnDiscManip", + "MFnDistanceManip", + "MFnDoubleIndexedComponent", + "MFnDragField", + "MFnDynSweptGeometryData", + "MFnEnumAttribute", + "MFnExpression", + "MFnField", + "MFnFreePointTriadManip", + "MFnGenericAttribute", + "MFnGeometryData", + "MFnGeometryFilter", + "MFnGravityField", + "MFnHikEffector", + "MFnIkEffector", + "MFnIkHandle", + "MFnIkJoint", + "MFnIkSolver", + "MFnIntArrayData", + "MFnKeyframeDelta", + "MFnKeyframeDeltaAddRemove", + "MFnKeyframeDeltaBlockAddRemove", + "MFnKeyframeDeltaBreakdown", + "MFnKeyframeDeltaInfType", + "MFnKeyframeDeltaMove", + "MFnKeyframeDeltaScale", + "MFnKeyframeDeltaTangent", + "MFnKeyframeDeltaWeighted", + "MFnLambertShader", + "MFnLattice", + "MFnLatticeDeformer", + "MFnLayeredShader", + "MFnLight", + "MFnLightDataAttribute", + "MFnManip3D", + "MFnMatrixAttribute", + "MFnMatrixData", + "MFnMesh", + "MFnMessageAttribute", + "MFnMotionPath", + "MFnNewtonField", + "MFnNonAmbientLight", + "MFnNonExtendedLight", + "MFnNumericAttribute", + "MFnNumericData", + "MFnNurbsCurve", + "MFnNurbsCurveData", + "MFnNurbsSurface", + "MFnNurbsSurfaceData", + "MFnParticleSystem", + "MFnPartition", + "MFnPfxGeometry", + "MFnPhongEShader", + "MFnPhongShader", + "MFnPlugin", + "MFnPointArrayData", + "MFnPointLight", + "MFnPointOnCurveManip", + "MFnPointOnSurfaceManip", + "MFnRadialField", + "MFnReflectShader", + "MFnRenderLayer", + "MFnRotateManip", + "MFnScaleManip", + "MFnSet", + "MFnSingleIndexedComponent", + "MFnSkinCluster", + "MFnSphereData", + "MFnSpotLight", + "MFnStateManip", + "MFnStringArrayData", + "MFnStringData", + "MFnSubd", + "MFnSubdNames", + "MFnToggleManip", + "MFnTransform", + "MFnTripleIndexedComponent", + "MFnTurbulenceField", + "MFnTypedAttribute", + "MFnUInt64ArrayData", + "MFnUniformField", + "MFnUnitAttribute", + "MFnVectorArrayData", + "MFnVolumeAxisField", + "MFnVolumeLight", + "MFnVortexField", + "MFnWeightGeometryFilter", + "MFnWireDeformer", +# "MGeometryData", + "MGlobal", + "MHardwareRenderer", + "MIkHandleGroup", + "MIkSystem", + "MImage", + "MIntArray", + "MItCurveCV", + "MItDag", + "MItDependencyGraph", + "MItDependencyNodes", + "MItGeometry", + "MItInstancer", + "MItMeshEdge", + "MItMeshFaceVertex", + "MItMeshPolygon", + "MItMeshVertex", + "MItSelectionList", + "MItSubdEdge", + "MItSubdFace", + "MItSubdVertex", + "MItSurfaceCV", + "MIteratorType", + "MLibrary", + "MLightLinks", + "MManipData", + "MMaterial", + "MMatrix", + "MObject", + "MObjectArray", + "MObjectHandle", + "MPlug", + "MPlugArray", + "MPoint", + "MPointArray", + "MProgressWindow", + "MPxCommand", +# "MPxComponentShape", + "MPxContext", + "MPxData", + "MPxDeformerNode", +# "MPxDragAndDropBehavior", + "MPxEmitterNode", + "MPxFieldNode", + "MPxFileTranslator", +# "MPxFluidEmitterNode", + "MPxLocatorNode", + "MPxNode", + "MPxObjectSet", + "MPxSpringNode", +# "MPxSurfaceShape", +# "MPxToolCommand", + "MQuaternion", + "MRampAttribute", + "MRenderData", + "MRenderLine", + "MRenderLineArray", + "MRenderShadowData", + "MRenderUtil", + "MRenderView", + "MSelectInfo", + "MSelectionList", + "MSelectionMask", + "MSpace", + "MStatus", + "MString", + "MStringArray", + "MSwatchRenderBase", + "MSyntax", + "MTesselationParams", + "MTime", + "MTimeArray", + "MTimer", + "MToolsInfo", + "MTransformationMatrix", + "MTrimBoundaryArray", + "MTypeId", + "MUintArray", + "MUint64Array", + "MVector", + "MVectorArray", +] + +# Usually, a class MClass is defined in a header MClass.h. +# If this is not the case, there must be an entry in the following +# dictionary. Key is the class name and value the header where this class +# is defined. +other_header = { + "MSpace" : "MTypes.h" +} + Modified: maya/trunk/maya_wrapper/pypp_setup.py =================================================================== --- maya/trunk/maya_wrapper/pypp_setup.py 2006-06-21 10:13:13 UTC (rev 11) +++ maya/trunk/maya_wrapper/pypp_setup.py 2006-06-21 13:21:00 UTC (rev 12) @@ -15,284 +15,15 @@ import logging import arrayinfo -###################################################################### - -MAX_CREATOR_FUNCTIONS = 200 -MAX_CREATESYNTAX_FUNCTIONS = 200 -MAX_INIT_FUNCTIONS = 200 -mayaincpath = "/usr/aw/maya7.0/include" - -###################################################################### - logger = logging.getLogger('pyplusplus') logger.setLevel(logging.INFO) logger = logging.getLogger('pygccxml') logger.setLevel(logging.INFO) -# A list of classes the should be included in the wrappers -classes = [ - "M3dView", - "MAngle", - "MAnimControl", - "MAnimCurveChange", - "MAnimCurveClipboard", - "MAnimCurveClipboardItem", - "MAnimCurveClipboardItemArray", -### "MAnimMessage", - "MAnimUtil", - "MArgDatabase", - "MArgList", - "MArgParser", - "MArrayDataBuilder", - "MArrayDataHandle", - "MAttributeIndex", - "MAttributeSpec", - "MAttributeSpecArray", - "MBoundingBox", -# "MCallbackIdArray", - "MClothConstraint", - "MColor", - "MColorArray", - "MCommandResult", - "MComputation", - "MDGContext", - "MDGModifier", - "MDagModifier", - "MDagPath", - "MDagPathArray", - "MDataBlock", - "MDataHandle", - "MDeviceChannel", - "MDeviceState", - "MDistance", - "MDoubleArray", - "MDrawInfo", - "MDrawProcedureBase", - "MDrawRequest", - "MDrawRequestQueue", - "MDynSweptLine", - "MDynSweptTriangle", - "MEulerRotation", - "MEvent", - "MFeedbackLine", - "MFileIO", - "MFileObject", - "MFloatArray", - "MFloatMatrix", - "MFloatPoint", - "MFloatPointArray", - "MFloatVector", - "MFloatVectorArray", - "MFn", - "MFnAirField", - "MFnAmbientLight", - "MFnAnimCurve", - "MFnAnisotropyShader", - "MFnAreaLight", - "MFnArrayAttrsData", - "MFnAttribute", - "MFnBase", - "MFnBlendShapeDeformer", - "MFnBlinnShader", - "MFnCamera", - "MFnCharacter", - "MFnCircleSweepManip", - "MFnClip", - "MFnComponent", - "MFnComponentListData", - "MFnCompoundAttribute", - "MFnCurveSegmentManip", - "MFnDagNode", - "MFnData", - "MFnDependencyNode", - "MFnDirectionManip", - "MFnDirectionalLight", - "MFnDiscManip", - "MFnDistanceManip", - "MFnDoubleIndexedComponent", - "MFnDragField", - "MFnDynSweptGeometryData", - "MFnEnumAttribute", - "MFnExpression", - "MFnField", - "MFnFreePointTriadManip", - "MFnGenericAttribute", - "MFnGeometryData", - "MFnGeometryFilter", - "MFnGravityField", - "MFnHikEffector", - "MFnIkEffector", - "MFnIkHandle", - "MFnIkJoint", - "MFnIkSolver", - "MFnIntArrayData", - "MFnKeyframeDelta", - "MFnKeyframeDeltaAddRemove", - "MFnKeyframeDeltaBlockAddRemove", - "MFnKeyframeDeltaBreakdown", - "MFnKeyframeDeltaInfType", - "MFnKeyframeDeltaMove", - "MFnKeyframeDeltaScale", - "MFnKeyframeDeltaTangent", - "MFnKeyframeDeltaWeighted", - "MFnLambertShader", - "MFnLattice", - "MFnLatticeDeformer", - "MFnLayeredShader", - "MFnLight", - "MFnLightDataAttribute", - "MFnManip3D", - "MFnMatrixAttribute", - "MFnMatrixData", - "MFnMesh", - "MFnMessageAttribute", - "MFnMotionPath", - "MFnNewtonField", - "MFnNonAmbientLight", - "MFnNonExtendedLight", - "MFnNumericAttribute", - "MFnNumericData", - "MFnNurbsCurve", - "MFnNurbsCurveData", - "MFnNurbsSurface", - "MFnNurbsSurfaceData", - "MFnParticleSystem", - "MFnPartition", - "MFnPfxGeometry", - "MFnPhongEShader", - "MFnPhongShader", - "MFnPlugin", - "MFnPointArrayData", - "MFnPointLight", - "MFnPointOnCurveManip", - "MFnPointOnSurfaceManip", - "MFnRadialField", - "MFnReflectShader", - "MFnRenderLayer", - "MFnRotateManip", - "MFnScaleManip", - "MFnSet", - "MFnSingleIndexedComponent", - "MFnSkinCluster", - "MFnSphereData", - "MFnSpotLight", - "MFnStateManip", - "MFnStringArrayData", - "MFnStringData", - "MFnSubd", - "MFnSubdNames", - "MFnToggleManip", - "MFnTransform", - "MFnTripleIndexedComponent", - "MFnTurbulenceField", - "MFnTypedAttribute", - "MFnUInt64ArrayData", - "MFnUniformField", - "MFnUnitAttribute", - "MFnVectorArrayData", - "MFnVolumeAxisField", - "MFnVolumeLight", - "MFnVortexField", - "MFnWeightGeometryFilter", - "MFnWireDeformer", -# "MGeometryData", - "MGlobal", - "MHardwareRenderer", - "MIkHandleGroup", - "MIkSystem", - "MImage", - "MIntArray", - "MItCurveCV", - "MItDag", - "MItDependencyGraph", - "MItDependencyNodes", - "MItGeometry", - "MItInstancer", - "MItMeshEdge", - "MItMeshFaceVertex", - "MItMeshPolygon", - "MItMeshVertex", - "MItSelectionList", - "MItSubdEdge", - "MItSubdFace", - "MItSubdVertex", - "MItSurfaceCV", - "MIteratorType", - "MLibrary", - "MLightLinks", - "MManipData", - "MMaterial", - "MMatrix", - "MObject", - "MObjectArray", - "MObjectHandle", - "MPlug", - "MPlugArray", - "MPoint", - "MPointArray", - "MProgressWindow", - "MPxCommand", -# "MPxComponentShape", - "MPxContext", - "MPxData", - "MPxDeformerNode", -# "MPxDragAndDropBehavior", - "MPxEmitterNode", - "MPxFieldNode", - "MPxFileTranslator", -# "MPxFluidEmitterNode", - "MPxLocatorNode", - "MPxNode", - "MPxObjectSet", - "MPxSpringNode", -# "MPxSurfaceShape", -# "MPxToolCommand", - "MQuaternion", - "MRampAttribute", - "MRenderData", - "MRenderLine", - "MRenderLineArray", - "MRenderShadowData", - "MRenderUtil", - "MRenderView", - "MSelectInfo", - "MSelectionList", - "MSelectionMask", - "MSpace", - "MStatus", - "MString", - "MStringArray", - "MSwatchRenderBase", - "MSyntax", - "MTesselationParams", - "MTime", - "MTimeArray", - "MTimer", - "MToolsInfo", - "MTransformationMatrix", - "MTrimBoundaryArray", - "MTypeId", - "MUintArray", - "MUint64Array", - "MVector", - "MVectorArray", -] +MAX_CREATOR_FUNCTIONS = 200 +MAX_CREATESYNTAX_FUNCTIONS = 200 +MAX_INIT_FUNCTIONS = 200 -#classes = filter(lambda x: x in ["MAnimControl"], classes) -#classes = filter(lambda x: x in ["MGlobal", "MObject", "MStatus", -# "MVector", "MTransformationMatrix", -# "MString", "MStringArray", -# "MFnPlugin", "MFn", "MTypeId", -# "MPxFileTranslator", "MFileObject"], classes) - -# Usually, a class MClass is defined in a header MClass.h. -# If this is not the case, there must be an entry in the following -# dictionary. Key is the class name and value the header where this class -# is defined. -other_header = { - "MSpace" : "MTypes.h" -} - policies = { # "::M3dView::display" : return_internal_reference(), # "::M3dView::glxContext" : return_internal_reference(), @@ -347,9 +78,30 @@ # "::MVectorArray::operator[]" : return_internal_reference(), } +# Execute the config file +if len(sys.argv)>1: + mayaversion = sys.argv[1] +else: + mayaversion = "7.0" +configname = "pypp_config_%s.py"%mayaversion +print 'Reading config file "%s"...'%configname +if not os.path.exists(configname): + print 'Error: File "%s" does not exist.'%configname + sys.exit(1) +execfile(configname) +#classes = filter(lambda x: x in ["MAnimControl"], classes) +#classes = filter(lambda x: x in ["MGlobal", "MObject", "MStatus", +# "MVector", "MTransformationMatrix", +# "MString", "MStringArray", +# "MFnPlugin", "MFn", "MTypeId", +# "MPxFileTranslator", "MFileObject"], classes) + + + # Create a list with all required header files, i.e. the files # that will be parsed... +print 'Writing "maya_sdk.h"...' files = [] headerproxy = file("maya_sdk.h", "wt") for cls in classes: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-26 13:27:24
|
Revision: 56 http://svn.sourceforge.net/cgkit/?rev=56&view=rev Author: mbaas Date: 2006-09-26 06:27:15 -0700 (Tue, 26 Sep 2006) Log Message: ----------- Added manual wrappers (__str__) for MEulerRotation Modified Paths: -------------- maya/trunk/maya_wrapper/extraheaders.h Added Paths: ----------- maya/trunk/maya_wrapper/src_aux/meulerrotation.cpp maya/trunk/maya_wrapper/src_aux/meulerrotation.h Modified: maya/trunk/maya_wrapper/extraheaders.h =================================================================== --- maya/trunk/maya_wrapper/extraheaders.h 2006-09-25 16:00:26 UTC (rev 55) +++ maya/trunk/maya_wrapper/extraheaders.h 2006-09-26 13:27:15 UTC (rev 56) @@ -51,6 +51,7 @@ #include "mcolor.h" #include "mdatahandle.h" #include "mdistance.h" +#include "meulerrotation.h" #include "mfloatmatrix.h" #include "mfloatpoint.h" #include "mfloatvector.h" Added: maya/trunk/maya_wrapper/src_aux/meulerrotation.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/meulerrotation.cpp (rev 0) +++ maya/trunk/maya_wrapper/src_aux/meulerrotation.cpp 2006-09-26 13:27:15 UTC (rev 56) @@ -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) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +/* + Additional methods for the MEulerRotation class. +*/ + +#include <iostream> +#include <sstream> +#include "meulerrotation.h" + +namespace pyMEulerRotation +{ + // __str__ method + boost::python::str __str__(MEulerRotation& self) + { + std::ostringstream s; + s<<self; + return boost::python::str(s.str()); + } + +} Property changes on: maya/trunk/maya_wrapper/src_aux/meulerrotation.cpp ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/src_aux/meulerrotation.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/meulerrotation.h (rev 0) +++ maya/trunk/maya_wrapper/src_aux/meulerrotation.h 2006-09-26 13:27:15 UTC (rev 56) @@ -0,0 +1,37 @@ +/* ***** 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 meulerrotation.h + Additional methods for the MEulerRotation class. +*/ + +#include <boost/python.hpp> +#include <maya/MEulerRotation.h> + +/** + This namespace contains extra methods for the MEulerRotation class. + */ +namespace pyMEulerRotation +{ + boost::python::str __str__(MEulerRotation& self); +} Property changes on: maya/trunk/maya_wrapper/src_aux/meulerrotation.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-03 08:13:19
|
Revision: 78 http://svn.sourceforge.net/cgkit/?rev=78&view=rev Author: mbaas Date: 2006-10-03 01:13:10 -0700 (Tue, 03 Oct 2006) Log Message: ----------- Updates to be able to generate the extension sources for Maya 8 Modified Paths: -------------- maya/trunk/maya_wrapper/pypp_setup.py Added Paths: ----------- maya/trunk/maya_wrapper/pypp_config_8.0.py Added: maya/trunk/maya_wrapper/pypp_config_8.0.py =================================================================== --- maya/trunk/maya_wrapper/pypp_config_8.0.py (rev 0) +++ maya/trunk/maya_wrapper/pypp_config_8.0.py 2006-10-03 08:13:10 UTC (rev 78) @@ -0,0 +1,330 @@ +###################################################################### +# Config file for pypp_setup.py +# +# The contents of this file depend on the Maya version. +###################################################################### + +# Location of the Maya include files +mayaincpath = "/usr/aw/maya8.0/include" + +###################################################################### + +# A list of classes the should be included in the wrappers +classes = [ + "M3dView", + "MAngle", + "MAnimControl", + "MAnimCurveChange", + "MAnimCurveClipboard", + "MAnimCurveClipboardItem", + "MAnimCurveClipboardItemArray", + "MAnimMessage", + "MAnimUtil", + "MArgDatabase", + "MArgList", + "MArgParser", + "MArrayDataBuilder", + "MArrayDataHandle", + "MAttributeIndex", + "MAttributeSpec", + "MAttributeSpecArray", + "MBoundingBox", + "MCallbackIdArray", + "MClothConstraint", +# "MClothConstraintBridge", +# "MClothConstraintCmd", +# "MClothControl", +# "MClothEdge", +# "MClothForce", +# "MClothMaterial", +# "MClothParticle", +# "MClothPolyhedron", +# "MClothSolverRegister", +# "MClothSystem", +# "MClothTriangle", + "MColor", + "MColorArray", + "MCommandMessage", + "MCommandResult", + "MCommonRenderSettingsData", + "MComputation", + "MConditionMessage", +# "MCursor", + "MDGContext", + "MDGMessage", + "MDGModifier", + "MDagMessage", + "MDagModifier", + "MDagPath", + "MDagPathArray", + "MDataBlock", + "MDataHandle", + "MDeviceChannel", + "MDeviceState", + "MDistance", + "MDoubleArray", +# "MDrawData", + "MDrawInfo", + "MDrawProcedureBase", + "MDrawRequest", + "MDrawRequestQueue", + "MDynSweptLine", + "MDynSweptTriangle", + "MEulerRotation", + "MEvent", + "MEventMessage", + "MFeedbackLine", + "MFileIO", + "MFileObject", + "MFloatArray", + "MFloatMatrix", + "MFloatPoint", + "MFloatPointArray", + "MFloatVector", + "MFloatVectorArray", + "MFn", + "MFnAirField", + "MFnAmbientLight", + "MFnAnimCurve", + "MFnAnisotropyShader", + "MFnAreaLight", + "MFnArrayAttrsData", + "MFnAttribute", + "MFnBase", + "MFnBlendShapeDeformer", + "MFnBlinnShader", + "MFnCamera", + "MFnCharacter", + "MFnCircleSweepManip", + "MFnClip", + "MFnComponent", + "MFnComponentListData", + "MFnCompoundAttribute", + "MFnCurveSegmentManip", + "MFnDagNode", + "MFnData", + "MFnDependencyNode", + "MFnDirectionManip", + "MFnDirectionalLight", + "MFnDiscManip", + "MFnDistanceManip", + "MFnDoubleArrayData", + "MFnDoubleIndexedComponent", + "MFnDragField", + "MFnDynSweptGeometryData", + "MFnEnumAttribute", + "MFnExpression", + "MFnField", +# "MFnFluid", + "MFnFreePointTriadManip", + "MFnGenericAttribute", + "MFnGeometryData", + "MFnGeometryFilter", + "MFnGravityField", + "MFnHikEffector", + "MFnIkEffector", + "MFnIkHandle", + "MFnIkJoint", + "MFnIkSolver", + "MFnIntArrayData", + "MFnKeyframeDelta", + "MFnKeyframeDeltaAddRemove", + "MFnKeyframeDeltaBlockAddRemove", + "MFnKeyframeDeltaBreakdown", + "MFnKeyframeDeltaInfType", + "MFnKeyframeDeltaMove", + "MFnKeyframeDeltaScale", + "MFnKeyframeDeltaTangent", + "MFnKeyframeDeltaWeighted", + "MFnLambertShader", + "MFnLattice", + "MFnLatticeData", + "MFnLatticeDeformer", + "MFnLayeredShader", + "MFnLight", + "MFnLightDataAttribute", + "MFnManip3D", + "MFnMatrixAttribute", + "MFnMatrixData", + "MFnMesh", + "MFnMeshData", + "MFnMessageAttribute", + "MFnMotionPath", + "MFnNewtonField", + "MFnNonAmbientLight", + "MFnNonExtendedLight", + "MFnNumericAttribute", + "MFnNumericData", + "MFnNurbsCurve", + "MFnNurbsCurveData", + "MFnNurbsSurface", + "MFnNurbsSurfaceData", + "MFnParticleSystem", + "MFnPartition", + "MFnPfxGeometry", + "MFnPhongEShader", + "MFnPhongShader", + "MFnPlugin", +# "MFnPluginData", + "MFnPointArrayData", + "MFnPointLight", + "MFnPointOnCurveManip", + "MFnPointOnSurfaceManip", + "MFnRadialField", + "MFnReflectShader", + "MFnRenderLayer", + "MFnRotateManip", + "MFnScaleManip", + "MFnSet", + "MFnSingleIndexedComponent", + "MFnSkinCluster", + "MFnSphereData", + "MFnSpotLight", + "MFnStateManip", + "MFnStringArrayData", + "MFnStringData", + "MFnSubd", + "MFnSubdData", + "MFnSubdNames", + "MFnToggleManip", + "MFnTransform", + "MFnTripleIndexedComponent", + "MFnTurbulenceField", + "MFnTypedAttribute", + "MFnUInt64ArrayData", + "MFnUniformField", + "MFnUnitAttribute", + "MFnVectorArrayData", + "MFnVolumeAxisField", + "MFnVolumeLight", + "MFnVortexField", + "MFnWeightGeometryFilter", + "MFnWireDeformer", +# "MGeometryData", + "MGlobal", +# "MHWShaderSwatchGenerator", + "MHardwareRenderer", + "MIkHandleGroup", + "MIkSystem", + "MImage", + "MIntArray", + "MItCurveCV", + "MItDag", + "MItDependencyGraph", + "MItDependencyNodes", + "MItGeometry", + "MItInstancer", + "MItKeyframe", + "MItMeshEdge", + "MItMeshFaceVertex", + "MItMeshPolygon", + "MItMeshVertex", + "MItSelectionList", + "MItSubdEdge", + "MItSubdFace", + "MItSubdVertex", + "MItSurfaceCV", + "MIteratorType", + "MLibrary", + "MLightLinks", + "MLockMessage", + "MManipData", + "MMaterial", + "MMatrix", + "MMessage", + "MModelMessage", + "MNodeMessage", + "MObject", + "MObjectArray", + "MObjectHandle", + "MObjectSetMessage", + "MPlug", + "MPlugArray", + "MPoint", + "MPointArray", + "MPolyMessage", + "MProgressWindow", +# "MPx3dModelView", + "MPxCommand", +# "MPxComponentShape", + "MPxContext", +# "MPxContextCommand", + "MPxData", + "MPxDeformerNode", +# "MPxDragAndDropBehavior", + "MPxEmitterNode", + "MPxFieldNode", + "MPxFileTranslator", +# "MPxFluidEmitterNode", +# "MPxGeometryData, +# "MPxGeometryIterator", +# "MPxGlBuffer", +# "MPxHwShaderNode", +# "MPxIkSolverNode", + "MPxLocatorNode", +# "MPxManipContainer", +# "MPxMidiInputDevice", +# "MPxModelEditorCommand", + "MPxNode", + "MPxObjectSet", +# "MPxPolyTrg", +# "MPxPolyTweakUVCommand", +# "MPxSelectionContext", + "MPxSpringNode", +# "MPxSurfaceShape", +# "MPxSurfaceShapeUI", +# "MPxToolCommand", +# "MPxTransform", +# "MPxTransformationMatrix", + "MQuaternion", + "MRampAttribute", +# "MRenderCallback", + "MRenderData", + "MRenderLine", + "MRenderLineArray", + "MRenderShadowData", + "MRenderUtil", + "MRenderView", + "MSceneMessage", + "MSelectInfo", + "MSelectionList", + "MSelectionMask", + "MSpace", + "MStatus", + "MString", + "MStringArray", + "MSwatchRenderBase", +# "MSwatchRenderRegister", + "MSyntax", + "MTesselationParams", + "MTime", + "MTimeArray", + "MTimer", + "MTimerMessage", + "MToolsInfo", + "MTransformationMatrix", + "MTrimBoundaryArray", + "MTypeId", + "MUintArray", + "MUint64Array", + "MUiMessage", + "MUserEventMessage", + "MVector", + "MVectorArray", +] + +# Usually, a class MClass is defined in a header MClass.h. +# If this is not the case, there must be an entry in the following +# dictionary. Key is the class name and value the header where this class +# is defined. +other_header = { + "MSpace" : "MTypes.h" +} + +# A list of classes that should not be finalized +# (because they have pure virtual methods) +# Proxy classes will never be finalized. +do_not_finalize = [ + "MDrawProcedureBase", + "MClothConstraint" +] Property changes on: maya/trunk/maya_wrapper/pypp_config_8.0.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/pypp_setup.py =================================================================== --- maya/trunk/maya_wrapper/pypp_setup.py 2006-10-02 19:16:57 UTC (rev 77) +++ maya/trunk/maya_wrapper/pypp_setup.py 2006-10-03 08:13:10 UTC (rev 78) @@ -1111,6 +1111,9 @@ MImage = mod.Class("MImage") MImage.Method("pixels").ignore() MImage.Method("setPixels").ignore() +# Maya8: +MImage.Method("floatPixels").ignore() +MImage.Method("depthMap").ignore() MSelectionList = mod.Class("MSelectionList") MSelectionList.cdef("__str__", "pyMSelectionList::__str__") @@ -1150,6 +1153,8 @@ MDataHandle.cdef("asFloat3", "pyMDataHandle::asFloat3") MDataHandle.cdef("asDouble3", "pyMDataHandle::asDouble3") MDataHandle.cdef("asString", "pyMDataHandle::asString") +# Maya8: +MDataHandle.Method("asAddr").ignore() # Disable keyword args on all constructors... mod.Classes("/M.*/").Constructors().disableKeywordArgs() @@ -1314,7 +1319,9 @@ disableAutoArgPolicy(MFnNumericAttribute.Methods("getDefault")) MFnNurbsCurve = mod.Class("MFnNurbsCurve") -MFnNurbsCurve.Method("closestPoint").setArgPolicy(Output(2)) +# Let the following be handled by the automatic policy assignment... +# (as in Maya8, there are now two closestPoint() methods) +#MFnNurbsCurve.Method("closestPoint").setArgPolicy(Output(2)) MFnNumericData = mod.Class("MFnNumericData") # Todo: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-04 17:54:16
|
Revision: 104 http://svn.sourceforge.net/cgkit/?rev=104&view=rev Author: mbaas Date: 2006-10-04 10:54:09 -0700 (Wed, 04 Oct 2006) Log Message: ----------- Updates Modified Paths: -------------- maya/trunk/maya_wrapper/dox/mainpage.dox maya/trunk/maya_wrapper/readme.txt Modified: maya/trunk/maya_wrapper/dox/mainpage.dox =================================================================== --- maya/trunk/maya_wrapper/dox/mainpage.dox 2006-10-04 17:53:51 UTC (rev 103) +++ maya/trunk/maya_wrapper/dox/mainpage.dox 2006-10-04 17:54:09 UTC (rev 104) @@ -4,17 +4,20 @@ These pages contain the developer documentation for the Maya Python package (mainly for the \c api sub package containing the SDK wrappers). -The SDK binding is created using <a href="http://www.language-binding.net/">pyplusplus</a>. +The SDK binding is created using <a href="http://www.language-binding.net/">Py++</a>. The main script to generate the source code for the \c api extension module is \c pypp_setup.py. Pregenerated source files are available in the \c _api directory. Here is an overview of the directories found in the source package: - \c _api: The source files generated by pyplusplus will be stored here. When the directory does not exist it will be recreated during the next call of \c pypp_setup.py. +- \c arrayinfo: Contains helper functions to determine the array size of + function arguments. This is used by pypp_setup.py. - \c build: The distutils build directory. - \c cache: Caches pyplusplus data. When the directory does not exist it will be recreated during the next call of \c pypp_setup.py. +- \c doc: This directory contains the TeX source files for the user manual +- \c dox: Contains additional doxygen documentation (like this main page) - \c maya: The Python source code of the entire \c maya package. -- \c src: This is no longer used. You can remove it. - \c src_aux: Additional source files that are required to build the \c api extension module. In contrast to the _api directory, the src_aux directory (mainly) contains manually created code. The main directory contains the following files: @@ -22,9 +25,12 @@ - \c config.cfg: This file contains configuration data for compiling the package. You have to create that file manually. - \c createplugincode.py: This module is used by pypp_setup.py. It creates source code in src_aux. - \c Doxyfile: The doxygen config script. -- \c extraheaders.h: Manually created header file that is included in every generateed source file. +- \c extraheaders.h: Manually created header file that is included in every generated source file. - \c maya_sdk.h: This file is created by pypp_setup.py to speed up the process of parsing the Maya headers (gccxml has only to be invoked once). - \c pypp_setup.py: The main script to generate the _api source code. +- \c pypp_config_7.0.py: This script is executed in pypp_setup.py and + contains configuration specific to one version of Maya (in this case + Maya 7.0) - \c setup.py: The main script to compile the _api module. \section building Building the package @@ -37,35 +43,38 @@ \subsection pyplusplus Creating the extension source code The source archive comes with a set of pregenerated source files that -have been generated using the Maya 7.0 SDK. If you want to compile the -package for Maya 7.0 you can skip this section and proceed with +have been generated using the Maya 7.0 and 8.0 SDK. If you want to compile the +package for Maya 7.0 or 8.0 you can skip this section and proceed with compiling the package. External requirements: - Python - gccxml -- pygccxml/pyplusplus (+experimental module in the cvs repository) +- pygccxml/pyplusplus (+pypp_api in pyplusplus/contrib) - Maya SDK The source code for the SDK bindings are generated using -<a href="http://www.language-binding.net/">pyplusplus</a>. This tool +<a href="http://www.language-binding.net/">Py++</a> (revision 621). This tool generates source code for an extension module that uses Boost.Python to generate Python wrappers around the Maya SDK classes. To install pyplusplus you actually have to obtain two Python packages: pygccxml and pyplusplus (they are both available at the same site). They are implemented as regular Python modules and are installed like any other extension module using the Python distutils. It is recommended to get -the cvs version as the Maya package makes use of an experimental module -which is only available in the cvs repository of pyplusplus. Before -you can invoke the main script you have to set your \c PYTHONPATH -variable to the \c pyplusplus/experimental directory. +the svn version as Py++ is still constantly improving. The Maya package +makes use of an extension to Py++ which is called pypp_api and is located +in the contrib directory (since Py++ 0.8.1 this is also part of the +source archive). Before you can invoke the main script you have to set +your \c PYTHONPATH variable to the \c contrib/pypp_api directory. As a last config step you have to set the path to the Maya headers -at the top of the script \c pypp_setup.py. +at the top of the script \c pypp_config_7.0.py (if you are using Maya 7) +or \c pypp_config_8.0.py (if you are using Maya 8.0). -After the above steps have been done you can invoke \c pypp_setup.py -which will create the following files (this will take a few minutes): +After the above steps have been done you can invoke \c pypp_setup.py +[\c 7.0|\c 8.0] which will create the following files (this will take a few +minutes): - \c _api/* - \c src_aux/creatorfuncs.\c cpp.h @@ -92,6 +101,9 @@ - \c extraheaders.h (common header file included by every file in _api) - \c maya_sdk.h (this is generated by pypp_setup.py) +If you want to use the pre-generated sources for Maya 8.0 you have to rename +the folder \c _api_8.0 into \c _api. + The package is compiled by invoking \c setup.py \c build|install. You have to make sure that the Boost.Python headers/libs and the Maya headers/libs can be found. @@ -113,17 +125,59 @@ LIB_DIRS += ["/usr/aw/maya7.0/lib"] \endcode + \section manualcode Auxiliary source code ...located in src_aux... +Special files: + +- \c _main.h / \c _main.cpp: Additional support functions. +- \c aux_threading.h: Auxiliary classes to support multi-threading. +- \c exceptions.h: Defines C++ exceptions. +- \c messagehelpers.h / \c messagehelpers.cpp: Support functions for wrapping the MMessage classes (see below). +- \c creatorfuncmanager.h / \c creatorfuncmanager.cpp / \c creatorfuncs.cpp.h: Plugin support. + + \section fnplugin The MFnPlugin class ...predefined C++ functions / CreatorFuncManager... + \section messages Message classes -...not yet implemented... +In the Python bindings, the MMessage classes are used just like in C++. +This is accomplished by replacing the addXyzCallback() methods with +special versions that take a Python callback and that register an internal +C++ callback that will invoke the Python callback. The manually created +extra code that is required for this is located +in the namespace pyMMessage which is defined in the file +\c src_aux/messagehelpers.cpp. +Each addXyzCallback() method has a corresponding implementation in +\c messagehelpers.cpp. For example, the MEventMessage::addEventCallback() +is replaced by the function pyMMessage::MEventMessage_addEventCallback(). +Instead of taking function pointers to C++ callback functions these wrappers +take Python callables as input. The callable and the Python clientData +value are stored in the dictionary pyMMessage::pyData_lut with the +callback id as key. The addXyzCallback() function then registers an +internal C++ callback that retrieves the Python callable from the +pyData_lut dictionary and invokes the callable. For each different type +of callback there is a separate C++ function. In the case of the +event message, it is the pyMMessage::callback() function which takes +no arguments except the client data. The name of each C++ callback +function starts with \c callback and contains the types it takes +as argument (e.g. callback_bool(), callback_Time(), +callback_Plug_Plug_bool(), etc.) + +\section threading Multi-threading + +The Python GIL has to be acquired in: + +- py/pySource MEL commands +- Message callbacks (e.g. callback(), etc.) +- creator functions (createFunc0000(), createSyntaxFunc0000(), initFunc0000(), etc.) +- Proxy classes (and other classes that the user derives from) + */ \ No newline at end of file Modified: maya/trunk/maya_wrapper/readme.txt =================================================================== --- maya/trunk/maya_wrapper/readme.txt 2006-10-04 17:53:51 UTC (rev 103) +++ maya/trunk/maya_wrapper/readme.txt 2006-10-04 17:54:09 UTC (rev 104) @@ -6,11 +6,12 @@ Quick instructions to build the package: -1. Invoke pypp_setup.py to create the source files for the _api extension - module (the result is the _api directory). If you are using Maya 7.0 - you can skip this step and just use the provided source files. - Requirements: Python, pyplusplus/pygccxml (including the experimental - module from the cvs repository), gccxml, Maya SDK +1. Invoke pypp_setup.py with an option version number (7.0 or 8.0) to + create the source files for the _api extension module (the result is + the _api directory). If you are using Maya 7.0/8.0 you can skip this + step and just use the provided source files (if you are using Maya 8.0 + you have to rename the folder _api_8.0 into _api). + Requirements: Python, pyplusplus/pygccxml, gccxml, gccxml, Maya SDK 2. Put all necessary configuration variables into a file config.cfg and invoke setup.py (either with "build" or "install" argument) to compile This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-19 15:35:02
|
Revision: 140 http://svn.sourceforge.net/cgkit/?rev=140&view=rev Author: mbaas Date: 2006-10-19 08:34:46 -0700 (Thu, 19 Oct 2006) Log Message: ----------- Capture the error message of a MEL command and insert it into the Python exception. Modified Paths: -------------- maya/trunk/maya_wrapper/changelog.txt maya/trunk/maya_wrapper/src_aux/mglobal.cpp Modified: maya/trunk/maya_wrapper/changelog.txt =================================================================== --- maya/trunk/maya_wrapper/changelog.txt 2006-10-18 19:23:55 UTC (rev 139) +++ maya/trunk/maya_wrapper/changelog.txt 2006-10-19 15:34:46 UTC (rev 140) @@ -19,6 +19,11 @@ the Maya package. This uses a CObject data type which cannot be accidentally modified by a Python script. +- When a MEL command from the mel or remote.mel module fails, its error + message is captured and added to the corresponding Python exception. So + it's not necessary anymore to consult the script editor to find out why + a MEL command has failed. + - Added a C++ ERuntimeError exception that gets translated to a Python RuntimeError exception. Modified: maya/trunk/maya_wrapper/src_aux/mglobal.cpp =================================================================== --- maya/trunk/maya_wrapper/src_aux/mglobal.cpp 2006-10-18 19:23:55 UTC (rev 139) +++ maya/trunk/maya_wrapper/src_aux/mglobal.cpp 2006-10-19 15:34:46 UTC (rev 140) @@ -24,7 +24,9 @@ Additional methods for the MGlobal class. */ +#include <maya/MCommandMessage.h> #include "mglobal.h" +#include <iostream> namespace pyMGlobal { @@ -32,6 +34,35 @@ using boost::python::list; using boost::python::make_tuple; +/** + Callback for the "command output" event. + + The clientData must be a pointer to a MString object that contains + the current error message. The new message will be appended to that + string. + + This function is used in the executeCommandPy() wrapper function. + + \param msg MEL message + \param msgType The type of the message + \param clientdata A pointer to the MString instance that stores the final error message + */ +void commandOutputCallback(const MString& msg, MCommandMessage::MessageType msgType, void* clientdata) +{ + // Ignore everything but error messages... + if (msgType!=MCommandMessage::kError) + return; + + // Append the error message to the error string + MString& errmsg = *((MString*)clientdata); + if (errmsg!="") + errmsg += "\n"; + errmsg += msg; +} + +/** + A more "Pythonic" executeCommand() wrapper +*/ object executeCommandPy(const char* command, bool displayEnabled, bool undoEnabled) { MCommandResult result; @@ -46,11 +77,19 @@ MStringArray sa; MVectorArray va; - // Execute the MEL command + // Execute the MEL command and capture any error message + MString errmsg; + MCallbackId cbid = MCommandMessage::addCommandOutputCallback(commandOutputCallback, &errmsg, NULL); MStatus stat = MGlobal::executeCommand(MString(command), result, displayEnabled, undoEnabled); + MCommandMessage::removeCallback(cbid); if (!stat) { - MString msg("An error has occurred while executing the following MEL command:\n\n "+MString(command)+"\n\n(see the script editor for details).\nError string: \""+stat.errorString()+"\"."); + MString msg("An error has occurred while executing the following MEL command:\n\n "); + msg += command; + msg += "\n\nMEL error message:\n\n"; + msg += errmsg; + msg += "\n\nC++ error status: \""+stat.errorString()+"\"\n"; + msg += "(check the script editor for more details)."; throw EMELError(std::string(msg.asChar())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-25 12:05:40
|
Revision: 150 http://svn.sourceforge.net/cgkit/?rev=150&view=rev Author: mbaas Date: 2006-10-25 05:05:34 -0700 (Wed, 25 Oct 2006) Log Message: ----------- Added an #undef check which is required on OSX Modified Paths: -------------- maya/trunk/maya_wrapper/createplugincode.py maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h Modified: maya/trunk/maya_wrapper/createplugincode.py =================================================================== --- maya/trunk/maya_wrapper/createplugincode.py 2006-10-24 16:33:20 UTC (rev 149) +++ maya/trunk/maya_wrapper/createplugincode.py 2006-10-25 12:05:34 UTC (rev 150) @@ -182,7 +182,11 @@ print >>out, "#include <maya/%s.h>"%cls print >>out, '#include "aux_threading.h"' print >>out, "" - + + print >>out, "// On OSX there is a header that defines a macro called 'check'" + print >>out, "#undef check" + print >>out, "" + print >>out, "static const int MAX_CREATOR_FUNCTIONS = %d;"%numcreators print >>out, "static const int MAX_CREATESYNTAX_FUNCTIONS = %d;"%numscreators print >>out, "static const int MAX_INIT_FUNCTIONS = %d;"%numinits Modified: maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h =================================================================== --- maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-10-24 16:33:20 UTC (rev 149) +++ maya/trunk/maya_wrapper/src_aux/creatorfuncs.cpp.h 2006-10-25 12:05:34 UTC (rev 150) @@ -19,6 +19,9 @@ #include <maya/MPxSpringNode.h> #include "aux_threading.h" +// On OSX there is a header that defines a macro called 'check' +#undef check + static const int MAX_CREATOR_FUNCTIONS = 200; static const int MAX_CREATESYNTAX_FUNCTIONS = 200; static const int MAX_INIT_FUNCTIONS = 200; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-11-29 09:02:51
|
Revision: 183 http://svn.sourceforge.net/cgkit/?rev=183&view=rev Author: mbaas Date: 2006-11-29 01:02:50 -0800 (Wed, 29 Nov 2006) Log Message: ----------- Bugfix: Empty help strings led to an IndexError exception. Modified Paths: -------------- maya/trunk/maya_wrapper/changelog.txt maya/trunk/maya_wrapper/maya/melutils.py Modified: maya/trunk/maya_wrapper/changelog.txt =================================================================== --- maya/trunk/maya_wrapper/changelog.txt 2006-11-29 08:59:24 UTC (rev 182) +++ maya/trunk/maya_wrapper/changelog.txt 2006-11-29 09:02:50 UTC (rev 183) @@ -3,6 +3,10 @@ Changes from maya-0.9.3 to maya-0.9.4: +- Bugfix: Importing the mel module was failing when the help string for a + MEL command was empty (this could happen when you were using Maya 8 in + library mode). + - remote.mel can now save a local proxy module so that the list of commands doesn't have to be downloaded every time when the module is imported. The remote.init() function has two new arguments that control the Modified: maya/trunk/maya_wrapper/maya/melutils.py =================================================================== --- maya/trunk/maya_wrapper/maya/melutils.py 2006-11-29 08:59:24 UTC (rev 182) +++ maya/trunk/maya_wrapper/maya/melutils.py 2006-11-29 09:02:50 UTC (rev 183) @@ -37,10 +37,10 @@ lines = help.split("\n") # Strip leading newlines - while lines[0]=="": + while len(lines)>0 and lines[0]=="": lines = lines[1:] # Strip trailing newlines - while lines[-1]=="": + while len(lines)>0 and lines[-1]=="": lines = lines[:-1] flags = [] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |