PyOgre common run-time error FAQ
Copy to clipboard
if techniquePass.hasVertexProgram() and techniquePass.getVertexProgram().isSkeletalAnimationIncluded(): TypeError: No Python class registered for C++ class class Ogre::GpuProgramPtr
This is a PyOgre developement bug and should be reported to the development team (likely an old return_value policy that should not be there).
Copy to clipboard
ArgumentError: Python argument types in ControllerManager.createController(ControllerManager, FrameTimeControllerValue, LightWibbler, WaveformControllerFunction) did not match C++ signature: createController(class Ogre::ControllerManager {lvalue}, class Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class Ogre::SharedPtr<class Ogre::ControllerFunction<float> >)
You likely forgot to call the base class constructor when subclass ogre class. You must always call base class constructo as follow:
Copy to clipboard
class LightWibbler(ogre.RealControllerValue): def __init__( self, light, billboard, minColour, maxColour, minSize, maxSize ): ogre.RealControllerValue.__init__( self ) # your init-code here
When inheriting in Python, calling the constructor (init) of the superclass is more than just a good habit. ๐