From 0f92fa83154dba6b6ec3280970f917c4e7b7b5af Mon Sep 17 00:00:00 2001
From: Tomi Korpipaa <tomi.korpipaa@qt.io>
Date: Thu, 26 Apr 2018 09:56:16 +0300
Subject: [PATCH] Update HomeAutomation to 2.0 API

---
 HomeAutomation/HomeAutom.pro              |   2 +
 HomeAutomation/housemodel.cpp             |   8 +-
 HomeAutomation/qml/HomeAutom/HomeView.qml | 254 ++++++++++++----------
 HomeAutomation/uip/houseStudio.uia        |  40 ++--
 HomeAutomation/uip/houseStudio.uip        | 145 +++++-------
 5 files changed, 225 insertions(+), 224 deletions(-)

diff --git a/HomeAutomation/HomeAutom.pro b/HomeAutomation/HomeAutom.pro
index 6de97af..e0b724c 100644
--- a/HomeAutomation/HomeAutom.pro
+++ b/HomeAutomation/HomeAutom.pro
@@ -14,6 +14,8 @@ KNX_BOARD {
 
 QT += qml quick
 
+CONFIG += resources_big
+
 target.path = $$[QT_INSTALL_EXAMPLES]/studio3d/$$TARGET
 INSTALLS += target
 
diff --git a/HomeAutomation/housemodel.cpp b/HomeAutomation/housemodel.cpp
index a768217..97ac202 100644
--- a/HomeAutomation/housemodel.cpp
+++ b/HomeAutomation/housemodel.cpp
@@ -132,10 +132,10 @@ void HouseModel::generateRooms()
 {
     removeRows(0, m_rooms.length());
     // Position of labels is defined from the center point of window
-    addRoom(QStringLiteral("Living Room"), QStringLiteral("Livingroom"), 21, 0.8, 120, 200);
-    addRoom(QStringLiteral("Master Bedroom"), QStringLiteral("Masterbedroom"), 18, 0.8, -380, -290);
-    addRoom(QStringLiteral("Bedroom"), QStringLiteral("Bedroom"), 15, 0.0, -405, 170);
-    addRoom(QStringLiteral("Bath Room"), QStringLiteral("Bathroom"), 30, 1.0, -20, -320);
+    addRoom(QStringLiteral("Living Room"), QStringLiteral("LivingRoom"), 21, 0.8, 120, 200);
+    addRoom(QStringLiteral("Master Bedroom"), QStringLiteral("MasterBedRoom"), 18, 0.8, -380, -290);
+    addRoom(QStringLiteral("Bedroom"), QStringLiteral("BedRoom"), 15, 0.0, -405, 170);
+    addRoom(QStringLiteral("Bath Room"), QStringLiteral("BathRoom"), 30, 1.0, -20, -320);
 #if !defined(KNX_BACKEND)
     addRoom(QStringLiteral("Entrance"), QStringLiteral("Entrance"), 20, 0.6, -450, -70);
 #endif
diff --git a/HomeAutomation/qml/HomeAutom/HomeView.qml b/HomeAutomation/qml/HomeAutom/HomeView.qml
index 68d96b1..5ea1c40 100644
--- a/HomeAutomation/qml/HomeAutom/HomeView.qml
+++ b/HomeAutomation/qml/HomeAutom/HomeView.qml
@@ -60,8 +60,8 @@ Item {
     property real green: 0
     property real light: 0
 
-    property string currentTempAttribute: ""
-    property string currentLightAttribute: ""
+    property var currentTempTarget
+    property var currentLightTarget
 
     Timer {
         id: goToHomeTimer
@@ -69,7 +69,7 @@ Item {
         running: false
         repeat: false
 
-        onTriggered: slideInput.setValue("BackToInitialView")
+        onTriggered: slideInput.setValue("BackToInitialView");
     }
 
     Timer {
@@ -78,7 +78,7 @@ Item {
         running: false
         repeat: false
 
-        onTriggered: mainMenu.show = true
+        onTriggered: mainMenu.show = true;
     }
 
     signal studio3DPresentationReady()
@@ -98,11 +98,11 @@ Item {
             source: "qrc:/uip/houseStudio.uia"
 
             function switchToRoom(slideName) {
-                livingRoomHeat.goToTime(slideName === "Livingroom" ? 2 : 0)
-                masterBedroomHeat.goToTime(slideName === "Masterbedroom" ? 2 : 0)
-                bedroomHeat.goToTime(slideName === "Bedroom" ? 2 : 0)
-                bathRoomHeat.goToTime(slideName === "Bathroom" ? 2 : 0)
-                entranceHeat.goToTime(slideName === "Entrance" ? 2 : 0)
+                livingRoomLight.setValue(slideName === "LivingRoom" ? 100 : 0);
+                masterBedRoomLight.setValue(slideName === "MasterBedRoom" ? 100 : 0);
+                bedRoomLight.setValue(slideName === "BedRoom" ? 100 : 0);
+                bathRoomLight.setValue(slideName === "BathRoom" ? 100 : 0);
+                entranceLight.setValue(slideName === "Entrance" ? 100 : 0);
             }
 
             // This DataInput item is used to control current slide. The presentation has
@@ -112,87 +112,116 @@ Item {
                 name: "slideInput"
             }
 
+            DataInput {
+                id: entranceLight
+                name: "lightEntrance"
+            }
+
+            DataInput {
+                id: bathRoomLight
+                name: "lightBathRoom"
+            }
+
+            DataInput {
+                id: livingRoomLight
+                name: "lightLivingRoom"
+            }
+
+            DataInput {
+                id: masterBedRoomLight
+                name: "lightMasterBedRoom"
+            }
+
+            DataInput {
+                id: bedRoomLight
+                name: "lightBedRoom"
+            }
+
+            DataInput {
+                id: entranceHeat
+                name: "heatEntrance"
+            }
+
+            DataInput {
+                id: bathRoomHeat
+                name: "heatBathRoom"
+            }
+
+            DataInput {
+                id: livingRoomHeat
+                name: "heatLivingRoom"
+            }
+
+            DataInput {
+                id: masterBedRoomHeat
+                name: "heatMasterBedRoom"
+            }
+
+            DataInput {
+                id: bedRoomHeat
+                name: "heatBedRoom"
+            }
+
             SceneElement {
                 id: scene
                 elementPath: "Scene"
                 onCurrentSlideNameChanged: {
                     var startTimer = false;
-                    if (currentSlideName === "Livingroom") {
-                        currentTempAttribute = livingRoomHeat.elementPath + ".HeatAreas_Heat_LivingRoom.Heat_LivingRoomSG"
-                        currentLightAttribute = "Scene.3D.RoomLights.LivingroomLightMap.House"
-                        sliderToolbar.show = true
-                    } else if (currentSlideName === "Masterbedroom") {
-                        currentTempAttribute = masterBedroomHeat.elementPath + ".HeatAreas_Heat_MasterBedroom.Heat_MasterBedroomSG"
-                        currentLightAttribute = "Scene.3D.RoomLights.MasterbedroomLightmap.House"
-                        sliderToolbar.show = true
-                    } else if (currentSlideName === "Bedroom") {
-                        currentTempAttribute = bedroomHeat.elementPath + ".HeatAreas_Heat_BedRoom.Heat_BedRoomSG"
-                        currentLightAttribute = "Scene.3D.RoomLights.BedroomLightmap.House"
-                        sliderToolbar.show = true
-                    } else if (currentSlideName === "Bathroom") {
-                        currentTempAttribute = bathRoomHeat.elementPath + ".HeatAreas_Heat_BathRoom.Heat_BathRoomSG"
-                        currentLightAttribute = "Scene.3D.RoomLights.BathroomLightmap.House"
-                        sliderToolbar.show = true
+                    if (currentSlideName === "LivingRoom") {
+                        currentTempTarget = livingRoomHeat;
+                        currentLightTarget = livingRoomLight;
+                        sliderToolbar.show = true;
+                    } else if (currentSlideName === "MasterBedRoom") {
+                        currentTempTarget = masterBedRoomHeat;
+                        currentLightTarget = masterBedRoomLight;
+                        sliderToolbar.show = true;
+                    } else if (currentSlideName === "BedRoom") {
+                        currentTempTarget = bedRoomHeat;
+                        currentLightTarget = bedRoomLight;
+                        sliderToolbar.show = true;
+                    } else if (currentSlideName === "BathRoom") {
+                        currentTempTarget = bathRoomHeat;
+                        currentLightTarget = bathRoomLight;
+                        sliderToolbar.show = true;
                     } else if (currentSlideName === "Entrance") {
-                        currentTempAttribute = entranceHeat.elementPath + ".Heat_Entrance_HeatAreas.Heat_EntranceSG"
-                        currentLightAttribute = "Scene.3D.RoomLights.EntranceLightmap.House"
-                        sliderToolbar.show = true
+                        currentTempTarget = entranceHeat;
+                        currentLightTarget = entranceLight;
+                        sliderToolbar.show = true;
                     } else if (currentSlideName === "FloorPlan") {
                         startTimer = true;
-                        sliderToolbar.show = false
+                        sliderToolbar.show = false;
                     } else {
-                        sliderToolbar.show = false
+                        sliderToolbar.show = false;
                     }
 
                     presentation.switchToRoom(currentSlideName);
 
                     if (currentSlideName === "FloorPlan") {
                         if (previousSlideName === "InitialView")
-                            mainMenu.show = true
+                            mainMenu.show = true;
                         else
-                            showMenuTimer.start()
+                            showMenuTimer.start();
                     } else {
                         if (showMenuTimer.running)
-                            showMenuTimer.stop()
-                        mainMenu.show = false
+                            showMenuTimer.stop();
+                        mainMenu.show = false;
                     }
 
                     if (startTimer)
-                        goToHomeTimer.start()
+                        goToHomeTimer.start();
                     else if (goToHomeTimer.running)
-                        goToHomeTimer.stop()
+                        goToHomeTimer.stop();
 
-                    presentation.setAttribute(currentTempAttribute, "diffuse.r", red)
-                    presentation.setAttribute(currentTempAttribute, "diffuse.g", green)
-                    presentation.setAttribute(currentTempAttribute, "diffuse.b", blue)
-                    presentation.setAttribute(currentLightAttribute, "opacity", light)
+                    if (currentTempTarget) {
+                        currentTempTarget.setValue(Qt.vector3d(red, green, blue));
+                        currentLightTarget.setValue(light);
+                    }
                 }
             }
-
-            SceneElement {
-                id: livingRoomHeat
-                elementPath: "Scene.3D.HeatAreas.Group_HeatAreas.HeatAreas_Heat_LivingRoom"
-            }
-            SceneElement {
-                id: masterBedroomHeat
-                elementPath: "Scene.3D.HeatAreas.Group_HeatAreas.HeatAreas_Heat_MasterBedroom"
-            }
-            SceneElement {
-                id: bedroomHeat
-                elementPath: "Scene.3D.HeatAreas.Group_HeatAreas.HeatAreas_Heat_BedRoom"
-            }
-            SceneElement {
-                id: bathRoomHeat
-                elementPath: "Scene.3D.HeatAreas.Group_HeatAreas.HeatAreas_Heat_BathRoom"
-            }
-            SceneElement {
-                id: entranceHeat
-                elementPath: "Scene.3D.HeatAreas.Group_HeatAreas.HeatAreas_Heat_Entrance"
-            }
         }
 
         onPresentationReady: {
-            home.studio3DPresentationReady()
+            home.studio3DPresentationReady();
         }
     }
 
@@ -200,9 +229,9 @@ Item {
         target: knxBackend
         onBoardUpdate: {
             if (lightNum > 0 && lightNum < 5) {
-                var oldValue = houseModel.data(houseModel.index(lightNum - 1, 0), 3)
-                houseModel.setData(houseModel.index(lightNum - 1, 0), !oldValue, 3)
-                lightControlLoader.item.value = houseModel.data(houseModel.index(index, 0), 3)
+                var oldValue = houseModel.data(houseModel.index(lightNum - 1, 0), 3);
+                houseModel.setData(houseModel.index(lightNum - 1, 0), !oldValue, 3);
+                lightControlLoader.item.value = houseModel.data(houseModel.index(index, 0), 3);
             }
         }
     }
@@ -212,21 +241,21 @@ Item {
         anchors.fill: parent
         onClicked: {
             if (scene.currentSlideName === "BackToInitialView") {
-                slideInput.setValue("InitialView")
-                disableMouse(2200)
+                slideInput.setValue("InitialView");
+                disableMouse(2200);
             } else if (scene.currentSlideName === "FloorPlan") {
-                slideInput.setValue("BackToInitialView")
-                disableMouse(2100)
+                slideInput.setValue("BackToInitialView");
+                disableMouse(2100);
             } else if (scene.currentSlideName !== "InitialView") {
-                slideInput.setValue("FloorPlan")
-                disableMouse(1000)
+                slideInput.setValue("FloorPlan");
+                disableMouse(1000);
             }
         }
 
         function disableMouse(animationDuration) {
-            mouseArea.enabled = false
-            mouseTimer.interval = animationDuration
-            mouseTimer.start()
+            mouseArea.enabled = false;
+            mouseTimer.interval = animationDuration;
+            mouseTimer.start();
         }
 
         Timer {
@@ -235,7 +264,7 @@ Item {
             running: false
             repeat: false
 
-            onTriggered: mouseArea.enabled = true
+            onTriggered: mouseArea.enabled = true;
         }
     }
 
@@ -263,13 +292,14 @@ Item {
 
             // Store temperature and light to model before changing the slider value
             if (currentIndex != -1) {
-                houseModel.setData(houseModel.index(currentIndex, 0), tempSlider.currentValue, 2)
-                houseModel.setData(houseModel.index(currentIndex, 0), lightControlLoader.item.currentValue, 3)
+                houseModel.setData(houseModel.index(currentIndex, 0), tempSlider.currentValue, 2);
+                houseModel.setData(houseModel.index(currentIndex, 0),
+                                   lightControlLoader.item.currentValue, 3);
             }
-            currentIndex = index
-            var temp = houseModel.data(houseModel.index(index, 0), 2)
-            tempSlider.value = (temp - 15) / 15
-            lightControlLoader.item.value = houseModel.data(houseModel.index(index, 0), 3)
+            currentIndex = index;
+            var temp = houseModel.data(houseModel.index(index, 0), 2);
+            tempSlider.value = (temp - 15) / 15;
+            lightControlLoader.item.value = houseModel.data(houseModel.index(index, 0), 3);
         }
     }
 
@@ -306,20 +336,21 @@ Item {
         Connections {
             target: lightControlLoader.item
             onLightValueChanged: {
-                var newLightValue = lightControlLoader.item.lightValue * 100
-                home.light = newLightValue
-                presentation.setAttribute(currentLightAttribute, "opacity", newLightValue)
+                var newLightValue = lightControlLoader.item.lightValue * 100;
+                home.light = newLightValue;
+                if (currentLightTarget)
+                    currentLightTarget.setValue(newLightValue);
                 if (knxBackend) {
-                    var lightNum = 0
-                    if (scene.currentSlideName === "Livingroom")
-                        lightNum = 1
-                    else if (scene.currentSlideName === "Masterbedroom")
-                        lightNum = 2
-                    else if (scene.currentSlideName === "Bedroom")
-                        lightNum = 3
-                    else if (scene.currentSlideName === "Bathroom")
-                        lightNum = 4
-                    knxBackend.toggleLight(lightNum)
+                    var lightNum = 0;
+                    if (scene.currentSlideName === "LivingRoom")
+                        lightNum = 1;
+                    else if (scene.currentSlideName === "MasterBedRoom")
+                        lightNum = 2;
+                    else if (scene.currentSlideName === "BedRoom")
+                        lightNum = 3;
+                    else if (scene.currentSlideName === "BathRoom")
+                        lightNum = 4;
+                    knxBackend.toggleLight(lightNum);
                 }
             }
         }
@@ -332,32 +363,33 @@ Item {
             width: mainMenu.width / 3
 
             onRedColorChanged: {
-                home.red = redColor
-                presentation.setAttribute(currentTempAttribute, "diffuse.r", redColor)
+                home.red = redColor;
+                currentTempTarget.setValue(Qt.vector3d(redColor, home.green, home.blue));
             }
             onBlueColorChanged: {
-                home.blue = blueColor
-                presentation.setAttribute(currentTempAttribute, "diffuse.b", blueColor)
+                home.blue = blueColor;
+                currentTempTarget.setValue(Qt.vector3d(home.red, home.green, blueColor));
             }
             onGreenColorChanged: {
-                home.green = greenColor
-                presentation.setAttribute(currentTempAttribute, "diffuse.g", greenColor)
+                home.green = greenColor;
+                currentTempTarget.setValue(Qt.vector3d(home.red, greenColor, home.blue));
             }
 
             onEconomyChanged: {
                 if (knxBackend) {
                     // Toggle red light based on temperature changes
-                    // The initial state of red lights on the board needs to be based on the default temperatures
-                    var lightNum = 0
-                    if (scene.currentSlideName === "Livingroom")
-                        lightNum = 9
-                    else if (scene.currentSlideName === "Masterbedroom")
-                        lightNum = 10
-                    else if (scene.currentSlideName === "Bedroom")
-                        lightNum = 11
-                    else if (scene.currentSlideName === "Bathroom")
-                        lightNum = 12
-                    knxBackend.toggleLight(lightNum)
+                    // The initial state of red lights on the board needs to be based on the default
+                    // temperatures
+                    var lightNum = 0;
+                    if (scene.currentSlideName === "LivingRoom")
+                        lightNum = 9;
+                    else if (scene.currentSlideName === "MasterBedRoom")
+                        lightNum = 10;
+                    else if (scene.currentSlideName === "BedRoom")
+                        lightNum = 11;
+                    else if (scene.currentSlideName === "BathRoom")
+                        lightNum = 12;
+                    knxBackend.toggleLight(lightNum);
                 }
             }
         }
diff --git a/HomeAutomation/uip/houseStudio.uia b/HomeAutomation/uip/houseStudio.uia
index 3f20e6e..718cecf 100644
--- a/HomeAutomation/uip/houseStudio.uia
+++ b/HomeAutomation/uip/houseStudio.uia
@@ -1,16 +1,26 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://qt.io/qt3dstudio/uia">
-    <assets initial="houseStudio">
-        <presentation id="houseStudio" src="houseStudio.uip"/>
-        <dataInput name="slideInput" type="String"/>
-    </assets>
-    <statemachine ref="#logic">
-        <visual-states>
-            <state ref="Initial">
-                <enter>
-                    <goto-slide element="main:Scene" rel="next"/>
-                </enter>
-            </state>
-        </visual-states>
-    </statemachine>
+<?xml version="1.0" encoding="UTF-8" ?>
+<application>
+	<assets initial="houseStudio">
+		<presentation id="houseStudio" src="houseStudio.uip"/>
+		<dataInput name="slideInput" type="String"/>
+		<dataInput name="lightEntrance" type="Ranged Number" min="0" max="100"/>
+		<dataInput name="lightBathRoom" type="Ranged Number" min="0" max="100"/>
+		<dataInput name="lightLivingRoom" type="Ranged Number" min="0" max="100"/>
+		<dataInput name="lightMasterBedRoom" type="Ranged Number" min="0" max="100"/>
+		<dataInput name="lightBedRoom" type="Ranged Number" min="0" max="100"/>
+		<dataInput name="heatEntrance" type="Vector3"/>
+		<dataInput name="heatBathRoom" type="Vector3"/>
+		<dataInput name="heatLivingRoom" type="Vector3"/>
+		<dataInput name="heatMasterBedRoom" type="Vector3"/>
+		<dataInput name="heatBedRoom" type="Vector3"/>
+	</assets>
+	<statemachine ref="#logic">
+		<visual-states>
+			<state ref="Initial">
+				<enter>
+					<goto-slide element="main:Scene" rel="next"/>
+				</enter>
+			</state>
+		</visual-states>
+	</statemachine>
 </application>
diff --git a/HomeAutomation/uip/houseStudio.uip b/HomeAutomation/uip/houseStudio.uip
index c2028e6..92f0ede 100644
--- a/HomeAutomation/uip/houseStudio.uip
+++ b/HomeAutomation/uip/houseStudio.uip
@@ -15,13 +15,7 @@
 			<ImageBuffer sourcepath="maps/Roof.png" hasTransparency="True" />
 		</BufferData>
 		<Graph >
-			<Scene id="Scene" backgroundcolor="0.819608 0.870588 0.913725" controlledproperty="slideInput @slide">
-				<Layer id="2D" >
-					<Camera id="Camera_001" />
-					<Model id="Rectangle" >
-						<Material id="Material" />
-					</Model>
-				</Layer>
+			<Scene id="Scene" backgroundcolor="0.819608 0.870588 0.913725" controlledproperty="$slideInput @slide" >
 				<Layer id="Layer" >
 					<Camera id="Camera" />
 					<Group id="House" importid="__import__root__" >
@@ -132,10 +126,6 @@
 		</Graph>
 		<Logic >
 			<State name="Master Slide" component="#Scene" >
-				<Add ref="#2D" name="2D" />
-				<Add ref="#Camera_001" />
-				<Add ref="#Rectangle" name="Rectangle" opacity="100" scale="10.4242 7.38333 1" sourcepath="#Rectangle" />
-				<Add ref="#Material" />
 				<Add ref="#Layer" name="3D" aosoftness="50" aostrength="0" lightprobe="#Layer_lightprobe" multisampleaa="4x" probebright="300" progressiveaa="None" temporalaa="True" />
 				<Add ref="#Camera" clipnear="1" fov="45" position="-25 5 -50" rotation="0 30 0" />
 				<Add ref="#House" name="House" importfile="models\House\House.import" rotation="0 180 0" scale="0.01 0.01 0.01" sourcepath="models\House\House.import" />
@@ -154,14 +144,14 @@
 				<Add ref="#Roof_001_diffusemap" sourcepath="./maps/Roof.png" />
 				<Add ref="#HeatAreas" name="HeatAreas" importfile="models\HeatAreas\HeatAreas.import" sourcepath="models\HeatAreas\HeatAreas.import" />
 				<Add ref="#Group_HeatAreas" importfile="models\HeatAreas\HeatAreas.import" opacity="100" rotation="-90 180 0" scale="1 1 1" />
-				<Add ref="#HeatAreas Heat_Entrance" name="HeatAreas_Heat_Entrance" />
+				<Add ref="#HeatAreas Heat_Entrance" name="HeatAreas_Heat_Entrance" controlledproperty="$lightEntrance @timeline" />
 				<Add ref="#HeatAreas Heat_Sauna" name="HeatAreas Heat_Sauna" />
-				<Add ref="#HeatAreas Heat_BathRoom" name="HeatAreas_Heat_BathRoom" />
+				<Add ref="#HeatAreas Heat_BathRoom" name="HeatAreas_Heat_BathRoom" controlledproperty="$lightBathRoom @timeline" />
 				<Add ref="#HeatAreas Heat_StoreRoom" name="HeatAreas Heat_StoreRoom" />
 				<Add ref="#HeatAreas Heat_DressRoom" name="HeatAreas Heat_DressRoom" />
-				<Add ref="#HeatAreas Heat_LivingRoom" name="HeatAreas_Heat_LivingRoom" />
-				<Add ref="#HeatAreas Heat_MasterBedroom" name="HeatAreas_Heat_MasterBedroom" opacity="100" />
-				<Add ref="#HeatAreas Heat_BedRoom" name="HeatAreas_Heat_BedRoom" />
+				<Add ref="#HeatAreas Heat_LivingRoom" name="HeatAreas_Heat_LivingRoom" controlledproperty="$lightLivingRoom @timeline" />
+				<Add ref="#HeatAreas Heat_MasterBedroom" name="HeatAreas_Heat_MasterBedroom" controlledproperty="$lightMasterBedRoom @timeline" opacity="100" />
+				<Add ref="#HeatAreas Heat_BedRoom" name="HeatAreas_Heat_BedRoom" controlledproperty="$lightBedRoom @timeline" />
 				<Add ref="#HeatAreas Heat_Toilet" name="HeatAreas Heat_Toilet" />
 				<Add ref="#Light" name="Light" importfile="models\Light\Light.import" scale="0.001 0.001 0.001" sourcepath="models\Light\Light.import" />
 				<Add ref="#Light_001" name="Light" rotation="45 45 0" />
@@ -183,11 +173,6 @@
 				<Add ref="#House_007_diffusemap" sourcepath=".\maps\BedRoomLightmap.png" />
 				<Add ref="#Layer_lightprobe" mappingmode="Light Probe" sourcepath="./maps/OpenfootageNET_Pinzgau-512.hdr" />
 				<State id="Scene-Init" name="Init" playmode="Play Through To..." playthroughto="#Scene-FloorPlan" >
-					<Set ref="#2D" endtime="3000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="3000" />
-					<Set ref="#Rectangle" endtime="3000" opacity="100" >
-						<AnimationTrack property="opacity" type="EaseInOut" >0.624 100 0 0 1.42 0 0 0</AnimationTrack>
-					</Set>
 					<Set ref="#Layer" endtime="3000" />
 					<Set ref="#Camera" endtime="3000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >1 -25 100 100 3 -10 0 0</AnimationTrack>
@@ -209,14 +194,14 @@
 					<Set ref="#HeatAreas" endtime="3000" />
 					<Set ref="#Group_HeatAreas" endtime="3000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="3000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="3000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="3000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="3000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="3000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="3000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="3000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="3000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="3000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="3000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="3000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="3000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="3000" eyeball="False" />
 					<Set ref="#Light" endtime="3000" />
 					<Set ref="#Light_001" endtime="3000" />
 					<Set ref="#RoomLights" endtime="3000" />
@@ -227,11 +212,6 @@
 					<Set ref="#BedroomLightmap" endtime="3000" />
 				</State>
 				<State id="Scene-InitialView" name="InitialView" playmode="Play Through To..." playthroughto="#Scene-FloorPlan" >
-					<Set ref="#2D" endtime="1200" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1200" />
-					<Set ref="#Rectangle" endtime="1200" opacity="100" >
-						<AnimationTrack property="opacity" type="EaseInOut" >0.624 100 0 0 1.2 0 0 0</AnimationTrack>
-					</Set>
 					<Set ref="#Layer" endtime="1200" />
 					<Set ref="#Camera" endtime="1200" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -25 100 100 1 -10 0 0</AnimationTrack>
@@ -253,14 +233,14 @@
 					<Set ref="#HeatAreas" endtime="1200" />
 					<Set ref="#Group_HeatAreas" endtime="1200" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1200" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1200" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1200" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1200" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1200" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1200" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1200" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1200" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1200" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1200" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1200" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1200" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1200" eyeball="False" />
 					<Set ref="#Light" endtime="1200" />
 					<Set ref="#Light_001" endtime="1200" />
 					<Set ref="#RoomLights" endtime="1200" />
@@ -271,11 +251,6 @@
 					<Set ref="#BedroomLightmap" endtime="1200" />
 				</State>
 				<State id="Scene-BackToInitialView" name="BackToInitialView" >
-					<Set ref="#2D" endtime="2100" eyeball="False" />
-					<Set ref="#Camera_001" endtime="2100" />
-					<Set ref="#Rectangle" endtime="2100" opacity="100" >
-						<AnimationTrack property="opacity" type="EaseInOut" >0.624 100 0 0 1.42 0 0 0</AnimationTrack>
-					</Set>
 					<Set ref="#Layer" endtime="2100" />
 					<Set ref="#Camera" endtime="2100" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 2 -25 100 100</AnimationTrack>
@@ -297,14 +272,14 @@
 					<Set ref="#HeatAreas" endtime="2100" />
 					<Set ref="#Group_HeatAreas" endtime="2100" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="2100" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="2100" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="2100" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="2100" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="2100" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="2100" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="2100" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="2100" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="2100" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="2100" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="2100" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="2100" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="2100" eyeball="False" />
 					<Set ref="#Light" endtime="2100" />
 					<Set ref="#Light_001" endtime="2100" />
 					<Set ref="#RoomLights" endtime="2100" />
@@ -315,9 +290,6 @@
 					<Set ref="#BedroomLightmap" endtime="2100" />
 				</State>
 				<State id="Scene-FloorPlan" name="FloorPlan" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 -10 0 0</AnimationTrack>
@@ -339,14 +311,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -356,10 +328,7 @@
 					<Set ref="#LivingroomLightMap" endtime="1000" />
 					<Set ref="#BedroomLightmap" endtime="1000" />
 				</State>
-				<State id="Scene-Livingroom" name="Livingroom" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
+				<State id="Scene-LivingRoom" name="LivingRoom" playthroughto="Previous" >
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 -12 100 100</AnimationTrack>
@@ -381,14 +350,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -398,10 +367,7 @@
 					<Set ref="#LivingroomLightMap" endtime="1000" />
 					<Set ref="#BedroomLightmap" endtime="1000" />
 				</State>
-				<State id="Scene-Masterbedroom" name="Masterbedroom" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
+				<State id="Scene-MasterBedRoom" name="MasterBedRoom" playthroughto="Previous" >
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 4 100 100</AnimationTrack>
@@ -423,14 +389,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -440,10 +406,7 @@
 					<Set ref="#LivingroomLightMap" endtime="1000" />
 					<Set ref="#BedroomLightmap" endtime="1000" />
 				</State>
-				<State id="Scene-Bedroom" name="Bedroom" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
+				<State id="Scene-BedRoom" name="BedRoom" playthroughto="Previous" >
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 -9 100 100</AnimationTrack>
@@ -465,14 +428,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -482,10 +445,7 @@
 					<Set ref="#LivingroomLightMap" endtime="1000" />
 					<Set ref="#BedroomLightmap" endtime="1000" />
 				</State>
-				<State id="Scene-Bathroom" name="Bathroom" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
+				<State id="Scene-BathRoom" name="BathRoom" playthroughto="Previous" >
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 4 100 100</AnimationTrack>
@@ -507,14 +467,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -525,9 +485,6 @@
 					<Set ref="#BedroomLightmap" endtime="1000" />
 				</State>
 				<State id="Scene-Entrance" name="Entrance" playthroughto="Previous" >
-					<Set ref="#2D" endtime="1000" eyeball="False" />
-					<Set ref="#Camera_001" endtime="1000" />
-					<Set ref="#Rectangle" endtime="1000" opacity="100" />
 					<Set ref="#Layer" endtime="1000" />
 					<Set ref="#Camera" endtime="1000" position="-25 5 -50" rotation="0 30 0" >
 						<AnimationTrack property="position.x" type="EaseInOut" dynamic="True" >0 -10 0 0 1 -1 100 100</AnimationTrack>
@@ -549,14 +506,14 @@
 					<Set ref="#HeatAreas" endtime="1000" />
 					<Set ref="#Group_HeatAreas" endtime="1000" />
 					<Set ref="#HeatAreas Heat_Entrance" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Sauna" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_BathRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" />
+					<Set ref="#HeatAreas Heat_StoreRoom" endtime="1000" eyeball="False" />
+					<Set ref="#HeatAreas Heat_DressRoom" endtime="1000" eyeball="False" />
 					<Set ref="#HeatAreas Heat_LivingRoom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_MasterBedroom" endtime="1000" />
 					<Set ref="#HeatAreas Heat_BedRoom" endtime="1000" />
-					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" />
+					<Set ref="#HeatAreas Heat_Toilet" endtime="1000" eyeball="False" />
 					<Set ref="#Light" endtime="1000" />
 					<Set ref="#Light_001" endtime="1000" />
 					<Set ref="#RoomLights" endtime="1000" />
@@ -571,7 +528,7 @@
 				<Add ref="#Heat_Entrance HeatAreas" name="Heat_Entrance_HeatAreas" importfile="models\HeatAreas\HeatAreas.import" opacity="100" >
 					<AnimationTrack property="opacity" type="EaseInOut" >0 100 100 100</AnimationTrack>
 				</Add>
-				<Add ref="#Heat_EntranceSG" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
+				<Add ref="#Heat_EntranceSG" controlledproperty="$heatEntrance diffuse" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
 				<State id="HeatAreas_Heat_Entrance-Slide1" name="Slide1" initialplaystate="Pause" >
 					<Set ref="#Heat_Entrance HeatAreas" endtime="2000" opacity="100" >
 						<AnimationTrack property="opacity" type="EaseInOut" >0 0 100 100 2 50 100 100 2 100 100 100</AnimationTrack>
@@ -589,7 +546,7 @@
 			</State>
 			<State name="Master Slide" component="#HeatAreas Heat_BathRoom" >
 				<Add ref="#HeatAreas Heat_BathRoom_001" name="HeatAreas_Heat_BathRoom" importfile="models\HeatAreas\HeatAreas.import" opacity="100" />
-				<Add ref="#Heat_BathRoomSG" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
+				<Add ref="#Heat_BathRoomSG" controlledproperty="$heatBathRoom diffuse" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
 				<State id="HeatAreas_Heat_BathRoom-Slide1" name="Slide1" initialplaystate="Pause" >
 					<Set ref="#HeatAreas Heat_BathRoom_001" endtime="2000" opacity="100" >
 						<AnimationTrack property="opacity" type="EaseInOut" >0 0 100 100 2 50 100 100</AnimationTrack>
@@ -616,7 +573,7 @@
 			</State>
 			<State name="Master Slide" component="#HeatAreas Heat_LivingRoom" >
 				<Add ref="#HeatAreas Heat_LivingRoom_001" name="HeatAreas_Heat_LivingRoom" importfile="models\HeatAreas\HeatAreas.import" opacity="100" />
-				<Add ref="#Heat_LivingRoomSG" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
+				<Add ref="#Heat_LivingRoomSG" controlledproperty="$heatLivingRoom diffuse" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
 				<State id="HeatAreas_Heat_LivingRoom-Slide1" name="Slide1" initialplaystate="Pause" >
 					<Set ref="#HeatAreas Heat_LivingRoom_001" endtime="2000" opacity="100" >
 						<AnimationTrack property="opacity" type="EaseInOut" >0 0 100 100 2 50 100 100</AnimationTrack>
@@ -625,7 +582,7 @@
 			</State>
 			<State name="Master Slide" component="#HeatAreas Heat_MasterBedroom" >
 				<Add ref="#HeatAreas Heat_MasterBedroom_001" name="HeatAreas_Heat_MasterBedroom" importfile="models\HeatAreas\HeatAreas.import" opacity="100" sourcepath="./models/HeatAreas/meshes/HeatAreas Heat_MasterBedroom.mesh" />
-				<Add ref="#Heat_MasterBedroomSG" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
+				<Add ref="#Heat_MasterBedroomSG" controlledproperty="$heatMasterBedRoom diffuse" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
 				<State id="HeatAreas_Heat_MasterBedroom-Slide1" name="Slide1" initialplaystate="Pause" >
 					<Set ref="#HeatAreas Heat_MasterBedroom_001" endtime="2000" opacity="100" >
 						<AnimationTrack property="opacity" type="EaseInOut" >0 0 100 100 2 50 100 100</AnimationTrack>
@@ -634,7 +591,7 @@
 			</State>
 			<State name="Master Slide" component="#HeatAreas Heat_BedRoom" >
 				<Add ref="#HeatAreas Heat_BedRoom_001" name="HeatAreas_Heat_BedRoom" importfile="models\HeatAreas\HeatAreas.import" opacity="100" />
-				<Add ref="#Heat_BedRoomSG" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
+				<Add ref="#Heat_BedRoomSG" controlledproperty="$heatBedRoom diffuse" importfile="models\HeatAreas\HeatAreas.import" opacity="50" />
 				<State id="HeatAreas_Heat_BedRoom-Slide1" name="Slide1" initialplaystate="Pause" >
 					<Set ref="#HeatAreas Heat_BedRoom_001" endtime="2000" opacity="100" >
 						<AnimationTrack property="opacity" type="EaseInOut" >0 0 100 100 2 50 100 100</AnimationTrack>
-- 
GitLab