Created
December 14, 2016 11:43
-
-
Save csaez/dfcfbe064db66da8c30ca6cf9cae4957 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import pprint | |
class Transform: | |
def __init__(self): | |
self._translate = [0.0, 0.0, 0.0] | |
self._rotate = [0.0, 0.0, 0.0] | |
self._scale = [1.0, 1.0, 1.0] | |
def __str__(self): | |
return pprint.pformat(self.__dict__) | |
def translate(): | |
def fget(self): | |
return self._translate | |
def fset(self, value): | |
self._translate = list(value) | |
return locals() | |
translate = property(**translate()) | |
def rotate(): | |
def fget(self): | |
return self._translate | |
def fset(self, value): | |
self._translate = list(value) | |
return locals() | |
rotate = property(**rotate()) | |
def scale(): | |
def fget(self): | |
return self._translate | |
def fset(self, value): | |
self._translate = list(value) | |
return locals() | |
scale = property(**scale()) | |
if __name__ == "__main__": | |
xfo1 = Transform() | |
xfo1.translate[0] = 100 * random.random() | |
xfo2 = Transform() | |
xfo2.translate = xfo1.translate | |
xfo2.translate[0] += 5 | |
print(xfo1) | |
print(xfo2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment