Added PathConstrainer and LinearConstrainer support to builder 45/38145/14
authorFerran Sole <ferran.sole@samsung.com>
Mon, 13 Apr 2015 15:02:37 +0000 (16:02 +0100)
committerFerran Sole <ferran.sole@samsung.com>
Thu, 14 May 2015 16:02:53 +0000 (17:02 +0100)
commitff26956b1702af9d1ffff11d93cc118f6db5c4ba
tree78093ac120fdd1940fe3b62dbdd1e371a29dc4ab
parent0176f9fd57aa372525893f9c3fff01be3408f2bd
Added PathConstrainer and LinearConstrainer support to builder

constrainers are defined like this

  "constrainers":
  {
    "constrainer0":
    {
      "type":"PathConstrainer",
      "points":[[100.0, 500.0, 0.0],[400.0, 500.0, 0.0]] ,
      "control-points":[[200.0, 100.0, 0.0],[300.0, 100.0, 0.0]],
      "forward":[1.0,0.0,0.0]
    },
    "constrainer1":
    {
      "type":"LinearConstrainer",
      "values":[0,400,200,0],
      "progress":[0.0,0.25,0.75,1.0]
    }
  }

And they can be applied or remove using signals like this:

  ...
  "signals":
  [
    {
      "name": "on-stage",
      "action": "applyConstraint",
      "constrainer": "constrainer0",
      "properties":
      [
        {
          "target":"targetActor",
          "targetProperty":"position",
          "source":"sourceActor",
          "sourceProperty":"position-y",
          "range":[-120.0,300.0]
        },
        {
          "target":"targetActor",
          "targetProperty":"orientation",
          "source":"sourceActor",
          "sourceProperty":"position-y",
          "range":[-120.0,300.0]
        }
      ]
    },

    ...
  {
    "name": "touched",
    "action": "removeConstraints",
    "constrainer": "constrainer0",
    "properties":
    [
      {
        "target":"targetActor"
      }
    ]
  }

Change-Id: I182c5ac2ad53f36fcb17bdcde6c47b9facf12bf0
dali-toolkit/internal/builder/builder-impl.cpp
dali-toolkit/internal/builder/builder-impl.h
dali-toolkit/internal/builder/builder-signals.cpp
dali-toolkit/public-api/builder/builder.cpp
dali-toolkit/public-api/builder/builder.h