<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Le 20/12/2014 20:09, Dmitry Kazakov a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CAEkBSfUodHw8NrUG-j+EAT74bCgFrTDwk=Q=Tq-DKco8C_pUVQ@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Sat, Dec 20, 2014 at 10:14 PM,
            Jouni Pentikäinen <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:mctyyppi42@gmail.com" target="_blank">mctyyppi42@gmail.com</a>></span>
            wrote:<br>
            <br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex"><span class="">
                On Sat, 20 Dec 2014, Dmitry Kazakov wrote:<br>
              </span><span class="">
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">
                  Before starting refactoring I would highly recommend
                  to prepare at<br>
                  least a draft of UML diagrams of what you are planning
                  to achieve.<br>
                  This way the refactoring will come faster and more
                  successful. I<br>
                  usually create diagrams using <a
                    moz-do-not-send="true" href="http://creately.com"
                    target="_blank">http://creately.com</a> They allow
                  create<br>
                  public diagrams and edit them collaboratively.<br>
                </blockquote>
                <br>
              </span>
              I made a quick draft of the different approaches discussed
              so far:<br>
              <br>
              <a moz-do-not-send="true"
                href="https://creately.com/diagram/i3x32pss1"
                target="_blank">https://creately.com/diagram/i3x32pss1</a><br>
              <br>
              The first one is modeled from Boud's description while the
              other two are the models I have proposed. Let me know if I
              misunderstood the description somehow.<br>
              <br>
              I hope we can iron out the remaining issues and find a
              model we can all agree on.<br>
            </blockquote>
          </div>
          <br>
        </div>
        <div class="gmail_extra">For the third approach I would try to
          make it basing on KisGroupLayer. That is the class should be
          derived on a group layer, otherwise quite a lot of code
          (updates, drag&drop will not work for it). Probably, you
          could override the methods of KisNode, but I'm quite unsure
          about it. There are lots of complications like KisCloneLayer
          which could point to some layer that doesn't belong to current
          frame.<br>
          <br>
        </div>
        <div class="gmail_extra">So speaking truly I would first try to
          make purely "paintable" animation with KisPaintLayer only. And
          only then would start thinking about solving all these
          complications with animated groups. It might really happen
          that the users don't need it. I guess what then need is an
          animated paint layer + ability to change visibility and other
          properties of a all other node according to the frame number.<br>
          <br>
        </div>
        <div class="gmail_extra">So the list of requirements would be
          the following:<br>
          <br>
          <div class="gmail_extra">1) Only Paint Layer can be animated.<br>
          </div>
          2) Other types of layers are static.<br>
        </div>
        <div class="gmail_extra">3) The properties of all the nodes can
          be saved for every node for every frame. E.g. "one can
          activate Transformation Maks for a particular node starting
          from frame X and till frame Y".<br>
        </div>
        <div class="gmail_extra"><br clear="all">
          <br>
        </div>
      </div>
    </blockquote>
    <br>
    To elaborate a little my previous answer on why other kinds of
    layers should be animated:<br>
    <br>
    -Vector layer: very useful to have it for some anime-like tracing,
    rotoscopy, ...<br>
    Should work basically as frame-per-frame (new time cell=new vectors
    content).<br>
    Though at some point we could add interpolation (as long as a cell
    is active and so content doesn't change, its content can be
    interpolated.. ) Same interpolation of values could be used for
    filter and fill layers, and filter and transform masks.<br>
    <br>
    -File layer: could allow to load an external file sequence.. very
    useful for VFX!<br>
    <br>
    -Transparency mask: useful for transparency animated fx, and not so
    different from paint layer..<br>
    could be done with group+alpha-disabled layers alternative method to
    masking, but those used who prefer real masks will want it
    animated..<br>
    <br>
    -Clone layer, I'm not sure yet..<br>
    <br>
    Timothée<br>
    <br>
    <blockquote
cite="mid:CAEkBSfUodHw8NrUG-j+EAT74bCgFrTDwk=Q=Tq-DKco8C_pUVQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">-- <br>
          <div class="gmail_signature">Dmitry Kazakov</div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Krita mailing list
<a class="moz-txt-link-abbreviated" href="mailto:kimageshop@kde.org">kimageshop@kde.org</a>
<a class="moz-txt-link-freetext" href="https://mail.kde.org/mailman/listinfo/kimageshop">https://mail.kde.org/mailman/listinfo/kimageshop</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>