Beispiel #1
0
 def ApplyAttributes(self, attributes):
     proj = trinity.Tr2ProjectBoundingBoxBracket()
     self.projectBracket = proj
     cs = uicore.uilib.bracketCurveSet
     cs.curves.append(self.projectBracket)
     self.leftBinding = trinity.CreatePythonBinding(cs, proj, 'projectedX',
                                                    self, 'scaledLeft')
     self.topBinding = trinity.CreatePythonBinding(cs, proj, 'projectedY',
                                                   self, 'scaledTop')
     self.widthBinding = trinity.CreatePythonBinding(
         cs, proj, 'projectedWidth', self, 'scaledWidth')
     self.heightBinding = trinity.CreatePythonBinding(
         cs, proj, 'projectedHeight', self, 'scaledHeight')
     Container.ApplyAttributes(self, attributes)
     self.trackObject = attributes.get('trackObject', None)
     self.screenMargin = attributes.get('screenMargin',
                                        self.default_screenMargin)
     pb = self.projectBracket
     if self.width:
         pb.minProjectedWidth = pb.maxProjectedWidth = self.width
     else:
         pb.minProjectedWidth = attributes.get('minWidth',
                                               self.default_minWidth)
         pb.maxProjectedWidth = attributes.get('maxWidth',
                                               self.default_maxWidth)
     if self.height:
         pb.minProjectedHeight = pb.maxProjectedHeight = self.height
     else:
         pb.minProjectedHeight = attributes.get('minHeight',
                                                self.default_minHeight)
         pb.maxProjectedHeight = attributes.get('maxHeight',
                                                self.default_maxHeight)
Beispiel #2
0
 def Play(self,
          curve,
          obj,
          attrName,
          loops=1,
          callback=None,
          sleep=False,
          curveSet=None):
     curve.cycle = loops is uiconst.ANIM_REPEAT or loops > 1
     if not curveSet:
         curveSet = self.CreateCurveSet(useRealTime=True)
         curveSet.name = getattr(obj, 'name', str(id(obj)))
     curveSet.curves.append(curve)
     self.RegisterCurvesetForObject(obj, curveSet, attrName)
     if hasattr(obj, '__iroot__'):
         binding = trinity.CreateBinding(curveSet, curve, 'currentValue',
                                         obj, attrName)
     else:
         obj.isAnimated = True
         binding = trinity.CreatePythonBinding(curveSet, curve,
                                               'currentValue', obj,
                                               attrName)
     binding.name = getattr(obj, 'name', str(id(obj))) + '_' + attrName
     curveSet.Play()
     if loops == uiconst.ANIM_REPEAT:
         return curveSet
     duration = loops * curveSet.GetMaxCurveDuration()
     duration += self.GetMaxTimeOffset(curveSet)
     if callback:
         curveSet.StopAfterWithCallback(duration, callback)
     else:
         curveSet.StopAfter(duration)
     if sleep:
         blue.pyos.synchro.SleepWallclock(duration * 1000)
     return curveSet
Beispiel #3
0
 def _Play(self,
           curve,
           obj,
           attrName,
           loops=1,
           callback=None,
           sleep=False,
           curveSet=None):
     if not isinstance(obj, uicls.Base):
         raise ValueError(
             "Can't animate '%s' attribute of %s. Class must inherit from uicls.Base"
             % (attrName, obj))
     curve.cycle = loops is ANIM_REPEAT or loops > 1
     if not curveSet:
         curveSet = self._CreateCurveSet()
         curveSet.name = obj.name
     curveSet.curves.append(curve)
     obj.AttachAnimationCurveSet(curveSet, attrName)
     binding = trinity.CreatePythonBinding(curveSet, curve, 'currentValue',
                                           obj, attrName)
     binding.name = obj.name + '_' + attrName
     curveSet.Play()
     if loops == ANIM_REPEAT:
         return curveSet
     duration = loops * curveSet.GetMaxCurveDuration()
     duration += self.GetMaxTimeOffset(curveSet)
     if callback:
         curveSet.StopAfterWithCallback(duration, callback, ())
     else:
         curveSet.StopAfter(duration)
     if sleep:
         blue.pyos.synchro.SleepSim(duration * 1000)
     return curveSet
 def SetupSharedBlinkingCurve(self, cuverSetName, fromCurveValue, toCurveValue, duration, *args):
     curveSet = getattr(uicore, cuverSetName, None)
     if curveSet:
         curve = curveSet.curves[0]
     else:
         curveSet = trinity.TriCurveSet()
         setattr(uicore, cuverSetName, curveSet)
         setattr(curveSet, 'name', cuverSetName)
         trinity.device.curveSets.append(curveSet)
         curveSet.Play()
         curve = trinity.Tr2ScalarCurve()
         curve.name = 'blinking_curve'
         curve.length = duration
         curve.startValue = fromCurveValue
         curve.endValue = fromCurveValue
         curve.AddKey(duration / 2.0, toCurveValue)
         curve.cycle = True
         curve.interpolation = trinity.TR2CURVE_LINEAR
         curveSet.curves.append(curve)
     if getattr(self, 'blinkBinding', None) is not None:
         curveSet.bindings.remove(self.blinkBinding)
     self.blinkBinding = trinity.CreatePythonBinding(curveSet, curve, 'currentValue', self, 'opacity')