Example #1
0
    def load_flame(self, flame_origin, flame_target=None, lerp=0.0):
        loaded_flame = self.flame
        try:
            if (lerp == 0.0 or flame_target is None):
                loaded_flame = flame_origin
            elif (lerp >= 1.0 or flame_origin is None):
                loaded_flame = flame_target
            else:
                # interpolation:
                flame_origin.time = 0
                flame_target.time = 1
                flames_lerp = [flame_origin, flame_target]
                flames_str = "<flames>%s</flames>" % "".join(
                    map(flame_to_string, flames_lerp))
                genomes, ngenomes = Genome.from_string(flames_str)
                targetflame = Genome()
                flam3_interpolate(genomes, ngenomes, lerp, 0,
                                  byref(targetflame))
                loaded_flame = Flame(targetflame.to_string())

        except Exception as ex:
            print('[!] error during interpolation at %s: %s' % (lerp, str(ex)))
            traceback.print_exc()
            return None

        return loaded_flame
Example #2
0
def flam4_render(flame, size, quality, **kwds):
    """Passes requests on to flam4. Works on windows only for now."""
    from fr0stlib.pyflam3 import _flam4
    flame = flame if type(flame) is Flame else Flame(flame)
    flam4Flame = _flam4.loadFlam4(flame)
    output_buffer = _flam4.renderFlam4(flam4Flame, size, quality, **kwds)
    return output_buffer
Example #3
0
    def OnSelChanged(self, event):
        item = event.GetItem()
        event.Skip()

        if self.tree._dragging:
            # Don't reselect flames when a drop is happening.
            return

        if item and len(self.tree.GetIndexOfItem(item)) == 2:
            # Item is a flame
            self.tree.item = item
            self.tree.parentselected = False
            string = self.tree.GetFlameData(item)[-1]
            self.parent.SetFlame(Flame(string=string))
        else:
            # Item is a flamefile
            self.tree.parentselected = True
            self.parent.Enable(ID.UNDO, False)
            self.parent.Enable(ID.REDO, False)
Example #4
0
    def TempSave(self):
        """Updates the tree's undo list and saves a backup version from
        which the session can be restored."""
        # HACK: this prevents loads of useless tempsaves when running a script.
        # the GUI can still be manipulated. This also prevents some weird
        # segfaults.
        # Update 25/01/2011: Looks like this isn't necessary anymore now
        # that canvas is refactored.
        ##if self.scriptrunning:
        ##    return

        data = self.tree.itemdata

        # Check if flame has changed. to_string is needed to detect identical
        # flames saved in different apps. This comparison takes about 5ms.
        string = self.flame.to_string()
        if Flame(data[-1]).to_string() != string:
            data.append(string)
            self.tree.SetItemText(self.tree.item, data.name)

            self.DumpChanges()

            self.tree.RenderThumbnail()
            self.SetFlame(self.flame, rezoom=False)
Example #5
0
 def MakeFlame(self):
     flame = Flame()
     flame.add_xform()
     flame.gradient.random(**config["Gradient-Settings"])
     return flame
Example #6
0
 def _handler(self, e):
     data = self.tree.itemdata
     self.SetFlame(Flame(string=getattr(data, name)()), rezoom=False)
     self.tree.RenderThumbnail()
     self.tree.SetItemText(self.tree.item, data.name)
     self.DumpChanges()
Example #7
0
def to_string(flame):
    if isinstance(flame, basestring):
        if needs_conversion(flame):
            return Flame(flame).to_string()
        return flame
    return flame.to_string()
Example #8
0
import logging
import time

from fr0stlib import Flame
from fr0stlib.render import save_image
from fr0st.scripts.mindmurmer.sound_controller import MindMurmurHeartbeatAudioController

from utils import get_scriptpath
from eegsources import *

# For running the script as stand alone and not through the fractal app
if 'flame' not in locals() and 'flame' not in globals():
    print "generating random flame"
    flame = Flame()
    flame.add_xform()

if 'large_preview' not in locals() and 'preview' not in globals():

    def DoNothing():
        pass

    large_preview = DoNothing
    preview = DoNothing


class MMEngine:
    def __init__(self, eeg_source, gui, audio_folder):
        self.eeg_source = eeg_source
        self.audio_controller = MindMurmurHeartbeatAudioController(
            audio_folder)
        self.frame_index = 0
Example #9
0
 def setUp(self):
     self.flame = Flame(flame_str)
Example #10
0
def open_flame(path):
    if os.path.exists(path):
        return [Flame(s) for s in load_flamestrings(path)]
    else:
        raise FileNotFoundError(path)