Update of /cvsroot/simspark/simspark/contrib/rsgedit
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2288
Modified Files:
sparkglcanvas.cpp sparkglcanvas.h
Log Message:
- refactored node picking into method PickNode()
Index: sparkglcanvas.h
===================================================================
RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/sparkglcanvas.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** sparkglcanvas.h 15 Apr 2007 11:17:39 -0000 1.8
--- sparkglcanvas.h 23 Jun 2007 13:48:11 -0000 1.9
***************
*** 33,36 ****
--- 33,37 ----
class InputSystem;
class RenderServer;
+ class RenderNode;
}
***************
*** 69,73 ****
void Reset();
! void Pick(wxDC& dc);
protected:
--- 70,74 ----
void Reset();
! boost::weak_ptr<kerosin::RenderNode> PickNode();
protected:
Index: sparkglcanvas.cpp
===================================================================
RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/sparkglcanvas.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** sparkglcanvas.cpp 15 Apr 2007 11:17:39 -0000 1.11
--- sparkglcanvas.cpp 23 Jun 2007 13:48:11 -0000 1.12
***************
*** 109,113 ****
}
! void SparkGLCanvas::Pick(wxDC& dc)
{
shared_ptr<SimSpark> spark = wxGetApp().GetSpark();
--- 109,113 ----
}
! weak_ptr<RenderNode> SparkGLCanvas::PickNode()
{
shared_ptr<SimSpark> spark = wxGetApp().GetSpark();
***************
*** 118,124 ****
{
assert(false);
! return;
}
wxPoint ptMouse = wxGetMousePosition();
ScreenToClient(&ptMouse.x, &ptMouse.y);
--- 118,126 ----
{
assert(false);
! return weak_ptr<RenderNode>();
}
+ wxClientDC dc(this);
+
wxPoint ptMouse = wxGetMousePosition();
ScreenToClient(&ptMouse.x, &ptMouse.y);
***************
*** 127,147 ****
mRenderServer->EnablePicking(true, Vector2f(ptMouse.x, ptMouse.y), pickRange);
! bool swapBuffers = false;
! Render(dc, swapBuffers);
mRenderServer->DisablePicking();
weak_ptr<RenderNode> pickedNode = mRenderServer->GetPickedNode();
! if (pickedNode.expired())
! {
! spark->GetLog()->Normal()
! << "(SparkGLCanvas) SparkGLCanvas::Pick no node picked\n";
! } else
{
spark->GetLog()->Normal()
! << "(SparkGLCanvas) SparkGLCanvas::Pick picked " << pickedNode.lock()->GetFullPath() << std::endl;
}
! SparkContext::GetInstance().SetSelection(pickedNode);
}
--- 129,152 ----
mRenderServer->EnablePicking(true, Vector2f(ptMouse.x, ptMouse.y), pickRange);
! {
! bool swapBuffers = false;
! Render(dc, swapBuffers);
! }
mRenderServer->DisablePicking();
weak_ptr<RenderNode> pickedNode = mRenderServer->GetPickedNode();
! if (! pickedNode.expired())
{
spark->GetLog()->Normal()
! << "(SparkGLCanvas) SparkGLCanvas::PickNode picked " << pickedNode.lock()->GetFullPath() << std::endl;
}
! {
! bool swapBuffers = true;
! Render(dc, swapBuffers);
! }
!
! return pickedNode;
}
***************
*** 236,244 ****
void SparkGLCanvas::OnLeftDClick(wxMouseEvent& event)
{
! wxClientDC dc(this);
! Pick(dc);
!
! bool swapBuffers = true;
! Render(dc, swapBuffers);
}
--- 241,246 ----
void SparkGLCanvas::OnLeftDClick(wxMouseEvent& event)
{
! SparkContext::GetInstance().SetSelection(PickNode());
! event.Skip();
}
|