def flowcontrolWHILE(func):
        parent = _getCommandGroup()
        source = _getSource(parent)

        try:
            parentLoop = source._currentLoop
        except AttributeError:
            parentLoop = None

        cg = CommandGroup(func.__name__)
        cg._source = source

        # Set the current loop for any BREAK statements
        source._currentLoop = cg
        func(cg)
        source._currentLoop = parentLoop

        def cancelLoop(self):
            self.getGroup().forceCancel = True

        end = Command("END WHILE")
        end.initialize = cancelLoop.__get__(end)

        cond = ConditionalCommand("flowcontrolWHILE", cg, end)
        cond.condition = condition
        cond.forceCancel = False
        cond.isFinished = _restartWhile.__get__(cond)
        cond._parentLoop = parentLoop

        parent.addSequential(cond)

        cg.conditionalCommand = cond
Exemple #2
0
    def flowcontrolWHILE(func):
        parent = _getCommandGroup()
        source = _getSource(parent)

        try:
            parentLoop = source._currentLoop
        except AttributeError:
            parentLoop = None

        cg = CommandGroup(func.__name__)
        cg._source = source

        # Set the current loop for any BREAK statements
        source._currentLoop = cg
        func(cg)
        source._currentLoop = parentLoop

        def cancelLoop(self):
            self.getGroup().forceCancel = True

        end = Command("END WHILE")
        end.initialize = cancelLoop.__get__(end)

        cond = ConditionalCommand("flowcontrolWHILE", cg, end)
        cond.condition = condition
        cond.forceCancel = False
        cond.isFinished = _restartWhile.__get__(cond)
        cond._parentLoop = parentLoop

        parent.addSequential(cond)

        cg.conditionalCommand = cond
def _buildCommandGroup(func, parent):
    """Turns the given function into a full CommandGroup."""

    source = _getSource(parent)

    cg = CommandGroup(func.__name__)
    cg._source = source
    func(cg)

    return cg
Exemple #4
0
def _buildCommandGroup(func, parent):
    """Turns the given function into a full CommandGroup."""

    source = _getSource(parent)

    cg = CommandGroup(func.__name__)
    cg._source = source
    func(cg)

    return cg