diff --git a/bazaar/SurfaceCtrl_Demo/SurfaceCtrl_Demo.lay b/bazaar/SurfaceCtrl_Demo/SurfaceCtrl_Demo.lay index f78f2c9c9..9a28e44c0 100644 --- a/bazaar/SurfaceCtrl_Demo/SurfaceCtrl_Demo.lay +++ b/bazaar/SurfaceCtrl_Demo/SurfaceCtrl_Demo.lay @@ -17,13 +17,13 @@ LAYOUT(SurfaceCtrl_DemoLayout, 1266, 475) ITEM(LabelBox, dv___15, SetLabel(t_("Camera values")).SetFont(StdFont().Bold()).LeftPosZ(444, 819).TopPosZ(0, 55)) ITEM(Label, frontvec, SetLabel(t_("(12, 439, 10)")).LeftPosZ(765, 89).TopPosZ(38, 13)) ITEM(Label, dv___17, SetLabel(t_("Angle (quaternion):")).RightPosZ(146, 97).BottomPosZ(37, 13)) - ITEM(EditInt64, quatZ, LeftPosZ(658, 34).TopPosZ(32, 19)) + ITEM(EditDouble, quatZ, LeftPosZ(658, 34).TopPosZ(32, 19)) ITEM(EditInt64, ObjScalZ, RightPosZ(52, 40).BottomPosZ(9, 19)) - ITEM(EditInt64, camPosZ, LeftPosZ(652, 40).TopPosZ(11, 19)) - ITEM(EditInt64, quatX, LeftPosZ(586, 34).TopPosZ(32, 19)) - ITEM(EditInt64, quatY, LeftPosZ(622, 34).TopPosZ(32, 19)) + ITEM(EditDouble, camPosZ, LeftPosZ(652, 40).TopPosZ(11, 19)) + ITEM(EditDouble, quatX, LeftPosZ(586, 34).TopPosZ(32, 19)) + ITEM(EditDouble, quatY, LeftPosZ(622, 34).TopPosZ(32, 19)) ITEM(EditInt64, ObjScalY, RightPosZ(95, 40).BottomPosZ(9, 19)) - ITEM(EditInt64, camPosY, LeftPosZ(610, 40).TopPosZ(11, 19)) + ITEM(EditDouble, camPosY, LeftPosZ(610, 40).TopPosZ(11, 19)) ITEM(EditInt64, focusZ, LeftPosZ(989, 31).TopPosZ(11, 19)) ITEM(EditInt64, focusY, LeftPosZ(956, 31).TopPosZ(11, 19)) ITEM(EditInt64, focusX, LeftPosZ(923, 31).TopPosZ(11, 19)) @@ -34,7 +34,7 @@ LAYOUT(SurfaceCtrl_DemoLayout, 1266, 475) ITEM(Label, rightvec, SetLabel(t_("(12, 439, 10)")).LeftPosZ(765, 89).TopPosZ(23, 13)) ITEM(Label, upvec, SetLabel(t_("(12, 439, 10)")).LeftPosZ(765, 89).TopPosZ(8, 13)) ITEM(Button, zoomToFit, SetLabel(t_("Fit camera")).LeftPosZ(1028, 78).TopPosZ(10, 18)) - ITEM(EditInt64, quatW, LeftPosZ(550, 34).TopPosZ(32, 19)) + ITEM(EditDouble, quatW, LeftPosZ(550, 34).TopPosZ(32, 19)) ITEM(TreeCtrl, AllObjects, RightPosZ(3, 249).VSizePosZ(56, 117)) ITEM(Label, dv___37, SetLabel(t_("Scale (xyz):")).RightPosZ(181, 62).BottomPosZ(11, 13)) ITEM(Label, dv___38, SetLabel(t_("Position (xyz):")).LeftPosZ(495, 71).TopPosZ(15, 13)) @@ -47,7 +47,7 @@ LAYOUT(SurfaceCtrl_DemoLayout, 1266, 475) ITEM(EditInt64, ObjPosY, RightPosZ(84, 40).BottomPosZ(58, 19)) ITEM(Label, dv___46, SetLabel(t_("Position (xyz):")).RightPosZ(172, 71).BottomPosZ(62, 13)) ITEM(EditInt64, ObjPosX, RightPosZ(127, 40).BottomPosZ(58, 19)) - ITEM(EditInt64, camPosX, LeftPosZ(568, 40).TopPosZ(11, 19)) + ITEM(EditDouble, camPosX, LeftPosZ(568, 40).TopPosZ(11, 19)) ITEM(Label, dv___49, SetLabel(t_("Up vector :")).SetFont(StdFontZ(10)).LeftPosZ(699, 58).TopPosZ(8, 13)) ITEM(Label, dv___50, SetLabel(t_("On Object :")).SetFont(StdFontZ(10)).LeftPosZ(937, 55).TopPosZ(36, 13)) ITEM(Label, dv___51, SetLabel(t_("To Rotate around an object, \nWheel Click the object.")).SetFont(StdFontZ(10).Italic()).LeftPosZ(1134, 126).TopPosZ(29, 24)) diff --git a/bazaar/SurfaceCtrl_Demo/main.cpp b/bazaar/SurfaceCtrl_Demo/main.cpp index de4b53052..bca0807e5 100644 --- a/bazaar/SurfaceCtrl_Demo/main.cpp +++ b/bazaar/SurfaceCtrl_Demo/main.cpp @@ -24,9 +24,20 @@ namespace Upp{ canvas.Refresh(); }; - + canvas.GetSkybox().Show(false); skybox = canvas.GetSkybox().IsShown(); skybox.WhenAction = [&]{ + if(!canvas.GetSkybox().IsLoaded()){ + canvas.ExecuteGL([&]{ + canvas.GetSkybox().Init( + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/right.jpg"), + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/left.jpg"), + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/top.jpg"), + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/bottom.jpg"), + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/front.jpg"), + StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/back.jpg")); + }); + } canvas.GetSkybox().Show(skybox.Get()); canvas.Refresh(); }; @@ -34,7 +45,7 @@ namespace Upp{ fovSelector <<= canvas.GetCamera().GetFOV(); fovSelector.MinMax(0,160); fovSelector.WhenAction =[&]{ - canvas.GetCamera().SetFOV(fovSelector); + canvas.GetCamera().SetFOV(float(fovSelector)); canvas.Refresh(); }; @@ -165,18 +176,6 @@ namespace Upp{ }; canvas.WhenPaint = [&] { - ONCELOCK{ - canvas.ExecuteGL([&]{ - canvas.GetSkybox().Init( - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/right.jpg"), - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/left.jpg"), - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/top.jpg"), - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/bottom.jpg"), - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/front.jpg"), - StreamRaster::LoadFileAny( GetSurfaceCtrlDirectory() + "skybox/back.jpg")); - }); - } - canvas.DrawAllObjects(); RetrieveCameraInformation(); RetrieveObjectInformation(); @@ -199,21 +198,21 @@ namespace Upp{ void SurfaceCtrl_Demo::RetrieveCameraInformation(){ Transform& t = canvas.GetCamera().GetTransform(); - camPosX = t.GetPosition().x; - camPosY = t.GetPosition().y; - camPosZ = t.GetPosition().z; + camPosX <<= t.GetPosition().x; + camPosY <<= t.GetPosition().y; + camPosZ <<= t.GetPosition().z; glm::quat q = t.GetRotation(); - quatW = q.w; - quatX = q.x; - quatY = q.y; - quatZ = q.z; + quatW <<= q.w; + quatX <<= q.x; + quatY <<= q.y; + quatZ <<= q.z; frontvec.SetLabel("("+ AsString( t.GetFront().x,2) +", " + AsString(t.GetFront().y,2) +", " + AsString(t.GetFront().z,2) + ")"); upvec.SetLabel("("+ AsString(t.GetUp().x,2) +", " + AsString(t.GetUp().y,2) +", " + AsString(t.GetUp().z,2) + ")"); rightvec.SetLabel("("+ AsString(t.GetRight().x,2) +", " + AsString(t.GetRight().y,2) +", " + AsString(t.GetRight().z,2) + ")"); - focusX = canvas.GetCamera().GetFocus().x; - focusY = canvas.GetCamera().GetFocus().y; - focusZ = canvas.GetCamera().GetFocus().z; + focusX <<= canvas.GetCamera().GetFocus().x; + focusY <<= canvas.GetCamera().GetFocus().y; + focusZ <<= canvas.GetCamera().GetFocus().z; onObjectBool.SetLabel( AsString(canvas.GetCamera().IsOnObject())); AllObjects.Clear(); @@ -233,13 +232,13 @@ namespace Upp{ AllObjects.OpenDeep(0,true); } void SurfaceCtrl_Demo::UpdatePosition(){ - canvas.GetCamera().GetTransform().SetPosition(camPosX,camPosY,camPosZ); + canvas.GetCamera().GetTransform().SetPosition(float(camPosX),float(camPosY),float(camPosZ)); } void SurfaceCtrl_Demo::UpdateRotation(){ - canvas.GetCamera().GetTransform().SetRotation(glm::quat(quatW,quatX,quatY,quatZ)); + canvas.GetCamera().GetTransform().SetRotation(glm::quat(float(quatW),float(quatX),float(quatY),float(quatZ))); } void SurfaceCtrl_Demo::UpdateFocus(){ - canvas.GetCamera().SetFocus(focusX,focusY,focusZ); + canvas.GetCamera().SetFocus(float(focusX),float(focusY),float(focusZ)); } void SurfaceCtrl_Demo::RetrieveObjectInformation(){ if(TreeIDSelected > 0){ @@ -248,21 +247,21 @@ namespace Upp{ Object3D& obj = canvas.GetObject(TreeIDSelected); ObjShowSkin = obj.GetShowMesh(); ObjShowNormal = obj.GetShowMeshNormal(); - ObjShowLine = obj.GetShowMeshLine(); + ObjShowLine = obj.GetShowMeshLine(); ObjShowLight = obj.GetShowLight(); - ObjPosX = obj.GetTransform().GetPosition().x; - ObjPosY = obj.GetTransform().GetPosition().y; - ObjPosZ = obj.GetTransform().GetPosition().z; + ObjPosX <<= obj.GetTransform().GetPosition().x; + ObjPosY <<= obj.GetTransform().GetPosition().y; + ObjPosZ <<= obj.GetTransform().GetPosition().z; - ObjQuatW = obj.GetTransform().GetRotation().w; - ObjQuatX = obj.GetTransform().GetRotation().x; - ObjQuatY = obj.GetTransform().GetRotation().y; - ObjQuatZ = obj.GetTransform().GetRotation().z; + ObjQuatW <<= obj.GetTransform().GetRotation().w; + ObjQuatX <<= obj.GetTransform().GetRotation().x; + ObjQuatY <<= obj.GetTransform().GetRotation().y; + ObjQuatZ <<= obj.GetTransform().GetRotation().z; - ObjScalX = obj.GetTransform().GetScale().x; - ObjScalY = obj.GetTransform().GetScale().y; - ObjScalZ = obj.GetTransform().GetScale().z; + ObjScalX <<= obj.GetTransform().GetScale().x; + ObjScalY <<= obj.GetTransform().GetScale().y; + ObjScalZ <<= obj.GetTransform().GetScale().z; } } } @@ -271,8 +270,8 @@ namespace Upp{ int iterator = canvas.FindObject(TreeIDSelected); if( iterator != -1){ Object3D& obj = canvas.GetObject(TreeIDSelected); - obj.GetTransform().SetPosition(ObjPosX,ObjPosY,ObjPosZ); - obj.GetTransform().SetRotation(glm::quat(ObjQuatW,ObjQuatX,ObjQuatY,ObjQuatZ)); + obj.GetTransform().SetPosition(float(ObjPosX),float(ObjPosY),float(ObjPosZ)); + obj.GetTransform().SetRotation(glm::quat(float(ObjQuatW),float(ObjQuatX),float(ObjQuatY),float(ObjQuatZ))); obj.GetTransform().SetScale(glm::vec3((float)ObjScalX,(float)ObjScalY,(float)ObjScalZ)); } }