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