Пример #1
0
    def _PopCameraWithTransition(self, transitionSeconds, retainYaw, retainPitch):
        activeCamera = self.cameraClient.GetActiveCamera()
        cameraStack = self.cameraClient.GetCameraStack()
        comingActiveCamera = None
        try:
            comingActiveCamera = cameraStack[-2]
        except IndexError:
            comingActiveCamera = None

        if comingActiveCamera:
            if retainYaw:
                comingActiveCamera.SetYaw(activeCamera.yaw)
            if retainPitch:
                comingActiveCamera.SetPitch(activeCamera.pitch)
        transition = cameras.LinearTransitionBehavior(transitionSeconds=float(transitionSeconds))
        self.cameraClient.PopActiveCamera(transitionBehaviors=[transition])
        return True
Пример #2
0
    def _PushCameraWithTransition(self, cameraName, behaviorNames, transitionSeconds, startHeight, targetList):
        entity = self.entityService.FindEntityByID(targetList[0])
        cameraClass = getattr(cameras, cameraName)
        camera = cameraClass()
        camera.pushUp = startHeight
        if hasattr(camera, 'SetEntity'):
            camera.SetEntity(entity)
        names = behaviorNames.split(',')
        for name in names:
            name = name.replace(' ', '')
            if len(name):
                behaviorClass = getattr(cameras, name)
                behavior = behaviorClass()
                camera.AddBehavior(behavior)

        transition = cameras.LinearTransitionBehavior(transitionSeconds=float(transitionSeconds))
        self.cameraClient.PushActiveCamera(camera, transitionBehaviors=[transition])
        return True