summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2018-04-03 14:06:25 +0300
committerJanne Kangas <janne.kangas@qt.io>2018-04-09 11:10:41 +0000
commit7271c9daebdd93f62dc9c7a59597bc8c4ae47d77 (patch)
tree377650ca6823d2be42d54bed9ba22fb13e42c747 /examples
parent7be3f631b8b7cae3d1296ca03abd2fb730ab4c47 (diff)
Implement Evaluator datainput type part 1
Adds Evaluator type datainput which can be given JS expressions that are evaluated in runtime. Expression can contain a single argument which is assigned the value that has been set using setDataInputValue API, e.g. (function(value) { return value * 2.0; }). Also updates qmldatainput example. Future commits add support for using additional arguments which allow using current values of other datainputs in the expression. Task-ID: QT3DS-1310 Change-Id: I7ffbedc65f686279d393c27f8494234278ca4f60 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'examples')
-rw-r--r--examples/studio3d/qmldatainput/presentation/datainput.uia1
-rw-r--r--examples/studio3d/qmldatainput/presentation/datainput.uip14
-rw-r--r--examples/studio3d/qmldatainput/qml/qmldatainput/main.qml17
3 files changed, 27 insertions, 5 deletions
diff --git a/examples/studio3d/qmldatainput/presentation/datainput.uia b/examples/studio3d/qmldatainput/presentation/datainput.uia
index d2522cde..ac7f17d1 100644
--- a/examples/studio3d/qmldatainput/presentation/datainput.uia
+++ b/examples/studio3d/qmldatainput/presentation/datainput.uia
@@ -9,6 +9,7 @@
<dataInput name="variantInput" type="Variant"/>
<dataInput name="vec3Input2" type="Vector3"/>
<dataInput name="vec3Input3" type="Vector3"/>
+ <dataInput name="evaluatorInput" type="Evaluator" evaluator="(function(value) { return value * 2; })"/>
</assets>
<statemachine ref="#logic">
<visual-states>
diff --git a/examples/studio3d/qmldatainput/presentation/datainput.uip b/examples/studio3d/qmldatainput/presentation/datainput.uip
index b37a8d88..06a5cc78 100644
--- a/examples/studio3d/qmldatainput/presentation/datainput.uip
+++ b/examples/studio3d/qmldatainput/presentation/datainput.uip
@@ -28,6 +28,10 @@
</Model>
<Text id="Text3" />
<Text id="Text4" />
+ <Text id="Text7" />
+ <Text id="Text9" />
+ <Text id="Text10" />
+ <Text id="Text11" />
</Layer>
</Scene>
</Graph>
@@ -37,15 +41,15 @@
<Add ref="#Camera" controlledproperty="$vec3Input3 rotation" pivot="0 0 0" rotation="0 0 0" />
<Add ref="#Light" castshadow="True" controlledproperty="$vec3Input lightdiffuse" lightdiffuse="1 0 0" position="-350.984 -229.258 -30" />
<State id="Scene-Slide1" name="Slide1" initialplaystate="Pause" >
- <Add ref="#Text" name="Text" controlledproperty="$rangeInput opacity $stringInput textstring" font="TitilliumWeb-Regular" position="15.2141 -9.98814 -113.498" scale="1 1 1" size="48" textstring="0" >
+ <Add ref="#Text" name="Text" controlledproperty="$rangeInput opacity $stringInput textstring" font="TitilliumWeb-Regular" position="216.513 76.6172 -113.498" scale="1 1 1" size="48" textstring="0" >
<AnimationTrack property="rotation.x" type="EaseInOut" >0 0 0 0 10 0 0 0</AnimationTrack>
<AnimationTrack property="rotation.y" type="EaseInOut" >0 0 0 0 10 0 0 0</AnimationTrack>
<AnimationTrack property="rotation.z" type="EaseInOut" >0 0 0 0 10 -360 0 0</AnimationTrack>
</Add>
- <Add ref="#Text2" name="Text2" controlledproperty="" font="TitilliumWeb-Regular" position="28.8676 90.9325 0" scale="1 1 1" size="26" textstring="Text control&#10;Rotation animation control via datainput timeline control" />
+ <Add ref="#Text2" name="Text2" controlledproperty="" font="TitilliumWeb-Regular" position="259.808 217.95 0" scale="1 1 1" size="26" textstring="Text control&#10;Rotation animation control via datainput timeline control" />
<Add ref="#Cone" name="Cone" controlledproperty="$vec3Input scale" position="-417.135 -225.166 0" sourcepath="#Cone" />
<Add ref="#Default" />
- <Add ref="#Cube" name="Cube" controlledproperty="$vec3Input3 pivot" opacity="60" position="-135.677 -173.205 0" sourcepath="#Cube" />
+ <Add ref="#Cube" name="Cube" controlledproperty="$evaluatorInput opacity" opacity="60" position="-147.224 -184.752 0" sourcepath="#Cube" />
<Add ref="#Default_001" />
<Add ref="#Cylinder" name="Cylinder" controlledproperty="$variantInput opacity" position="131.347 -180.422 0" sourcepath="#Cylinder" />
<Add ref="#Default_002" />
@@ -56,6 +60,10 @@
<Add ref="#Default_003" controlledproperty="$vec3Input2 diffuse" />
<Add ref="#Text3" name="Text3" font="TitilliumWeb-Regular" position="434.456 -304.552 0" textstring="Rotation control&#10;Diffuse color control" />
<Add ref="#Text4" name="Text4" font="TitilliumWeb-Regular" position="-381.051 290.118 0" textstring="Directional light color and Camera xy &#10;rotation controlled via Datainput" />
+ <Add ref="#Text7" name="Text7" font="TitilliumWeb-Regular" position="-150.111 -69.2816 0" textstring="Opacity" />
+ <Add ref="#Text9" name="Text9" controlledproperty="$evaluatorInput textstring" font="TitilliumWeb-Regular" position="-150.111 -106.809 0" />
+ <Add ref="#Text10" name="Text10" font="TitilliumWeb-Regular" position="138.564 -66.3953 0" textstring="Opacity" />
+ <Add ref="#Text11" name="Text11" controlledproperty="$variantInput textstring" font="TitilliumWeb-Regular" position="138.564 -103.923 0" />
</State>
</State>
</Logic>
diff --git a/examples/studio3d/qmldatainput/qml/qmldatainput/main.qml b/examples/studio3d/qmldatainput/qml/qmldatainput/main.qml
index 0ffa1ed1..4812e644 100644
--- a/examples/studio3d/qmldatainput/qml/qmldatainput/main.qml
+++ b/examples/studio3d/qmldatainput/qml/qmldatainput/main.qml
@@ -73,7 +73,7 @@ Item {
property string inputString: ""
property int inputFloat: 0.0
property variant inputVariant: 0
-
+ property real inputEvaluator: 0.0
// A changing property to demonstrate DataInput
NumberAnimation {
target: studio3D
@@ -132,12 +132,21 @@ Item {
NumberAnimation {
target: studio3D
property: "inputVariant"
- duration: 8000
+ duration: 5000
from: 20
to: 100
loops: Animation.Infinite
running: true
}
+ NumberAnimation {
+ target: studio3D
+ property: "inputEvaluator"
+ duration: 8000
+ from: 10.0
+ to: 50.0
+ loops: Animation.Infinite
+ running: true
+ }
// ViewerSettings item is used to specify presentation independent viewer settings.
ViewerSettings {
@@ -178,6 +187,10 @@ Item {
name: "variantInput"
value: studio3D.inputVariant
}
+ DataInput {
+ name: "evaluatorInput"
+ value: studio3D.inputEvaluator
+ }
}
//![1]
}