from OpenGL.GL import * class Transform: def apply(self): pass def pushApply(self): glPushMatrix() self.apply() def pop(self): glPopMatrix() class SimpleTransform(Transform): def __init__(self, translate=[0,0,0], rotateAngle=0, rotateAxis=[1,0,0], scale=[1,1,1]): self.translate = translate self.rotateAngle = rotateAngle self.rotateAxis = rotateAxis self.scale = scale def apply(self): glTranslatef(self.translate[0], self.translate[1], self.translate[2]) glRotatef(self.rotateAngle, self.rotateAxis[0], self.rotateAxis[1], self.rotateAxis[2]) glScalef(self.scale[0], self.scale[1], self.scale[2])