In [1]:
import math
import networkx.drawing.layout
import IPython.display

In [2]:
from pikov import pikov, visualization
gamekitty = pikov.Pikov.open('gamekitty.pikov')

In [12]:
gamekitty


Out[12]:
Pikov
preview

In [3]:
stand_waggle = gamekitty.get_frame('stand_waggle_0')
stand_waggle


Out[3]:
Frame
idstand_waggle_0
duration0.083333 seconds
image.keymd5-c28a87eda869e3329710b6e9cbb8cd76
image.contents
properties
{
  "originalImage": {
    "path": "gamekitty.png",
    "x": 80,
    "y": 8,
    "width": 8,
    "height": 8,
    "flipX": false
  },
  "clipId": "stand_waggle"
}

In [4]:
stand_waggle.transitions[0]


Out[4]:
Transition
id19
source.idstand_waggle_0
source.image
target.idstand_to_sit_0
target.image
preview

In [5]:
stand_waggle.transitions[0].target


Out[5]:
Frame
idstand_to_sit_0
duration0.083333 seconds
image.keymd5-018dbee985489eec728bbd1b87e29e3e
image.contents
properties
{
  "originalImage": {
    "path": "gamekitty.png",
    "x": 72,
    "y": 24,
    "width": 8,
    "height": 8,
    "flipX": false
  },
  "clipId": "stand_to_sit"
}

In [6]:
gamekitty.get_image('md5-9b084a2f4cc7a7f940fac47ebe710c45')


Out[6]:
Image
keymd5-9b084a2f4cc7a7f940fac47ebe710c45
content_typeimage/png
contents

In [7]:
#sit = gamekitty.get_clip('sit')
#sit_to_stand = gamekitty.get_clip('sit_to_stand')
#sit_paw = gamekitty.get_clip('sit_paw')
#stand_to_sit = gamekitty.get_clip('stand_to_sit')
#sit + sit_to_stand + clip + clip + stand_to_sit + sit_paw

In [ ]:
graph = gamekitty.to_networkx()
svg = visualization.render_svg(graph)
IPython.display.display(IPython.display.SVG(data=svg))

In [37]:
sit_nodes = [gamekitty.get_frame('sit_0')] + [
    gamekitty.get_frame(f'sit_to_stand_{index}') for index in range(4)
] + [
    gamekitty.get_frame(f'stand_waggle_{index}') for index in range(2)
] + [
    gamekitty.get_frame(f'stand_to_sit_{index}') for index in range(5)
]
paw_nodes = [gamekitty.get_frame(f'sit_paw_{index}') for index in range(3, -1, -1)]
shell_layout = networkx.drawing.layout.shell_layout(graph, [paw_nodes, sit_nodes])
IPython.display.display(IPython.display.SVG(data=visualization.render_svg(shell_layout, frames, transitions)))



In [ ]: