Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/screen.py
diff options
context:
space:
mode:
Diffstat (limited to 'screen.py')
-rw-r--r--screen.py50
1 files changed, 4 insertions, 46 deletions
diff --git a/screen.py b/screen.py
index 31ba47f..bd31199 100644
--- a/screen.py
+++ b/screen.py
@@ -12,22 +12,20 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import math
-
import theme
import model
-class ScreenFrame:
+class ScreenFrame(model.KeyFrame):
def __init__(self):
self.reset()
def setjoints(self):
- _setjoints(self.joints, self.sticks, self.middle)
+ self._setjoints(self.joints, self.sticks, self.middle)
def reset(self):
self.parts = theme.PARTS.copy()
self.sticks = theme.STICKS.copy()
- self.joints = _initjoints()
+ self.joints = self._initjoints()
self.middle = (theme.DRAWWIDTH/2, theme.DRAWHEIGHT/3)
self.setjoints()
@@ -38,23 +36,10 @@ class ScreenFrame:
self.joints = x.joints.copy()
self.setjoints()
- def get_scaled_sticks(self):
- out = self.sticks.copy()
- for key in out:
- (angle,len) = out[key]
- newlen = int(len * .2)
- out[key] = (angle,newlen)
- return out
-
- def get_scaled_joints(self, x, y):
- out = _initjoints()
- _setjoints(out, self.get_scaled_sticks(), (x, y))
- return out
-
def getrotatepoint(self):
(angle,len) = self.sticks['TORSO']
x,y = self.middle
- (rx,ry) = _getpoints(x,y,angle,int(len/2.0))
+ (rx,ry) = self._getpoints(x,y,angle,int(len/2.0))
return (rx,ry)
def inrotate(self, x, y):
@@ -81,30 +66,3 @@ class ScreenFrame:
for jname in self.joints:
(jx, jy) = self.joints[jname]
self.joints[jname] = (jx+dx, jy+dy)
-
-def _initjoints():
- joints = {}
- for stickname in theme.JOINTS:
- jname = theme.JOINTS[stickname]
- joints[jname] = (0,0)
- return joints
-
-def _setjoints(joints, sticks, middle):
- # have to traverse in order because
- # parent joints must be set right
- for stickname in theme.STICKLIST:
- (angle,len) = sticks[stickname]
- jname = theme.JOINTS[stickname]
- (x,y) = model.getparentjoint(jname, joints, middle)
- parents = model.getparentsticks(stickname)
- panglesum = 0
- for parentname in parents:
- (pangle,plen) = sticks[parentname]
- panglesum += pangle
- (nx,ny) = _getpoints(x,y,angle+panglesum,len)
- joints[jname] = (nx,ny)
-
-def _getpoints(x,y,angle,len):
- nx = int(round(x + (len * math.cos(math.radians(angle)))))
- ny = int(round(y - (len * math.sin(math.radians(angle)))))
- return (nx,ny)