Changeset 693
- Timestamp:
- 09/08/03 12:44:48 (5 years ago)
- Files:
-
- trunk/RBRapier/RBRapier/Tools/Animation/__init__.py (modified) (4 diffs)
- trunk/RBRapier/RBRapier/Tools/ViewBox.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBRapier/RBRapier/Tools/Animation/__init__.py
r692 r693 30 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 31 32 class TimeBlend(object): 32 class BlendBase(object): 33 pass 34 35 class TimeBlendBase(BlendBase): 36 def now(klass): 37 return time.clock() 38 now = classmethod(now) 39 40 def __call__(self): 41 return 0. 42 43 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 45 class TimeBlend(TimeBlendBase): 33 46 def __init__(self, start, end): 34 self. timespan = start, end47 self.SetRange(start, end) 35 48 36 49 def __call__(self): 37 50 (s, e), n = self.timespan, self.now() 38 return max(min((n-s)/(e-s), 1.), 0.) 51 value = (n-s)/(e-s) 52 return max(min(value, 1.), 0.) 39 53 54 def SetSpan(self, span): 55 s = self.timespan[0] 56 self.timespan = s, s+span 40 57 def fromSpan(klass, span): 41 58 n = klass.now() … … 43 60 fromSpan = classmethod(fromSpan) 44 61 62 def SetRange(self, start, end, relative=False): 63 if relative: 64 now = self.now() 65 start += now 66 end += now 67 self.timespan = start, end 45 68 def fromTimeRange(klass, start, end, relative=False): 46 69 if relative: … … 51 74 fromTimeRange = classmethod(fromTimeRange) 52 75 76 def SetTimeSpan(self, start, end, relative=False): 77 if relative: 78 start += self.now() 79 self.timespan = start, start+span 53 80 def fromTimeSpan(klass, start, span, relative=False): 54 81 if relative: … … 57 84 fromTimeSpan = classmethod(fromTimeSpan) 58 85 59 def now(klass): 60 return time.clock() 61 now = classmethod(now) 86 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 87 88 class TimeOscillation(TimeBlendBase): 89 def __init__(self, period=1, start=None): 90 self.SetOscillation(period, start) 91 92 def __call__(self): 93 s, p, n = self.start, self.period, self.now() 94 value = abs(((n-s)%p)/(.5*p) - 1.) 95 return max(min(value, 1.), 0.) 96 97 def SetOscillation(self, period=1., start=None): 98 self.SetPeriod(period) 99 self.SetStart(start) 100 101 def SetStart(self, start=None): 102 if start is None: 103 self.start = self.now() 104 else: self.start = start 105 106 def SetPeriod(self, period=1.): 107 self.period = period trunk/RBRapier/RBRapier/Tools/ViewBox.py
r692 r693 29 29 30 30 def copy(self): 31 return self.from Box(self.GetBox())31 return self.fromViewBox(self) 32 32 33 33 def blend(self, factor, viewbox): … … 39 39 proj.Right, proj.Top = _box[1] 40 40 41 def fromViewBox(klass, viewbox): 42 result = ViewBox.__new__(ViewBox) # avoid constructor call 43 result.SetBox(viewbox.GetBox()) 44 return result 45 fromViewBox = classmethod(fromViewBox) 41 46 def fromBox(klass, box): 42 47 result = ViewBox.__new__(ViewBox) # avoid constructor call 43 48 result.SetBox(box) 44 49 return result 50 fromBox = classmethod(fromBox) 45 51 def fromPts(klass, pos0, pos1): 46 52 return klass(pos0, pos1) … … 133 139 return self.ViewBoxSize(self.GetSize(), aspectYX, largest) 134 140 135 def Map ToPoint(self, posIn0to1):136 blend = self._ascoords(posIn0to1)141 def MapPointFrom0to1(self, posIn0to1): 142 blend, = self._ascoords(posIn0to1) 137 143 _box = self.GetBox() 138 144 result = (1-blend)*_box[0]+blend*_box[1] 139 return result[0] 145 return result 146 147 def MapPointTo0to1(self, pos): 148 pos, = self._ascoords(pos) 149 _box = self.GetBox() 150 return (pos-_box[0])/(_box[1]-_box[0]) 140 151 141 152 def ZoomCenter(self, factor, center=(0., 0.), relative=True): … … 151 162 pos = pos-_box[0] # make it relative 152 163 return self.SetPts(_box[0]+pos, _box[1]+pos) 164 165 def MoveHorizontal(self, pos, relative=True): 166 if relative: 167 return self.Move((pos, 0.), True) 168 else: 169 return self.Move((pos, self.GetBox()[0][1]), False) 170 171 def MoveVertical(self, pos, relative=True): 172 if relative: 173 return self.Move((0., pos), True) 174 else: 175 return self.Move((self.GetBox()[0][0], pos), False) 153 176 154 177 def ViewBoxSize(self, dim, aspectYX=1.0, largest=True):
