Revision: 8985
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8985&view=rev
Author:   natepak
Date:     2010-11-29 05:34:15 +0000 (Mon, 29 Nov 2010)

Log Message:
-----------
Updates to camera and windows

Modified Paths:
--------------
    code/gazebo/branches/dev/server/Quatern.cc
    code/gazebo/branches/dev/server/Quatern.hh
    code/gazebo/branches/dev/server/World.cc
    code/gazebo/branches/dev/server/rendering/Camera.cc
    code/gazebo/branches/dev/server/rendering/Scene.cc
    code/gazebo/branches/dev/server/rendering/UserCamera.cc
    code/gazebo/branches/dev/server/rendering/WindowManager.cc
    code/gazebo/branches/dev/server/rendering/WindowManager.hh
    code/gazebo/branches/dev/server/wx/RenderControl.cc
    code/gazebo/branches/dev/server/wx/RenderPanel.cc
    code/gazebo/branches/dev/server/wx/RenderPanel.hh
    code/gazebo/branches/dev/server/wx/SimulationFrame.cc
    code/gazebo/branches/dev/server/wx/TimePanel.cc
    code/gazebo/branches/dev/server/wx/TimePanel.hh

Modified: code/gazebo/branches/dev/server/Quatern.cc
===================================================================
--- code/gazebo/branches/dev/server/Quatern.cc  2010-11-28 17:45:54 UTC (rev 
8984)
+++ code/gazebo/branches/dev/server/Quatern.cc  2010-11-29 05:34:15 UTC (rev 
8985)
@@ -232,6 +232,22 @@
 }
 
 
////////////////////////////////////////////////////////////////////////////////
+/// Convert euler angles to quatern.
+Quatern Quatern::EulerToQuatern( const Vector3 &vec )
+{
+  Quatern result;
+  result.SetFromEuler(vec);
+  return result;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Convert euler angles to quatern.
+Quatern Quatern::EulerToQuatern( double x, double y, double z)
+{
+  return EulerToQuatern( Vector3(x,y,z) );
+}
+
+////////////////////////////////////////////////////////////////////////////////
 /// \brief Get the Euler roll angle in radians
 double Quatern::GetRoll()
 {

Modified: code/gazebo/branches/dev/server/Quatern.hh
===================================================================
--- code/gazebo/branches/dev/server/Quatern.hh  2010-11-28 17:45:54 UTC (rev 
8984)
+++ code/gazebo/branches/dev/server/Quatern.hh  2010-11-29 05:34:15 UTC (rev 
8985)
@@ -96,6 +96,12 @@
   /// \return This quaternion as an Euler vector
   public: Vector3 GetAsEuler();
 
+  /// \brief Convert euler angles to quatern.
+  public: static Quatern EulerToQuatern( const Vector3 &vec );
+
+  /// \brief Convert euler angles to quatern.
+  public: Quatern EulerToQuatern( double x, double y, double z);
+
   /// \brief Get the Euler roll angle in radians
   public: double GetRoll();
 

Modified: code/gazebo/branches/dev/server/World.cc
===================================================================
--- code/gazebo/branches/dev/server/World.cc    2010-11-28 17:45:54 UTC (rev 
8984)
+++ code/gazebo/branches/dev/server/World.cc    2010-11-29 05:34:15 UTC (rev 
8985)
@@ -79,6 +79,7 @@
 // Private constructor
 World::World()
 {
+  std::cout << "New World\n";
   this->server = NULL;
   this->physicsEngine = NULL;
   this->graphics = NULL;

Modified: code/gazebo/branches/dev/server/rendering/Camera.cc
===================================================================
--- code/gazebo/branches/dev/server/rendering/Camera.cc 2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/rendering/Camera.cc 2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -52,6 +52,7 @@
 // Constructor
 Camera::Camera(const std::string &namePrefix, Scene *scene)
 {
+  std::cout << "New Camera\n";
   this->scene = scene;
 
   this->textureWidth = this->textureHeight = 0;
@@ -973,6 +974,8 @@
 
   Ogre::Viewport *cviewport;
 
+  std::cout << "Creating a camera\n";
+
   this->camera = this->scene->GetManager()->createCamera(this->name);
 
   // Use X/Y as horizon, Z up

Modified: code/gazebo/branches/dev/server/rendering/Scene.cc
===================================================================
--- code/gazebo/branches/dev/server/rendering/Scene.cc  2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/rendering/Scene.cc  2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -25,6 +25,7 @@
 /// Constructor
 Scene::Scene(const std::string &name)
 {
+  std::cout << "New Scene\n";
   this->id = idCounter++;
   this->idString = boost::lexical_cast<std::string>(this->id);
 

Modified: code/gazebo/branches/dev/server/rendering/UserCamera.cc
===================================================================
--- code/gazebo/branches/dev/server/rendering/UserCamera.cc     2010-11-28 
17:45:54 UTC (rev 8984)
+++ code/gazebo/branches/dev/server/rendering/UserCamera.cc     2010-11-29 
05:34:15 UTC (rev 8985)
@@ -58,6 +58,8 @@
 {
   std::stringstream stream;
 
+  std::cout << "New User Camera\n";
+
   //int w, h;
   //parentWindow->GetSize(&w, &h);
   //this->window = OgreCreator::Instance()->CreateWindow(parentWindow, w, h);
@@ -65,8 +67,6 @@
   stream << "UserCamera_" << this->count++;
   this->name = stream.str(); 
 
-  this->viewport = NULL;
-
   Events::ConnectShowCamerasSignal( boost::bind(&UserCamera::ToggleShowVisual, 
this) );
   Events::ConnectRenderSignal( boost::bind(&UserCamera::Render, this) );
   Events::ConnectPostRenderSignal( boost::bind(&UserCamera::PostRender, this) 
);
@@ -199,14 +199,16 @@
     }
   }
 
-  this->window->update(false);
+  // NATY
+  //this->window->update(false);
 }
 
 
////////////////////////////////////////////////////////////////////////////////
 // Post Render
 void UserCamera::PostRender()
 {
-  this->window->swapBuffers();
+  // NATY
+  //this->window->swapBuffers();
 
   if (**this->saveFramesP)
   {
@@ -221,7 +223,8 @@
       sprintf(tmp, "%s-%04d.jpg", this->name.c_str(), this->saveCount);
     }
 
-    this->window->writeContentsToFile(tmp);
+    // NATY
+    //this->window->writeContentsToFile(tmp);
 
     this->saveCount++;
   }
@@ -271,7 +274,7 @@
 // Set the dimensions of the viewport
 void UserCamera::SetViewportDimensions(float x, float y, float w, float h)
 {
-  this->viewport->setDimensions(x, y, w, h);
+  //this->viewport->setDimensions(x, y, w, h);
 }
 
 
////////////////////////////////////////////////////////////////////////////////
@@ -279,7 +282,8 @@
 float UserCamera::GetAvgFPS()
 {
   float lastFPS, avgFPS, bestFPS, worstFPS;
-  this->window->getStatistics(lastFPS, avgFPS, bestFPS, worstFPS);
+  // NATY: Put back in
+  //this->window->getStatistics(lastFPS, avgFPS, bestFPS, worstFPS);
 
   return avgFPS;
 }
@@ -288,15 +292,17 @@
 /// Get the triangle count
 unsigned int UserCamera::GetTriangleCount()
 {
-  return this->window->getTriangleCount();
+  //NATY: put back in
+  //return this->window->getTriangleCount();
+  return 0;
 }
 
 
////////////////////////////////////////////////////////////////////////////////
 /// Get the ogre window
-Ogre::RenderWindow *UserCamera::GetWindow()
+/*Ogre::RenderWindow *UserCamera::GetWindow()
 {
   return this->window;
-}
+}*/
 
 
////////////////////////////////////////////////////////////////////////////////
 // Toggle whether to show the visual

Modified: code/gazebo/branches/dev/server/rendering/WindowManager.cc
===================================================================
--- code/gazebo/branches/dev/server/rendering/WindowManager.cc  2010-11-28 
17:45:54 UTC (rev 8984)
+++ code/gazebo/branches/dev/server/rendering/WindowManager.cc  2010-11-29 
05:34:15 UTC (rev 8985)
@@ -1,6 +1,7 @@
 #include <Ogre.h>
 #include <math.h>
 
+#include "Events.hh"
 #include "OgreAdaptor.hh"
 #include "RTShaderSystem.hh"
 #include "Color.hh"
@@ -18,6 +19,7 @@
 // Constructor
 WindowManager::WindowManager()
 {
+  Events::ConnectRenderSignal( boost::bind(&WindowManager::Render, this) );
 }
 
 
////////////////////////////////////////////////////////////////////////////////
@@ -44,7 +46,8 @@
 void WindowManager::SetCamera( int windowId, Camera *camera)
 {
   Ogre::Viewport *viewport = NULL;
- 
+
+  this->windows[windowId]->removeAllViewports(); 
   viewport = this->windows[windowId]->addViewport(camera->GetCamera());
 
   double ratio = (double)viewport->getActualWidth() / 
(double)viewport->getActualHeight();
@@ -97,7 +100,7 @@
 
   window->setActive(true);
   //window->setVisible(true);
-  window->setAutoUpdated(false);
+  window->setAutoUpdated(true);
 
   this->windows.push_back(window);
 
@@ -116,3 +119,12 @@
     this->windows[id]->windowMovedOrResized();
   }
 } 
+
+void WindowManager::Render()
+{
+  for (unsigned int i=0; i < this->windows.size(); i++)
+  {
+    this->windows[i]->update();
+    //this->windows[i]->swapBuffers();
+  }
+}

Modified: code/gazebo/branches/dev/server/rendering/WindowManager.hh
===================================================================
--- code/gazebo/branches/dev/server/rendering/WindowManager.hh  2010-11-28 
17:45:54 UTC (rev 8984)
+++ code/gazebo/branches/dev/server/rendering/WindowManager.hh  2010-11-29 
05:34:15 UTC (rev 8985)
@@ -33,6 +33,8 @@
     /// \brief Resize a window
     public: void Resize(unsigned int id, int width, int height);
 
+    public: void Render();
+
     private: std::vector<Ogre::RenderWindow *> windows;
 
     private: static unsigned int windowCounter;

Modified: code/gazebo/branches/dev/server/wx/RenderControl.cc
===================================================================
--- code/gazebo/branches/dev/server/wx/RenderControl.cc 2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/wx/RenderControl.cc 2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -35,6 +35,8 @@
 RenderControl::RenderControl(wxWindow *parent)
   : wxControl(parent, wxID_ANY, wxDefaultPosition, wxSize(320,240), 
wxSUNKEN_BORDER, wxDefaultValidator)
 {
+  this->windowId = WindowManager::Instance()->CreateWindow(this);
+
   this->userCamera = NULL;
   this->cursorState = "default";
   this->mouseModifier = "rotx";
@@ -42,8 +44,6 @@
 
   SetFocus();
 
-  this->windowId = WindowManager::Instance()->CreateWindow(this);
-
   Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( RenderControl::OnMouseEvent 
), NULL, this );
   Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( RenderControl::OnMouseEvent 
), NULL, this );
   Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( RenderControl::OnMouseEvent 
), NULL, this );
@@ -312,6 +312,9 @@
   else
     this->userCamera = scene->GetUserCamera(0);
 
+  this->userCamera->SetWorldPosition( Vector3(0,0,3) );
+  this->userCamera->SetWorldRotation( Quatern::EulerToQuatern(0,0,3) );
+
   WindowManager::Instance()->SetCamera(this->windowId, this->userCamera);
 
   /*if (this->userCamera == NULL)
@@ -387,9 +390,12 @@
   width = size.GetWidth ();
   height = size.GetHeight ();
 
+  std::cout << "On Size[" << width << ":" << height << "]\n";
+
   WindowManager::Instance()->Resize(this->windowId, width, height);
 
-  evt.Skip();
+  evt.StopPropagation();
+  //evt.Skip(false);
 }
 
 
////////////////////////////////////////////////////////////////////////////////

Modified: code/gazebo/branches/dev/server/wx/RenderPanel.cc
===================================================================
--- code/gazebo/branches/dev/server/wx/RenderPanel.cc   2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/wx/RenderPanel.cc   2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -16,7 +16,9 @@
   wxBoxSizer *boxSizer1 = new wxBoxSizer(wxVERTICAL);
   wxBoxSizer *boxSizer2 = new wxBoxSizer(wxHORIZONTAL);
 
+  std::cout << "Creating a render control\n";
   this->renderControl = new RenderControl(this);
+  std::cout << "Done creating a render control\n";
   boxSizer1->Add(this->renderControl, 2, wxALL | wxEXPAND );
 
   wxStaticText *xyzPosText = new wxStaticText( this, wxID_ANY, wxT("XYZ:"), 
wxDefaultPosition, wxDefaultSize, 0);
@@ -100,12 +102,13 @@
 // Create a camera
 void RenderPanel::ViewScene(Scene *scene)
 {
+  printf("View Scene\n");
   this->renderControl->ViewScene(scene);
 }
 
 
////////////////////////////////////////////////////////////////////////////////
 // Update the render panel
-void RenderPanel::Update()
+void RenderPanel::MyUpdate()
 {
   UserCamera *cam = this->renderControl->GetCamera();
   if (!cam)
@@ -199,6 +202,7 @@
 
 void RenderPanel::OnXPosKillFocus(wxFocusEvent &event)
 {
+  printf("RenderPanel:OnXPosKillFocus\n");
   UserCamera *cam = this->renderControl->GetCamera();
   Vector3 pos = cam->GetWorldPosition();
 
@@ -214,6 +218,7 @@
 
 void RenderPanel::OnYPosKillFocus(wxFocusEvent &event)
 {
+  printf("RenderPanel:OnYPosKillFocus\n");
   UserCamera *cam = this->renderControl->GetCamera();
   Vector3 pos = cam->GetWorldPosition();
 
@@ -229,6 +234,7 @@
 
 void RenderPanel::OnZPosKillFocus(wxFocusEvent &event)
 {
+  printf("RenderPanel:OnZPosKillFocus\n");
   UserCamera *cam = this->renderControl->GetCamera();
   Vector3 pos = cam->GetWorldPosition();
 

Modified: code/gazebo/branches/dev/server/wx/RenderPanel.hh
===================================================================
--- code/gazebo/branches/dev/server/wx/RenderPanel.hh   2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/wx/RenderPanel.hh   2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -22,7 +22,7 @@
     public: void Init();
 
     /// \brief Update
-    public: void Update();
+    public: void MyUpdate();
 
     /// \brief Get the camera
     public: UserCamera *GetCamera();

Modified: code/gazebo/branches/dev/server/wx/SimulationFrame.cc
===================================================================
--- code/gazebo/branches/dev/server/wx/SimulationFrame.cc       2010-11-28 
17:45:54 UTC (rev 8984)
+++ code/gazebo/branches/dev/server/wx/SimulationFrame.cc       2010-11-29 
05:34:15 UTC (rev 8985)
@@ -139,6 +139,8 @@
 
   Events::ConnectMoveModeSignal( 
       boost::bind(&SimulationFrame::MoveModeCB, this, _1) );
+
+  this->auiManager->Update();
 }
 
 
////////////////////////////////////////////////////////////////////////////////
@@ -268,9 +270,9 @@
 // Update the frame
 void SimulationFrame::Update()
 {
-  this->auiManager->Update();
-  this->timePanel->Update();
-  this->renderPanel->Update();
+  //this->auiManager->Update();
+  this->timePanel->MyUpdate();
+  this->renderPanel->MyUpdate();
 }
 
 
////////////////////////////////////////////////////////////////////////////////

Modified: code/gazebo/branches/dev/server/wx/TimePanel.cc
===================================================================
--- code/gazebo/branches/dev/server/wx/TimePanel.cc     2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/wx/TimePanel.cc     2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -74,7 +74,7 @@
 
 
////////////////////////////////////////////////////////////////////////////////
 // Update the time panel
-void TimePanel::Update()
+void TimePanel::MyUpdate()
 {
   World *world = Simulator::Instance()->GetActiveWorld();
 

Modified: code/gazebo/branches/dev/server/wx/TimePanel.hh
===================================================================
--- code/gazebo/branches/dev/server/wx/TimePanel.hh     2010-11-28 17:45:54 UTC 
(rev 8984)
+++ code/gazebo/branches/dev/server/wx/TimePanel.hh     2010-11-29 05:34:15 UTC 
(rev 8985)
@@ -13,7 +13,7 @@
     public: TimePanel( wxWindow *parent );
     public: virtual ~TimePanel();
 
-    public: void Update();
+    public: void MyUpdate();
 
     private: wxStaticText *percentRealTimeText;
     private: wxTextCtrl *percentRealTimeCtrl;


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to