void OnReset(wxCommandEvent& event);
void OnMoveDown(wxCommandEvent& event);
void OnMoveUp(wxCommandEvent& event);
+ void OnMemory(wxCommandEvent& event);
+ void OnMemoryGoBack(wxCommandEvent& event);
void OnSliderGeneralTrack(wxScrollEvent& event);
void OnSliderGeneralRelease(wxScrollEvent& event);
std::vector<double> mPossiblePoint;
std::vector<double> mLastPossiblePoint_localReference;
std::vector<double> mActualPoint;
+ std::vector<double> mMemoryPoint;
+ vtkMatrix4x4 *mMemoryMatrix;
TransformWidget2 *mBox;
// Type : Module A
: wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
mBox(box)
{
- t = vtkTransform::New();
- tt = vtkTransform::New();
+ t = vtkTransform::New(); // Transoform activa
+ tt = vtkTransform::New(); // Transform temporal para el slider
+ mMemoryMatrix = vtkMatrix4x4::New();
mttActualPoint.push_back(0);
mttActualPoint.push_back(0);
mttActualPoint.push_back(0);
if (mBox->bbGetInputType()==1)
{
- sizeSliderWidget.Set(250,-1 );
- sizeButton.Set( 45 , -1 );
- wxRadioButton *rBtnX = new wxRadioButton( this, -1, _T("ri") , wxDefaultPosition , wxDefaultSize , wxRB_GROUP);
- wxRadioButton *rBtnY = new wxRadioButton( this, -1, _T("rj") , wxDefaultPosition , wxDefaultSize , 0);
- wxRadioButton *rBtnZ = new wxRadioButton( this, -1, _T("rk") , wxDefaultPosition , wxDefaultSize , 0);
- wxRadioButton *rBtnC = new wxRadioButton( this, -1, _T("Cen") , wxDefaultPosition , wxDefaultSize , 0);
+ sizeSliderWidget.Set( 160 , -1 );
+ sizeButton.Set( 20 , -1 );
+ wxRadioButton *rBtnX = new wxRadioButton( this, -1, _T("ri") , wxDefaultPosition , wxDefaultSize , wxRB_GROUP );
+ wxRadioButton *rBtnY = new wxRadioButton( this, -1, _T("rj") , wxDefaultPosition , wxDefaultSize , 0 );
+ wxRadioButton *rBtnZ = new wxRadioButton( this, -1, _T("rk") , wxDefaultPosition , wxDefaultSize , 0 );
+ wxRadioButton *rBtnC = new wxRadioButton( this, -1, _T("Cen") , wxDefaultPosition , wxDefaultSize , 0) ;
rBtnC->SetValue(true); mTool = 3;
- mSliderGeneral = new wxSlider ( this, -1, 0 , -180, 180 , wxDefaultPosition,sizeSliderWidget ,wxSL_HORIZONTAL, wxDefaultValidator );
- cbLocalReference = new wxCheckBox ( this,-1, _T("Loc Ref") , wxDefaultPosition,wxDefaultSize ,wxCHK_2STATE | wxALIGN_RIGHT );
- wxButton *mBtnMoveDown = new wxButton ( this, -1, _T("-") , wxDefaultPosition, sizeButton );
- wxButton *mBtnMoveUp = new wxButton ( this, -1, _T("+") , wxDefaultPosition, sizeButton );
- wxButton *mBtnReset = new wxButton ( this, -1, _T("Reset") , wxDefaultPosition, sizeButton );
- Connect( rBtnX->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonX );
- Connect( rBtnY->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonY );
- Connect( rBtnZ->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonZ );
- Connect( rBtnC->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonN );
- Connect(mBtnReset->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnReset );
- Connect(mBtnMoveDown->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMoveDown );
- Connect(mBtnMoveUp->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMoveUp );
- Connect( mSliderGeneral->GetId(), wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralRelease );
- Connect( mSliderGeneral->GetId(), wxEVT_SCROLL_THUMBTRACK , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralTrack );
- Connect( mSliderGeneral->GetId(), wxEVT_SCROLL_CHANGED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralTrack );
+ mSliderGeneral = new wxSlider ( this, -1, 0 , -180, 180 , wxDefaultPosition,sizeSliderWidget ,wxSL_HORIZONTAL, wxDefaultValidator );
+ cbLocalReference = new wxCheckBox ( this,-1, _T("Loc Ref") , wxDefaultPosition,wxDefaultSize ,wxCHK_2STATE | wxALIGN_RIGHT );
+ wxButton *BtnMoveDown = new wxButton ( this, -1, _T("-") , wxDefaultPosition, sizeButton );
+ wxButton *BtnMoveUp = new wxButton ( this, -1, _T("+") , wxDefaultPosition, sizeButton );
+ wxButton *BtnReset = new wxButton ( this, -1, _T("Init") , wxDefaultPosition, sizeButton );
+ wxButton *BtnMemory = new wxButton ( this, -1, _T("Set") , wxDefaultPosition, sizeButton );
+ wxButton *BtnMemoryGoBack= new wxButton ( this, -1, _T("Reset") , wxDefaultPosition, sizeButton );
+ Connect( rBtnX->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonX );
+ Connect( rBtnY->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonY );
+ Connect( rBtnZ->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonZ );
+ Connect( rBtnC->GetId() , wxEVT_COMMAND_RADIOBUTTON_SELECTED , (wxObjectEventFunction)(void (wxPanel::*)(wxEvent&)) &TransformWidgetPanel::OnRadioButtonN );
+ Connect( BtnReset->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnReset );
+ Connect( BtnMoveDown->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMoveDown );
+ Connect( BtnMoveUp->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMoveUp );
+ Connect( BtnMemory->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMemory );
+ Connect( BtnMemoryGoBack->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnMemoryGoBack );
+ Connect( mSliderGeneral->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralRelease );
+ Connect( mSliderGeneral->GetId() , wxEVT_SCROLL_THUMBTRACK , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralTrack );
+ Connect( mSliderGeneral->GetId() , wxEVT_SCROLL_CHANGED , (wxObjectEventFunction)(void (wxPanel::*)(wxScrollEvent&)) &TransformWidgetPanel::OnSliderGeneralTrack );
wxBoxSizer *sizerA = new wxBoxSizer(wxHORIZONTAL);
sizerA->Add( rBtnC , 1 );
sizerA->Add( rBtnY , 1 );
sizerA->Add( rBtnZ , 1 );
wxBoxSizer *sizerB = new wxBoxSizer(wxHORIZONTAL);
- sizerB->Add( mSliderGeneral , 0 );
+ sizerB->Add( mSliderGeneral , 1 );
+ sizerB->Add( BtnMoveDown , 0 );
+ sizerB->Add( BtnMoveUp , 0 );
wxBoxSizer *sizerC = new wxBoxSizer(wxHORIZONTAL);
sizerC->Add( cbLocalReference , 1 );
- sizerC->Add( mBtnReset , 1 );
- sizerC->Add( mBtnMoveDown , 1 );
- sizerC->Add( mBtnMoveUp , 1 );
+ sizerC->Add( BtnReset , 1 );
+ sizerC->Add( BtnMemory , 1 );
+ sizerC->Add( BtnMemoryGoBack , 1 );
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
sizer->Add( sizerA , 0 );
sizer->Add( sizerB , 0 );
} // if mTool == 3
}
+void TransformWidgetPanel::OnMemory(wxCommandEvent& event)
+{
+ mMemoryPoint = mActualPoint;
+ mMemoryMatrix->DeepCopy( t->GetMatrix() );
+}
+
+void TransformWidgetPanel::OnMemoryGoBack(wxCommandEvent& event)
+{
+ mActualPoint = mMemoryPoint;
+ t->GetMatrix()->Identity();
+ vtkMatrix4x4 *m = vtkMatrix4x4::New();
+ m->DeepCopy( mMemoryMatrix );
+ t->SetMatrix( m );
+ mBox->bbSetOutputActualPoint( mActualPoint );
+ mBox->bbSignalOutputModification(std::string("ActualPoint"));
+ mBox->bbSetOutputOut( t );
+ mBox->bbSignalOutputModification(std::string("Out"));
+}
+
+
+
void TransformWidgetPanel::OnSliderGeneralRelease(wxScrollEvent& event)
{
if ((mTool>=0) && (mTool<=2))