diff options
author | Janne Kangas <janne.kangas@qt.io> | 2018-04-03 14:06:25 +0300 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2018-04-09 11:10:41 +0000 |
commit | 7271c9daebdd93f62dc9c7a59597bc8c4ae47d77 (patch) | |
tree | 377650ca6823d2be42d54bed9ba22fb13e42c747 /examples | |
parent | 7be3f631b8b7cae3d1296ca03abd2fb730ab4c47 (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')
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 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 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 Diffuse color control" /> <Add ref="#Text4" name="Text4" font="TitilliumWeb-Regular" position="-381.051 290.118 0" textstring="Directional light color and Camera xy 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] } |