From: Markus R. <rol...@us...> - 2007-07-15 12:13:31
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv23245 Modified Files: kinematicframe.cpp kinematicframe.h Log Message: - added method AddJointDescription() - show jointdescription (i.e. type and full path) on a separate line - show a joint specific icon next to the joint description Index: kinematicframe.h =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/kinematicframe.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** kinematicframe.h 15 Jul 2007 10:41:10 -0000 1.3 --- kinematicframe.h 15 Jul 2007 12:13:13 -0000 1.4 *************** *** 75,79 **** --- 75,82 ---- protected: int GetParamVel(int axis) const; + + void AddJointDescription(boost::shared_ptr<oxygen::Joint> joint); void AddJointControl(boost::shared_ptr<oxygen::Joint> joint, int axis); + void OnSliderChanged(wxCommandEvent& event); void OnScrollChanged(wxScrollEvent& event); *************** *** 89,92 **** --- 92,99 ---- TJointControlMap mJoints; + wxBitmap mBmpUniversal; + wxBitmap mBmpSlider; + wxBitmap mBmpHinge; + }; // wxGlade: end class Index: kinematicframe.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/kinematicframe.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** kinematicframe.cpp 15 Jul 2007 10:41:10 -0000 1.3 --- kinematicframe.cpp 15 Jul 2007 12:13:13 -0000 1.4 *************** *** 31,34 **** --- 31,37 ---- #include <oxygen/physicsserver/sliderjoint.h> #include <oxygen/physicsserver/hingejoint.h> + #include <rsgedit/res/xpm_universal.xpm> + #include <rsgedit/res/xpm_slider.xpm> + #include <rsgedit/res/xpm_hinge.xpm> BEGIN_EVENT_TABLE(kinematicFrame, wxFrame) *************** *** 47,51 **** kinematicFrame::kinematicFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style): wxFrame(parent, id, title, pos, wxSize(640,-1), ! wxCAPTION|wxCLOSE_BOX|wxSYSTEM_MENU|wxRESIZE_BORDER|wxFRAME_TOOL_WINDOW|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT|wxCLIP_CHILDREN) { SetTitle(wxT("Kinematics")); --- 50,55 ---- kinematicFrame::kinematicFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style): wxFrame(parent, id, title, pos, wxSize(640,-1), ! wxCAPTION|wxCLOSE_BOX|wxSYSTEM_MENU|wxRESIZE_BORDER|wxFRAME_TOOL_WINDOW|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT|wxCLIP_CHILDREN), ! mBmpUniversal(xpm_universal), mBmpSlider(xpm_slider), mBmpHinge(xpm_hinge) { SetTitle(wxT("Kinematics")); *************** *** 59,68 **** int rows = 0; // dynamic ! int cols = 2; int vgap = 0; int hgap = 0; wxFlexGridSizer* sizer = new wxFlexGridSizer(rows, cols, vgap, hgap); ! sizer->AddGrowableCol(1); sizer->SetFlexibleDirection(wxHORIZONTAL); mCtrScrollWnd->SetSizer(sizer); --- 63,72 ---- int rows = 0; // dynamic ! int cols = 3; int vgap = 0; int hgap = 0; wxFlexGridSizer* sizer = new wxFlexGridSizer(rows, cols, vgap, hgap); ! sizer->AddGrowableCol(2); sizer->SetFlexibleDirection(wxHORIZONTAL); mCtrScrollWnd->SetSizer(sizer); *************** *** 73,77 **** } ! void kinematicFrame::AddJointControl(shared_ptr<Joint> joint, int axis) { wxSizer* sizer = mCtrScrollWnd->GetSizer(); --- 77,81 ---- } ! void kinematicFrame::AddJointDescription(shared_ptr<Joint> joint) { wxSizer* sizer = mCtrScrollWnd->GetSizer(); *************** *** 85,97 **** } ! wxString path = joint->GetFullPath(); wxStaticText* text = ! new wxStaticText( mCtrScrollWnd, wxID_ANY, path, wxDefaultPosition, wxDefaultSize, 0 ); sizer->Add(text, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); wxSlider* slider = new wxSlider( mCtrScrollWnd, wxID_ANY, 0, -179, 179, wxDefaultPosition, wxSize(250,-1), ! wxSL_HORIZONTAL|wxSL_AUTOTICKS|wxSL_LABELS ); sizer->Add(slider, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); --- 89,159 ---- } ! sizer->AddSpacer(0); ! ! wxStaticBitmap* bmp = 0; ! wxString strType; ! ! const int jt = joint->GetType(); ! switch (jt) ! { ! default: ! assert(false); ! strType = "?"; ! break; ! ! case dJointTypeUniversal: ! bmp = new wxStaticBitmap(mCtrScrollWnd, wxID_ANY, mBmpUniversal); ! strType = "Universal"; ! break; ! ! case dJointTypeHinge: ! bmp = new wxStaticBitmap(mCtrScrollWnd, wxID_ANY, mBmpHinge); ! strType = "Hinge"; ! break; ! ! case dJointTypeSlider: ! bmp = new wxStaticBitmap(mCtrScrollWnd, wxID_ANY, mBmpSlider); ! strType = "Slider"; ! break; ! } ! ! if (bmp == 0) ! { ! sizer->AddSpacer(0); ! } else ! { ! sizer->Add(bmp, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); ! } ! ! wxString path = strType + " at " + joint->GetFullPath(); wxStaticText* text = ! new wxStaticText(mCtrScrollWnd, wxID_ANY, path, wxDefaultPosition, wxDefaultSize, 0 ); ! ! sizer->Add(text, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); ! } ! ! void kinematicFrame::AddJointControl(shared_ptr<Joint> joint, int axis) ! { ! wxSizer* sizer = mCtrScrollWnd->GetSizer(); ! if ( ! (sizer == 0) || ! (joint.get() == 0) ! ) ! { ! assert(false); ! return; ! } ! + sizer->AddSpacer(0); + + wxString label(wxString::Format("%d :",axis)); + wxStaticText* text = + new wxStaticText( mCtrScrollWnd, wxID_ANY, label, wxDefaultPosition, wxDefaultSize, 0 ); sizer->Add(text, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); wxSlider* slider = new wxSlider( mCtrScrollWnd, wxID_ANY, 0, -179, 179, wxDefaultPosition, wxSize(250,-1), ! wxSL_HORIZONTAL|wxSL_LABELS ); sizer->Add(slider, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); *************** *** 144,155 **** { shared_ptr<Joint> joint = shared_static_cast<Joint>(*iter); ! switch (joint->GetType()) { case dJointTypeUniversal: AddJointControl(joint, 0); AddJointControl(joint, 1); default: AddJointControl(joint, 0); break; --- 206,224 ---- { shared_ptr<Joint> joint = shared_static_cast<Joint>(*iter); + int jt = joint->GetType(); ! switch (jt) { + case dJointTypeFixed: + break; + case dJointTypeUniversal: + AddJointDescription(joint); AddJointControl(joint, 0); AddJointControl(joint, 1); + break; default: + AddJointDescription(joint); AddJointControl(joint, 0); break; |