relative rotation - how to make it slow?


I need to rotate my model relative to its position. I found out that I have to use

self.model.setP(self.model, angle)

to do relative rotation. But I cannot figure out how to make it rotate slowly - I have tried to use intervals but I cannot make it work -
self.model.setP(self.model, angle) rotates the object all right but it returns value “None” so I cannot just use it in interval. I have tried

    def pitch(self, angle):
        def relativeP():
            self.model.setP(self.model, angle)
            return self.model.getP()
        pitch = LerpHprInterval(self.model, duration=2.0,hpr=Vec3(self.model.getH(),relativeP(),self.model.getR()))

but it just “jumps” to that position immediately - it makes the P-dimension rotation immediately and only H and R rotations are slow - really weird. It’s probably just some really stupid mistake I made but I have been trying to make it work for 2 days and I am done:-(

I will appreciate any help.
Thanx a lot.

That’s because you didn’t restore the pitch after performing the relative rotation in relativeP().

BTW, you can tell the interval to do the transform relative to the node itself, by passing the node as the other node :

model.hprInterval(duration, Vec3(0,relP,0), other=model)

This is really helpful, thank you very much.