From 414da1a291ff4c9d9a946536d3d219e4b5f9e6c2 Mon Sep 17 00:00:00 2001 From: donadio Date: Fri, 15 May 2009 12:59:18 +0000 Subject: [PATCH] *** empty log message *** --- lib/maracasVisuLib/CMakeLists.txt | 7 + .../wxWindows/Contour/AutoControlPoints.h | 2 +- .../wxWindows/Contour/ContourExtractData.h | 2 +- .../interface/wxWindows/Contour/Propagation.h | 2 +- .../include/manualContourContainer.h | 9 +- .../src/interface/wxWindows/manualContour.cpp | 5457 ----------------- .../src/interface/wxWindows/manualContour.h | 1039 ---- .../manualContour/manualCircleControler.cpp | 182 + .../manualContour/manualCircleControler.h | 31 + .../manualContour3DControler.cpp | 103 + .../manualContour/manualContour3DControler.h | 36 + .../manualContour3V3DControler.cpp | 87 + .../manualContour3V3DControler.h | 37 + .../manualContour3VControler.cpp | 354 ++ .../manualContour/manualContour3VControler.h | 49 + .../manualContourBaseControler.cpp | 539 ++ .../manualContourBaseControler.h | 144 + .../manualContour/manualContourControler.cpp | 164 + .../manualContour/manualContourControler.h | 33 + .../manualContour/manualContourModel.cpp | 681 ++ .../manualContour/manualContourModel.h | 106 + .../manualContourModelBullEye.cpp | 168 + .../manualContour/manualContourModelBullEye.h | 53 + .../manualContourModelBullEyeSector.cpp | 148 + .../manualContourModelBullEyeSector.h | 44 + .../manualContourModelCircle.cpp | 73 + .../manualContour/manualContourModelCircle.h | 25 + .../manualContour/manualContourModelLine.cpp | 82 + .../manualContour/manualContourModelLine.h | 20 + .../manualContour/manualContourModelRoi.cpp | 42 + .../manualContour/manualContourModelRoi.h | 19 + .../manualContourPerpPlaneControler.cpp | 168 + .../manualContourPerpPlaneControler.h | 50 + .../manualContour/manualLineControler.cpp | 137 + .../manualContour/manualLineControler.h | 30 + .../widgets/manualContour/manualPoint.cpp | 51 + .../widgets/manualContour/manualPoint.h | 24 + .../manualContour/manualRoiControler.cpp | 206 + .../manualContour/manualRoiControler.h | 31 + .../manualContour/manualView3DContour.cpp | 97 + .../manualContour/manualView3DContour.h | 36 + .../manualContour/manualView3VContour.cpp | 149 + .../manualContour/manualView3VContour.h | 35 + .../manualContour/manualViewBaseContour.cpp | 907 +++ .../manualContour/manualViewBaseContour.h | 207 + .../manualContour/manualViewBullEye.cpp | 120 + .../widgets/manualContour/manualViewBullEye.h | 40 + .../manualContour/manualViewBullEyeSector.cpp | 30 + .../manualContour/manualViewBullEyeSector.h | 16 + .../manualContour/manualViewCircle.cpp | 210 + .../widgets/manualContour/manualViewCircle.h | 32 + .../manualContour/manualViewContour.cpp | 277 + .../widgets/manualContour/manualViewContour.h | 42 + .../widgets/manualContour/manualViewLine.cpp | 88 + .../widgets/manualContour/manualViewLine.h | 30 + .../widgets/manualContour/manualViewPoint.cpp | 177 + .../widgets/manualContour/manualViewPoint.h | 69 + .../widgets/manualContour/manualViewRoi.cpp | 222 + .../widgets/manualContour/manualViewRoi.h | 34 + .../widgets/manualViewPerpPlaneContour.h | 3 +- .../interface/wxWindows/widgets/wxMPRWidget.h | 6 +- .../widgets/wxManualTree_MPRWidget.h | 12 +- .../wxWindows/widgets/wxWidgetMesure2D.h | 4 +- .../widgets/wxWidgetMesure2D_Plane.h | 1 + 64 files changed, 6769 insertions(+), 6510 deletions(-) delete mode 100644 lib/maracasVisuLib/src/interface/wxWindows/manualContour.cpp delete mode 100644 lib/maracasVisuLib/src/interface/wxWindows/manualContour.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEye.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEye.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3DContour.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3DContour.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3VContour.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3VContour.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.h diff --git a/lib/maracasVisuLib/CMakeLists.txt b/lib/maracasVisuLib/CMakeLists.txt index b5ab09f..9b12f8f 100644 --- a/lib/maracasVisuLib/CMakeLists.txt +++ b/lib/maracasVisuLib/CMakeLists.txt @@ -34,6 +34,7 @@ IF ( BUILD_${LIBRARY_NAME} ) src/interface/wxWindows/Contour src/interface/wxWindows/widgets src/interface/wxWindows/widgets/pPlotter + src/interface/wxWindows/widgets/manualContour ../../../ ) #message(jhcl\n\n ${crea_LIBRARIES}) @@ -59,6 +60,9 @@ IF ( BUILD_${LIBRARY_NAME} ) FILE(GLOB ${LIBRARY_NAME}_HEADERS_PPLOTTER "src/interface/wxWindows/widgets/pPlotter/*.h") FILE(GLOB ${LIBRARY_NAME}_SOURCES_PPLOTTER src/interface/wxWindows/widgets/pPlotter/*.cxx src/interface/wxWindows/widgets/pPlotter/*.cpp src/interface/wxWindows/widgets/pPlotter/*.cc) + FILE(GLOB ${LIBRARY_NAME}_HEADERS_MANUAL_CONTOUR "src/interface/wxWindows/widgets/manualContour/*.h") + FILE(GLOB ${LIBRARY_NAME}_SOURCES_MANUAL_CONTOUR src/interface/wxWindows/widgets/manualContour/*.cpp ) + FILE(GLOB ${LIBRARY_NAME}_HEADERS_KERNEL "src/kernel/*.h") FILE(GLOB ${LIBRARY_NAME}_SOURCES_KERNEL src/kernel/*.cxx src/kernel/*.cpp src/kernel/*.cc) @@ -118,6 +122,7 @@ IF ( BUILD_${LIBRARY_NAME} ) #src/interface/wxWindows/widgets/pPlotter/pPlotterScaleY.h #src/interface/wxWindows/widgets/pPlotter/pPlotterWindow.h ${${LIBRARY_NAME}_HEADERS_PPLOTTER} + ${${LIBRARY_NAME}_HEADERS_MANUAL_CONTOUR} include/matrix.h @@ -195,6 +200,7 @@ IF ( BUILD_${LIBRARY_NAME} ) #src/interface/wxWindows/widgets/pPlotter/pPlotterScaleY.cxx #src/interface/wxWindows/widgets/pPlotter/pPlotterWindow.cxx ${${LIBRARY_NAME}_SOURCES_PPLOTTER} + ${${LIBRARY_NAME}_SOURCES_MANUAL_CONTOUR} ### #src/kernel/marImageData.cpp @@ -276,6 +282,7 @@ SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS lib/maracasVisuLib/src/interface/wxWindows/Contour lib/maracasVisuLib/src/interface/wxWindows/widgets lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter + lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour lib/maracasVisuLib/../../../ ) IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} ) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/AutoControlPoints.h b/lib/maracasVisuLib/src/interface/wxWindows/Contour/AutoControlPoints.h index 54fecfb..a1ae4fb 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/AutoControlPoints.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/AutoControlPoints.h @@ -1,7 +1,7 @@ #ifndef __AutoControlPoints_h_INCLUDED__ #define __AutoControlPoints_h_INCLUDED__ -#include "manualContour.h" +#include "manualContourModel.h" #include "Propagation.h" #include "vectorFunctions.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h index 5ad15b9..a5a9539 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h @@ -3,7 +3,7 @@ #define __ContourExtractData_h_INCLUDED_H__ -#include +#include #include "marTypes.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/Propagation.h b/lib/maracasVisuLib/src/interface/wxWindows/Contour/Propagation.h index d3f8aa2..304b8fc 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/Propagation.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/Propagation.h @@ -8,7 +8,7 @@ */ #include "marTypes.h" -#include "manualContour.h" +#include "manualContourModel.h" #include "time.h" #include diff --git a/lib/maracasVisuLib/src/interface/wxWindows/include/manualContourContainer.h b/lib/maracasVisuLib/src/interface/wxWindows/include/manualContourContainer.h index 25071c1..70b5940 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/include/manualContourContainer.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/include/manualContourContainer.h @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: manualContourContainer.h,v $ Language: C++ - Date: $Date: 2009/05/14 13:54:54 $ - Version: $Revision: 1.1 $ + Date: $Date: 2009/05/15 12:59:23 $ + Version: $Revision: 1.2 $ Copyright: (c) 2002, 2003 License: @@ -20,7 +20,10 @@ #include -#include "manualContour.h" +//#include "manualContour.h" +#include "manualContourControler.h" +#include "manualContourModel.h" +#include "manualViewContour.h" class manualContourContainer { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/manualContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/manualContour.cpp deleted file mode 100644 index af53c28..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/manualContour.cpp +++ /dev/null @@ -1,5457 +0,0 @@ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include "widgets/UtilVtk3DGeometriSelection.h" - - -#include "manualContour.h" - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -manualPoint::manualPoint(){ -} -// ---------------------------------------------------------------------------- -manualPoint::~manualPoint(){ -} -// ---------------------------------------------------------------------------- -void manualPoint::SetPoint(double x,double y,double z){ - _x=x; - _y=y; - _z=z; -} -// ---------------------------------------------------------------------------- -void manualPoint::SetPointX(double x){ - _x=x; -} -// ---------------------------------------------------------------------------- -void manualPoint::SetPointY(double y){ - _y=y; -} -// ---------------------------------------------------------------------------- -void manualPoint::SetPointZ(double z){ - _z=z; -} -// ---------------------------------------------------------------------------- -double manualPoint::GetX(){ - return _x; -} -// ---------------------------------------------------------------------------- -double manualPoint::GetY(){ - return _y; -} -// ---------------------------------------------------------------------------- -double manualPoint::GetZ(){ - return _z; -} -// ---------------------------------------------------------------------------- -manualPoint * manualPoint :: Clone() -{ - manualPoint * clone = new manualPoint(); - clone->SetPoint( GetX(), GetY(), GetZ()); - return clone; -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -manualContourModelCircle::manualContourModelCircle() -: manualContourModel() -{ -} - -manualContourModelCircle::~manualContourModelCircle() -{ -} - - -// ---------------------------------------------------------------------------- -manualContourModelCircle * manualContourModelCircle :: Clone() // virtual -{ - manualContourModelCircle * clone = new manualContourModelCircle(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualContourModelCircle::CopyAttributesTo( manualContourModelCircle * cloneObject) -{ - // Fathers object - manualContourModel::CopyAttributesTo(cloneObject); -} - -//---------------------------------------------------------------- -int manualContourModelCircle::GetTypeModel() //virtual -{ - return 3; -} - -//---------------------------------------------------------------- -void manualContourModelCircle::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtal -{ - double angle = _deltaAngle*i; - *x = _radio*cos(angle) + _centerX; - *y = _radio*sin(angle) + _centerY; - *z = _centerZ; -} - -// -// --------------------------------------------------------------------------- -void manualContourModelCircle::UpdateSpline() // virtal -{ - manualPoint *mpA,*mpB; - double difX,difY; - int np = GetSizeLstPoints( ); - int nps = GetNumberOfPointsSpline(); - _deltaAngle=(3.14159265*2)/(nps-1); - - if (np==2){ - mpA = GetManualPoint(0); - mpB = GetManualPoint(1); - difX = mpA->GetX() - mpB->GetX(); - difY = mpA->GetY() - mpB->GetY(); - _radio = sqrt( difX*difX + difY*difY ); - _centerX = mpA->GetX(); - _centerY = mpA->GetY(); - _centerZ = mpA->GetZ(); - } else { - _radio = -1; - _centerX = -1; - _centerY = -1; - _centerZ = -1; - } -} - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -//AD: 02-09 - -manualContourModelLine::manualContourModelLine() -: manualContourModel() -{ - SetNumberOfPointsSpline(20); - this->SetCloseContour(false); -} - -manualContourModelLine::~manualContourModelLine() -{ -} - - -// ---------------------------------------------------------------------------- -manualContourModelLine * manualContourModelLine :: Clone() // virtual -{ - manualContourModelLine * clone = new manualContourModelLine(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualContourModelLine::CopyAttributesTo( manualContourModelLine * cloneObject) -{ - manualContourModel::CopyAttributesTo(cloneObject); -} - -//---------------------------------------------------------------- -int manualContourModelLine::GetTypeModel() //virtual -{ - return 6; -} - - -//---------------------------------------------------------------- -/* -void manualContourModelLine::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtual -{ - int np = GetSizeLstPoints(); - if (np==0) - { - *x = 0; - *y = 0; - *z = 0; - } - if (np==1) - { - manualPoint *mp; - mp = GetManualPoint(0); - *x = mp->GetX(); - *y = mp->GetY(); - *z = mp->GetZ(); - } - if (np==2) - { - manualPoint *mp; - - if (i==0) - { - mp = GetManualPoint(0); - } - else if (i==1) - { - mp = GetManualPoint(1); - } - - *x = mp->GetX(); - *y = mp->GetY(); - *z = mp->GetZ(); - } - -} -*/ - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -manualContourModelBullEye::manualContourModelBullEye() -: manualContourModel() -{ - _numberPointsSlineBySector=101; // impaire -} - -manualContourModelBullEye::~manualContourModelBullEye() -{ -} - - -// ---------------------------------------------------------------------------- -manualContourModelBullEye * manualContourModelBullEye :: Clone() // virtual -{ - manualContourModelBullEye * clone = new manualContourModelBullEye(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualContourModelBullEye::CopyAttributesTo( manualContourModelBullEye * cloneObject) -{ - // Fathers object - manualContourModel::CopyAttributesTo(cloneObject); -} - -//---------------------------------------------------------------- -int manualContourModelBullEye::GetTypeModel() //virtual -{ - return 4; -} - -//---------------------------------------------------------------- -int manualContourModelBullEye::GetNumberOfPointsSplineSectorBulleEje() -{ - return _numberPointsSlineBySector; -} - -//---------------------------------------------------------------- -void manualContourModelBullEye::SetNumberOfPointsSplineSectorBulleEje(int numpoints) -{ - this->_numberPointsSlineBySector = numpoints; -} - -//---------------------------------------------------------------- -void manualContourModelBullEye::AddSector( double radioA, - double radioB, - double ang, - double angDelta) -{ - manualContourModelBullEyeSector *modelSector = new manualContourModelBullEyeSector(); - modelSector->SetSector(radioA,radioB,ang,angDelta); - modelSector->SetNumberOfPointsSpline( this->GetNumberOfPointsSplineSectorBulleEje() ); - _lstModelBullEyeSector.push_back(modelSector); -} - -//---------------------------------------------------------------- -manualContourModelBullEyeSector * manualContourModelBullEye::GetModelSector(int id) -{ - return _lstModelBullEyeSector[id]; -} - -//---------------------------------------------------------------- -void manualContourModelBullEye::GetSector(int id, - double *radioA, - double *radioB, - double *ang, - double *angDelta) -{ - _lstModelBullEyeSector[id]->GetSector(radioA,radioB,ang,angDelta); -} - -void manualContourModelBullEye::UpdateSpline() // virtual -{ - manualContourModel::UpdateSpline(); - - if (this->GetSizeLstPoints()>2){ - double cx,cy; - double ww,hh; - manualPoint *mpA = GetManualPoint(0); - manualPoint *mpB = GetManualPoint(2); - cx = (mpA->GetX() + mpB->GetX()) / 2.0; - cy = (mpA->GetY() + mpB->GetY()) / 2.0; - ww = fabs( mpA->GetX() - mpB->GetX() )/2.0; - hh = fabs( mpA->GetY() - mpB->GetY() )/2.0; - int i,size = _lstModelBullEyeSector.size(); - for (i=0;iSetCenter(cx,cy); - _lstModelBullEyeSector[i]->SetSize(ww,hh); - } // for - } -} - - -//---------------------------------------------------------------- -void manualContourModelBullEye::ResetSectors() -{ - int i,size=_lstModelBullEyeSector.size(); - for (i=0;iSave(ff); - } -} - -//---------------------------------------------------------------- -void manualContourModelBullEye::Open(FILE *ff) // virtual -{ - manualContourModel::Open(ff); - - ResetSectors(); - - char tmp[255]; - int i; - int numberOfSections; -// double radioA,radioB,ang,deltaAng; - - fscanf(ff,"%s",tmp); // NumberOfSections - fscanf(ff,"%s",tmp); // ## - numberOfSections = atoi(tmp); - for (i=0;iOpen(ff); - } - -} - -// ---------------------------------------------------------------------------- -std::vector manualContourModelBullEye::ExploseModel( ) -{ -//EED004 - std::vector lstTmp; - int i,iSize=_lstModelBullEyeSector.size(); - for (i=0;iSetCloseContour(true); - - _cntSplineX->SetDefaultTension( 0 ); - _cntSplineX->SetDefaultBias( 0 ); - _cntSplineX->SetDefaultContinuity( 0 ); - - _cntSplineY->SetDefaultTension( 0 ); - _cntSplineY->SetDefaultBias( 0 ); - _cntSplineY->SetDefaultContinuity( 0 ); - - _cntSplineZ->SetDefaultTension( 0 ); - _cntSplineZ->SetDefaultBias( 0 ); - _cntSplineZ->SetDefaultContinuity( 0 ); - -//JSTG 25-02-08 ------------------------------------------------------------------------------------------------- - - // this parameter is reset in the VIRTUAL manualContourBaseControler::Configure - _sizePointsContour = 100; //JSTG 25-02-08 The change in the inisialization of these variable is critical. - - _delta_JSTG = 0.0; -//--------------------------------------------------------------------------------------------------------------- -} - -// ---------------------------------------------------------------------------- -manualContourModel::~manualContourModel() -{ - int i,size=_lstPoints.size(); - for (i=0;iRemoveAllPoints(); - _cntSplineY->RemoveAllPoints(); - _cntSplineZ->RemoveAllPoints(); - - _cntSplineX->Delete(); - _cntSplineY->Delete(); - _cntSplineZ->Delete(); -} -// ---------------------------------------------------------------------------- -int manualContourModel::AddPoint(double x,double y,double z) -{ - manualPoint *mp = new manualPoint(); - mp->SetPoint(x,y,z); - AddManualPoint(mp); - //UpdateSpline(); - - return _lstPoints.size()-1; -} -// ---------------------------------------------------------------------------- -int manualContourModel::InsertPoint(double x,double y,double z) -{ - double dd,ddmin=9999999; - int ibak=0; - double xx,x1,x2; - double yy,y1,y2; - double zz,z1,z2; - int i,ii,iii,size=_lstPoints.size(); - double j,MaxDivisions=20,porcentage; - int sizeB=size; - - if (_closeContour==false) - { - size=size-1; - } - - double jbak; - - for ( i=0 ; iGetX(); - y1=_lstPoints[ii]->GetY(); - z1=_lstPoints[ii]->GetZ(); - x2=_lstPoints[iii]->GetX(); - y2=_lstPoints[iii]->GetY(); - z2=_lstPoints[iii]->GetZ(); - for (j=0; j<=MaxDivisions; j++) - { - porcentage=(j/MaxDivisions); - xx=(x2-x1)*porcentage+x1; - yy=(y2-y1)*porcentage+y1; - zz=(z2-z1)*porcentage+z1; - dd=sqrt( (xx-x)*(xx-x) + (yy-y)*(yy-y) + (zz-z)*(zz-z) ); - if ( ddSetPoint(x,y,z); - //std::vector::iterator itNum = _lstPoints.begin() + ibak; - //_lstPoints.insert(itNum,mp); - InsertPoint_id(ibak,x,y,z); -//---------------------------------------------------------------------------- - - return ibak; -} -// ---------------------------------------------------------------------------- -void manualContourModel::InsertPoint_id(int id, double x, double y, double z) -{ - manualPoint *mp = new manualPoint(); - mp->SetPoint(x,y,z); - std::vector::iterator itNum = _lstPoints.begin() + id; - _lstPoints.insert(itNum,mp); -} -// ---------------------------------------------------------------------------- - -void manualContourModel::DeletePoint(int i) -{ - std::vector::iterator itNum = _lstPoints.begin() + i; - _lstPoints.erase(itNum); -} -// ---------------------------------------------------------------------------- -void manualContourModel::DeleteAllPoints() -{ - int i,size=_lstPoints.size(); - for (i=0;iUpdateSpline(); -} -// ---------------------------------------------------------------------------- - -void manualContourModel::MovePoint(int i,double dx,double dy,double dz) -{ - manualPoint *mp=_lstPoints[i]; - double x=mp->GetX()+dx; - double y=mp->GetY()+dy; - double z=mp->GetZ()+dz; - mp->SetPoint(x,y,z); -} -// ---------------------------------------------------------------------------- -void manualContourModel::MoveLstPoints(double dx,double dy,double dz) -{ - // ToDo -} -// ---------------------------------------------------------------------------- -void manualContourModel::MoveAllPoints(double dx,double dy,double dz) -{ - int i,size=_lstPoints.size(); - for (i=0;iGetX(); - yy=mp->GetY(); - zz=mp->GetZ(); - - if (type==-1) - { - if ((fabs(xx-x)ClosedOn(); - _cntSplineY->ClosedOn(); - _cntSplineZ->ClosedOn(); - } else { - _cntSplineX->ClosedOff(); - _cntSplineY->ClosedOff(); - _cntSplineZ->ClosedOff(); - } -} - -// ---------------------------------------------------------------------------- -bool manualContourModel::IfCloseContour() -{ - return _closeContour; -} - -// ---------------------------------------------------------------------------- - -void manualContourModel::UpdateSpline() // virtual -{ - int i, np; - np = _lstPoints.size(); - manualPoint *mp; - _cntSplineX->RemoveAllPoints(); - _cntSplineY->RemoveAllPoints(); - _cntSplineZ->RemoveAllPoints(); - for( i = 0; i < np; i++ ) { - mp = GetManualPoint(i); - _cntSplineX->AddPoint( i, mp->GetX() ); - _cntSplineY->AddPoint( i, mp->GetY() ); - _cntSplineZ->AddPoint( i, mp->GetZ() ); - } // rof - -//JSTG 25-02-08 --------------------------------------------------------------------------------------------- - if (this->_closeContour==true) - { - _delta_JSTG = (double) (np) / double (_sizePointsContour - 1); //Without the -1 the curve is not close - } else { -// _delta_JSTG = (double) (np-1) / double (_sizePointsContour ); //Without the -1 the curve is not close - _delta_JSTG = (double) (np) / double (_sizePointsContour-1 ); //Without the -1 the curve is not close - } -//----------------------------------------------------------------------------------------------------------- -} - -//--------------------------------------------------------------------------------- - -/*void manualContourModel::GetSplineiPoint(int i, double &x, double &y, double &z) -{ - double delta=(double)(_lstPoints.size()) / (double)(_sizePointsContour); - double t = delta*(double)i; - GetSplinePoint(t, x, y, z); -}*/ - -//----------------------------------------------------------------------------- - -//JSTG 25-02-08 --------------------------------------------------------------- -void manualContourModel::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtal -{ - GetSpline_t_Point(i*_delta_JSTG,x,y,z); -} - -// ---------------------------------------------------------------------------- - -//JSTG 25-02-08 --------------------------------------------------------------- -void manualContourModel::GetSpline_t_Point(double t, double *x, double *y, double *z) -{ - if (_lstPoints.size()==0) - { - *x = 0; - *y = 0; - *z = 0; - } - if (_lstPoints.size()==1) - { - manualPoint *mp; - mp = GetManualPoint(0); - *x = mp->GetX(); - *y = mp->GetY(); - *z = mp->GetZ(); - } - if (_lstPoints.size()>=2) - { - *x = _cntSplineX->Evaluate(t); - *y = _cntSplineY->Evaluate(t); - *z = _cntSplineZ->Evaluate(t); - } -} - -// ---------------------------------------------------------------------------- - - -/*void manualContourModel::GetSplinePoint(double t, double &x, double &y, double &z) -{ - if (_lstPoints.size()==0) - { - x = 0; - y = 0; - z = 0; - } - if (_lstPoints.size()==1) - { - manualPoint *mp; - mp = GetManualPoint(0); - x = mp->GetX(); - y = mp->GetY(); - z = mp->GetZ(); - } - if (_lstPoints.size()>=2) - { - x = _cntSplineX->Evaluate(t); - y = _cntSplineY->Evaluate(t); - z = _cntSplineZ->Evaluate(t); - } -}*/ -// ---------------------------------------------------------------------------- -double manualContourModel::GetPathSize() -{ - double result = 0; - double x1,y1,z1; - double x2,y2,z2; - -// JSTG 25-02-08 ----------------------------- - //double t,delta; - //int i,np,nps; - int i; -//-------------------------------------------- - - if (_lstPoints.size()==2) - { - x1=_lstPoints[0]->GetX(); - y1=_lstPoints[0]->GetY(); - z1=_lstPoints[0]->GetZ(); - x2=_lstPoints[1]->GetX(); - y2=_lstPoints[1]->GetY(); - z2=_lstPoints[1]->GetZ(); - result = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1) ); - } - if (_lstPoints.size()>2) - { - -// JSTG 25-02-08 ------------------------------------------ - //np = _lstPoints.size( ); - //nps = 200; - //delta=( double ) ( np ) / ( double ) ( nps ); - UpdateSpline(); - //GetSplinePoint(0,x1,y1,z1); - GetSpline_i_Point(0,&x1,&y1,&z1); - - //for( i = 1; i < nps; i++ ) - for( i = 1; i < GetNumberOfPointsSpline(); i++ ) - { - //t = delta * (double)i; - //GetSplinePoint(t,x2,y2,z2); - GetSpline_i_Point(i,&x2,&y2,&z2); -//--------------------------------------------------------- - result=result + sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1) ); - x1=x2; - y1=y2; - z1=z2; - }// for - } - - return result; -} -// ---------------------------------------------------------------------------- -double manualContourModel::GetPathArea() -{ - double result = 555; - if ((_lstPoints.size()>=3) && IfCloseContour()==true ) - { - double area; -//JSTG 25-02-08 --------------------------------------------- - //double ti,tj; -//----------------------------------------------------------- - double x1,y1,z1; - double x2,y2,z2; - bool okArea=true; - int i, j; - - // This uses Green's theorem: - // A = 1/2 * sum( xiyi+1 - xi+1yi); pO == pN - // A < 0 -> A = |A| (a negative value could raise because points are - // given in clockwise order). - -//JSTG 25-02-08 ------------------------------------------------- - //int np = _lstPoints.size( ); - //int nps = 200; - int nps = GetNumberOfPointsSpline(); - //double delta=( double ) ( np ) / ( double ) ( nps ); - UpdateSpline(); - for( i = 0, area = 0.0; i < nps; i++ ) - { - j = ( i + 1 ) % nps; - //ti = delta * (double)i; - //tj = delta * (double)j; - //GetSplinePoint(ti,x1,y1,z1); - //GetSplinePoint(tj,x2,y2,z2); - GetSpline_i_Point(i,&x1,&y1,&z1); - GetSpline_i_Point(j,&x2,&y2,&z2); -//---------------------------------------------------------------- - area += - (x1 * y2 ) - - ( x2 * y1 ); - if (z1!=z2) - { - okArea=false; - } - }// for - area /= 2.0; - area = fabs( area ); - -/* - for( i = 0, area = 0.0; i < _lstPoints.size(); i++ ) - { - j = ( i + 1 ) % _lstPoints.size(); - // Area - area += - (_lstPoints[i]->GetX() * _lstPoints[j]->GetY() ) - - ( _lstPoints[j]->GetX() * _lstPoints[i]->GetY() ); - if (_lstPoints[0]->GetZ()!=_lstPoints[i]->GetZ()) - { - okArea=false; - } - } // rof - area /= 2.0; - area = fabs( area ); -*/ - - if (okArea==true) - { - result = area; - } else { - result = -1; - } - - } else { - result = 0; - } - return result; -} - -// ---------------------------------------------------------------------------- -// p[x,y,z] : data in -// rp[x,y,z] : data out result point -// rn[x,y,z] : data out result normal - -void manualContourModel::GetNearestPointAndNormal(double *p, double *rp, double *rn) -{ - double distMin=999999999; - double dist,dx,dy,dz; - double x1,y1,z1; - double x2,y2,z2; - int i,np,nps; - -//JSTG 25-02-08 ------------------- - //double tback; - int iback; - //double t,delta; -//--------------------------------- - - np = _lstPoints.size( ); - if (np>=2) - { -// JSTG 25-02-08 ------------------------------------------ - //nps = 200; - nps = GetNumberOfPointsSpline(); - //delta = ( double ) ( np ) / ( double ) ( nps ); - UpdateSpline(); - //GetSplinePoint(0,x1,y1,z1); - GetSpline_i_Point(0,&x1,&y1,&z1); - for( i = 0; i < nps; i++ ) - { - //t = delta * (double)i; - //GetSplinePoint(t,x1,y1,z1); - GetSpline_i_Point(i,&x1,&y1,&z1); -//---------------------------------------------------------- - dx= x1-p[0]; - dy= y1-p[1]; - dz= z1-p[2]; - dist = sqrt( dx*dx + dy*dy + dz*dz ); - if (distGetX(), mp->GetY(), mp->GetZ() ); - } -} - - -// --------------------------------------------------------------------------- - -void manualContourModel::CopyAttributesTo( manualContourModel * cloneObject) -{ - // Fathers object - //XXXX::CopyAttributesTo(cloneObject); - - cloneObject->SetCloseContour( this->IfCloseContour() ); - int i, size = GetSizeLstPoints(); - for( i=0; iAddManualPoint( GetManualPoint( i )->Clone() ); - } - cloneObject->SetNumberOfPointsSpline( GetNumberOfPointsSpline () ); - cloneObject->SetCloseContour( _closeContour ); - cloneObject->UpdateSpline(); -} - - -// --------------------------------------------------------------------------- -void manualContourModel::AddManualPoint( manualPoint* theManualPoint )//private -{ - _lstPoints.push_back( theManualPoint ); -} - -std::vector manualContourModel::ExploseModel( ) -{ - std::vector lstTmp; - lstTmp.push_back(this); - return lstTmp; -} - - -// --------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -//int manualViewPoint::range=1; - - -manualViewPoint::manualViewPoint(wxVtkBaseView *wxvtkbaseview){ - _selected = false; - _posibleSelected = false; - _pts = NULL; - _pd = NULL; - _pointVtkActor = NULL; - _bboxMapper = NULL; - _wxvtkbaseview = wxvtkbaseview; - _spc[0] = 1; - _spc[1] = 1; - _spc[2] = 1; - - _widthline = 1; - -} -// ---------------------------------------------------------------------------- -manualViewPoint::~manualViewPoint(){ - DeleteVtkObjects(); -} - -// ---------------------------------------------------------------------------- -void manualViewPoint::SetWidthLine( double width) -{ - _widthline = width; -} - -// ---------------------------------------------------------------------------- -void manualViewPoint::SetSelected(bool selected){ - _selected=selected; -} -// ---------------------------------------------------------------------------- -void manualViewPoint::SetPosibleSelected(bool posibleSelected){ - _posibleSelected=posibleSelected; -} -// ---------------------------------------------------------------------------- -bool manualViewPoint::GetSelected(){ - return _selected; -} -// ---------------------------------------------------------------------------- -bool manualViewPoint::GetPosibleSelected(){ - return _posibleSelected; -} -// ---------------------------------------------------------------------------- -void manualViewPoint::DeleteVtkObjects(){ - if (_pointVtkActor !=NULL) { _pointVtkActor->Delete(); } - if (_bboxMapper !=NULL) { _bboxMapper ->Delete(); } - if (_pts !=NULL) { _pts ->Delete(); } - if (_pd !=NULL) { _pd ->Delete(); } - _pointVtkActor = NULL; - _bboxMapper = NULL; - _pts = NULL; - _pd = NULL; -} - - - -// ---------------------------------------------------------------------------- -vtkActor* manualViewPoint::CreateVtkPointActor() -{ - DeleteVtkObjects(); - - _pts = vtkPoints::New(); - _pts->SetNumberOfPoints(8); - - _pts->SetPoint(0, -1000 , -1000 , 0 ); - _pts->SetPoint(1, 1000 , -1000 , 0 ); - _pts->SetPoint(2, 1000 , 1000 , 0 ); - _pts->SetPoint(3, -1000 , 1000 , 0 ); - _pts->SetPoint(4, -1000 , 1000 , 0 ); - _pts->SetPoint(5, -1000 , 1000 , 0 ); - _pts->SetPoint(6, -1000 , 1000 , 0 ); - _pts->SetPoint(7, -1000 , 1000 , 0 ); - - vtkCellArray *lines = vtkCellArray::New(); - lines->InsertNextCell(17); - lines->InsertCellPoint(0); - lines->InsertCellPoint(1); - lines->InsertCellPoint(2); - lines->InsertCellPoint(3); - lines->InsertCellPoint(0); - lines->InsertCellPoint(4); - lines->InsertCellPoint(5); - lines->InsertCellPoint(6); - lines->InsertCellPoint(7); - lines->InsertCellPoint(4); - lines->InsertCellPoint(0); - lines->InsertCellPoint(3); - lines->InsertCellPoint(7); - lines->InsertCellPoint(6); - lines->InsertCellPoint(2); - lines->InsertCellPoint(1); - lines->InsertCellPoint(5); - - _pd = vtkPolyData::New(); - _pd->SetPoints( _pts ); - _pd->SetLines( lines ); -// lines->Delete(); //do not delete lines ?? - - _pointVtkActor = vtkActor::New(); - _bboxMapper = vtkPolyDataMapper::New(); - - _bboxMapper->SetInput(_pd); -// _bboxMapper->ImmediateModeRenderingOn(); - _pointVtkActor->SetMapper(_bboxMapper); -// _pointVtkActor->GetProperty()->BackfaceCullingOn(); - UpdateColorActor(); -// _pd->ComputeBounds(); - - return _pointVtkActor; -} -// ---------------------------------------------------------------------------- -vtkActor* manualViewPoint::GetVtkActor(){ - return _pointVtkActor; -} -// ---------------------------------------------------------------------------- -void manualViewPoint::SetPositionXY(double x, double y,double i_range,double posZ) -{ -// double range=0.2; // i_range; -// double range=(double)manualViewPoint::range; - - double range=i_range; - -//EED 27 sep 2006 - x = x * _spc[0]; - y = y * _spc[1]; - posZ = posZ * _spc[2]; - - if (_pts!=NULL){ - _pts->SetPoint(0, x-range, y+range, posZ-range); - _pts->SetPoint(1, x+range, y+range, posZ-range); - _pts->SetPoint(2, x+range, y-range, posZ-range); - _pts->SetPoint(3, x-range, y-range, posZ-range); - _pts->SetPoint(4, x-range, y+range, posZ+range); - _pts->SetPoint(5, x+range, y+range, posZ+range); - _pts->SetPoint(6, x+range, y-range, posZ+range); - _pts->SetPoint(7, x-range, y-range, posZ+range); - } -} - - -// ---------------------------------------------------------------------------- -void manualViewPoint::UpdateColorActor() -{ - if (_pointVtkActor!=NULL){ -//EED03 - _pointVtkActor->GetProperty()->SetLineWidth( _widthline ); - _pointVtkActor->GetProperty()->SetDiffuseColor(1,0,0); - if (_posibleSelected==true){ - _pointVtkActor->GetProperty()->SetDiffuseColor(1,1,0); - } - } -} -// ---------------------------------------------------------------------------- -void manualViewPoint::GetSpacing(double spc[3]) -{ - spc[0] = _spc[0]; - spc[1] = _spc[1]; - spc[2] = _spc[2]; -} -// ---------------------------------------------------------------------------- -void manualViewPoint::SetSpacing(double spc[3]) -{ - _spc[0] = spc[0]; - _spc[1] = spc[1]; - _spc[2] = spc[2]; -} - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -manualViewContour::manualViewContour() -{ - _id_viewPoint_for_text = 0; - _mesureScale = 1; - _initialConoturModel = new manualContourModel(); -} -// ---------------------------------------------------------------------------- -manualViewContour::~manualViewContour() -{ - delete _initialConoturModel; -} -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -manualViewContour * manualViewContour :: Clone() -{ - manualViewContour * clone = new manualViewContour(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualViewContour::CopyAttributesTo( manualViewContour * cloneObject) -{ - // Call to Fathers object - manualViewBaseContour::CopyAttributesTo(cloneObject); - - cloneObject->SetMesureScale(_mesureScale); -} - -// --------------------------------------------------------------------------- - -int manualViewContour::GetType() // virtual -{ - return 1; -} - -// ---------------------------------------------------------------------------- - -void manualViewContour::Save(FILE *pFile) -{ - manualViewBaseContour::Save(pFile); -} - -// ---------------------------------------------------------------------------- - -void manualViewContour::Open(FILE *pFile) -{ -} - - - -// ---------------------------------------------------------------------------- -void manualViewContour::RefreshContour() // virtual -{ - - int i,np,nps; - -//JSTG 25-02-08 -------------------- - //double t,delta, x,y,z; - double x,y,z; -//---------------------------------- - - _manContModel->UpdateSpline(); - np = GetNumberOfPoints( ); - //nps = GetNumberOfPointsSpline(); - nps = _manContModel->GetNumberOfPointsSpline(); - //delta=( double ) ( np ) / ( double ) ( nps-1 ); //JSTG 25-02-08 - - - if ( _pts!=NULL ) - { - if (np>=2 ) - { - for( i = 0; i < nps; i++ ) - { -//JSTG 25-02-08 ------------------------------------------------ - //t = delta * (double)i; - //_manContModel->GetSplinePoint(t,x,y,z); - _manContModel->GetSpline_i_Point(i,&x,&y,&z); -//-------------------------------------------------------------- - // EED 27 sep 2006 - // _pts->SetPoint(i, x,y,z ); - _pts->SetPoint(i , x*_spc[0] , y*_spc[1] , z*_spc[2] ); - - - }// for - } - else - { - _pts->SetPoint(0, 0 , 0 , 0); - _pts->SetPoint(1, 0 , 0 , 0); - } // if - } -} - -// ---------------------------------------------------------------------------- -void manualViewContour::RefreshText() // virtual -{ - if ((_textActor!=NULL) && ( _textActor->GetProperty()->GetOpacity()!=0 )){ - int size = GetNumberOfPoints(); - char text[50]; - char resultText[50]; - strcpy(resultText," "); - if (size==2) - { - strcpy(resultText,"L= "); - gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); - strcat(resultText,text); - } - if (size>2) - { - if (_manContModel->IfCloseContour()==true) - { - strcpy(resultText,"P= "); - gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); - strcat(resultText,text); - gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea() , 5, text ); - strcat(resultText," A= "); - strcat(resultText,text); - } else { - strcpy(resultText,"L= "); - gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); - strcat(resultText,text); - } - } - - _textActor->SetInput(resultText); - - if (size>=1){ - - int i; - for (i=0; iGetPosibleSelected()==true) - { - _id_viewPoint_for_text = i; - } - } - - int id = _id_viewPoint_for_text; - double px = _manContModel->GetManualPoint(id)->GetX(); - double py = _manContModel->GetManualPoint(id)->GetY(); - - //EED 27 sep 2006 - px=px*_spc[0]; - py=py*_spc[1]; - - _textActor->SetPosition(px+GetRange()+1,py); - } - - } -} - -// ---------------------------------------------------------------------------- -bool manualViewContour::ifTouchContour(int x,int y,int z){ - bool result=false; - double xx=x; - double yy=y; - double zz=z; - double ppA[3]; - double ppB[3]; - double d1,d2,d3; - TransfromeCoordViewWorld(xx,yy,zz); - -//EED 27 sep 2006 - xx = xx * _spc[0]; - yy = yy * _spc[1]; - zz = zz * _spc[2]; - - unsigned int i, nps,nps_t; - nps = _sizePointsContour; - - if (this->_manContModel->IfCloseContour()==true) - { - nps_t = nps; - } else { - nps_t = nps-1; - } - - - for( i = 0; i < nps_t; i++ ) - { - _pts->GetPoint(i%nps, ppA); - _pts->GetPoint((i+1)%nps, ppB); - d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz)); - d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz)); - d3= sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2])); - - - if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) ) - { - result=true; - i=nps; - } - } - - return result; -} - -// ---------------------------------------------------------------------------- -void manualViewContour::DeletePoint(int id) // virtual -{ - if (_lstViewPoints.size()>2) - { - manualViewBaseContour::DeletePoint( id ); - } -} -// ---------------------------------------------------------------------------- - -void manualViewContour::ClearPoint(int id) -{ - manualViewBaseContour::DeletePoint( id ); -} - -//------------------------------------------------------------------- -void manualViewContour::SetMesureScale(double mesureScale) -{ - _mesureScale = mesureScale; -} -//------------------------------------------------------------------- -void manualViewContour::InitMove(int x, int y, int z) -{ - _initialConoturModel->DeleteAllPoints(); - - manualPoint *mp = NULL; - double XX=x; - double YY=y; - double ZZ=z; - TransfromeCoordViewWorld(XX,YY,ZZ); - - int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); - for ( i=0; iGetManualPoint( i ); - this->_initialConoturModel->AddPoint( mp->GetX() - XX, mp->GetY() - YY, mp->GetZ() ); - } -} -//------------------------------------------------------------------- -void manualViewContour::MoveContour(int x, int y, int z) -{ - manualPoint *mpOrigin = NULL; - manualPoint *mpMoving = NULL; - double XX=x; - double YY=y; - double ZZ=z; - - TransfromeCoordViewWorld(XX,YY,ZZ); - - int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); - for ( i=0; iGetManualPoint( i ); - mpMoving = _initialConoturModel->GetManualPoint(i); - mpOrigin->SetPoint( mpMoving->GetX()+XX, mpMoving->GetY() + YY, mpMoving->GetZ() ); - } - UpdateViewPoints(); -} -void manualViewContour::MoveContour(int horizontalUnits, int verticalUnits ) -{ - manualPoint *mpOrigin = NULL; - - int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); - for ( i=0; iGetManualPoint( i ); - mpOrigin->SetPoint( mpOrigin->GetX()+horizontalUnits, mpOrigin->GetY()+verticalUnits, mpOrigin->GetZ() ); - } - UpdateViewPoints(); -} -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -manualView3VContour::manualView3VContour(int type) -{ - _type=type; -// JSTG 25-02-08 ------------------------------ - //_manContModel= new manualContourModel(); -//--------------------------------------------- -} -// ---------------------------------------------------------------------------- -manualView3VContour::~manualView3VContour() -{ -} - - - -// ---------------------------------------------------------------------------- -manualView3VContour * manualView3VContour :: Clone() -{ - manualView3VContour * clone = new manualView3VContour( GetType() ); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualView3VContour::CopyAttributesTo( manualView3VContour * cloneObject) -{ - // Fathers object - manualViewContour::CopyAttributesTo(cloneObject); -} - -int manualView3VContour::GetType() -{ - return _type; -} - -// ---------------------------------------------------------------------------- -void manualView3VContour::FilterCordinateXYZ(double &x,double &y,double &z) -{ - if (_type==0) - { - x=-1000; - } - if (_type==1) - { - y=500; - } - if (_type==2) - { - z=-1000; - } -} -// ---------------------------------------------------------------------------- - -void manualView3VContour::RefreshContour() // virtula -{ - manualViewContour::RefreshContour(); - int i; - double pp[3]; -// JSTG 25-02-08 ---------------------------------------- - //int nps = GetNumberOfPointsSpline(); - int nps = _manContModel->GetNumberOfPointsSpline(); -//------------------------------------------------------- - for( i = 0; i < nps; i++ ) - { - _pts->GetPoint( i, pp ); - FilterCordinateXYZ(pp[0],pp[1],pp[2]); - -//EED 27 sep 2006 - _pts->SetPoint( i, pp[0] , pp[1] ,pp[2] ); - } - -} - -// ---------------------------------------------------------------------------- - -void manualView3VContour::UpdateViewPoint(int id){ // virtual - double x,y,z; - manualPoint *mp = _manContModel->GetManualPoint(id); - x=mp->GetX(); - y=mp->GetY(); - z=mp->GetZ(); - - FilterCordinateXYZ(x,y,z); - _lstViewPoints[id]->SetPositionXY( x , y ,GetRange(), z ); -} - -// ---------------------------------------------------------------------------- - -int manualView3VContour::GetIdPoint(int x, int y, int z) // virtual -{ - int ii=-1; - if (_manContModel!=NULL){ - double xx=x; - double yy=y; - double zz=z; - TransfromeCoordViewWorld(xx,yy,zz,-1); - ii=_manContModel->GetIdPoint(xx,yy,zz,GetRange(),_type); - } - return ii; -} - -// ---------------------------------------------------------------------------- -bool manualView3VContour::ifTouchContour(int x,int y,int z){ // virtual - bool result=false; - double xx=x; - double yy=y; - double zz=z; - double ppA[3]; - double ppB[3]; - double d1,d2,d3; - TransfromeCoordViewWorld(xx,yy,zz,-1); - -//EED 27 sep 2006 - xx = xx * _spc[0]; - yy = yy * _spc[1]; - zz = zz * _spc[2]; - - unsigned int i, nps,nps_t; - nps = _sizePointsContour; - if (this->_manContModel->IfCloseContour()==true) - { - nps_t = nps; - } else { - nps_t = nps-1; - } - FilterCordinateXYZ(xx,yy,zz); - - for( i = 0; i < nps_t; i++ ) { - _pts->GetPoint(i%nps, ppA); - _pts->GetPoint((i+1)%nps, ppB); - FilterCordinateXYZ(ppA[0],ppA[1],ppA[2]); - FilterCordinateXYZ(ppB[0],ppB[1],ppB[2]); - d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz)); - d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz)); - d3= sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2])); - if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) ) { - result=true; - i=nps; - } - } - return result; -} -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -manualView3DContour::manualView3DContour() -{ -} -// ---------------------------------------------------------------------------- -manualView3DContour::~manualView3DContour() -{ -} - -// ---------------------------------------------------------------------------- -manualView3DContour * manualView3DContour :: Clone() -{ - manualView3DContour * clone = new manualView3DContour(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualView3DContour::CopyAttributesTo( manualView3DContour * cloneObject) -{ - // Fathers object - manualViewContour::CopyAttributesTo(cloneObject); - - cloneObject->SetDimensions ( _w , _h , _d ); -} -// ---------------------------------------------------------------------------- -void manualView3DContour::SetDimensions(int w, int h, int d) -{ - _w = w; - _h = h; - _d = d; -} -// ---------------------------------------------------------------------------- -void manualView3DContour::TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type) -{ - X = _vtkmprbasedata->GetX(); - Y = _vtkmprbasedata->GetY(); - Z = _vtkmprbasedata->GetZ(); -} -// ---------------------------------------------------------------------------- -void manualView3DContour::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata) -{ - _vtkmprbasedata = vtkmprbasedata; -} -// ---------------------------------------------------------------------------- -int manualView3DContour::GetIdPoint2(int x, int y) -{ - int id = -1; - double p[3],pA[3],pB[3]; - - double pickPoint[ 3 ], cameraPos[ 3 ]; - vtkPointPicker* picker = vtkPointPicker::New( ); - vtkRenderer *pRenderer = this->GetWxVtkBaseView()->GetRenderer(); - picker->Pick( x, y, 0.0, pRenderer ); - pRenderer->GetActiveCamera( )->GetPosition( cameraPos ); - picker->GetPickPosition( pickPoint ); - picker->Delete( ); - - UtilVtk3DGeometriSelection utilVtk3Dgeometriselection; - utilVtk3Dgeometriselection.SetDimentions(_w,_h,_d); - - if( utilVtk3Dgeometriselection.FindCubePointsFromPoints( pA, pB, pickPoint, cameraPos ) ) - { - double dist,distMin=999999999; - int i,size=this->_manContModel->GetSizeLstPoints(); - for (i=0;i_manContModel->GetManualPoint(i); - p[0] = mp->GetX(); - p[1] = mp->GetY(); - p[2] = mp->GetZ(); - dist=utilVtk3Dgeometriselection.DistanceMinPointToLine(p,pA,pB); - if ( (dist<=2*GetRange()) && (distUpdateSpline(); - nps = _manContModel->GetNumberOfPointsSpline(); - - if ( _pts!=NULL ) - { - for( i = 0; i < nps; i++ ) - { - _manContModel->GetSpline_i_Point(i,&x,&y,&z); - _pts->SetPoint(i , x*_spc[0] , y*_spc[1] , z*_spc[2] ); - }// for - } - -} - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -manualViewBullEye::manualViewBullEye() -{ -} - -// ---------------------------------------------------------------------------- -manualViewBullEye::~manualViewBullEye() -{ - // BullEye(s) - int i,size=lstSectorBullEye.size(); - for (i=0;iUpdateSpline(); - int np = GetNumberOfPoints( ); - // Refres sectors of BullEye(s) - - if (np>=2 ) - { - int i,size = lstSectorBullEye.size(); - for (i=0;iRefreshContour(); - } // for - } // if - - -} - -// ---------------------------------------------------------------------------- -void manualViewBullEye::ConstructVTKObjects() // virtual -{ - manualViewRoi::ConstructVTKObjects(); - - double spc[3]; - this->GetSpacing(spc); - manualViewBullEyeSector *mvbc; - manualContourModelBullEye *mcmbe = (manualContourModelBullEye*)this->_manContModel; - int i,size = mcmbe->GetSizeOfSectorLst(); - for ( i=0 ; iSetModel( mcmbe->GetModelSector(i) ); - mvbc->SetWxVtkBaseView( this->GetWxVtkBaseView() ); - mvbc->SetRange( 2 ); - mvbc->SetZ( 1000 ); - mvbc->SetSpacing(spc); - mvbc->SetColorNormalContour(1, 0, 0); -// mvbc->SetColorEditContour(0.5, 0.5, 0.5); -// mvbc->SetColorSelectContour(1, 0.8, 0); - mvbc->SetWidthLine( this->GetWidthLine() ); -//EED004 - mvbc->ConstructVTKObjects(); - lstSectorBullEye.push_back( mvbc ); - } - - -} - -// ---------------------------------------------------------------------------- -void manualViewBullEye::AddSplineActor() // virtual -{ - manualViewRoi::AddSplineActor(); - int i,size=lstSectorBullEye.size(); - for (i=0;iAddSplineActor(); - } -} - -// ---------------------------------------------------------------------------- -void manualViewBullEye::RemoveSplineActor() // virtual -{ - manualViewRoi::RemoveSplineActor(); - int i,size=lstSectorBullEye.size(); - for (i=0;iRemoveSplineActor(); - } -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -manualViewRoi::manualViewRoi() -{ - _sizePointsContour=5; -} -// ---------------------------------------------------------------------------- -manualViewRoi::~manualViewRoi() -{ -} - - -// ---------------------------------------------------------------------------- -manualViewRoi * manualViewRoi :: Clone() -{ - manualViewRoi * clone = new manualViewRoi(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualViewRoi::CopyAttributesTo( manualViewRoi * cloneObject) -{ - // Fathers object - manualViewBaseContour::CopyAttributesTo(cloneObject); -} - -// ---------------------------------------------------------------------------- -void manualViewRoi::RefreshContour() // virtual -{ - unsigned int i,ii, np; - np = GetNumberOfPoints( ); -//EED01 - if ( np > 0) - { - if (np>=2) - { - manualPoint *mp; - for( i = 0; i < np+1; i++ ) { - ii=i%np; - mp = _manContModel->GetManualPoint(ii); - - //EEDx6 - double XX=mp->GetX(),YY=mp->GetY(),ZZ=mp->GetZ(); - // wxVtk2DBaseView *wxvtk2Dbasevie = (wxVtk2DBaseView*)this->GetWxVtkBaseView(); - // wxvtk2Dbasevie->TransformCoordinate_spacing_ModelToView(XX,YY,ZZ); - - //EED 27 sep 2007 - // _pts->SetPoint(i, XX,YY,ZZ ); - _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); - } // rof - - } else { - _pts->SetPoint(0, 0 , 0 , 0); - _pts->SetPoint(1, 0 , 0 , 0); - } // if - } -} - -// ---------------------------------------------------------------------------- -int manualViewRoi::GetType() // virtual -{ - return 2; -} - -// ---------------------------------------------------------------------------- - -void manualViewRoi::GetMinMax(double &minX,double &minY, double &maxX, double &maxY) -{ - double pp[3]; - manualPoint *mp; - unsigned int i; - - minX=99999; - minY=99999; - maxX=-99999; - maxY=-99999; - - unsigned int size=(unsigned int) _manContModel->GetSizeLstPoints(); - - for( i = 0; i < size; i++ ) - { - - mp=_manContModel->GetManualPoint(i); - pp[0]=mp->GetX(); - pp[1]=mp->GetY(); - - // min X - if (pp[0]maxX) - { - maxX=pp[0]; - } - // max Y - if (pp[1]>maxY) - { - maxY=pp[1]; - } - } - - if ( size<1 ) - { - minX=0; - maxX=0; - minY=0; - maxY=0; - } -} - -// ---------------------------------------------------------------------------- - - -bool manualViewRoi::ifTouchContour(int x,int y, int z) // virtual -{ - bool result=false; - double px1=99999,py1=99999,px2=-99999,py2=-99999; - - GetMinMax(px1,py1, px2, py2); - - double xx=x; - double yy=y; - double zz=z; - TransfromeCoordViewWorld(xx,yy,zz); - - bool ok1=false; - bool ok2=false; - double ddx=GetRange(); - double ddy=GetRange(); - - if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yyGetSizeLstPoints()==4){ - mp = _manContModel->GetManualPoint(0); - _dp0[0]= mp->GetX() - XX; - _dp0[1]= mp->GetY() - YY; - _dp0[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(1); - _dp1[0]= mp->GetX() - XX; - _dp1[1]= mp->GetY() - YY; - _dp1[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(2); - _dp2[0]= mp->GetX() - XX; - _dp2[1]= mp->GetY() - YY; - _dp2[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(3); - _dp3[0]= mp->GetX() - XX; - _dp3[1]= mp->GetY() - YY; - _dp3[2]= mp->GetZ(); - } -} - -// ---------------------------------------------------------------------------- - -void manualViewRoi::MoveContour(int x, int y, int z) // virtual -{ - manualPoint *mp; - double XX=x; - double YY=y; - double ZZ=z; - TransfromeCoordViewWorld(XX,YY,ZZ); - - mp = _manContModel->GetManualPoint(0); - mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); - - mp = _manContModel->GetManualPoint(1); - mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); - - mp = _manContModel->GetManualPoint(2); - mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]); - - mp = _manContModel->GetManualPoint(3); - mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]); - - UpdateViewPoint(0); - UpdateViewPoint(1); - UpdateViewPoint(2); - UpdateViewPoint(3); - -} - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// EED08 - -manualViewCircle::manualViewCircle() -{ -// _sizePointsContour=5; // default 100 -} -// ---------------------------------------------------------------------------- -manualViewCircle::~manualViewCircle() -{ -} - - -// ---------------------------------------------------------------------------- -manualViewCircle * manualViewCircle :: Clone() -{ - manualViewCircle * clone = new manualViewCircle(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualViewCircle::CopyAttributesTo( manualViewCircle * cloneObject) -{ - // Fathers object - manualViewBaseContour::CopyAttributesTo(cloneObject); -} - - -// ---------------------------------------------------------------------------- -/* -void manualViewCircle::RefreshContour(){ // virtual - - manualPoint *mpA,*mpB; - unsigned int i, np,nps; - double angle,radio; - double difX,difY; - double XX,YY,ZZ; - np = GetNumberOfPoints( ); - nps = _manContModel->GetNumberOfPointsSpline(); - double deltaAngle=(3.14159265*2)/(nps-1); - if ( np > 0) - { - if (np==2) - { - mpA = _manContModel->GetManualPoint(0); - mpB = _manContModel->GetManualPoint(1); - difX = mpA->GetX() - mpB->GetX(); - difY = mpA->GetY() - mpB->GetY(); - radio = sqrt( difX*difX + difY*difY ); - manualContourModelCircle *manContModelCir = (manualContourModelCircle*)_manContModel; - manContModelCir->SetRadio(radio); - - for( i = 0; i < nps; i++ ) { - manContModelCir->GetSpline_i_Point(i, &XX, &YY, &ZZ); -// angle = deltaAngle*i; -// XX = cos(angle)*radio+mpA->GetX(); -// YY = sin(angle)*radio+mpA->GetY(); - ZZ = mpA->GetZ(); - _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); - } // rof - } else { - _pts->SetPoint(0, 0 , 0 , 0); - _pts->SetPoint(1, 0 , 0 , 0); - } // if - } -} -*/ - -// ---------------------------------------------------------------------------- -int manualViewCircle::GetType() // virtual -{ - return 3; -} - -// ---------------------------------------------------------------------------- - -void manualViewCircle::GetMinMax(double &minX,double &minY, double &maxX, double &maxY) -{ - manualPoint *mpA,*mpB; - unsigned int np; - double radio; - double difX,difY; - np = GetNumberOfPoints( ); - if (np==2) - { - mpA = _manContModel->GetManualPoint(0); - mpB = _manContModel->GetManualPoint(1); - difX = mpA->GetX() - mpB->GetX(); - difY = mpA->GetY() - mpB->GetY(); - radio = sqrt( difX*difX + difY*difY ); - minX=mpA->GetX()-radio; - minY=mpA->GetY()-radio; - maxX=mpA->GetX()+radio; - maxY=mpA->GetY()+radio; - } else { - minX=0; - maxX=0; - minY=0; - maxY=0; - } -} - -/* -// ---------------------------------------------------------------------------- -bool manualViewCircle::ifTouchContour(int x,int y, int z) // virtual -{ - bool result=false; - double px1=99999,py1=99999,px2=-9999,py2=-99999; - - GetMinMax(px1,py1, px2, py2); - - double xx=x; - double yy=y; - double zz=z; - TransfromeCoordViewWorld(xx,yy,zz); - - bool ok1=false; - bool ok2=false; - double ddx=GetRange(); - double ddy=GetRange(); - - if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yyGetSizeLstPoints()==2){ - mp = _manContModel->GetManualPoint(0); - _dp0[0]= mp->GetX() - XX; - _dp0[1]= mp->GetY() - YY; - _dp0[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(1); - _dp1[0]= mp->GetX() - XX; - _dp1[1]= mp->GetY() - YY; - _dp1[2]= mp->GetZ(); -/* - mp = _manContModel->GetManualPoint(2); - _dp2[0]= mp->GetX() - XX; - _dp2[1]= mp->GetY() - YY; - _dp2[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(3); - _dp3[0]= mp->GetX() - XX; - _dp3[1]= mp->GetY() - YY; - _dp3[2]= mp->GetZ(); -*/ - } -} - - -// ---------------------------------------------------------------------------- -void manualViewCircle::MoveContour(int x, int y, int z) // virtual -{ - manualPoint *mp; - double XX=x; - double YY=y; - double ZZ=z; - TransfromeCoordViewWorld(XX,YY,ZZ); - - mp = _manContModel->GetManualPoint(0); - mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); - - mp = _manContModel->GetManualPoint(1); - mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); - -// mp = _manContModel->GetManualPoint(2); -// mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]); - -// mp = _manContModel->GetManualPoint(3); -// mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]); - - UpdateViewPoint(0); - UpdateViewPoint(1); -// UpdateViewPoint(2); -// UpdateViewPoint(3); - -} - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// AD:02-09 - -manualViewLine::manualViewLine() -{ - _sizePointsContour=20; -} -// ---------------------------------------------------------------------------- -manualViewLine::~manualViewLine() -{ -} - - -// ---------------------------------------------------------------------------- -manualViewLine * manualViewLine :: Clone() -{ - manualViewLine * clone = new manualViewLine(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualViewLine::CopyAttributesTo( manualViewLine * cloneObject) -{ - // Fathers object - manualViewBaseContour::CopyAttributesTo(cloneObject); -} - -// ---------------------------------------------------------------------------- -int manualViewLine::GetType() // virtual -{ - return 6; -} - - -// ---------------------------------------------------------------------------- - -void manualViewLine::InitMove(int x, int y, int z) // virtual -{ - manualPoint *mp; - double XX=x; - double YY=y; - double ZZ=z; - TransfromeCoordViewWorld(XX,YY,ZZ); - - if (_manContModel->GetSizeLstPoints()==2) - { - mp = _manContModel->GetManualPoint(0); - _dp0[0]= mp->GetX() - XX; - _dp0[1]= mp->GetY() - YY; - _dp0[2]= mp->GetZ(); - - mp = _manContModel->GetManualPoint(1); - _dp1[0]= mp->GetX() - XX; - _dp1[1]= mp->GetY() - YY; - _dp1[2]= mp->GetZ(); - - } -} - - -// ---------------------------------------------------------------------------- -void manualViewLine::MoveContour(int x, int y, int z) // virtual -{ - manualPoint *mp; - double XX=x; - double YY=y; - double ZZ=z; - TransfromeCoordViewWorld(XX,YY,ZZ); - - mp = _manContModel->GetManualPoint(0); - mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); - - mp = _manContModel->GetManualPoint(1); - mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); - - - UpdateViewPoint(0); - UpdateViewPoint(1); -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -manualViewBaseContour::manualViewBaseContour() -{ - _show_text = true; - _textActor = NULL; - _manContModel = NULL; - _wxvtkbaseview = NULL; - _selected = false; - _posibleSelected = false; - _viewControlPoints = false; - _pts = NULL; - _pd = NULL; - _contourVtkActor = NULL; - _bboxMapper = NULL; - _range = 1; - _sizePointsContour = 100; - _spc[0] = 1; - _spc[1] = 1; - _spc[2] = 1; - - _coulorEdit_r = 1; - _coulorEdit_g = 1; - _coulorEdit_b = 0; - - _coulorNormal_r = 1; - _coulorNormal_g = 0; - _coulorNormal_b = 1; - - _coulorSelection_r = 0; - _coulorSelection_g = 1; - _coulorSelection_b = 0; - - _widthline = 1; - -} -// ---------------------------------------------------------------------------- -manualViewBaseContour::~manualViewBaseContour() -{ - int i,size=_lstViewPoints.size(); - for (i=0;iGetRenderer(); // JPRx ?? - //Adding the spline - AddSplineActor(); - - AddTextActor(); - //Adding each control point - if( ifControlPoints ) - AddControlPoints(); - RefreshContour(); - Refresh(); -} -// --------------------------------------------------------------------------- - -void manualViewBaseContour :: RemoveCompleteContourActor() -{ - /*vtkRenderer * theRenderer =*/ _wxvtkbaseview->GetRenderer(); // JPRx ?? - //Removing the spline - RemoveSplineActor(); - RemoveTextActor(); - - //Removing each point - RemoveControlPoints(); - RefreshContour(); - Refresh(); -} -// --------------------------------------------------------------------------- -manualViewBaseContour * manualViewBaseContour :: Clone( )//virtual -{ - manualViewBaseContour * clone = new manualViewBaseContour(); - CopyAttributesTo(clone); - return clone; - -} - -// --------------------------------------------------------------------------- - -void manualViewBaseContour::CopyAttributesTo( manualViewBaseContour * cloneObject) -{ - // Fathers object - //XXXX::CopyAttributesTo(cloneObject); - - cloneObject-> SetWxVtkBaseView( this->_wxvtkbaseview ); - cloneObject-> SetSelected( this->GetSelected() ); - cloneObject-> SetPosibleSelected( this->GetPosibleSelected() ); - cloneObject-> SetIfViewControlPoints( this->GetIfViewControlPoints() ); - cloneObject-> SetRange( this->GetRange() ); - cloneObject-> SetZ( this->GetZ() ); - cloneObject-> SetSpacing( _spc ); - cloneObject-> SetColorNormalContour( _coulorNormal_r, _coulorNormal_g, _coulorNormal_b ); - cloneObject-> SetColorEditContour( _coulorEdit_r, _coulorEdit_g, _coulorEdit_b ); - cloneObject-> SetColorSelectContour( _coulorSelection_r, _coulorSelection_g, _coulorSelection_b ); - - int i, size = _lstViewPoints.size(); - for ( i=0; iAddPoint( ); - } -} - -// ---------------------------------------------------------------------------- -void manualViewBaseContour :: AddSplineActor() -{ - vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); - if (_contourVtkActor!=NULL) - theRenderer->AddActor( _contourVtkActor ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour :: RemoveSplineActor() // virtual -{ - vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); - if (_contourVtkActor!=NULL) - theRenderer->RemoveActor( _contourVtkActor ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour :: RemoveControlPoints() -{ - if (_wxvtkbaseview!=NULL){ - vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); - int i,size=_lstViewPoints.size(); - for (i=0;iGetVtkActor(); - theRenderer->RemoveActor( pointActor ); - } // for - } // if - SetIfViewControlPoints( false ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::AddControlPoints() -{ - vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); - SetIfViewControlPoints( true ); - if( _viewControlPoints ) - { - int i,size=_lstViewPoints.size(); - for (i=0;iGetVtkActor(); - theRenderer->AddActor( pointActor ); - } - } -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::AddTextActor() -{ - _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::RemoveTextActor() -{ - _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::DeleteVtkObjects() -{ - if ( _contourVtkActor != NULL ) { _contourVtkActor -> Delete(); } - if ( _bboxMapper != NULL ) { _bboxMapper -> Delete(); } - if ( _pts != NULL ) { _pts -> Delete(); } - if ( _pd != NULL ) { _pd -> Delete(); } - _contourVtkActor = NULL; - _bboxMapper = NULL; - _pts = NULL; - _pd = NULL; -} - - -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetWidthLine(double width) -{ - _widthline = width; - this->UpdateColorActor(); - - // for the control points - int id, size = _lstViewPoints.size(); - for( id=0; id_lstViewPoints[id]->SetWidthLine(_widthline); - } - -} - -// ---------------------------------------------------------------------------- -double manualViewBaseContour::GetWidthLine() -{ - return _widthline; -} - -// ---------------------------------------------------------------------------- -void manualViewBaseContour::ConstructVTKObjects() -{ -//JSTG 29-02-08 ----------------------------------------------- - //int i , nps = _sizePointsContour; - int i; - int nps = _manContModel->GetNumberOfPointsSpline(); -//------------------------------------------------------------- - DeleteVtkObjects(); - _pts = vtkPoints::New(); - _pts->SetNumberOfPoints(nps); - - for (i=0 ; iSetPoint(i, 0 , 0 , 0 ); - } - // This is for the boundaring inicialisation - -//EED 29Mars2009 - _pts->SetPoint(0, 0 , 0 , -1000 ); - _pts->SetPoint(1, 0 , 0 , 1000 ); -// _pts->SetPoint(0, -1000 , -1000 , -1000 ); -// _pts->SetPoint(1, 1000 , 1000 , 1000 ); - - - vtkCellArray *lines = vtkCellArray::New(); - lines->InsertNextCell( nps /* +1 */ ); - for ( i=0 ; iInsertCellPoint(i % nps ); - } - - _pd = vtkPolyData::New(); - _pd->SetPoints( _pts ); - _pd->SetLines( lines ); - lines->Delete(); //do not delete lines ?? - - _contourVtkActor = vtkActor::New(); - _bboxMapper = vtkPolyDataMapper::New(); - _bboxMapper->ScalarVisibilityOff( ); - - _bboxMapper->SetInput(_pd); - _bboxMapper->ImmediateModeRenderingOn(); - _contourVtkActor->SetMapper(_bboxMapper); - _contourVtkActor->GetProperty()->BackfaceCullingOff(); - - UpdateColorActor(); - - _pd->ComputeBounds(); - - // Text - _textActor = vtkTextActor::New(); -// _textActor->SetDisplayPosition(200, 200); - _textActor->SetInput("00"); - // Set coordinates to match the old vtkScaledTextActor default value -// _textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport(); -// _textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 ); - _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld (); -// _textActor->GetPositionCoordinate()->SetValue( 0.8 , 0.8 ); - - vtkTextProperty *tprop = _textActor->GetTextProperty(); - tprop->SetFontSize(14); - tprop->SetFontFamilyToArial(); - tprop->SetColor(0, 0, 1); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::CreateNewContour() -{ - ConstructVTKObjects(); - /* - _wxvtkbaseview->GetRenderer()->AddActor( _contourVtkActor ); - _wxvtkbaseview->GetRenderer()->AddActor2D(_textActor);*/ - AddCompleteContourActor(); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UpdateViewPoint(int id) // virtual -{ - manualPoint *mp = _manContModel->GetManualPoint(id); - -//EEDx6 - double XX=mp->GetX(),YY=mp->GetY(),ZZ=mp->GetZ(); -// wxVtk2DBaseView *wxvtk2Dbasevie = (wxVtk2DBaseView*)this->GetWxVtkBaseView(); -// wxvtk2Dbasevie->TransformCoordinate_spacing_ModelToView(XX,YY,ZZ); - - _lstViewPoints[id]->SetPositionXY( XX , YY ,_range, ZZ ); -} - -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UpdateViewPoints() -{ - int id, size = _lstViewPoints.size(); - for( id=0; idGetWxVtkBaseView() ); - AddPoint( mvp ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::AddPoint( manualViewPoint * manualViewPoint ) -{ - _lstViewPoints.push_back( manualViewPoint ); - - // EED 3 oct 2006 - manualViewPoint->SetSpacing(_spc); - - vtkActor *actor = manualViewPoint->CreateVtkPointActor(); - _wxvtkbaseview->GetRenderer()->AddActor( actor ); -} - -// ---------------------------------------------------------------------------- -void manualViewBaseContour::InsertPoint(int id) -{ - manualViewPoint *mvp = new manualViewPoint( this->GetWxVtkBaseView() ); - -// EED 3 oct 2006 - mvp->SetSpacing(_spc); - - std::vector::iterator itNum = _lstViewPoints.begin() + id; - _lstViewPoints.insert(itNum,mvp); - _wxvtkbaseview->GetRenderer()->AddActor( mvp->CreateVtkPointActor() ); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::DeleteContour() -{ - RemoveCompleteContourActor(); - /*if (_contourVtkActor!=NULL){ - _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor ); - }*/ - DeleteVtkObjects(); - int i,size=_lstViewPoints.size(); - for (i=0;i=0) && (idDeletePickList(mvp->GetVtkActor()); - _wxvtkbaseview->GetRenderer()->RemoveActor( mvp->GetVtkActor() ); - std::vector::iterator itNum = _lstViewPoints.begin() + id; - _lstViewPoints.erase(itNum); - delete mvp; - Refresh(); - } -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::DeletePoint(int x, int y, int z) -{ - int id=GetIdPoint(x,y,z); - if (id!=-1){ - DeletePoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetSelected(bool selected) -{ - _selected=selected; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetPosibleSelected(bool posibleSelected) -{ - _posibleSelected=posibleSelected; -} -// ---------------------------------------------------------------------------- -bool manualViewBaseContour::GetEditable() -{ - return *_editable; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetEditable( bool * condition ) -{ - _editable = condition; -} -// ---------------------------------------------------------------------------- -bool manualViewBaseContour::GetSelected() -{ - return _selected; -} -// ---------------------------------------------------------------------------- -bool manualViewBaseContour::GetPosibleSelected() -{ - return _posibleSelected; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::DeleteSelectedPoints() -{ - int i,size=_lstViewPoints.size(); - for (i=size-1;i>=0;i--){ - if (_lstViewPoints[i]->GetSelected()==true){ - DeletePoint(i); - } - } - Refresh(); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SelectPoint(int i, bool select) -{ - _lstViewPoints[i]->SetSelected(select); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SelectLstPoints() -{ - // ToDo -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SelectAllPoints(bool select) -{ - int i,size=_lstViewPoints.size(); - for (i=0;iSetPosibleSelected(select); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetPointSelected(int id,bool select) -{ - _lstViewPoints[id]->SetSelected(select); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SelectAllPossibleSelected(bool select) -{ - int i,size=_lstViewPoints.size(); - for (i=0;i_lstViewPoints.size()>=2) ) - { - if (ifTouchContour(x,y,z)==true) - { - result=true; - SetPosibleSelected(result); - } - } - - if (GetEditable()==false) - { - if (ifTouchContour(x,y,z)==true) - { - result=true; - SetPosibleSelected(result); - } - } - - - } - return result; -} -// ---------------------------------------------------------------------------- -bool manualViewBaseContour::ifTouchContour(int x,int y, int z) // virtual -{ - return false; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UnSelectPoint(int i){ - _lstViewPoints[i]->SetSelected(false); - Refresh(); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UnSelectLstPoints(){ - // ToDo -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UnSelectAllPoints(){ - int i,size=_lstViewPoints.size(); - for (i=0;iGetPoint(i,pp); - vx[i]=pp[0]; - } - return vx; -} -// ---------------------------------------------------------------------------- -double* manualViewBaseContour::GetVectorPointsYManualContour() -{ - double pp[3]; - int i,size = _sizePointsContour; - double *vy = (double*)malloc(sizeof(double)*size); - for (i=0;iGetPoint(i,pp); - vy[i]=pp[1]; - } - return vy; -} -// ---------------------------------------------------------------------------- -double* manualViewBaseContour::GetVectorPointsZManualContour() -{ - double pp[3]; - int i,size = _sizePointsContour; - double *vz = (double*)malloc(sizeof(double)*size); - for (i=0;iGetPoint(i,pp); - vz[i]=pp[2]; - } - return vz; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::Refresh() // virtual -{ - if (_contourVtkActor!=NULL){ - RefreshContour(); - } - int i,size=_lstViewPoints.size(); - for (i=0;iUpdateColorActor(); - } - UpdateColorActor(); - - if (_show_text==true) - { - RefreshText(); - } - - vtkRenderWindowInteractor *vri = _wxvtkbaseview->GetWxVTKRenderWindowInteractor (); - if (vri==NULL) - { - _wxvtkbaseview->GetRenWin()->Render(); - } - -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::RefreshText() // virtual -{ - if( _textActor!=NULL) - _textActor -> SetInput("00"); -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetColorNormalContour(double r, double g, double b) -{ - _coulorNormal_r = r; - _coulorNormal_g = g; - _coulorNormal_b = b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::GetColorNormalContour(double &r, double &g, double &b) -{ - r = _coulorNormal_r; - g = _coulorNormal_g; - b = _coulorNormal_b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetColorEditContour(double r, double g, double b) -{ - _coulorEdit_r = r; - _coulorEdit_g = g; - _coulorEdit_b = b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::GetColorEditContour(double &r, double &g, double &b) -{ - r = _coulorEdit_r; - g = _coulorEdit_g; - b = _coulorEdit_b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetColorSelectContour(double r, double g, double b) -{ - _coulorSelection_r = r; - _coulorSelection_g = g; - _coulorSelection_b = b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::GetColorSelectContour(double &r, double &g, double &b) -{ - r = _coulorSelection_r; - g = _coulorSelection_g; - b = _coulorSelection_b; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::UpdateColorActor() -{ - if (_contourVtkActor!=NULL) - { - _contourVtkActor->GetProperty()->SetLineWidth( _widthline ); - _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorNormal_r , _coulorNormal_g , _coulorNormal_b ); - if (_posibleSelected || (_posibleSelected && GetEditable() ) ) - { - _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorEdit_r , _coulorEdit_g , _coulorEdit_b ); - } - if( _selected ) - { - _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorSelection_r , _coulorSelection_g , _coulorSelection_b ); - } - } -} -// ---------------------------------------------------------------------------- -int manualViewBaseContour::GetIdPoint(int x, int y, int z) // virtual -{ - int ii = -1; - if (_manContModel!=NULL){ - double xx = x; - double yy = y; - double zz = z; - TransfromeCoordViewWorld(xx,yy,zz); - ii=_manContModel->GetIdPoint(xx,yy,zz,_range,-1); - } - return ii; -} - -// ---------------------------------------------------------------------------- - - -int manualViewBaseContour::GetNumberOfPoints() -{ - return _lstViewPoints.size(); -} - -// ---------------------------------------------------------------------------- - -//JSTG 25-02-08 --------------------------------------------------------------- -/*int manualViewBaseContour::GetNumberOfPointsSpline() -{ - return _sizePointsContour; -}*/ -//---------------------------------------------------------------------------- - -//JSTG 25-02-08 --------------------------------------------------------------- -/*void manualViewBaseContour::SetNumberOfPointsSpline(int size) -{ - _sizePointsContour = size; -}*/ -//---------------------------------------------------------------------------- -// virtual -void manualViewBaseContour::TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type) // Virtual -{ - _wxvtkbaseview->TransfromeCoordScreenToWorld(X, Y, Z, type); - - -//EED 27 sep 2007 -// //EEDx6 -// wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_wxvtkbaseview; -// wxvtk2Dbaseview->TransformCoordinate_spacing_ModelToView(X,Y,Z); - -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetRange(int range) -{ - _range=range; -} -// ---------------------------------------------------------------------------- -int manualViewBaseContour::GetRange() -{ - return _range; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetZ(int z) -{ -// _Z=z; -} -// ---------------------------------------------------------------------------- -int manualViewBaseContour::GetZ() -{ -// return _Z; - return 0; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::InitMove(int x, int y, int z) // virtual -{ - -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::MoveContour(int x, int y, int z) // virtual -{ -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::MoveContour(int horizontalUnits, int verticalUnits )// virtual -{ - -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ )// virtual -{ - double pp[3]; - manualPoint *mp; - int i; - int size=_manContModel->GetSizeLstPoints(); - minX=99999; - minY=99999; - maxX=-99999; - maxY=-99999; - bool ifFindZ = minZ!=-1.0 && maxZ!=-1.0; - if ( ifFindZ ) - { - minZ=99999; - maxZ=-99999; - } - for( i = 0; i < size; i++ ) - { - mp=_manContModel->GetManualPoint(i); - pp[0]=mp->GetX(); - pp[1]=mp->GetY(); - if ( ifFindZ ) - pp[2]=mp->GetZ(); - - // min X - if (pp[0]maxX) - { - maxX=pp[0]; - } - // max Y - if (pp[1]>maxY) - { - maxY=pp[1]; - } - if ( ifFindZ ) - { - // min Z - if (pp[2]maxZ) - { - maxZ=pp[2]; - } - } - } - if ( size<1 ) - { - minX = 0; - maxX = 0; - - minY = 0; - maxY = 0; - - minZ = 0; - maxZ = 0; - } -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::ClearContour() -{ - if (_contourVtkActor!=NULL){ - _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor ); - } - DeleteVtkObjects(); - int i,size=_lstViewPoints.size(); - for (i=0;iGetVtkActor(); - actor->GetProperty()->SetOpacity( opacity ); - } - _contourVtkActor->GetProperty()->SetOpacity( opacity ); - _textActor->GetProperty()->SetOpacity( opacity ); - _textActor->SetInput("00"); - -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetShowText(bool ok) -{ - _show_text = ok; - if (_show_text==false) - { - _textActor->SetInput("00"); - } -} -// ---------------------------------------------------------------------------- -wxVtkBaseView *manualViewBaseContour::GetWxVtkBaseView() -{ - return this->_wxvtkbaseview; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::GetSpacing(double spc[3]) -{ - spc[0] = _spc[0]; - spc[1] = _spc[1]; - spc[2] = _spc[2]; -} -// ---------------------------------------------------------------------------- -void manualViewBaseContour::SetSpacing(double spc[3]) -{ - _spc[0] = spc[0]; - _spc[1] = spc[1]; - _spc[2] = spc[2]; -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// _type = 0 Sagital -// _type = 1 Coronal -// _type = 2 Axial -// _type = -1 View 3D - -manualContour3VControler::manualContour3VControler(int type) -{ - _type=type; - -//EEDhh -// _manViewBaseCont1 = NULL; -// _manViewBaseCont2 = NULL; -// _manViewBaseCont3 = NULL; -} -//---------------------------------------------------------------------------- -manualContour3VControler::~manualContour3VControler() -{ -} - -// ---------------------------------------------------------------------------- -manualContour3VControler * manualContour3VControler :: Clone() // virtual -{ - manualContour3VControler * clone = new manualContour3VControler( this->GetType() ); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualContour3VControler::CopyAttributesTo( manualContour3VControler * cloneObject) -{ - // Fathers object - manualContourControler::CopyAttributesTo(cloneObject); - - cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); - - // Remember to add ManualViewBaseContour with "AddManualViewBaseContour" - -} -// ---------------------------------------------------------------------------- -int manualContour3VControler::GetType() -{ - return _type; -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::AddPoint_Others() -{ - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->AddPoint(); - } - -// EEDhh -// if (_manViewBaseCont1!=NULL){ -// _manViewBaseCont1->AddPoint(); -// _manViewBaseCont2->AddPoint(); -// _manViewBaseCont3->AddPoint(); -// this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -// } - - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::AddPoint( int x, int y, int z ) // virtual -{ - - z=(int)_vtkmprbasedata->GetZ(); - if (GetManualContourModel()!=NULL){ - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); - - if (_type==0) - { - xx=_vtkmprbasedata->GetX(); - } - - if (_type==1) - { - yy=_vtkmprbasedata->GetY(); - } - - - /*int id = */ GetManualContourModel()->AddPoint(xx,yy,zz); // JPRx - GetManualViewBaseContour()->AddPoint(); - AddPoint_Others(); - - } -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::InsertPoint_Others(int id) -{ - - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->InsertPoint(id); - } - -/*EEDhh - if (_manViewBaseCont1!=NULL){ - _manViewBaseCont1->InsertPoint(id); - _manViewBaseCont2->InsertPoint(id); - _manViewBaseCont3->InsertPoint(id); - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - } -*/ - - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::InsertPoint(int x, int y, int z) -{ - int id=-1; - if (GetManualContourModel()!=NULL){ - if (GetManualContourModel()->GetSizeLstPoints()>1){ - z=(int)_vtkmprbasedata->GetZ(); - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); - if (_type==0) - { - xx=_vtkmprbasedata->GetX(); - } - - if (_type==1) - { - yy=_vtkmprbasedata->GetY(); - } - - id = GetManualContourModel()->InsertPoint(xx,yy,zz); - - GetManualViewBaseContour()->InsertPoint(id); - InsertPoint_Others(0); - - } else { - AddPoint(x,y,z); - } - } -} -// ---------------------------------------------------------------------------- - -// EEDhh -/* -void manualContour3VControler::SetModelView ( manualContourModel *manContModel, - manualViewBaseContour *manViewBaseCont0, - manualViewBaseContour *manViewBaseCont1, - manualViewBaseContour *manViewBaseCont2, - manualViewBaseContour *manViewBaseCont3) -{ - manualContourControler::SetModelView(manContModel,manViewBaseCont0); - _manViewBaseCont1 = manViewBaseCont1; - _manViewBaseCont2 = manViewBaseCont2; - _manViewBaseCont3 = manViewBaseCont3; -} -*/ - -// ---------------------------------------------------------------------------- -void manualContour3VControler::AddManualViewBaseContour( manualViewBaseContour *manViewBaseCont ) -{ - _lstManualViewBaseContour.push_back( manViewBaseCont ); -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ) -{ - _vtkmprbasedata=vtkmprbasedata; -} -// ---------------------------------------------------------------------------- -vtkMPRBaseData *manualContour3VControler::GetVtkMPRBaseData() -{ - return _vtkmprbasedata; -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::SetPoint( int id ,int x ,int y ,int z ) // virtual -{ - z=(int)_vtkmprbasedata->GetZ(); - if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); - - if (_type==0) - { - xx=_vtkmprbasedata->GetX(); - } - if (_type==1) - { - yy=_vtkmprbasedata->GetY(); - } - - manualPoint *mp = GetManualContourModel()->GetManualPoint(id); - mp->SetPoint(xx,yy,zz); - - } -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::DeleteActualMousePoint_Others(int id) -{ - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->DeletePoint(id); - mvbc->Refresh(); - } - -/* - if (_manViewBaseCont1!=NULL){ - _manViewBaseCont1->DeletePoint(id); - _manViewBaseCont2->DeletePoint(id); - _manViewBaseCont3->DeletePoint(id); - - _manViewBaseCont1->Refresh(); - _manViewBaseCont2->Refresh(); - _manViewBaseCont3->Refresh(); - - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - } -*/ - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::DeleteActualMousePoint(int x, int y)// virtual -{ - int id=GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); - if (id!=-1){ - manualContourBaseControler::DeleteActualMousePoint( x , y ); - DeleteActualMousePoint_Others( id ); - } -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::MouseMove_Others(int id) // virtual -{ - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->SelectAllPossibleSelected(false); - if (id!=-1) - { - mvbc->SetPointPosibleSelected(id,true); - } - mvbc->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); - mvbc->Refresh(); - } - -// EEDhh -/* - if (_manViewBaseCont1!=NULL){ - _manViewBaseCont1->SelectAllPossibleSelected(false); - _manViewBaseCont2->SelectAllPossibleSelected(false); - _manViewBaseCont3->SelectAllPossibleSelected(false); - if (id!=-1){ - _manViewBaseCont1->SetPointPosibleSelected(id,true); - _manViewBaseCont2->SetPointPosibleSelected(id,true); - _manViewBaseCont3->SetPointPosibleSelected(id,true); - } - _manViewBaseCont1->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); - _manViewBaseCont2->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); - _manViewBaseCont3->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); - - _manViewBaseCont1->Refresh(); - _manViewBaseCont2->Refresh(); - _manViewBaseCont3->Refresh(); - - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - } -*/ - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::MouseMove(int x, int y) // virtual -{ - manualContourControler::MouseMove( x , y ); - int id=GetManualViewBaseContour()->GetIdPoint(x,y,GetZ()); - MouseMove_Others( id ); -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::OnChar_Others() -{ - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->Refresh(); - } -// EEDhh -/* - _manViewBaseCont1->Refresh(); - _manViewBaseCont2->Refresh(); - _manViewBaseCont3->Refresh(); -*/ - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -} -// ---------------------------------------------------------------------------- -bool manualContour3VControler::OnChar() -{ - manualContourControler::OnChar(); - OnChar_Others(); - return true; -} -// ---------------------------------------------------------------------------- -void manualContour3VControler::ResetContour() // virtual -{ - manualContourControler::ResetContour(); - ResetContour_Others(); -} - -// ---------------------------------------------------------------------------- -void manualContour3VControler::ResetContour_Others() -{ - manualViewBaseContour *mvbc; - int i,size=this->_lstManualViewBaseContour.size(); - for ( i = 0 ; i < size ; i++ ) - { - mvbc = _lstManualViewBaseContour[i]; - mvbc->DeleteContour(); - mvbc->CreateNewContour(); - } - -// EEDhh -/* - _manViewBaseCont1->DeleteContour(); - _manViewBaseCont2->DeleteContour(); - _manViewBaseCont3->DeleteContour(); - _manViewBaseCont1->CreateNewContour(); - _manViewBaseCont2->CreateNewContour(); - _manViewBaseCont3->CreateNewContour(); -*/ -} - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -manualContour3DControler::manualContour3DControler() -{ -} -// ---------------------------------------------------------------------------- -manualContour3DControler::~manualContour3DControler() -{ -} -// ---------------------------------------------------------------------------- -manualContour3DControler * manualContour3DControler :: Clone() // virtual -{ - manualContour3DControler * clone = new manualContour3DControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualContour3DControler::CopyAttributesTo( manualContour3DControler * cloneObject) -{ - // Fathers object - manualContourControler::CopyAttributesTo(cloneObject); - - cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); -} - -// ---------------------------------------------------------------------------- -bool manualContour3DControler::OnLeftButtonDown() -{ - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - MouseClickLeft(X,Y); - return true; -} -// ---------------------------------------------------------------------------- -void manualContour3DControler::ResetOrientationPlane() -{ - double p[3],rp[3],rn[3]; - p[0] = this->GetVtkMPRBaseData()->GetX( ); - p[1] = this->GetVtkMPRBaseData()->GetY( ); - p[2] = this->GetVtkMPRBaseData()->GetZ( ); - this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn); - this->GetVtkMPRBaseData()->SetNormal(rn[0],rn[1],rn[2]); -} -// ---------------------------------------------------------------------------- -void manualContour3DControler::MouseClickLeft(int x, int y) // virtual -{ - manualView3DContour *manualview3Dcontour=(manualView3DContour*)GetManualViewBaseContour(); - int id=manualview3Dcontour->GetIdPoint2(x,y); - if ( (GetState()==0) && (id!=-1) ) - { - manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id); - - this->GetVtkMPRBaseData()->SetX( mp->GetX() ); - this->GetVtkMPRBaseData()->SetY( mp->GetY() ); - this->GetVtkMPRBaseData()->SetZ( mp->GetZ() ); - ResetOrientationPlane(); - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - } - - - manualContourControler::MouseClickLeft(x,y); - -} -// ---------------------------------------------------------------------------- -bool manualContour3DControler::OnChar() -{ - bool ok=true; - manualContourControler::OnChar(); - char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); - if (keyCode==32){ - ok=false; - ResetOrientationPlane(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - return ok; -} - -// ---------------------------------------------------------------------------- -void manualContour3DControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ) -{ - _vtkmprbasedata=vtkmprbasedata; -} -// ---------------------------------------------------------------------------- -vtkMPRBaseData *manualContour3DControler::GetVtkMPRBaseData() -{ - return _vtkmprbasedata; -} - -// ---------------------------------------------------------------------------- -void manualContour3DControler::InsertPoint(int x, int y, int z ) // virtual -{ - manualContourControler::InsertPoint( x, y, z ); - ResetOrientationPlane(); -} - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -manualContour3V3DControler::manualContour3V3DControler() -{ -} -// ---------------------------------------------------------------------------- -manualContour3V3DControler::~manualContour3V3DControler() -{ -} - -// ---------------------------------------------------------------------------- -manualContour3V3DControler * manualContour3V3DControler :: Clone() // virtual -{ - manualContour3V3DControler * clone = new manualContour3V3DControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualContour3V3DControler::CopyAttributesTo( manualContour3V3DControler * cloneObject) -{ - // Fathers object - manualContour3DControler::CopyAttributesTo(cloneObject); - - cloneObject->SetManualContour3VControler( this->GetManualContour3VControler() ); -} -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::InsertPoint(int x, int y, int z ) // virtual -{ - manualContour3DControler::InsertPoint( x, y, z ); - _manualcontour3Vcontroler->InsertPoint_Others(0); -} -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::AddPoint( int x, int y, int z ) -{ - manualContour3DControler::AddPoint( x, y, z ); - _manualcontour3Vcontroler->AddPoint_Others(); -} -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::DeleteActualMousePoint(int x, int y) -{ - int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); - manualContour3DControler::DeleteActualMousePoint( x , y ); - _manualcontour3Vcontroler->DeleteActualMousePoint_Others(id); -} -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::MouseMove( int x, int y ) -{ - int ss =this->_vtkInteractorStyleBaseView->vtkInteractorStyle::GetState(); - if ((this->GetState()!=7) && (ss!=1)){ - manualContour3DControler::MouseMove( x , y ); - int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); - _manualcontour3Vcontroler->MouseMove_Others(id); - } -} -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler) -{ - _manualcontour3Vcontroler = manualcontour3Vcontroler; -} -// ---------------------------------------------------------------------------- -manualContour3VControler *manualContour3V3DControler::GetManualContour3VControler() -{ - return _manualcontour3Vcontroler; -} -// ---------------------------------------------------------------------------- -bool manualContour3V3DControler::OnChar() // virtual -{ - if (manualContour3DControler::OnChar()==false ) - { - _manualcontour3Vcontroler->OnChar_Others(); - } - return true; -} - -// ---------------------------------------------------------------------------- -void manualContour3V3DControler::ResetContour() // virtual -{ - manualContourControler::ResetContour(); - _manualcontour3Vcontroler->ResetContour_Others(); -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// _state = 0 // ..nothing.. -// _state = 1 // move with add point -// _state = 5 // move -// _state = 6 // move with insert point -// _state = 7 // move with non selection - -manualContourControler::manualContourControler() -{ - _easyCreation = true; - -} -// ---------------------------------------------------------------------------- -manualContourControler::~manualContourControler() -{ -} -// ---------------------------------------------------------------------------- -manualContourControler * manualContourControler :: Clone() // virtual -{ - manualContourControler * clone = new manualContourControler(); - CopyAttributesTo(clone); - return clone; -} -// --------------------------------------------------------------------------- -void manualContourControler::CopyAttributesTo( manualContourControler * cloneObject) -{ - // Fathers object - manualContourBaseControler::CopyAttributesTo(cloneObject); - cloneObject->SetEasyCreation( this->GetEasyCreation() ); -} - -// ---------------------------------------------------------------------------- -void manualContourControler::Configure() //virtual -{ - // this->_manContModel->SetNumberOfPointsSpline(100); -} - -// ---------------------------------------------------------------------------- -void manualContourControler::MouseClickLeft(int x, int y){ - - - bool ok = false; - int z = GetZ(); - int size= GetManualViewBaseContour()->GetNumberOfPoints(); - - // Insert a Control Point with shift+ClickLeft - // int tt = GetState(); // JPRx - vtkRenderWindowInteractor *vtkrenderwindowinteractor = _vtkInteractorStyleBaseView->GetInteractor(); -//EED3131 - if( IsEditable() ) - { - if ( (_vtkInteractorStyleBaseView!=NULL) && (GetState()==0) && ( (vtkrenderwindowinteractor!=NULL) && (vtkrenderwindowinteractor->GetShiftKey()==1) ) ) - { - ok=true; - InsertPoint(x,y,z); - size++; - } - // Start to Insert Control Points with ClickLeft (Empty contour) - if ((GetState()==0) && (size==0) && (_easyCreation==true) ) - { - ok=true; - SetState(1); - AddPoint(x,y,z); - } - // Continuie to Insert Control Points with ClickLeft (After being empty the contour) - if ((GetState()==1) && (_easyCreation==true) ) - { - ok=true; - AddPoint(x,y,z); - _bakIdPoint=GetNumberOfPointsManualContour() - 1; - } - // Insert Control Points IF Contour si Selected - if ((GetState()==0) && GetManualViewBaseContour()->GetPosibleSelected() ) - { - ok=true; - InsertPoint(x,y,z); - _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(6); - } - // Chose id of Control Point to be move - if ( (GetState()==0 || GetState()==6) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ) - { - ok=true; - _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } - // If nothing selected _state=7 - if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)==-1 ) ) - { - //ok=true; - _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(7); - } - }else{ - SetPosibleToMove( true ); - GetManualViewBaseContour()->SetSelected( GetManualViewBaseContour()->GetPosibleSelected() ); - } // IsEditable - - if ( GetState() == 0 && GetManualViewBaseContour()->GetPosibleSelected() ) - { - SetMoving( true ); - ok=true; - GetManualViewBaseContour()->InitMove(x,y,z); - SetState(6); - } - if (ok==true) - { - GetManualViewBaseContour()->Refresh(); - } -} -// ---------------------------------------------------------------------------- -void manualContourControler::MouseMove(int x, int y) // virtual -{ - int z=GetZ(); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - if (GetState()==1){ SetPoint( _bakIdPoint , x , y ,z); } - if (GetState()==5){ SetPoint( _bakIdPoint , x , y ,z); } - if ( GetState()==6 && !IsEditable() && GetPosibleToMove() &&IsMoving() ) - { - GetManualViewBaseContour()->MoveContour(x,y,z); - } - if (GetState()!=7 || GetManualViewBaseContour()->GetPosibleSelected() ){ - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - if (!IsEditable()) - { - GetManualViewBaseContour()->RemoveControlPoints(); -// GetManualViewBaseContour()->RemoveTextActor(); - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - -} - -// ---------------------------------------------------------------------------- -void manualContourControler::MouseDLeft( int x, int y)//virtual -{ - manualContourBaseControler::MouseDLeft( x, y); - if ( IsEditable() ) - { - GetManualViewBaseContour()->AddControlPoints(); - GetManualViewBaseContour()->AddTextActor(); - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } -} -// ---------------------------------------------------------------------------- -void manualContourControler::SetEasyCreation(bool easyCreation) -{ - _easyCreation=easyCreation; -} -// ---------------------------------------------------------------------------- -bool manualContourControler::GetEasyCreation() -{ - return _easyCreation; -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -manualContourPerpPlaneControler::manualContourPerpPlaneControler() -{ - _flagMouseMove = true; -} -// ---------------------------------------------------------------------------- -manualContourPerpPlaneControler::~manualContourPerpPlaneControler() -{ -} -// ---------------------------------------------------------------------------- -manualContourPerpPlaneControler * manualContourPerpPlaneControler :: Clone() // virtual -{ - manualContourPerpPlaneControler * clone = new manualContourPerpPlaneControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualContourPerpPlaneControler::CopyAttributesTo( manualContourPerpPlaneControler * cloneObject) -{ - // Fathers object - manualContourControler::CopyAttributesTo(cloneObject); - - cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); - cloneObject->SetManualContour3VControler( this->GetManualContour3VControler() ); - cloneObject->SetVtkInteractorStylePlane2D( this->GetVtkInteractorStylePlane2D() ); -} - -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata) -{ - _vtkmprbasedata = vtkmprbasedata; -} - -// ---------------------------------------------------------------------------- -vtkMPRBaseData *manualContourPerpPlaneControler::GetVtkMPRBaseData() -{ - return _vtkmprbasedata; -} - - -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::InsertPoint(int x, int y, int z ) // virtual -{ - manualContourControler::InsertPoint( x, y, z ); - _manualcontour3Vcontroler->InsertPoint_Others(0); -} -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::AddPoint( int x, int y, int z ) -{ - manualContourControler::AddPoint( x, y, z ); - _manualcontour3Vcontroler->AddPoint_Others(); -} -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::DeleteActualMousePoint(int x, int y) -{ - int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); - manualContourControler::DeleteActualMousePoint( x , y ); - _manualcontour3Vcontroler->DeleteActualMousePoint_Others(id); -} -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::MouseMove( int x, int y ) -{ - _flagMouseMove = true; - int ss =this->_vtkInteractorStyleBaseView->vtkInteractorStyle::GetState(); - if ((this->GetState()!=7) && (ss!=1)){ - manualContourControler::MouseMove( x , y ); - int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); - if (id!=-1) - { - _manualcontour3Vcontroler->MouseMove_Others(id); - _flagMouseMove = false; - } - } -} -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler) -{ - _manualcontour3Vcontroler = manualcontour3Vcontroler; -} -// ---------------------------------------------------------------------------- -manualContour3VControler * manualContourPerpPlaneControler::GetManualContour3VControler() -{ - return _manualcontour3Vcontroler; -} -// ---------------------------------------------------------------------------- -bool manualContourPerpPlaneControler::OnChar() // virtual -{ - if (manualContourControler::OnChar()==false ) - { - _manualcontour3Vcontroler->OnChar_Others(); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourPerpPlaneControler::OnMouseMove() // virtual -{ - manualContourControler::OnMouseMove(); - return _flagMouseMove; -} -// ---------------------------------------------------------------------------- -bool manualContourPerpPlaneControler::OnLeftDClick() // virtual -{ - manualContourControler::OnLeftDClick(); - return _flagMouseDClick; -} -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::ResetContour() // virtual -{ - manualContourControler::ResetContour(); - _manualcontour3Vcontroler->ResetContour_Others(); -} - -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::MouseDLeft( int x, int y) // virtual -{ - _flagMouseDClick=true; - manualContourControler::MouseDLeft(x,y); - - if (GetManualViewBaseContour()->ifTouchContour(x,y,0)==true) - { - _flagMouseDClick = false; - _vtkinteractorstyleplane2D->OnLeftDClick(); - ResetOrientationPlane(); - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - } - -// int id=GetManualViewBaseContour()->GetIdPoint(x,y,GetZ()); -// if ( (GetState()==0) && (id!=-1) ) -// { -// manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id); -// _vtkmprbasedata->SetX( mp->GetX() ); -// _vtkmprbasedata->SetY( mp->GetY() ); -// _vtkmprbasedata->SetZ( mp->GetZ() ); -// ResetOrientationPlane(); -// this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -// } -} - - - -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::ResetOrientationPlane() -{ - double p[3],rp[3],rn[3]; - p[0] = _vtkmprbasedata->GetX( ); - p[1] = _vtkmprbasedata->GetY( ); - p[2] = _vtkmprbasedata->GetZ( ); - this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn); - - _vtkmprbasedata->SetNormal(rn[0],rn[1],rn[2]); -} - -// ---------------------------------------------------------------------------- -void manualContourPerpPlaneControler::SetVtkInteractorStylePlane2D(InteractorStyleMaracas *vtkinteractorstyleplane2D) -{ - _vtkinteractorstyleplane2D = vtkinteractorstyleplane2D; -} -// ---------------------------------------------------------------------------- -InteractorStyleMaracas * manualContourPerpPlaneControler::GetVtkInteractorStylePlane2D() -{ - return _vtkinteractorstyleplane2D; -} - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// _state = 0 // ..nothing.. -// _state = 5 // move point -// _state = 6 // move all -// _state = 7 // Empty mouse drag - -manualRoiControler::manualRoiControler() -{ -} -// ---------------------------------------------------------------------------- -manualRoiControler::~manualRoiControler() -{ -} -// ---------------------------------------------------------------------------- -manualRoiControler * manualRoiControler :: Clone() // virtual -{ - manualRoiControler * clone = new manualRoiControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualRoiControler::CopyAttributesTo( manualRoiControler * cloneObject) -{ - // Fathers object - manualContourBaseControler::CopyAttributesTo(cloneObject); -} - -// ---------------------------------------------------------------------------- -void manualRoiControler::Configure() //virtual -{ - this->GetManualContourModel()->SetNumberOfPointsSpline(5); -} - -// ---------------------------------------------------------------------------- - -void manualRoiControler::MouseClickLeft(int x, int y){ - int z = GetZ(); - - if( IsEditable() ) - { // move control point - if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } - } // IsEditable - - // Move contour - if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { - GetManualViewBaseContour()->InitMove(x,y,z); - SetState(6); - } - - // if the firs time create 4 control points and move one point - int size=GetManualViewBaseContour()->GetNumberOfPoints(); - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - AddPoint(x,y,z); - AddPoint(x,y,z); - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(1); - } - } - -/*EED 21 Avril 2009 - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - AddPoint(x,y,z); - AddPoint(x,y,z); - } else { - SetPoint(0,x,y,z); - SetPoint(1,x,y,z); - SetPoint(2,x,y,z); - SetPoint(3,x,y,z); - } - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } -*/ - - GetManualViewBaseContour()->Refresh(); -} - -// ---------------------------------------------------------------------------- -void manualRoiControler::MouseMove(int x, int y) // virtual -{ - int z=GetZ(); - -// this->_vtkInteractorStyleBaseView-> - - - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - - - if ( (GetState()==5) || (GetState()==1) ){ - SetPoint( bakIdPoint , x , y ,z); - if (bakIdPoint==0) - { - SetPointX( 1 , x ); - SetPointY( 3 , y ); - } - if (bakIdPoint==1) - { - SetPointX( 0 , x ); - SetPointY( 2 , y ); - } - if (bakIdPoint==2) - { - SetPointX( 3 , x ); - SetPointY( 1 , y ); - } - if (bakIdPoint==3) - { - SetPointX( 2 , x ); - SetPointY( 0 , y ); - } - } - if (GetState()==6){ - GetManualViewBaseContour()->MoveContour(x,y,z); - } - GetManualViewBaseContour()->Refresh(); -} -// ---------------------------------------------------------------------------- -void manualRoiControler::DeleteActualMousePoint(int x, int y) // virtual -{ -} -// ---------------------------------------------------------------------------- -void manualRoiControler::InitRoi(int ww, int hh, double porcentage) -{ - int zz; - manualPoint *mp; - - if (GetManualContourModel()->GetSizeLstPoints() ==0) - { - zz = GetZ(); - AddPoint(0,0,zz); - AddPoint(0,0,zz); - AddPoint(0,0,zz); - AddPoint(0,0,zz); - } - - double pp1=porcentage; - double pp2=1-porcentage; - - mp = GetManualContourModel()->GetManualPoint(2); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp1,hh*pp1,zz); - - mp = GetManualContourModel()->GetManualPoint(1); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp1,zz); - - mp = GetManualContourModel()->GetManualPoint(0); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp2,zz); - - mp = GetManualContourModel()->GetManualPoint(3); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp1,hh*pp2,zz); - - GetManualViewBaseContour() ->UpdateViewPoint(0); - GetManualViewBaseContour() ->UpdateViewPoint(1); - GetManualViewBaseContour() ->UpdateViewPoint(2); - GetManualViewBaseContour() ->UpdateViewPoint(3); - - SetState(0); - GetManualViewBaseContour()->Refresh(); -} - -// ---------------------------------------------------------------------------- -void manualRoiControler::SetRoi(int x1, int y1,int x2, int y2) -{ - manualPoint *mp; - InitRoi( 0 , 0 , 0.2 ); - mp = GetManualContourModel()->GetManualPoint(2); - mp->SetPointX(x1); - mp->SetPointY(y1); - - mp = GetManualContourModel()->GetManualPoint(1); - mp->SetPointX(x2); - mp->SetPointY(y1); - - mp = GetManualContourModel()->GetManualPoint(0); - mp->SetPointX(x2); - mp->SetPointY(y2); - - mp = GetManualContourModel()->GetManualPoint(3); - mp->SetPointX(x1); - mp->SetPointY(y2); - - GetManualViewBaseContour() ->UpdateViewPoint(0); - GetManualViewBaseContour() ->UpdateViewPoint(1); - GetManualViewBaseContour() ->UpdateViewPoint(2); - GetManualViewBaseContour() ->UpdateViewPoint(3); -} - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// EED08 - -// _state = 0 // ..nothing.. -// _state = 5 // move point -// _state = 6 // move all -// _state = 7 // Empty mouse drag - -manualCircleControler::manualCircleControler() -{ -} -// ---------------------------------------------------------------------------- -manualCircleControler::~manualCircleControler() -{ -} -// ---------------------------------------------------------------------------- -manualCircleControler * manualCircleControler :: Clone() // virtual -{ - manualCircleControler * clone = new manualCircleControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualCircleControler::CopyAttributesTo( manualCircleControler * cloneObject) -{ - // Fathers object - manualContourBaseControler::CopyAttributesTo(cloneObject); -} - -// ---------------------------------------------------------------------------- -void manualCircleControler::Configure() //virtual -{ -// this->GetManualContourModel()->SetNumberOfPointsSpline(5); -} - -// ---------------------------------------------------------------------------- -void manualCircleControler::MouseClickLeft(int x, int y){ - int z = GetZ(); - - if( IsEditable() ) - { // move control point - if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } - }// IsEditable - - // move contour - if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { - GetManualViewBaseContour()->InitMove(x,y,z); - SetState(6); - } - - // firstime create 2 control points and move one control point - int size=GetManualViewBaseContour()->GetNumberOfPoints(); - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(1); - } - } - -/*EED 21 Avril 2009 - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - } else { - SetPoint(0,x,y,z); - SetPoint(1,x,y,z); - } - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } -*/ - - GetManualViewBaseContour()->Refresh(); -} -// ---------------------------------------------------------------------------- - -void manualCircleControler::MouseMove(int x, int y) // virtual -{ - int z=GetZ(); -// this->_vtkInteractorStyleBaseView-> - - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - - if (GetState()==1){ SetPoint( bakIdPoint , x , y ,z); } - if (GetState()==5){ SetPoint( bakIdPoint , x , y ,z); } - - if (GetState()==6){ - GetManualViewBaseContour()->MoveContour(x,y,z); - } - GetManualViewBaseContour()->Refresh(); -} - - -// ---------------------------------------------------------------------------- -void manualCircleControler::DeleteActualMousePoint(int x, int y) // virtual -{ -} -// ---------------------------------------------------------------------------- - -void manualCircleControler::InitRoi(int ww, int hh, double porcentage) -{ - int zz; - manualPoint *mp; - - if (GetManualContourModel()->GetSizeLstPoints() ==0) - { - zz = GetZ(); - AddPoint(0,0,zz); - AddPoint(0,0,zz); -// AddPoint(0,0,zz); -// AddPoint(0,0,zz); - } - - double pp1=porcentage; - double pp2=1-porcentage; - -// mp = GetManualContourModel()->GetManualPoint(2); -// zz=(int)mp->GetZ(); -// mp->SetPoint(ww*pp1,hh*pp1,zz); - - mp = GetManualContourModel()->GetManualPoint(1); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp1,zz); - - mp = GetManualContourModel()->GetManualPoint(0); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp2,zz); - -// mp = GetManualContourModel()->GetManualPoint(3); -// zz=(int)mp->GetZ(); -// mp->SetPoint(ww*pp1,hh*pp2,zz); - - GetManualViewBaseContour() ->UpdateViewPoint(0); - GetManualViewBaseContour() ->UpdateViewPoint(1); -// GetManualViewBaseContour() ->UpdateViewPoint(2); -// GetManualViewBaseContour() ->UpdateViewPoint(3); - - SetState(0); - GetManualViewBaseContour()->Refresh(); -} - -// ---------------------------------------------------------------------------- -/* -void manualCircleControler::SetRoi(int x1, int y1,int x2, int y2) -{ - manualPoint *mp; - InitRoi( 0 , 0 , 0.2 ); - mp = GetManualContourModel()->GetManualPoint(2); - mp->SetPointX(x1); - mp->SetPointY(y1); - - mp = GetManualContourModel()->GetManualPoint(1); - mp->SetPointX(x2); - mp->SetPointY(y1); - - mp = GetManualContourModel()->GetManualPoint(0); - mp->SetPointX(x2); - mp->SetPointY(y2); - - mp = GetManualContourModel()->GetManualPoint(3); - mp->SetPointX(x1); - mp->SetPointY(y2); - - GetManualViewBaseContour() ->UpdateViewPoint(0); - GetManualViewBaseContour() ->UpdateViewPoint(1); - GetManualViewBaseContour() ->UpdateViewPoint(2); - GetManualViewBaseContour() ->UpdateViewPoint(3); -} -*/ - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// AD:02-09 - -// _state = 0 // ..nothing.. -// _state = 5 // move point -// _state = 6 // move all -// _state = 7 // Empty mouse drag - -manualLineControler::manualLineControler() -{ -} -// ---------------------------------------------------------------------------- -manualLineControler::~manualLineControler() -{ -} -// ---------------------------------------------------------------------------- -manualLineControler * manualLineControler :: Clone() // virtual -{ - manualLineControler * clone = new manualLineControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- -void manualLineControler::CopyAttributesTo( manualLineControler * cloneObject) -{ - // Fathers object - manualContourBaseControler::CopyAttributesTo(cloneObject); -} - - -// ---------------------------------------------------------------------------- -void manualLineControler::MouseClickLeft(int x, int y){ - int z = GetZ(); - - if( IsEditable() ) - { // move control point - if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } - } //IsEditable - - // move contour - if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { - GetManualViewBaseContour()->InitMove(x,y,z); - SetState(6); - } - - // fist time create 2 control points and move a control point - int size=GetManualViewBaseContour()->GetNumberOfPoints(); - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(1); - } - } - - -/*EED 21 Avril 2009 - if (GetState()==0) { - if (size==0){ - AddPoint(x,y,z); - AddPoint(x,y,z); - } else { - SetPoint(0,x,y,z); - SetPoint(1,x,y,z); - } - bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); - SetState(5); - } -*/ - - GetManualViewBaseContour()->Refresh(); -} -// ---------------------------------------------------------------------------- - -void manualLineControler::MouseMove(int x, int y) // virtual -{ - int z=GetZ(); - - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - - if (GetState()==1) { SetPoint( bakIdPoint , x , y ,z); } - if (GetState()==5) { SetPoint( bakIdPoint , x , y ,z); } - - if (GetState()==6) - { - GetManualViewBaseContour()->MoveContour(x,y,z); - } - GetManualViewBaseContour()->Refresh(); -} - - -// ---------------------------------------------------------------------------- -void manualLineControler::DeleteActualMousePoint(int x, int y) // virtual -{ -} -// ---------------------------------------------------------------------------- - -void manualLineControler::InitRoi(int ww, int hh, double porcentage) -{ - int zz; - manualPoint *mp; - - if (GetManualContourModel()->GetSizeLstPoints() ==0) - { - zz = GetZ(); - AddPoint(0,0,zz); - AddPoint(0,0,zz); - } - - double pp1=porcentage; - double pp2=1-porcentage; - - mp = GetManualContourModel()->GetManualPoint(0); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp2,zz); - - mp = GetManualContourModel()->GetManualPoint(1); - zz=(int)mp->GetZ(); - mp->SetPoint(ww*pp2,hh*pp1,zz); - - GetManualViewBaseContour() ->UpdateViewPoint(0); - GetManualViewBaseContour() ->UpdateViewPoint(1); - - SetState(0); - GetManualViewBaseContour()->Refresh(); -} - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -manualContourBaseControler::manualContourBaseControler() -{ - _manViewBaseCont = NULL; - _manContModel = NULL; - _state = 0; - _z = 900; - _editable = true; - _posibleToMove = true; - _moving = false; - _created = false; - _keyBoardMoving = false; -} -// ---------------------------------------------------------------------------- -manualContourBaseControler::~manualContourBaseControler() -{ -} - -// ---------------------------------------------------------------------------- -manualContourBaseControler * manualContourBaseControler :: Clone() // virtual -{ - manualContourBaseControler * clone = new manualContourBaseControler(); - CopyAttributesTo(clone); - return clone; -} - -// --------------------------------------------------------------------------- - -void manualContourBaseControler::CopyAttributesTo( manualContourBaseControler * cloneObject) -{ - // Fathers object - InteractorStyleMaracas::CopyAttributesTo(cloneObject); - cloneObject->SetZ( this->GetZ() ); - cloneObject->SetState( this->GetState() ); - cloneObject->SetEditable( this->IsEditable() ); - cloneObject->SetPosibleToMove( this->GetPosibleToMove() ); - cloneObject->SetMoving( this->IsMoving() ); - cloneObject->SetCompleteCreation( this->GetIfCompleteCreation() ); - cloneObject->SetKeyBoardMoving( this->GetKeyBoardMoving() ); -} - -// ---------------------------------------------------------------------------- -void manualContourBaseControler::Configure() //virtual -{ -} - -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnChar() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); - - int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; - _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - _wxVTKiren->GetEventPosition(X, Y); - //int Z = GetZ(); // JPRx - // Delete Point - if ((keyCode==8) || (keyCode==127)) - { - - if (!GetManualViewBaseContour()->GetPosibleSelected()==true) - { - DeleteActualMousePoint(X,Y); - } - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - else - { - // Magnet - if (keyCode==32) - { - Magnet(X,Y); - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - else if( !IsEditable() ) - { - if ( keyCode == 'L' ) - { - GetManualViewBaseContour()->MoveContour( -1, 0 ); - SetKeyBoardMoving( true ); - } - else if ( keyCode == 'R' ) - { - GetManualViewBaseContour()->MoveContour( 1, 0 ); - SetKeyBoardMoving( true ); - } - else if ( keyCode == 'U' ) - { - GetManualViewBaseContour()->MoveContour( 0, -1 ); - SetKeyBoardMoving( true ); - } - else if ( keyCode == 'D' ) - { - GetManualViewBaseContour()->MoveContour( 0, 1 ); - SetKeyBoardMoving( true ); - } - else if ( keyCode == 'W' )//Diagonal left down - { - GetManualViewBaseContour()->MoveContour( -1, 1 ); - SetKeyBoardMoving( true ); - } - else if ( keyCode == 'Q' )//Diagonal left up - { - GetManualViewBaseContour()->MoveContour( -1, -1 ); - SetKeyBoardMoving( true ); - } - else if( keyCode == 'P' )//Diagonal right up - { - GetManualViewBaseContour()->MoveContour( 1, -1 ); - SetKeyBoardMoving( true ); - } - else if( keyCode == 'M' )//Diagonal right down - { - GetManualViewBaseContour()->MoveContour( 1, 1 ); - SetKeyBoardMoving( true ); - } - if( GetKeyBoardMoving() ) - { - GetManualViewBaseContour()->Refresh(); - this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); - } - } - } - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnMouseMove() -{ - - if ( _vtkInteractorStyleBaseView!=NULL) - { - int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; - _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - _wxVTKiren->GetEventPosition( X , Y ); - - - if ( (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && - (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ) { - MouseMove(X,Y); - } - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnLeftButtonDown() -{ - SetKeyBoardMoving( false ); - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - MouseClickLeft(X,Y); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnLeftButtonUp() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - MouseReleaseLeft(X,Y); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnLeftDClick() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - this->MouseDLeft(X,Y); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnMiddleButtonDown() -{ -// SetKeyBoardMoving( false ); - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - GetManualViewBaseContour()->InitMove( X, Y,GetZ()); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnMiddleButtonUp() -{ - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnRightButtonDown() -{ - if( _vtkInteractorStyleBaseView!= NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X, Y); - - SetCompleteCreation( true ); - SetKeyBoardMoving( false ); - MouseClickRight(X,Y); - } - return true; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::OnRightButtonUp() -{ - return true; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetModelView(manualContourModel *manContModel, manualViewBaseContour *manViewBaseCont){ - _manContModel = manContModel; - _manViewBaseCont = manViewBaseCont; - _manViewBaseCont->SetEditable( &_editable ); -} -// ---------------------------------------------------------------------------- -manualContourModel* manualContourBaseControler::GetManualContourModel() -{ - return _manContModel; -} -// ---------------------------------------------------------------------------- -manualViewBaseContour* manualContourBaseControler::GetManualViewBaseContour() -{ - return _manViewBaseCont; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::MouseClickLeft(int x, int y) // virtual -{ - -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::MouseClickRight(int x, int y) -{ -// if (_state==1) -// { -// _state=0; -// } - SetEditable( false ); - SetPosibleToMove( false ); - _state = 0; - -//EED 24Avril2009 _state=7; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::MouseReleaseLeft(int x, int y) -{ - if (_state==5){ _state = 0; } - if (_state==6){ _state = 0; } - if (_state==7){ _state = 0; } - SetMoving( false ); - GetManualViewBaseContour()->SelectPosibleContour(x,y,GetZ()); - if( GetIfCompleteCreation() && IsEditable() && !GetManualViewBaseContour()->GetPosibleSelected() && (GetManualViewBaseContour()->GetIdPoint(x,y,GetZ())==-1) ) - { - SetEditable( false ); - SetPosibleToMove( false ); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::MouseDLeft(int x, int y ) -{ - if (_state==0) - { - int z=GetZ(); - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - if ( GetManualViewBaseContour()->GetPosibleSelected() ) - { - _editable = true; - } - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::MouseMove(int x, int y) // virtual -{ -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetState(int state) -{ - _state=state; -} -// ---------------------------------------------------------------------------- -int manualContourBaseControler::GetState() -{ - return _state; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::IsEditable( ) -{ - return _editable; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetEditable( bool condition ) -{ - if (GetManualViewBaseContour()!=NULL) { - if( !condition ) - { - GetManualViewBaseContour()->RemoveControlPoints(); - } - GetManualViewBaseContour()->SetSelected( condition ); - } - _editable = condition; -} - -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::GetPosibleToMove() -{ - return _posibleToMove; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetPosibleToMove( bool condition ) -{ - _posibleToMove = condition; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::IsMoving() -{ - return _moving; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetMoving( bool condition ) -{ - _moving = condition; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetCompleteCreation( bool condition ) -{ - _created = condition; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::GetIfCompleteCreation ( ) -{ - return _created; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetKeyBoardMoving( bool condition ) -{ - _keyBoardMoving = condition; -} -// ---------------------------------------------------------------------------- -bool manualContourBaseControler::GetKeyBoardMoving( ) -{ - return _keyBoardMoving; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::CreateNewManualContour(){ - _manViewBaseCont->CreateNewContour(); -} -// ---------------------------------------------------------------------------- -int manualContourBaseControler::GetNumberOfPointsManualContour(){ - return _manViewBaseCont->GetNumberOfPoints(); -} -// ---------------------------------------------------------------------------- - -//JSTG - 25-02-08 ------------------------------------------------------------- -int manualContourBaseControler::GetNumberOfPointsSplineManualContour(){ - //return _manViewBaseCont->GetNumberOfPointsSpline(); - return _manContModel->GetNumberOfPointsSpline(); -} -// ---------------------------------------------------------------------------- - -double* manualContourBaseControler::GetVectorPointsXManualContour(){ - return _manViewBaseCont->GetVectorPointsXManualContour(); -} -// ---------------------------------------------------------------------------- -double* manualContourBaseControler::GetVectorPointsYManualContour(){ - return _manViewBaseCont->GetVectorPointsYManualContour(); -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::DeleteContour(){ - _manViewBaseCont->DeleteContour(); - _manContModel->DeleteAllPoints(); -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::DeleteActualMousePoint(int x, int y)// virtual -{ - if ((_manContModel!=NULL) && (_manViewBaseCont!=NULL) ) - { - int id=_manViewBaseCont->GetIdPoint(x,y,GetZ()); - if ((id!=-1) && (_manContModel->GetSizeLstPoints()>2) ){ - _manContModel->DeletePoint(id); - _manViewBaseCont->DeletePoint(id); - } - } - _state = 0; -} - -// ---------------------------------------------------------------------------- -void manualContourBaseControler::Magnet(int x, int y) -{ - if( IsEditable()) - { - /*int id= */ _manViewBaseCont->GetIdPoint(x,y,GetZ()); // JPRx - if (GetManualContourModel()!=NULL){ - double xx = x; - double yy = y; - double zz = GetZ(); - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - int id = GetManualContourModel()->GetIdPoint(xx,yy,zz,32000,-1); - if (id!=-1) - { - manualPoint *mp = GetManualContourModel()->GetManualPoint(id); - mp->SetPoint(xx,yy,zz); - } - // GetManualViewBaseContour()->UpdateViewPoint(id); - } - _state = 0; - } -} - -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetZ(int z) -{ - _z=z; -} -// ---------------------------------------------------------------------------- -int manualContourBaseControler::GetZ() -{ - return _z; -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::AddPoint(int x, int y, int z) // virtual -{ - if (GetManualContourModel()!=NULL){ - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - /*int id =*/ GetManualContourModel()->AddPoint(xx,yy,zz); // JPRx - GetManualViewBaseContour()->AddPoint(); -// GetManualViewBaseContour()->UpdateViewPoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::InsertPoint(int x,int y,int z) // virtual -{ -//EEDzz - int id=-1; - if (GetManualContourModel()!=NULL){ - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - if (GetManualContourModel()->GetSizeLstPoints()>1){ - id = GetManualContourModel()->InsertPoint(xx,yy,zz); - GetManualViewBaseContour()->InsertPoint(id); -// GetManualViewBaseContour()->UpdateViewPoint(id); - } else { - GetManualContourModel()->AddPoint(xx,yy,zz); - GetManualViewBaseContour()->AddPoint(); -// AddPoint(x,y,z); -// GetManualViewBaseContour()->UpdateViewPoint(id); - } - } -} - -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetPoint( int id ,int x , int y , int z){ // virtual - if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ - double xx = x; - double yy = y; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - manualPoint *mp = _manContModel->GetManualPoint(id); - mp->SetPoint(xx,yy,zz); - GetManualViewBaseContour()->UpdateViewPoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetPointX( int id ,int x ){ - if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ - double xx = x; - double yy = 0; - double zz = 0; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - manualPoint *mp = _manContModel->GetManualPoint(id); - mp->SetPointX(xx); - GetManualViewBaseContour()->UpdateViewPoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetPointY( int id ,int y ){ - if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ - double xx = 0; - double yy = y; - double zz = 0; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - manualPoint *mp = _manContModel->GetManualPoint(id); - mp->SetPointY(yy); - GetManualViewBaseContour()->UpdateViewPoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::SetPointZ( int id ,int z ){ - if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ - double xx = 0; - double yy = 0; - double zz = z; - GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); - manualPoint *mp = _manContModel->GetManualPoint(id); - mp->SetPointZ(zz); - GetManualViewBaseContour()->UpdateViewPoint(id); - } -} -// ---------------------------------------------------------------------------- -void manualContourBaseControler::ResetContour() // virtual -{ - this->DeleteContour(); - GetManualViewBaseContour()->CreateNewContour(); - this->SetState(0); -} - diff --git a/lib/maracasVisuLib/src/interface/wxWindows/manualContour.h b/lib/maracasVisuLib/src/interface/wxWindows/manualContour.h deleted file mode 100644 index 7b43bbe..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/manualContour.h +++ /dev/null @@ -1,1039 +0,0 @@ - -#ifndef MANUAL_CONTOUR_H -#define MANUAL_CONTOUR_H - - -//-- -/* // EEDxx include -#include -#include "vtkActor.h" -#include "vtkPoints.h" -#include "vtkImageViewer2.h" -#include "vtkImageData.h" -*/ - -#include "vtkRenderWindow.h" - -#include "vtkRenderer.h" -#include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! -#include "vtkCommand.h" -#include "vtkPolyData.h" -#include "vtkCellArray.h" -#include "vtkPolyDataMapper.h" -#include "vtkInteractorObserver.h" -#include "vtkInteractorStyleImage.h" -#include - -#include - - -#include -#include -#include -#include - -#include "wxVTKRenderWindowInteractor.h" - -#include "InteractorStyleMaracas.h" -//-- - -#include - - -#include "wxVtkBaseView.h" -#include "marTypes.h" - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - - -class manualPoint{ -public: - manualPoint(); - virtual ~manualPoint(); - void SetPoint(double x,double y,double z); - void SetPointX(double x); - void SetPointY(double y); - void SetPointZ(double z); - double GetX(); - double GetY(); - double GetZ(); - virtual manualPoint * Clone(); -private: - double _x; - double _y; - double _z; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualContourModel{ -public: - manualContourModel(); - virtual ~manualContourModel(); - - virtual manualContourModel * Clone(); - void CopyAttributesTo( manualContourModel *cloneObject ); - virtual void Open(FILE *ff); // virtual - virtual void Save(FILE *ff); // virtual - virtual int GetTypeModel(); // virtual - - int AddPoint(double x,double y,double z); - int InsertPoint(double x,double y,double z); -//JSTG 25-04-08 ------------------------------------------------------- - void InsertPoint_id(int id, double x,double y,double z); -//--------------------------------------------------------------------- - void AddManualPoint( manualPoint* theManualPoint ); - - void DeletePoint(int i); - void DeleteAllPoints(); - - void MovePoint(int i,double dx,double dy,double dz); - void MoveLstPoints(double dx,double dy,double dz); - void MoveAllPoints(double dx,double dy,double dz); - - int GetIdPoint(double x, double y, double z, int i_range,int type); - manualPoint* GetManualPoint(int id); - int GetSizeLstPoints(); - int GetNumberOfPointsSpline(); - void SetNumberOfPointsSpline(int size); - - virtual void UpdateSpline(); - void SetCloseContour(bool closeContour); - bool IfCloseContour(); -//JSTG 25-02-08 ----------------------------------------------------------------- - //void GetSplinePoint(double t, double &x, double &y, double &z); //Method Original - //void GetSplineiPoint(int i, double &x, double &y, double &z); //Method Original -//------------------------------------------------------------------------------- - double GetPathSize(); - double GetPathArea(); - - void GetNearestPointAndNormal(double *p, double *rp, double *rn); - -// JSTG 25-02-08 ----------------------------------------------------------------- - virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); - void GetSpline_t_Point(double t, double *x, double *y, double *z); -//-------------------------------------------------------------------------------- - - virtual std::vector ExploseModel( ); - - -private: - int _sizePointsContour; - std::vector _lstPoints; - bool _closeContour; - vtkKochanekSpline *_cntSplineX; - vtkKochanekSpline *_cntSplineY; - vtkKochanekSpline *_cntSplineZ; - -//JSTG 25-02-08 ---------------------------------------- - double _delta_JSTG; -//------------------------------------------------------ - -}; - - -//-------------------------------------------------------- - -class creaMaracasVisu_EXPORT manualContourModelCircle : public manualContourModel -{ -public: - manualContourModelCircle(); - virtual ~manualContourModelCircle(); - virtual manualContourModelCircle *Clone(); - void CopyAttributesTo( manualContourModelCircle *cloneObject); - virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); -private: - double _deltaAngle; - double _radio; - double _centerX; - double _centerY; - double _centerZ; - - virtual int GetTypeModel(); - virtual void UpdateSpline(); -}; - -//-------------------------------------------------------- - -class creaMaracasVisu_EXPORT manualContourModelLine : public manualContourModel -{ -public: - manualContourModelLine(); - virtual ~manualContourModelLine(); - virtual manualContourModelLine *Clone(); - void CopyAttributesTo( manualContourModelLine *cloneObject); -// virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); -private: - virtual int GetTypeModel(); -}; - -//-------------------------------------------------------- - -class manualContourModelBullEyeSector : public manualContourModel -{ -public: - manualContourModelBullEyeSector(); - virtual ~manualContourModelBullEyeSector(); - virtual manualContourModelBullEyeSector *Clone(); - void CopyAttributesTo( manualContourModelBullEyeSector *cloneObject); - void SetSector( double radioA, - double radioB, - double ang, - double angDelta); - void GetSector( double *radioA, - double *radioB, - double *ang, - double *angDelta); - void SetSize(double ww,double hh); - void SetCenter(double cx,double cy); - virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); - virtual void Save(FILE *ff); - virtual void Open(FILE *ff); - -private: - double _radioA; - double _radioB; - double _ang; - double _angDelta; - double _ww; - double _hh; - double _cx; - double _cy; - - virtual int GetTypeModel(); -}; - - -//-------------------------------------------------------- -//eed004 -class creaMaracasVisu_EXPORT manualContourModelBullEye : public manualContourModel -{ -public: - manualContourModelBullEye(); - virtual ~manualContourModelBullEye(); - virtual manualContourModelBullEye *Clone(); - void CopyAttributesTo( manualContourModelBullEye *cloneObject); - virtual void Save(FILE *ff); - virtual void Open(FILE *ff); - - int GetNumberOfPointsSplineSectorBulleEje(); - void SetNumberOfPointsSplineSectorBulleEje(int); - void AddSector( double radioA, - double radioB, - double ang, - double angDelta); - void GetSector( int id, - double *radioA, - double *radioB, - double *ang, - double *angDelta); - manualContourModelBullEyeSector * GetModelSector(int id); - - void ResetSectors(); - int GetSizeOfSectorLst(); - virtual void UpdateSpline(); // virtual - virtual std::vector ExploseModel( ); - - - -private: - int _numberPointsSlineBySector; - std::vector _lstModelBullEyeSector; - -/* Borrame Eduardo - std::vector _lstRadioA; - std::vector _lstRadioB; - std::vector _lstAng; - std::vector _lstAngDelta; -*/ - - virtual int GetTypeModel(); -}; - - - -//-------------------------------------------------------- - -//JSTG 25-02-08 ------------------------------------------ -class creaMaracasVisu_EXPORT manualContourModelRoi : public manualContourModel -{ - public: - manualContourModelRoi(); - virtual ~manualContourModelRoi(); - virtual manualContourModelRoi *Clone(); - void CopyAttributesTo( manualContourModelRoi *cloneObject); -private: - virtual int GetTypeModel(); -}; -//-------------------------------------------------------- - - -class manualViewPoint{ -public: - -// static int range; - - manualViewPoint(wxVtkBaseView *wxvtkbaseview); - ~manualViewPoint(); - void SetSelected(bool selected); - void SetPosibleSelected(bool posibleSelected); - bool GetSelected(); - bool GetPosibleSelected(); - void DeleteVtkObjects(); - vtkActor* CreateVtkPointActor(); - void SetPositionXY(double x, double y, double range, double posZ); - vtkActor* GetVtkActor(); - void UpdateColorActor(); - void GetSpacing(double spc[3]); - void SetSpacing(double spc[3]); - void SetWidthLine( double width); - - -private: - bool _selected; - bool _posibleSelected; - vtkPoints *_pts; - vtkPolyData *_pd; - vtkActor *_pointVtkActor; - vtkPolyDataMapper *_bboxMapper; - wxVtkBaseView *_wxvtkbaseview; - double _widthline; -protected: - double _spc[3]; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualViewBaseContour{ -public: - manualViewBaseContour(); - virtual ~manualViewBaseContour(); - - virtual int GetType(); - virtual void Save(FILE *pFile); - virtual void Open(FILE *pFile); - - void AddPoint(); - void AddPoint( manualViewPoint * manualViewPoint ); - void InsertPoint(int id); - void DeleteContour(); - void DeletePoint(int x, int y,int z); - virtual void DeletePoint(int id); - - virtual void UpdateViewPoint(int id); - virtual void UpdateViewPoints(); - - void SetSelected(bool selected); - void SetPosibleSelected(bool posibleSelected); - bool GetSelected(); - bool GetPosibleSelected(); - void DeleteSelectedPoints(); - bool GetEditable(); - void SetEditable( bool * condition ); - - - - virtual int GetIdPoint(int x, int y, int z); - - void SelectPoint(int i,bool select); - void SelectLstPoints(); - void SelectAllPoints(bool select); - virtual int SelectPosiblePoint(int x, int y ,int z); - bool SelectPosibleContour(int x, int y ,int z); - void SelectAllPossibleSelected(bool select); - void SetPointSelected(int id,bool select); - void SetPointPosibleSelected(int id,bool select); - void SetIfViewControlPoints(bool ifShow); - bool GetIfViewControlPoints(); - - void UnSelectPoint(int i); - void UnSelectLstPoints(); - void UnSelectAllPoints(); - - void SetModel(manualContourModel *manContModel); - void SetWxVtkBaseView(wxVtkBaseView *wxvtkbaseview); - - virtual void Refresh(); - int GetNumberOfPoints(); // ??? - //int GetNumberOfPointsSpline(); //JSTG 25-02-08 In ContourModel is the same method - //void SetNumberOfPointsSpline(int size); //JSTG 25-02-08 In ContourModel is the same method - - void CreateNewContour(); - double* GetVectorPointsXManualContour(); - double* GetVectorPointsYManualContour(); - double* GetVectorPointsZManualContour(); - - virtual bool ifTouchContour(int x,int y, int z); - void UpdateColorActor(); - - void SetRange(int range); - int GetRange(); - void SetZ(int z); - int GetZ(); - - wxVtkBaseView *GetWxVtkBaseView(); - - virtual void InitMove(int x, int y, int z); - virtual void MoveContour(int x, int y, int z); - virtual void MoveContour(int horizontalUnits, int verticalUnits ); - virtual void GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ ); - virtual void TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type=2); - - void ClearContour(); - virtual void ClearPoint(int id); - - void SetVisible(bool ok); - void SetShowText(bool ok); - - void GetSpacing(double spc[3]); - void SetSpacing(double spc[3]); - - void SetColorNormalContour(double r, double g, double b); - void GetColorNormalContour(double &r, double &g, double &b); - void SetColorEditContour(double r, double g, double b); - void GetColorEditContour(double &r, double &g, double &b); - void SetColorSelectContour(double r, double g, double b); - void GetColorSelectContour(double &r, double &g, double &b); - - //Addinging and removing from visualization specific actors included in the viewer contour - void AddCompleteContourActor( bool ifControlPoints = false); - void RemoveCompleteContourActor(); - virtual void AddSplineActor(); - virtual void RemoveSplineActor(); - void AddControlPoints(); - void RemoveControlPoints(); - void AddTextActor(); - void RemoveTextActor(); - - virtual manualViewBaseContour * Clone(); - void CopyAttributesTo( manualViewBaseContour *cloneObject ); - virtual void RefreshContour(); - void SetWidthLine(double width); - double GetWidthLine(); - - virtual void ConstructVTKObjects(); - -private: - int _range; - - wxVtkBaseView *_wxvtkbaseview; - bool _selected; - bool *_editable; - bool _posibleSelected; - bool _viewControlPoints; - - - vtkPolyData *_pd; - vtkActor *_contourVtkActor; - vtkPolyDataMapper *_bboxMapper; - - double _coulorEdit_r; - double _coulorEdit_g; - double _coulorEdit_b; - double _coulorNormal_r; - double _coulorNormal_g; - double _coulorNormal_b; - double _coulorSelection_r; - double _coulorSelection_g; - double _coulorSelection_b; - double _widthline; - - void DeleteVtkObjects(); - virtual void RefreshText(); - - -protected: - - // text - bool _show_text; - int _id_viewPoint_for_text; - vtkTextActor *_textActor; - manualContourModel *_manContModel; - vtkPoints *_pts; -// JSTG 25-02-08 -------------------------------------------- - int _sizePointsContour; -//----------------------------------------------------------- - std::vector _lstViewPoints; - double _spc[3]; - -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualViewContour: public manualViewBaseContour -{ -public: - manualViewContour(); - virtual ~manualViewContour(); - virtual manualViewContour * Clone(); - void CopyAttributesTo( manualViewContour *cloneObject ); - - virtual int GetType(); - virtual void Save(FILE *pFile); - virtual void Open(FILE *pFile); - - - virtual void RefreshContour(); - virtual bool ifTouchContour(int x,int y, int z); - virtual void InitMove(int x, int y, int z); - virtual void MoveContour(int x, int y, int z); - virtual void MoveContour(int horizontalUnits, int verticalUnits ); - virtual void DeletePoint(int id); - virtual void ClearPoint(int id); - void SetMesureScale(double mesureScale); -private: - double _mesureScale; - std::vector< std::vector > _initialMovingPoints; - manualContourModel * _initialConoturModel; - - virtual void RefreshText(); -protected: - -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -class manualView3VContour: public manualViewContour -{ -public: - manualView3VContour(int type); - virtual ~manualView3VContour(); - virtual manualView3VContour * Clone(); - void CopyAttributesTo( manualView3VContour *cloneObject ); - - virtual void RefreshContour(); - virtual int GetIdPoint(int x, int y, int z); - virtual void UpdateViewPoint(int id); - virtual bool ifTouchContour(int x,int y,int z); - int GetType(); - -protected: -private: - int _type; - void FilterCordinateXYZ(double &x,double &y,double &z); - -// JSTG 25-02-08 ------------------------------------- - //manualContourModel *_manContModel; -//---------------------------------------------------- - -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -class manualView3DContour: public manualViewContour -{ -public: - manualView3DContour(); - virtual ~manualView3DContour(); - virtual manualView3DContour * Clone(); - void CopyAttributesTo( manualView3DContour *cloneObject ); - - virtual void TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type); - void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata); - - virtual int SelectPosiblePoint ( int x, int y, int z ); - void SetDimensions(int w, int h, int d); - - int GetIdPoint2(int x, int y); - -protected: - vtkMPRBaseData *_vtkmprbasedata; -private: - int _w; - int _h; - int _d; - -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualViewRoi: public manualViewContour -{ -public: - manualViewRoi(); - virtual ~manualViewRoi(); - - virtual int GetType(); - virtual manualViewRoi * Clone(); - void CopyAttributesTo( manualViewRoi *cloneObject ); - - virtual void RefreshContour(); - virtual bool ifTouchContour(int x,int y, int z); - virtual void InitMove(int x, int y, int z); - virtual void MoveContour(int x, int y, int z); - void GetMinMax(double &minX,double &minY, double &maxX, double &maxY); - -private: - double _dp0[3]; - double _dp1[3]; - double _dp2[3]; - double _dp3[3]; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -class creaMaracasVisu_EXPORT manualViewBullEyeSector: public manualViewContour -{ -public: - manualViewBullEyeSector(); - virtual void RefreshContour(); -}; - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -//EED004 -class creaMaracasVisu_EXPORT manualViewBullEye: public manualViewRoi -{ -public: - manualViewBullEye(); - virtual ~manualViewBullEye(); - - virtual int GetType(); - virtual manualViewBullEye * Clone(); - void CopyAttributesTo( manualViewBullEye *cloneObject ); - -// void UpdateColorActorBullEye(); -// void DeleteVtkObjectsBullEye(); - virtual void RemoveSplineActor(); - virtual void AddSplineActor(); - virtual void ConstructVTKObjects(); - virtual void RefreshContour(); - -private: - -/*EED Borrame - std::vector lstSectorBullEye; -*/ - - std::vector lstSectorBullEye; - -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// EED08 -class creaMaracasVisu_EXPORT manualViewCircle: public manualViewContour -{ -public: - manualViewCircle(); - virtual ~manualViewCircle(); - - virtual int GetType(); - virtual manualViewCircle * Clone(); - void CopyAttributesTo( manualViewCircle *cloneObject ); - - virtual void InitMove(int x, int y, int z); - virtual void MoveContour(int x, int y, int z); - void GetMinMax(double &minX,double &minY, double &maxX, double &maxY); - -private: - double _dp0[3]; - double _dp1[3]; -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// AD:02-09 -class creaMaracasVisu_EXPORT manualViewLine: public manualViewContour -{ -public: - manualViewLine(); - virtual ~manualViewLine(); - - virtual int GetType(); - virtual manualViewLine * Clone(); - void CopyAttributesTo( manualViewLine *cloneObject ); - - virtual void InitMove(int x, int y, int z); - virtual void MoveContour(int x, int y, int z); - -private: - double _dp0[3]; - double _dp1[3]; -}; - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - - -class creaMaracasVisu_EXPORT manualContourBaseControler: public InteractorStyleMaracas -{ -public: - manualContourBaseControler(); - virtual ~manualContourBaseControler(); - - virtual manualContourBaseControler * Clone(); - void CopyAttributesTo( manualContourBaseControler *cloneObject ); - - virtual bool OnChar(); - virtual bool OnMouseMove(); - virtual bool OnLeftButtonDown(); - virtual bool OnLeftButtonUp(); - virtual bool OnLeftDClick(); - virtual bool OnMiddleButtonDown(); - virtual bool OnMiddleButtonUp(); - virtual bool OnRightButtonDown(); - virtual bool OnRightButtonUp(); - - void SetModelView(manualContourModel *manContModel, manualViewBaseContour *manViewBaseCont); - manualContourModel * GetManualContourModel(); - manualViewBaseContour * GetManualViewBaseContour(); - - - virtual void MouseClickLeft(int x, int y); - virtual void MouseClickRight(int x, int y); - virtual void MouseDLeft(int x, int y); - - virtual void MouseMove(int x, int y); - virtual void MouseReleaseLeft(int x, int y); - - void SetState(int state); - int GetState(); - bool IsEditable(); - void SetEditable( bool condition ); - bool GetPosibleToMove(); - void SetPosibleToMove( bool condition ); - bool IsMoving(); - void SetMoving( bool condition ); - void SetCompleteCreation( bool condition ); - bool GetIfCompleteCreation ( ); - void SetKeyBoardMoving( bool condition ); - bool GetKeyBoardMoving( ); - - void CreateNewManualContour(); - int GetNumberOfPointsManualContour(); - int GetNumberOfPointsSplineManualContour(); - void DeleteContour(); - virtual void DeleteActualMousePoint(int x, int y ); - double* GetVectorPointsXManualContour(); - double* GetVectorPointsYManualContour(); - - - void SetZ(int z); - virtual int GetZ(); - - virtual void AddPoint(int x, int y, int z); - virtual void InsertPoint(int x, int y, int z); - - virtual void SetPoint( int id ,int x ,int y ,int z); - void SetPointX( int id ,int x ); - void SetPointY( int id ,int y ); - void SetPointZ( int id ,int z ); - - void Magnet(int x, int y); - virtual void ResetContour(); - - virtual void Configure(); - - -//EED Borrame -// virtual manualContourBaseControler * Clone( manualViewBaseContour * cloneView = NULL, manualContourModel * cloneModel = NULL ); - - -private: - manualViewBaseContour *_manViewBaseCont; - manualContourModel *_manContModel; - - int _z; - int _state; - bool _editable; - bool _posibleToMove; - bool _moving; - bool _created; - bool _keyBoardMoving; - -}; - - - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualContourControler: public manualContourBaseControler -{ -public: - manualContourControler(); - virtual ~manualContourControler(); - virtual manualContourControler * Clone(); - void CopyAttributesTo( manualContourControler *cloneObject ); - - virtual void MouseClickLeft(int x, int y); - virtual void MouseMove(int x, int y); - virtual void MouseDLeft( int x, int y); - void SetEasyCreation(bool easyCreation); - bool GetEasyCreation(); - - virtual void Configure(); - -protected: - int _bakIdPoint; -private: - bool _easyCreation; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - - - -class creaMaracasVisu_EXPORT manualContour3VControler: public manualContourControler -{ -public: - manualContour3VControler(int type); - virtual ~manualContour3VControler(); - virtual manualContour3VControler * Clone(); - void CopyAttributesTo( manualContour3VControler *cloneObject ); - - virtual bool OnChar(); - virtual void AddPoint(int x, int y, int z); - virtual void InsertPoint(int x, int y, int z); - virtual void MouseMove(int x, int y); - virtual void ResetContour(); - - void AddManualViewBaseContour( manualViewBaseContour *manViewBaseCont ); - - vtkMPRBaseData *GetVtkMPRBaseData(); - void SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ); - virtual void SetPoint( int id ,int x ,int y ,int z ); - - virtual void DeleteActualMousePoint(int x, int y); - - void AddPoint_Others(); - void DeleteActualMousePoint_Others(int id); - void MouseMove_Others(int id); - void InsertPoint_Others(int id); - void OnChar_Others(); - void ResetContour_Others(); - int GetType(); - -private: - int _type; - - vtkMPRBaseData *_vtkmprbasedata; - - std::vector< manualViewBaseContour* > _lstManualViewBaseContour; -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualContour3DControler: public manualContourControler -{ -public: - manualContour3DControler(); - virtual ~manualContour3DControler(); - virtual manualContour3DControler * Clone(); - void CopyAttributesTo( manualContour3DControler *cloneObject ); - - virtual bool OnLeftButtonDown(); - virtual bool OnChar(); - virtual void InsertPoint(int x, int y, int z); - virtual void MouseClickLeft(int x, int y); - void ResetOrientationPlane(); - - vtkMPRBaseData *GetVtkMPRBaseData(); - void SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ); - - -protected: -private: - vtkMPRBaseData *_vtkmprbasedata; - -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -class creaMaracasVisu_EXPORT manualContour3V3DControler: public manualContour3DControler -{ -public: - manualContour3V3DControler(); - virtual ~manualContour3V3DControler(); - virtual manualContour3V3DControler * Clone(); - void CopyAttributesTo( manualContour3V3DControler *cloneObject ); - - void SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler); - manualContour3VControler *GetManualContour3VControler(); - - virtual bool OnChar(); - virtual void AddPoint( int x, int y, int z ); - virtual void DeleteActualMousePoint(int x, int y); - virtual void MouseMove(int x, int y); - virtual void InsertPoint(int x, int y, int z); - virtual void ResetContour(); - - -protected: -private: - manualContour3VControler *_manualcontour3Vcontroler; - -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -class creaMaracasVisu_EXPORT manualContourPerpPlaneControler: public manualContourControler -{ -public: - manualContourPerpPlaneControler(); - virtual ~manualContourPerpPlaneControler(); - virtual manualContourPerpPlaneControler * Clone(); - void CopyAttributesTo( manualContourPerpPlaneControler *cloneObject ); - - void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata); - vtkMPRBaseData *GetVtkMPRBaseData(); - - virtual bool OnChar(); - virtual bool OnMouseMove(); - virtual bool OnLeftDClick(); - virtual void AddPoint( int x, int y, int z ); - virtual void DeleteActualMousePoint(int x, int y); - virtual void MouseMove(int x, int y); - virtual void InsertPoint(int x, int y, int z); - virtual void ResetContour(); - - void SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler); - manualContour3VControler *GetManualContour3VControler(); - - virtual void MouseDLeft( int x, int y); - void ResetOrientationPlane(); - void SetVtkInteractorStylePlane2D(InteractorStyleMaracas *vtkinteractorstyleplane2D); - InteractorStyleMaracas * GetVtkInteractorStylePlane2D(); - -private: - bool _flagMouseMove; - bool _flagMouseDClick; - InteractorStyleMaracas *_vtkinteractorstyleplane2D; - -protected: - vtkMPRBaseData *_vtkmprbasedata; - manualContour3VControler *_manualcontour3Vcontroler; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - - -class creaMaracasVisu_EXPORT manualRoiControler: public manualContourControler -{ -public: - manualRoiControler(); - virtual ~manualRoiControler(); - virtual manualRoiControler * Clone(); - void CopyAttributesTo( manualRoiControler *cloneObject ); - - virtual void MouseClickLeft(int x, int y); - virtual void MouseMove(int x, int y ); - virtual void DeleteActualMousePoint(int x, int y); - void InitRoi(int ww, int hh, double porcentage); - void SetRoi(int x1, int y1,int x2, int y2); - virtual void Configure(); - - -private: - int bakIdPoint; -}; - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// EED08 -class creaMaracasVisu_EXPORT manualCircleControler: public manualContourControler -{ -public: - manualCircleControler(); - virtual ~manualCircleControler(); - virtual manualCircleControler * Clone(); - void CopyAttributesTo( manualCircleControler *cloneObject ); - - virtual void MouseClickLeft(int x, int y); - virtual void MouseMove(int x, int y ); - virtual void DeleteActualMousePoint(int x, int y); - void InitRoi(int ww, int hh, double porcentage); -// void SetRoi(int x1, int y1,int x2, int y2); - virtual void Configure(); - - -private: - int bakIdPoint; -}; - - -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- -// ---------------------------------------------------------------------------- - -// AD:02-09 -class creaMaracasVisu_EXPORT manualLineControler: public manualContourControler -{ -public: - manualLineControler(); - virtual ~manualLineControler(); - virtual manualLineControler * Clone(); - void CopyAttributesTo( manualLineControler *cloneObject ); - - virtual void MouseClickLeft(int x, int y); - virtual void MouseMove(int x, int y ); - virtual void DeleteActualMousePoint(int x, int y); - void InitRoi(int ww, int hh, double porcentage); - - - -private: - int bakIdPoint; -}; - - - - -#endif // MANUAL_CONTOUR_H - diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.cpp new file mode 100644 index 0000000..a14345e --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.cpp @@ -0,0 +1,182 @@ +#include "manualCircleControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// EED08 + +// _state = 0 // ..nothing.. +// _state = 5 // move point +// _state = 6 // move all +// _state = 7 // Empty mouse drag + +manualCircleControler::manualCircleControler() +{ +} +// ---------------------------------------------------------------------------- +manualCircleControler::~manualCircleControler() +{ +} +// ---------------------------------------------------------------------------- +manualCircleControler * manualCircleControler :: Clone() // virtual +{ + manualCircleControler * clone = new manualCircleControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualCircleControler::CopyAttributesTo( manualCircleControler * cloneObject) +{ + // Fathers object + manualContourBaseControler::CopyAttributesTo(cloneObject); +} + +// ---------------------------------------------------------------------------- +void manualCircleControler::Configure() //virtual +{ +// this->GetManualContourModel()->SetNumberOfPointsSpline(5); +} + +// ---------------------------------------------------------------------------- +void manualCircleControler::MouseClickLeft(int x, int y){ + int z = GetZ(); + + if( IsEditable() ) + { // move control point + if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } + }// IsEditable + + // move contour + if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { + GetManualViewBaseContour()->InitMove(x,y,z); + SetState(6); + } + + // firstime create 2 control points and move one control point + int size=GetManualViewBaseContour()->GetNumberOfPoints(); + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(1); + } + } + +/*EED 21 Avril 2009 + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + } else { + SetPoint(0,x,y,z); + SetPoint(1,x,y,z); + } + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } +*/ + + GetManualViewBaseContour()->Refresh(); +} +// ---------------------------------------------------------------------------- + +void manualCircleControler::MouseMove(int x, int y) // virtual +{ + int z=GetZ(); +// this->_vtkInteractorStyleBaseView-> + + GetManualViewBaseContour()->SelectPosibleContour(x,y,z); + GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); + + if (GetState()==1){ SetPoint( bakIdPoint , x , y ,z); } + if (GetState()==5){ SetPoint( bakIdPoint , x , y ,z); } + + if (GetState()==6){ + GetManualViewBaseContour()->MoveContour(x,y,z); + } + GetManualViewBaseContour()->Refresh(); +} + + +// ---------------------------------------------------------------------------- +void manualCircleControler::DeleteActualMousePoint(int x, int y) // virtual +{ +} +// ---------------------------------------------------------------------------- + +void manualCircleControler::InitRoi(int ww, int hh, double porcentage) +{ + int zz; + manualPoint *mp; + + if (GetManualContourModel()->GetSizeLstPoints() ==0) + { + zz = GetZ(); + AddPoint(0,0,zz); + AddPoint(0,0,zz); +// AddPoint(0,0,zz); +// AddPoint(0,0,zz); + } + + double pp1=porcentage; + double pp2=1-porcentage; + +// mp = GetManualContourModel()->GetManualPoint(2); +// zz=(int)mp->GetZ(); +// mp->SetPoint(ww*pp1,hh*pp1,zz); + + mp = GetManualContourModel()->GetManualPoint(1); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp1,zz); + + mp = GetManualContourModel()->GetManualPoint(0); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp2,zz); + +// mp = GetManualContourModel()->GetManualPoint(3); +// zz=(int)mp->GetZ(); +// mp->SetPoint(ww*pp1,hh*pp2,zz); + + GetManualViewBaseContour() ->UpdateViewPoint(0); + GetManualViewBaseContour() ->UpdateViewPoint(1); +// GetManualViewBaseContour() ->UpdateViewPoint(2); +// GetManualViewBaseContour() ->UpdateViewPoint(3); + + SetState(0); + GetManualViewBaseContour()->Refresh(); +} + +// ---------------------------------------------------------------------------- +/* +void manualCircleControler::SetRoi(int x1, int y1,int x2, int y2) +{ + manualPoint *mp; + InitRoi( 0 , 0 , 0.2 ); + mp = GetManualContourModel()->GetManualPoint(2); + mp->SetPointX(x1); + mp->SetPointY(y1); + + mp = GetManualContourModel()->GetManualPoint(1); + mp->SetPointX(x2); + mp->SetPointY(y1); + + mp = GetManualContourModel()->GetManualPoint(0); + mp->SetPointX(x2); + mp->SetPointY(y2); + + mp = GetManualContourModel()->GetManualPoint(3); + mp->SetPointX(x1); + mp->SetPointY(y2); + + GetManualViewBaseContour() ->UpdateViewPoint(0); + GetManualViewBaseContour() ->UpdateViewPoint(1); + GetManualViewBaseContour() ->UpdateViewPoint(2); + GetManualViewBaseContour() ->UpdateViewPoint(3); +} +*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.h new file mode 100644 index 0000000..a365b17 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualCircleControler.h @@ -0,0 +1,31 @@ +#ifndef manualCircleControler_h +#define manualCircleControler_h + +#include "manualContourControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// EED08 +class creaMaracasVisu_EXPORT manualCircleControler: public manualContourControler +{ +public: + manualCircleControler(); + virtual ~manualCircleControler(); + virtual manualCircleControler * Clone(); + void CopyAttributesTo( manualCircleControler *cloneObject ); + + virtual void MouseClickLeft(int x, int y); + virtual void MouseMove(int x, int y ); + virtual void DeleteActualMousePoint(int x, int y); + void InitRoi(int ww, int hh, double porcentage); +// void SetRoi(int x1, int y1,int x2, int y2); + virtual void Configure(); + + +private: + int bakIdPoint; +}; + +#endif // manualCircleControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.cpp new file mode 100644 index 0000000..542d761 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.cpp @@ -0,0 +1,103 @@ +#include "manualContour3DControler.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContour3DControler::manualContour3DControler() +{ +} +// ---------------------------------------------------------------------------- +manualContour3DControler::~manualContour3DControler() +{ +} +// ---------------------------------------------------------------------------- +manualContour3DControler * manualContour3DControler :: Clone() // virtual +{ + manualContour3DControler * clone = new manualContour3DControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualContour3DControler::CopyAttributesTo( manualContour3DControler * cloneObject) +{ + // Fathers object + manualContourControler::CopyAttributesTo(cloneObject); + + cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); +} + +// ---------------------------------------------------------------------------- +bool manualContour3DControler::OnLeftButtonDown() +{ + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + MouseClickLeft(X,Y); + return true; +} +// ---------------------------------------------------------------------------- +void manualContour3DControler::ResetOrientationPlane() +{ + double p[3],rp[3],rn[3]; + p[0] = this->GetVtkMPRBaseData()->GetX( ); + p[1] = this->GetVtkMPRBaseData()->GetY( ); + p[2] = this->GetVtkMPRBaseData()->GetZ( ); + this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn); + this->GetVtkMPRBaseData()->SetNormal(rn[0],rn[1],rn[2]); +} +// ---------------------------------------------------------------------------- +void manualContour3DControler::MouseClickLeft(int x, int y) // virtual +{ + manualView3DContour *manualview3Dcontour=(manualView3DContour*)GetManualViewBaseContour(); + int id=manualview3Dcontour->GetIdPoint2(x,y); + if ( (GetState()==0) && (id!=-1) ) + { + manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id); + + this->GetVtkMPRBaseData()->SetX( mp->GetX() ); + this->GetVtkMPRBaseData()->SetY( mp->GetY() ); + this->GetVtkMPRBaseData()->SetZ( mp->GetZ() ); + ResetOrientationPlane(); + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + } + + + manualContourControler::MouseClickLeft(x,y); + +} +// ---------------------------------------------------------------------------- +bool manualContour3DControler::OnChar() +{ + bool ok=true; + manualContourControler::OnChar(); + char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); + if (keyCode==32){ + ok=false; + ResetOrientationPlane(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + return ok; +} + +// ---------------------------------------------------------------------------- +void manualContour3DControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ) +{ + _vtkmprbasedata=vtkmprbasedata; +} +// ---------------------------------------------------------------------------- +vtkMPRBaseData *manualContour3DControler::GetVtkMPRBaseData() +{ + return _vtkmprbasedata; +} + +// ---------------------------------------------------------------------------- +void manualContour3DControler::InsertPoint(int x, int y, int z ) // virtual +{ + manualContourControler::InsertPoint( x, y, z ); + ResetOrientationPlane(); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.h new file mode 100644 index 0000000..0e0ac0f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.h @@ -0,0 +1,36 @@ +#ifndef manualContour3DControler_h +#define manualContour3DControler_h + +#include "manualContourControler.h" +#include "manualView3DContour.h" + +/// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContour3DControler: public manualContourControler +{ +public: + manualContour3DControler(); + virtual ~manualContour3DControler(); + virtual manualContour3DControler * Clone(); + void CopyAttributesTo( manualContour3DControler *cloneObject ); + + virtual bool OnLeftButtonDown(); + virtual bool OnChar(); + virtual void InsertPoint(int x, int y, int z); + virtual void MouseClickLeft(int x, int y); + void ResetOrientationPlane(); + + vtkMPRBaseData *GetVtkMPRBaseData(); + void SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ); + + +protected: +private: + vtkMPRBaseData *_vtkmprbasedata; + +}; + + +#endif // manualContour3DControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.cpp new file mode 100644 index 0000000..8c31ea1 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.cpp @@ -0,0 +1,87 @@ +#include "manualContour3V3DControler.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContour3V3DControler::manualContour3V3DControler() +{ +} +// ---------------------------------------------------------------------------- +manualContour3V3DControler::~manualContour3V3DControler() +{ +} + +// ---------------------------------------------------------------------------- +manualContour3V3DControler * manualContour3V3DControler :: Clone() // virtual +{ + manualContour3V3DControler * clone = new manualContour3V3DControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualContour3V3DControler::CopyAttributesTo( manualContour3V3DControler * cloneObject) +{ + // Fathers object + manualContour3DControler::CopyAttributesTo(cloneObject); + + cloneObject->SetManualContour3VControler( this->GetManualContour3VControler() ); +} +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::InsertPoint(int x, int y, int z ) // virtual +{ + manualContour3DControler::InsertPoint( x, y, z ); + _manualcontour3Vcontroler->InsertPoint_Others(0); +} +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::AddPoint( int x, int y, int z ) +{ + manualContour3DControler::AddPoint( x, y, z ); + _manualcontour3Vcontroler->AddPoint_Others(); +} +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::DeleteActualMousePoint(int x, int y) +{ + int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); + manualContour3DControler::DeleteActualMousePoint( x , y ); + _manualcontour3Vcontroler->DeleteActualMousePoint_Others(id); +} +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::MouseMove( int x, int y ) +{ + int ss =this->_vtkInteractorStyleBaseView->vtkInteractorStyle::GetState(); + if ((this->GetState()!=7) && (ss!=1)){ + manualContour3DControler::MouseMove( x , y ); + int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); + _manualcontour3Vcontroler->MouseMove_Others(id); + } +} +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler) +{ + _manualcontour3Vcontroler = manualcontour3Vcontroler; +} +// ---------------------------------------------------------------------------- +manualContour3VControler *manualContour3V3DControler::GetManualContour3VControler() +{ + return _manualcontour3Vcontroler; +} +// ---------------------------------------------------------------------------- +bool manualContour3V3DControler::OnChar() // virtual +{ + if (manualContour3DControler::OnChar()==false ) + { + _manualcontour3Vcontroler->OnChar_Others(); + } + return true; +} + +// ---------------------------------------------------------------------------- +void manualContour3V3DControler::ResetContour() // virtual +{ + manualContourControler::ResetContour(); + _manualcontour3Vcontroler->ResetContour_Others(); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.h new file mode 100644 index 0000000..784eb90 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3V3DControler.h @@ -0,0 +1,37 @@ +#ifndef manualContour3V3DControler_h +#define manualContour3V3DControler_h + +#include "manualContour3DControler.h" +#include "manualContour3VControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContour3V3DControler: public manualContour3DControler +{ +public: + manualContour3V3DControler(); + virtual ~manualContour3V3DControler(); + virtual manualContour3V3DControler * Clone(); + void CopyAttributesTo( manualContour3V3DControler *cloneObject ); + + void SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler); + manualContour3VControler *GetManualContour3VControler(); + + virtual bool OnChar(); + virtual void AddPoint( int x, int y, int z ); + virtual void DeleteActualMousePoint(int x, int y); + virtual void MouseMove(int x, int y); + virtual void InsertPoint(int x, int y, int z); + virtual void ResetContour(); + + +protected: +private: + manualContour3VControler *_manualcontour3Vcontroler; + +}; + + +#endif // manualContour3V3DControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.cpp new file mode 100644 index 0000000..1ad857a --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.cpp @@ -0,0 +1,354 @@ +#include "manualContour3VControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// _type = 0 Sagital +// _type = 1 Coronal +// _type = 2 Axial +// _type = -1 View 3D + +manualContour3VControler::manualContour3VControler(int type) +{ + _type=type; + +//EEDhh +// _manViewBaseCont1 = NULL; +// _manViewBaseCont2 = NULL; +// _manViewBaseCont3 = NULL; +} +//---------------------------------------------------------------------------- +manualContour3VControler::~manualContour3VControler() +{ +} + +// ---------------------------------------------------------------------------- +manualContour3VControler * manualContour3VControler :: Clone() // virtual +{ + manualContour3VControler * clone = new manualContour3VControler( this->GetType() ); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualContour3VControler::CopyAttributesTo( manualContour3VControler * cloneObject) +{ + // Fathers object + manualContourControler::CopyAttributesTo(cloneObject); + + cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); + + // Remember to add ManualViewBaseContour with "AddManualViewBaseContour" + +} +// ---------------------------------------------------------------------------- +int manualContour3VControler::GetType() +{ + return _type; +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::AddPoint_Others() +{ + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->AddPoint(); + } + +// EEDhh +// if (_manViewBaseCont1!=NULL){ +// _manViewBaseCont1->AddPoint(); +// _manViewBaseCont2->AddPoint(); +// _manViewBaseCont3->AddPoint(); +// this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +// } + + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::AddPoint( int x, int y, int z ) // virtual +{ + + z=(int)_vtkmprbasedata->GetZ(); + if (GetManualContourModel()!=NULL){ + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); + + if (_type==0) + { + xx=_vtkmprbasedata->GetX(); + } + + if (_type==1) + { + yy=_vtkmprbasedata->GetY(); + } + + + /*int id = */ GetManualContourModel()->AddPoint(xx,yy,zz); // JPRx + GetManualViewBaseContour()->AddPoint(); + AddPoint_Others(); + + } +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::InsertPoint_Others(int id) +{ + + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->InsertPoint(id); + } + +/*EEDhh + if (_manViewBaseCont1!=NULL){ + _manViewBaseCont1->InsertPoint(id); + _manViewBaseCont2->InsertPoint(id); + _manViewBaseCont3->InsertPoint(id); + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + } +*/ + + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::InsertPoint(int x, int y, int z) +{ + int id=-1; + if (GetManualContourModel()!=NULL){ + if (GetManualContourModel()->GetSizeLstPoints()>1){ + z=(int)_vtkmprbasedata->GetZ(); + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); + if (_type==0) + { + xx=_vtkmprbasedata->GetX(); + } + + if (_type==1) + { + yy=_vtkmprbasedata->GetY(); + } + + id = GetManualContourModel()->InsertPoint(xx,yy,zz); + + GetManualViewBaseContour()->InsertPoint(id); + InsertPoint_Others(0); + + } else { + AddPoint(x,y,z); + } + } +} +// ---------------------------------------------------------------------------- + +// EEDhh +/* +void manualContour3VControler::SetModelView ( manualContourModel *manContModel, + manualViewBaseContour *manViewBaseCont0, + manualViewBaseContour *manViewBaseCont1, + manualViewBaseContour *manViewBaseCont2, + manualViewBaseContour *manViewBaseCont3) +{ + manualContourControler::SetModelView(manContModel,manViewBaseCont0); + _manViewBaseCont1 = manViewBaseCont1; + _manViewBaseCont2 = manViewBaseCont2; + _manViewBaseCont3 = manViewBaseCont3; +} +*/ + +// ---------------------------------------------------------------------------- +void manualContour3VControler::AddManualViewBaseContour( manualViewBaseContour *manViewBaseCont ) +{ + _lstManualViewBaseContour.push_back( manViewBaseCont ); +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ) +{ + _vtkmprbasedata=vtkmprbasedata; +} +// ---------------------------------------------------------------------------- +vtkMPRBaseData *manualContour3VControler::GetVtkMPRBaseData() +{ + return _vtkmprbasedata; +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::SetPoint( int id ,int x ,int y ,int z ) // virtual +{ + z=(int)_vtkmprbasedata->GetZ(); + if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz,_type); + + if (_type==0) + { + xx=_vtkmprbasedata->GetX(); + } + if (_type==1) + { + yy=_vtkmprbasedata->GetY(); + } + + manualPoint *mp = GetManualContourModel()->GetManualPoint(id); + mp->SetPoint(xx,yy,zz); + + } +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::DeleteActualMousePoint_Others(int id) +{ + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->DeletePoint(id); + mvbc->Refresh(); + } + +/* + if (_manViewBaseCont1!=NULL){ + _manViewBaseCont1->DeletePoint(id); + _manViewBaseCont2->DeletePoint(id); + _manViewBaseCont3->DeletePoint(id); + + _manViewBaseCont1->Refresh(); + _manViewBaseCont2->Refresh(); + _manViewBaseCont3->Refresh(); + + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + } +*/ + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::DeleteActualMousePoint(int x, int y)// virtual +{ + int id=GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); + if (id!=-1){ + manualContourBaseControler::DeleteActualMousePoint( x , y ); + DeleteActualMousePoint_Others( id ); + } +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::MouseMove_Others(int id) // virtual +{ + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->SelectAllPossibleSelected(false); + if (id!=-1) + { + mvbc->SetPointPosibleSelected(id,true); + } + mvbc->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); + mvbc->Refresh(); + } + +// EEDhh +/* + if (_manViewBaseCont1!=NULL){ + _manViewBaseCont1->SelectAllPossibleSelected(false); + _manViewBaseCont2->SelectAllPossibleSelected(false); + _manViewBaseCont3->SelectAllPossibleSelected(false); + if (id!=-1){ + _manViewBaseCont1->SetPointPosibleSelected(id,true); + _manViewBaseCont2->SetPointPosibleSelected(id,true); + _manViewBaseCont3->SetPointPosibleSelected(id,true); + } + _manViewBaseCont1->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); + _manViewBaseCont2->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); + _manViewBaseCont3->SetPosibleSelected ( GetManualViewBaseContour()->GetPosibleSelected() ); + + _manViewBaseCont1->Refresh(); + _manViewBaseCont2->Refresh(); + _manViewBaseCont3->Refresh(); + + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + } +*/ + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::MouseMove(int x, int y) // virtual +{ + manualContourControler::MouseMove( x , y ); + int id=GetManualViewBaseContour()->GetIdPoint(x,y,GetZ()); + MouseMove_Others( id ); +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::OnChar_Others() +{ + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->Refresh(); + } +// EEDhh +/* + _manViewBaseCont1->Refresh(); + _manViewBaseCont2->Refresh(); + _manViewBaseCont3->Refresh(); +*/ + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +} +// ---------------------------------------------------------------------------- +bool manualContour3VControler::OnChar() +{ + manualContourControler::OnChar(); + OnChar_Others(); + return true; +} +// ---------------------------------------------------------------------------- +void manualContour3VControler::ResetContour() // virtual +{ + manualContourControler::ResetContour(); + ResetContour_Others(); +} + +// ---------------------------------------------------------------------------- +void manualContour3VControler::ResetContour_Others() +{ + manualViewBaseContour *mvbc; + int i,size=this->_lstManualViewBaseContour.size(); + for ( i = 0 ; i < size ; i++ ) + { + mvbc = _lstManualViewBaseContour[i]; + mvbc->DeleteContour(); + mvbc->CreateNewContour(); + } + +// EEDhh +/* + _manViewBaseCont1->DeleteContour(); + _manViewBaseCont2->DeleteContour(); + _manViewBaseCont3->DeleteContour(); + _manViewBaseCont1->CreateNewContour(); + _manViewBaseCont2->CreateNewContour(); + _manViewBaseCont3->CreateNewContour(); +*/ +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.h new file mode 100644 index 0000000..b9c746f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3VControler.h @@ -0,0 +1,49 @@ +#ifndef manualContour3VControler_h +#define manualContour3VControler_h + +#include "manualContourControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContour3VControler: public manualContourControler +{ +public: + manualContour3VControler(int type); + virtual ~manualContour3VControler(); + virtual manualContour3VControler * Clone(); + void CopyAttributesTo( manualContour3VControler *cloneObject ); + + virtual bool OnChar(); + virtual void AddPoint(int x, int y, int z); + virtual void InsertPoint(int x, int y, int z); + virtual void MouseMove(int x, int y); + virtual void ResetContour(); + + void AddManualViewBaseContour( manualViewBaseContour *manViewBaseCont ); + + vtkMPRBaseData *GetVtkMPRBaseData(); + void SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ); + virtual void SetPoint( int id ,int x ,int y ,int z ); + + virtual void DeleteActualMousePoint(int x, int y); + + void AddPoint_Others(); + void DeleteActualMousePoint_Others(int id); + void MouseMove_Others(int id); + void InsertPoint_Others(int id); + void OnChar_Others(); + void ResetContour_Others(); + int GetType(); + +private: + int _type; + + vtkMPRBaseData *_vtkmprbasedata; + + std::vector< manualViewBaseContour* > _lstManualViewBaseContour; +}; + + +#endif // manualContour3VControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp new file mode 100644 index 0000000..519061d --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp @@ -0,0 +1,539 @@ +#include "manualContourBaseControler.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContourBaseControler::manualContourBaseControler() +{ + _manViewBaseCont = NULL; + _manContModel = NULL; + _state = 0; + _z = 900; + _editable = true; + _posibleToMove = true; + _moving = false; + _created = false; + _keyBoardMoving = false; +} +// ---------------------------------------------------------------------------- +manualContourBaseControler::~manualContourBaseControler() +{ +} + +// ---------------------------------------------------------------------------- +manualContourBaseControler * manualContourBaseControler :: Clone() // virtual +{ + manualContourBaseControler * clone = new manualContourBaseControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourBaseControler::CopyAttributesTo( manualContourBaseControler * cloneObject) +{ + // Fathers object + InteractorStyleMaracas::CopyAttributesTo(cloneObject); + cloneObject->SetZ( this->GetZ() ); + cloneObject->SetState( this->GetState() ); + cloneObject->SetEditable( this->IsEditable() ); + cloneObject->SetPosibleToMove( this->GetPosibleToMove() ); + cloneObject->SetMoving( this->IsMoving() ); + cloneObject->SetCompleteCreation( this->GetIfCompleteCreation() ); + cloneObject->SetKeyBoardMoving( this->GetKeyBoardMoving() ); +} + +// ---------------------------------------------------------------------------- +void manualContourBaseControler::Configure() //virtual +{ +} + +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnChar() +{ + if ( _vtkInteractorStyleBaseView!=NULL ) + { + char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); + + int X,Y; + wxVTKRenderWindowInteractor *_wxVTKiren; + _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + _wxVTKiren->GetEventPosition(X, Y); + //int Z = GetZ(); // JPRx + // Delete Point + if ((keyCode==8) || (keyCode==127)) + { + + if (!GetManualViewBaseContour()->GetPosibleSelected()==true) + { + DeleteActualMousePoint(X,Y); + } + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + else + { + // Magnet + if (keyCode==32) + { + Magnet(X,Y); + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + else if( !IsEditable() ) + { + if ( keyCode == 'L' ) + { + GetManualViewBaseContour()->MoveContour( -1, 0 ); + SetKeyBoardMoving( true ); + } + else if ( keyCode == 'R' ) + { + GetManualViewBaseContour()->MoveContour( 1, 0 ); + SetKeyBoardMoving( true ); + } + else if ( keyCode == 'U' ) + { + GetManualViewBaseContour()->MoveContour( 0, -1 ); + SetKeyBoardMoving( true ); + } + else if ( keyCode == 'D' ) + { + GetManualViewBaseContour()->MoveContour( 0, 1 ); + SetKeyBoardMoving( true ); + } + else if ( keyCode == 'W' )//Diagonal left down + { + GetManualViewBaseContour()->MoveContour( -1, 1 ); + SetKeyBoardMoving( true ); + } + else if ( keyCode == 'Q' )//Diagonal left up + { + GetManualViewBaseContour()->MoveContour( -1, -1 ); + SetKeyBoardMoving( true ); + } + else if( keyCode == 'P' )//Diagonal right up + { + GetManualViewBaseContour()->MoveContour( 1, -1 ); + SetKeyBoardMoving( true ); + } + else if( keyCode == 'M' )//Diagonal right down + { + GetManualViewBaseContour()->MoveContour( 1, 1 ); + SetKeyBoardMoving( true ); + } + if( GetKeyBoardMoving() ) + { + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + } + } + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnMouseMove() +{ + + if ( _vtkInteractorStyleBaseView!=NULL) + { + int X,Y; + wxVTKRenderWindowInteractor *_wxVTKiren; + _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + _wxVTKiren->GetEventPosition( X , Y ); + + + if ( (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && + (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ) { + MouseMove(X,Y); + } + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnLeftButtonDown() +{ + SetKeyBoardMoving( false ); + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + MouseClickLeft(X,Y); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnLeftButtonUp() +{ + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + MouseReleaseLeft(X,Y); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnLeftDClick() +{ + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + this->MouseDLeft(X,Y); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnMiddleButtonDown() +{ +// SetKeyBoardMoving( false ); + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + GetManualViewBaseContour()->InitMove( X, Y,GetZ()); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnMiddleButtonUp() +{ + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnRightButtonDown() +{ + if( _vtkInteractorStyleBaseView!= NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X, Y); + + SetCompleteCreation( true ); + SetKeyBoardMoving( false ); + MouseClickRight(X,Y); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::OnRightButtonUp() +{ + return true; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetModelView(manualContourModel *manContModel, manualViewBaseContour *manViewBaseCont){ + _manContModel = manContModel; + _manViewBaseCont = manViewBaseCont; + _manViewBaseCont->SetEditable( &_editable ); +} +// ---------------------------------------------------------------------------- +manualContourModel* manualContourBaseControler::GetManualContourModel() +{ + return _manContModel; +} +// ---------------------------------------------------------------------------- +manualViewBaseContour* manualContourBaseControler::GetManualViewBaseContour() +{ + return _manViewBaseCont; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::MouseClickLeft(int x, int y) // virtual +{ + +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::MouseClickRight(int x, int y) +{ +// if (_state==1) +// { +// _state=0; +// } + SetEditable( false ); + SetPosibleToMove( false ); + _state = 0; + +//EED 24Avril2009 _state=7; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::MouseReleaseLeft(int x, int y) +{ + if (_state==5){ _state = 0; } + if (_state==6){ _state = 0; } + if (_state==7){ _state = 0; } + SetMoving( false ); + GetManualViewBaseContour()->SelectPosibleContour(x,y,GetZ()); + if( GetIfCompleteCreation() && IsEditable() && !GetManualViewBaseContour()->GetPosibleSelected() && (GetManualViewBaseContour()->GetIdPoint(x,y,GetZ())==-1) ) + { + SetEditable( false ); + SetPosibleToMove( false ); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::MouseDLeft(int x, int y ) +{ + if (_state==0) + { + int z=GetZ(); + GetManualViewBaseContour()->SelectPosibleContour(x,y,z); + GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); + if ( GetManualViewBaseContour()->GetPosibleSelected() ) + { + _editable = true; + } + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::MouseMove(int x, int y) // virtual +{ +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetState(int state) +{ + _state=state; +} +// ---------------------------------------------------------------------------- +int manualContourBaseControler::GetState() +{ + return _state; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::IsEditable( ) +{ + return _editable; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetEditable( bool condition ) +{ + if (GetManualViewBaseContour()!=NULL) { + if( !condition ) + { + GetManualViewBaseContour()->RemoveControlPoints(); + } + GetManualViewBaseContour()->SetSelected( condition ); + } + _editable = condition; +} + +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::GetPosibleToMove() +{ + return _posibleToMove; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetPosibleToMove( bool condition ) +{ + _posibleToMove = condition; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::IsMoving() +{ + return _moving; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetMoving( bool condition ) +{ + _moving = condition; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetCompleteCreation( bool condition ) +{ + _created = condition; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::GetIfCompleteCreation ( ) +{ + return _created; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetKeyBoardMoving( bool condition ) +{ + _keyBoardMoving = condition; +} +// ---------------------------------------------------------------------------- +bool manualContourBaseControler::GetKeyBoardMoving( ) +{ + return _keyBoardMoving; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::CreateNewManualContour(){ + _manViewBaseCont->CreateNewContour(); +} +// ---------------------------------------------------------------------------- +int manualContourBaseControler::GetNumberOfPointsManualContour(){ + return _manViewBaseCont->GetNumberOfPoints(); +} +// ---------------------------------------------------------------------------- + +//JSTG - 25-02-08 ------------------------------------------------------------- +int manualContourBaseControler::GetNumberOfPointsSplineManualContour(){ + //return _manViewBaseCont->GetNumberOfPointsSpline(); + return _manContModel->GetNumberOfPointsSpline(); +} +// ---------------------------------------------------------------------------- + +double* manualContourBaseControler::GetVectorPointsXManualContour(){ + return _manViewBaseCont->GetVectorPointsXManualContour(); +} +// ---------------------------------------------------------------------------- +double* manualContourBaseControler::GetVectorPointsYManualContour(){ + return _manViewBaseCont->GetVectorPointsYManualContour(); +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::DeleteContour(){ + _manViewBaseCont->DeleteContour(); + _manContModel->DeleteAllPoints(); +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::DeleteActualMousePoint(int x, int y)// virtual +{ + if ((_manContModel!=NULL) && (_manViewBaseCont!=NULL) ) + { + int id=_manViewBaseCont->GetIdPoint(x,y,GetZ()); + if ((id!=-1) && (_manContModel->GetSizeLstPoints()>2) ){ + _manContModel->DeletePoint(id); + _manViewBaseCont->DeletePoint(id); + } + } + _state = 0; +} + +// ---------------------------------------------------------------------------- +void manualContourBaseControler::Magnet(int x, int y) +{ + if( IsEditable()) + { + /*int id= */ _manViewBaseCont->GetIdPoint(x,y,GetZ()); // JPRx + if (GetManualContourModel()!=NULL){ + double xx = x; + double yy = y; + double zz = GetZ(); + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + int id = GetManualContourModel()->GetIdPoint(xx,yy,zz,32000,-1); + if (id!=-1) + { + manualPoint *mp = GetManualContourModel()->GetManualPoint(id); + mp->SetPoint(xx,yy,zz); + } + // GetManualViewBaseContour()->UpdateViewPoint(id); + } + _state = 0; + } +} + +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetZ(int z) +{ + _z=z; +} +// ---------------------------------------------------------------------------- +int manualContourBaseControler::GetZ() +{ + return _z; +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::AddPoint(int x, int y, int z) // virtual +{ + if (GetManualContourModel()!=NULL){ + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + /*int id =*/ GetManualContourModel()->AddPoint(xx,yy,zz); // JPRx + GetManualViewBaseContour()->AddPoint(); +// GetManualViewBaseContour()->UpdateViewPoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::InsertPoint(int x,int y,int z) // virtual +{ +//EEDzz + int id=-1; + if (GetManualContourModel()!=NULL){ + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + if (GetManualContourModel()->GetSizeLstPoints()>1){ + id = GetManualContourModel()->InsertPoint(xx,yy,zz); + GetManualViewBaseContour()->InsertPoint(id); +// GetManualViewBaseContour()->UpdateViewPoint(id); + } else { + GetManualContourModel()->AddPoint(xx,yy,zz); + GetManualViewBaseContour()->AddPoint(); +// AddPoint(x,y,z); +// GetManualViewBaseContour()->UpdateViewPoint(id); + } + } +} + +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetPoint( int id ,int x , int y , int z){ // virtual + if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ + double xx = x; + double yy = y; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + manualPoint *mp = _manContModel->GetManualPoint(id); + mp->SetPoint(xx,yy,zz); + GetManualViewBaseContour()->UpdateViewPoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetPointX( int id ,int x ){ + if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ + double xx = x; + double yy = 0; + double zz = 0; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + manualPoint *mp = _manContModel->GetManualPoint(id); + mp->SetPointX(xx); + GetManualViewBaseContour()->UpdateViewPoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetPointY( int id ,int y ){ + if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ + double xx = 0; + double yy = y; + double zz = 0; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + manualPoint *mp = _manContModel->GetManualPoint(id); + mp->SetPointY(yy); + GetManualViewBaseContour()->UpdateViewPoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::SetPointZ( int id ,int z ){ + if ((GetManualViewBaseContour()!=NULL) && (id>=0)){ + double xx = 0; + double yy = 0; + double zz = z; + GetManualViewBaseContour()->TransfromeCoordViewWorld(xx,yy,zz); + manualPoint *mp = _manContModel->GetManualPoint(id); + mp->SetPointZ(zz); + GetManualViewBaseContour()->UpdateViewPoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualContourBaseControler::ResetContour() // virtual +{ + this->DeleteContour(); + GetManualViewBaseContour()->CreateNewContour(); + this->SetState(0); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.h new file mode 100644 index 0000000..eb1ef54 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.h @@ -0,0 +1,144 @@ +#ifndef manualContourBaseControler_h +#define manualContourBaseControler_h + +#include "vtkRenderWindow.h" + +#include "vtkRenderer.h" +#include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! +#include "vtkCommand.h" +#include "vtkPolyData.h" +#include "vtkCellArray.h" +#include "vtkPolyDataMapper.h" +#include "vtkInteractorObserver.h" +#include "vtkInteractorStyleImage.h" +#include + +#include + + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include "widgets/UtilVtk3DGeometriSelection.h" +#include "widgets/InteractorStyleMaracas.h" + + +#include "wxVTKRenderWindowInteractor.h" + + +//-- + +#include +#include "wxVtkBaseView.h" +#include "marTypes.h" + +#include "manualContourModel.h" +#include "manualViewBaseContour.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContourBaseControler: public InteractorStyleMaracas +{ +public: + manualContourBaseControler(); + virtual ~manualContourBaseControler(); + + virtual manualContourBaseControler * Clone(); + void CopyAttributesTo( manualContourBaseControler *cloneObject ); + + virtual bool OnChar(); + virtual bool OnMouseMove(); + virtual bool OnLeftButtonDown(); + virtual bool OnLeftButtonUp(); + virtual bool OnLeftDClick(); + virtual bool OnMiddleButtonDown(); + virtual bool OnMiddleButtonUp(); + virtual bool OnRightButtonDown(); + virtual bool OnRightButtonUp(); + + void SetModelView(manualContourModel *manContModel, manualViewBaseContour *manViewBaseCont); + manualContourModel * GetManualContourModel(); + manualViewBaseContour * GetManualViewBaseContour(); + + + virtual void MouseClickLeft(int x, int y); + virtual void MouseClickRight(int x, int y); + virtual void MouseDLeft(int x, int y); + + virtual void MouseMove(int x, int y); + virtual void MouseReleaseLeft(int x, int y); + + void SetState(int state); + int GetState(); + bool IsEditable(); + void SetEditable( bool condition ); + bool GetPosibleToMove(); + void SetPosibleToMove( bool condition ); + bool IsMoving(); + void SetMoving( bool condition ); + void SetCompleteCreation( bool condition ); + bool GetIfCompleteCreation ( ); + void SetKeyBoardMoving( bool condition ); + bool GetKeyBoardMoving( ); + + void CreateNewManualContour(); + int GetNumberOfPointsManualContour(); + int GetNumberOfPointsSplineManualContour(); + void DeleteContour(); + virtual void DeleteActualMousePoint(int x, int y ); + double* GetVectorPointsXManualContour(); + double* GetVectorPointsYManualContour(); + + + void SetZ(int z); + virtual int GetZ(); + + virtual void AddPoint(int x, int y, int z); + virtual void InsertPoint(int x, int y, int z); + + virtual void SetPoint( int id ,int x ,int y ,int z); + void SetPointX( int id ,int x ); + void SetPointY( int id ,int y ); + void SetPointZ( int id ,int z ); + + void Magnet(int x, int y); + virtual void ResetContour(); + + virtual void Configure(); + + +//EED Borrame +// virtual manualContourBaseControler * Clone( manualViewBaseContour * cloneView = NULL, manualContourModel * cloneModel = NULL ); + + +private: + manualViewBaseContour *_manViewBaseCont; + manualContourModel *_manContModel; + + int _z; + int _state; + bool _editable; + bool _posibleToMove; + bool _moving; + bool _created; + bool _keyBoardMoving; + +}; + + +#endif // manualContourBaseControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp new file mode 100644 index 0000000..53729c5 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp @@ -0,0 +1,164 @@ +#include "manualContourControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// _state = 0 // ..nothing.. +// _state = 1 // move with add point +// _state = 5 // move +// _state = 6 // move with insert point +// _state = 7 // move with non selection + +manualContourControler::manualContourControler() +{ + _easyCreation = true; + +} +// ---------------------------------------------------------------------------- +manualContourControler::~manualContourControler() +{ +} +// ---------------------------------------------------------------------------- +manualContourControler * manualContourControler :: Clone() // virtual +{ + manualContourControler * clone = new manualContourControler(); + CopyAttributesTo(clone); + return clone; +} +// --------------------------------------------------------------------------- +void manualContourControler::CopyAttributesTo( manualContourControler * cloneObject) +{ + // Fathers object + manualContourBaseControler::CopyAttributesTo(cloneObject); + cloneObject->SetEasyCreation( this->GetEasyCreation() ); +} + +// ---------------------------------------------------------------------------- +void manualContourControler::Configure() //virtual +{ + // this->_manContModel->SetNumberOfPointsSpline(100); +} + +// ---------------------------------------------------------------------------- +void manualContourControler::MouseClickLeft(int x, int y){ + + + bool ok = false; + int z = GetZ(); + int size= GetManualViewBaseContour()->GetNumberOfPoints(); + + // Insert a Control Point with shift+ClickLeft + // int tt = GetState(); // JPRx + vtkRenderWindowInteractor *vtkrenderwindowinteractor = _vtkInteractorStyleBaseView->GetInteractor(); +//EED3131 + if( IsEditable() ) + { + if ( (_vtkInteractorStyleBaseView!=NULL) && (GetState()==0) && ( (vtkrenderwindowinteractor!=NULL) && (vtkrenderwindowinteractor->GetShiftKey()==1) ) ) + { + ok=true; + InsertPoint(x,y,z); + size++; + } + // Start to Insert Control Points with ClickLeft (Empty contour) + if ((GetState()==0) && (size==0) && (_easyCreation==true) ) + { + ok=true; + SetState(1); + AddPoint(x,y,z); + } + // Continuie to Insert Control Points with ClickLeft (After being empty the contour) + if ((GetState()==1) && (_easyCreation==true) ) + { + ok=true; + AddPoint(x,y,z); + _bakIdPoint=GetNumberOfPointsManualContour() - 1; + } + // Insert Control Points IF Contour si Selected + if ((GetState()==0) && GetManualViewBaseContour()->GetPosibleSelected() ) + { + ok=true; + InsertPoint(x,y,z); + _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(6); + } + // Chose id of Control Point to be move + if ( (GetState()==0 || GetState()==6) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ) + { + ok=true; + _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } + // If nothing selected _state=7 + if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)==-1 ) ) + { + //ok=true; + _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(7); + } + }else{ + SetPosibleToMove( true ); + GetManualViewBaseContour()->SetSelected( GetManualViewBaseContour()->GetPosibleSelected() ); + } // IsEditable + + if ( GetState() == 0 && GetManualViewBaseContour()->GetPosibleSelected() ) + { + SetMoving( true ); + ok=true; + GetManualViewBaseContour()->InitMove(x,y,z); + SetState(6); + } + if (ok==true) + { + GetManualViewBaseContour()->Refresh(); + } +} +// ---------------------------------------------------------------------------- +void manualContourControler::MouseMove(int x, int y) // virtual +{ + int z=GetZ(); + GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); + GetManualViewBaseContour()->SelectPosibleContour(x,y,z); + if (GetState()==1){ SetPoint( _bakIdPoint , x , y ,z); } + if (GetState()==5){ SetPoint( _bakIdPoint , x , y ,z); } + if ( GetState()==6 && !IsEditable() && GetPosibleToMove() &&IsMoving() ) + { + GetManualViewBaseContour()->MoveContour(x,y,z); + } + if (GetState()!=7 || GetManualViewBaseContour()->GetPosibleSelected() ){ + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + if (!IsEditable()) + { + GetManualViewBaseContour()->RemoveControlPoints(); +// GetManualViewBaseContour()->RemoveTextActor(); + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } + +} + +// ---------------------------------------------------------------------------- +void manualContourControler::MouseDLeft( int x, int y)//virtual +{ + manualContourBaseControler::MouseDLeft( x, y); + if ( IsEditable() ) + { + GetManualViewBaseContour()->AddControlPoints(); + GetManualViewBaseContour()->AddTextActor(); + GetManualViewBaseContour()->Refresh(); + this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); + } +} +// ---------------------------------------------------------------------------- +void manualContourControler::SetEasyCreation(bool easyCreation) +{ + _easyCreation=easyCreation; +} +// ---------------------------------------------------------------------------- +bool manualContourControler::GetEasyCreation() +{ + return _easyCreation; +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.h new file mode 100644 index 0000000..b41dce4 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.h @@ -0,0 +1,33 @@ +#ifndef manualContourControler_h +#define manualContourControler_h + +#include "manualContourBaseControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + + +class creaMaracasVisu_EXPORT manualContourControler: public manualContourBaseControler +{ +public: + manualContourControler(); + virtual ~manualContourControler(); + virtual manualContourControler * Clone(); + void CopyAttributesTo( manualContourControler *cloneObject ); + + virtual void MouseClickLeft(int x, int y); + virtual void MouseMove(int x, int y); + virtual void MouseDLeft( int x, int y); + void SetEasyCreation(bool easyCreation); + bool GetEasyCreation(); + + virtual void Configure(); + +protected: + int _bakIdPoint; +private: + bool _easyCreation; +}; + +#endif // manualContourControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.cpp new file mode 100644 index 0000000..0e4becc --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.cpp @@ -0,0 +1,681 @@ +#include "manualContourModel.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContourModel::manualContourModel() +{ + _cntSplineX = vtkKochanekSpline::New( ); + _cntSplineY = vtkKochanekSpline::New( ); + _cntSplineZ = vtkKochanekSpline::New( ); + + this->SetCloseContour(true); + + _cntSplineX->SetDefaultTension( 0 ); + _cntSplineX->SetDefaultBias( 0 ); + _cntSplineX->SetDefaultContinuity( 0 ); + + _cntSplineY->SetDefaultTension( 0 ); + _cntSplineY->SetDefaultBias( 0 ); + _cntSplineY->SetDefaultContinuity( 0 ); + + _cntSplineZ->SetDefaultTension( 0 ); + _cntSplineZ->SetDefaultBias( 0 ); + _cntSplineZ->SetDefaultContinuity( 0 ); + +//JSTG 25-02-08 ------------------------------------------------------------------------------------------------- + + // this parameter is reset in the VIRTUAL manualContourBaseControler::Configure + _sizePointsContour = 100; //JSTG 25-02-08 The change in the inisialization of these variable is critical. + + _delta_JSTG = 0.0; +//--------------------------------------------------------------------------------------------------------------- +} + +// ---------------------------------------------------------------------------- +manualContourModel::~manualContourModel() +{ + int i,size=_lstPoints.size(); + for (i=0;iRemoveAllPoints(); + _cntSplineY->RemoveAllPoints(); + _cntSplineZ->RemoveAllPoints(); + + _cntSplineX->Delete(); + _cntSplineY->Delete(); + _cntSplineZ->Delete(); +} +// ---------------------------------------------------------------------------- +int manualContourModel::AddPoint(double x,double y,double z) +{ + manualPoint *mp = new manualPoint(); + mp->SetPoint(x,y,z); + AddManualPoint(mp); + //UpdateSpline(); + + return _lstPoints.size()-1; +} +// ---------------------------------------------------------------------------- +int manualContourModel::InsertPoint(double x,double y,double z) +{ + double dd,ddmin=9999999; + int ibak=0; + double xx,x1,x2; + double yy,y1,y2; + double zz,z1,z2; + int i,ii,iii,size=_lstPoints.size(); + double j,MaxDivisions=20,porcentage; + int sizeB=size; + + if (_closeContour==false) + { + size=size-1; + } + + double jbak; + + for ( i=0 ; iGetX(); + y1=_lstPoints[ii]->GetY(); + z1=_lstPoints[ii]->GetZ(); + x2=_lstPoints[iii]->GetX(); + y2=_lstPoints[iii]->GetY(); + z2=_lstPoints[iii]->GetZ(); + for (j=0; j<=MaxDivisions; j++) + { + porcentage=(j/MaxDivisions); + xx=(x2-x1)*porcentage+x1; + yy=(y2-y1)*porcentage+y1; + zz=(z2-z1)*porcentage+z1; + dd=sqrt( (xx-x)*(xx-x) + (yy-y)*(yy-y) + (zz-z)*(zz-z) ); + if ( ddSetPoint(x,y,z); + //std::vector::iterator itNum = _lstPoints.begin() + ibak; + //_lstPoints.insert(itNum,mp); + InsertPoint_id(ibak,x,y,z); +//---------------------------------------------------------------------------- + + return ibak; +} +// ---------------------------------------------------------------------------- +void manualContourModel::InsertPoint_id(int id, double x, double y, double z) +{ + manualPoint *mp = new manualPoint(); + mp->SetPoint(x,y,z); + std::vector::iterator itNum = _lstPoints.begin() + id; + _lstPoints.insert(itNum,mp); +} +// ---------------------------------------------------------------------------- + +void manualContourModel::DeletePoint(int i) +{ + std::vector::iterator itNum = _lstPoints.begin() + i; + _lstPoints.erase(itNum); +} +// ---------------------------------------------------------------------------- +void manualContourModel::DeleteAllPoints() +{ + int i,size=_lstPoints.size(); + for (i=0;iUpdateSpline(); +} +// ---------------------------------------------------------------------------- + +void manualContourModel::MovePoint(int i,double dx,double dy,double dz) +{ + manualPoint *mp=_lstPoints[i]; + double x=mp->GetX()+dx; + double y=mp->GetY()+dy; + double z=mp->GetZ()+dz; + mp->SetPoint(x,y,z); +} +// ---------------------------------------------------------------------------- +void manualContourModel::MoveLstPoints(double dx,double dy,double dz) +{ + // ToDo +} +// ---------------------------------------------------------------------------- +void manualContourModel::MoveAllPoints(double dx,double dy,double dz) +{ + int i,size=_lstPoints.size(); + for (i=0;iGetX(); + yy=mp->GetY(); + zz=mp->GetZ(); + + if (type==-1) + { + if ((fabs(xx-x)ClosedOn(); + _cntSplineY->ClosedOn(); + _cntSplineZ->ClosedOn(); + } else { + _cntSplineX->ClosedOff(); + _cntSplineY->ClosedOff(); + _cntSplineZ->ClosedOff(); + } +} + +// ---------------------------------------------------------------------------- +bool manualContourModel::IfCloseContour() +{ + return _closeContour; +} + +// ---------------------------------------------------------------------------- + +void manualContourModel::UpdateSpline() // virtual +{ + int i, np; + np = _lstPoints.size(); + manualPoint *mp; + _cntSplineX->RemoveAllPoints(); + _cntSplineY->RemoveAllPoints(); + _cntSplineZ->RemoveAllPoints(); + for( i = 0; i < np; i++ ) { + mp = GetManualPoint(i); + _cntSplineX->AddPoint( i, mp->GetX() ); + _cntSplineY->AddPoint( i, mp->GetY() ); + _cntSplineZ->AddPoint( i, mp->GetZ() ); + } // rof + +//JSTG 25-02-08 --------------------------------------------------------------------------------------------- + if (this->_closeContour==true) + { + _delta_JSTG = (double) (np) / double (_sizePointsContour - 1); //Without the -1 the curve is not close + } else { +// _delta_JSTG = (double) (np-1) / double (_sizePointsContour ); //Without the -1 the curve is not close + _delta_JSTG = (double) (np) / double (_sizePointsContour-1 ); //Without the -1 the curve is not close + } +//----------------------------------------------------------------------------------------------------------- +} + +//--------------------------------------------------------------------------------- + +/*void manualContourModel::GetSplineiPoint(int i, double &x, double &y, double &z) +{ + double delta=(double)(_lstPoints.size()) / (double)(_sizePointsContour); + double t = delta*(double)i; + GetSplinePoint(t, x, y, z); +}*/ + +//----------------------------------------------------------------------------- + +//JSTG 25-02-08 --------------------------------------------------------------- +void manualContourModel::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtal +{ + GetSpline_t_Point(i*_delta_JSTG,x,y,z); +} + +// ---------------------------------------------------------------------------- + +//JSTG 25-02-08 --------------------------------------------------------------- +void manualContourModel::GetSpline_t_Point(double t, double *x, double *y, double *z) +{ + if (_lstPoints.size()==0) + { + *x = 0; + *y = 0; + *z = 0; + } + if (_lstPoints.size()==1) + { + manualPoint *mp; + mp = GetManualPoint(0); + *x = mp->GetX(); + *y = mp->GetY(); + *z = mp->GetZ(); + } + if (_lstPoints.size()>=2) + { + *x = _cntSplineX->Evaluate(t); + *y = _cntSplineY->Evaluate(t); + *z = _cntSplineZ->Evaluate(t); + } +} + +// ---------------------------------------------------------------------------- + + +/*void manualContourModel::GetSplinePoint(double t, double &x, double &y, double &z) +{ + if (_lstPoints.size()==0) + { + x = 0; + y = 0; + z = 0; + } + if (_lstPoints.size()==1) + { + manualPoint *mp; + mp = GetManualPoint(0); + x = mp->GetX(); + y = mp->GetY(); + z = mp->GetZ(); + } + if (_lstPoints.size()>=2) + { + x = _cntSplineX->Evaluate(t); + y = _cntSplineY->Evaluate(t); + z = _cntSplineZ->Evaluate(t); + } +}*/ +// ---------------------------------------------------------------------------- +double manualContourModel::GetPathSize() +{ + double result = 0; + double x1,y1,z1; + double x2,y2,z2; + +// JSTG 25-02-08 ----------------------------- + //double t,delta; + //int i,np,nps; + int i; +//-------------------------------------------- + + if (_lstPoints.size()==2) + { + x1=_lstPoints[0]->GetX(); + y1=_lstPoints[0]->GetY(); + z1=_lstPoints[0]->GetZ(); + x2=_lstPoints[1]->GetX(); + y2=_lstPoints[1]->GetY(); + z2=_lstPoints[1]->GetZ(); + result = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1) ); + } + if (_lstPoints.size()>2) + { + +// JSTG 25-02-08 ------------------------------------------ + //np = _lstPoints.size( ); + //nps = 200; + //delta=( double ) ( np ) / ( double ) ( nps ); + UpdateSpline(); + //GetSplinePoint(0,x1,y1,z1); + GetSpline_i_Point(0,&x1,&y1,&z1); + + //for( i = 1; i < nps; i++ ) + for( i = 1; i < GetNumberOfPointsSpline(); i++ ) + { + //t = delta * (double)i; + //GetSplinePoint(t,x2,y2,z2); + GetSpline_i_Point(i,&x2,&y2,&z2); +//--------------------------------------------------------- + result=result + sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1) ); + x1=x2; + y1=y2; + z1=z2; + }// for + } + + return result; +} +// ---------------------------------------------------------------------------- +double manualContourModel::GetPathArea() +{ + double result = 555; + if ((_lstPoints.size()>=3) && IfCloseContour()==true ) + { + double area; +//JSTG 25-02-08 --------------------------------------------- + //double ti,tj; +//----------------------------------------------------------- + double x1,y1,z1; + double x2,y2,z2; + bool okArea=true; + int i, j; + + // This uses Green's theorem: + // A = 1/2 * sum( xiyi+1 - xi+1yi); pO == pN + // A < 0 -> A = |A| (a negative value could raise because points are + // given in clockwise order). + +//JSTG 25-02-08 ------------------------------------------------- + //int np = _lstPoints.size( ); + //int nps = 200; + int nps = GetNumberOfPointsSpline(); + //double delta=( double ) ( np ) / ( double ) ( nps ); + UpdateSpline(); + for( i = 0, area = 0.0; i < nps; i++ ) + { + j = ( i + 1 ) % nps; + //ti = delta * (double)i; + //tj = delta * (double)j; + //GetSplinePoint(ti,x1,y1,z1); + //GetSplinePoint(tj,x2,y2,z2); + GetSpline_i_Point(i,&x1,&y1,&z1); + GetSpline_i_Point(j,&x2,&y2,&z2); +//---------------------------------------------------------------- + area += + (x1 * y2 ) - + ( x2 * y1 ); + if (z1!=z2) + { + okArea=false; + } + }// for + area /= 2.0; + area = fabs( area ); + +/* + for( i = 0, area = 0.0; i < _lstPoints.size(); i++ ) + { + j = ( i + 1 ) % _lstPoints.size(); + // Area + area += + (_lstPoints[i]->GetX() * _lstPoints[j]->GetY() ) - + ( _lstPoints[j]->GetX() * _lstPoints[i]->GetY() ); + if (_lstPoints[0]->GetZ()!=_lstPoints[i]->GetZ()) + { + okArea=false; + } + } // rof + area /= 2.0; + area = fabs( area ); +*/ + + if (okArea==true) + { + result = area; + } else { + result = -1; + } + + } else { + result = 0; + } + return result; +} + +// ---------------------------------------------------------------------------- +// p[x,y,z] : data in +// rp[x,y,z] : data out result point +// rn[x,y,z] : data out result normal + +void manualContourModel::GetNearestPointAndNormal(double *p, double *rp, double *rn) +{ + double distMin=999999999; + double dist,dx,dy,dz; + double x1,y1,z1; + double x2,y2,z2; + int i,np,nps; + +//JSTG 25-02-08 ------------------- + //double tback; + int iback; + //double t,delta; +//--------------------------------- + + np = _lstPoints.size( ); + if (np>=2) + { +// JSTG 25-02-08 ------------------------------------------ + //nps = 200; + nps = GetNumberOfPointsSpline(); + //delta = ( double ) ( np ) / ( double ) ( nps ); + UpdateSpline(); + //GetSplinePoint(0,x1,y1,z1); + GetSpline_i_Point(0,&x1,&y1,&z1); + for( i = 0; i < nps; i++ ) + { + //t = delta * (double)i; + //GetSplinePoint(t,x1,y1,z1); + GetSpline_i_Point(i,&x1,&y1,&z1); +//---------------------------------------------------------- + dx= x1-p[0]; + dy= y1-p[1]; + dz= z1-p[2]; + dist = sqrt( dx*dx + dy*dy + dz*dz ); + if (distGetX(), mp->GetY(), mp->GetZ() ); + } +} + + +// --------------------------------------------------------------------------- + +void manualContourModel::CopyAttributesTo( manualContourModel * cloneObject) +{ + // Fathers object + //XXXX::CopyAttributesTo(cloneObject); + + cloneObject->SetCloseContour( this->IfCloseContour() ); + int i, size = GetSizeLstPoints(); + for( i=0; iAddManualPoint( GetManualPoint( i )->Clone() ); + } + cloneObject->SetNumberOfPointsSpline( GetNumberOfPointsSpline () ); + cloneObject->SetCloseContour( _closeContour ); + cloneObject->UpdateSpline(); +} + + +// --------------------------------------------------------------------------- +void manualContourModel::AddManualPoint( manualPoint* theManualPoint )//private +{ + _lstPoints.push_back( theManualPoint ); +} + +std::vector manualContourModel::ExploseModel( ) +{ + std::vector lstTmp; + lstTmp.push_back(this); + return lstTmp; +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h new file mode 100644 index 0000000..c4c3fa0 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModel.h @@ -0,0 +1,106 @@ +#ifndef manualContourModel_h +#define manualContourModel_h + +#include "vtkRenderWindow.h" + +#include "vtkRenderer.h" +#include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! +#include "vtkCommand.h" +#include "vtkPolyData.h" +#include "vtkCellArray.h" +#include "vtkPolyDataMapper.h" +#include "vtkInteractorObserver.h" +#include "vtkInteractorStyleImage.h" +#include + +#include + + +#include +#include +#include +#include + +#include "wxVTKRenderWindowInteractor.h" + + +//-- + +#include +#include "wxVtkBaseView.h" +#include "marTypes.h" +#include "manualPoint.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + + +class creaMaracasVisu_EXPORT manualContourModel +{ +public: + manualContourModel(); + virtual ~manualContourModel(); + + virtual manualContourModel * Clone(); + void CopyAttributesTo( manualContourModel *cloneObject ); + virtual void Open(FILE *ff); // virtual + virtual void Save(FILE *ff); // virtual + virtual int GetTypeModel(); // virtual + + int AddPoint(double x,double y,double z); + int InsertPoint(double x,double y,double z); +//JSTG 25-04-08 ------------------------------------------------------- + void InsertPoint_id(int id, double x,double y,double z); +//--------------------------------------------------------------------- + void AddManualPoint( manualPoint* theManualPoint ); + + void DeletePoint(int i); + void DeleteAllPoints(); + + void MovePoint(int i,double dx,double dy,double dz); + void MoveLstPoints(double dx,double dy,double dz); + void MoveAllPoints(double dx,double dy,double dz); + + int GetIdPoint(double x, double y, double z, int i_range,int type); + manualPoint* GetManualPoint(int id); + int GetSizeLstPoints(); + int GetNumberOfPointsSpline(); + void SetNumberOfPointsSpline(int size); + + virtual void UpdateSpline(); + void SetCloseContour(bool closeContour); + bool IfCloseContour(); +//JSTG 25-02-08 ----------------------------------------------------------------- + //void GetSplinePoint(double t, double &x, double &y, double &z); //Method Original + //void GetSplineiPoint(int i, double &x, double &y, double &z); //Method Original +//------------------------------------------------------------------------------- + double GetPathSize(); + double GetPathArea(); + + void GetNearestPointAndNormal(double *p, double *rp, double *rn); + +// JSTG 25-02-08 ----------------------------------------------------------------- + virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); + void GetSpline_t_Point(double t, double *x, double *y, double *z); +//-------------------------------------------------------------------------------- + + virtual std::vector ExploseModel( ); + +private: + int _sizePointsContour; + std::vector _lstPoints; + bool _closeContour; + vtkKochanekSpline *_cntSplineX; + vtkKochanekSpline *_cntSplineY; + vtkKochanekSpline *_cntSplineZ; + +//JSTG 25-02-08 ---------------------------------------- + double _delta_JSTG; +//------------------------------------------------------ + +}; + + +#endif // manualContourModel_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEye.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEye.cpp new file mode 100644 index 0000000..491e3d4 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEye.cpp @@ -0,0 +1,168 @@ +#include "manualContourModelBullEye.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContourModelBullEye::manualContourModelBullEye() +: manualContourModel() +{ + _numberPointsSlineBySector=101; // impaire +} + +manualContourModelBullEye::~manualContourModelBullEye() +{ +} + + +// ---------------------------------------------------------------------------- +manualContourModelBullEye * manualContourModelBullEye :: Clone() // virtual +{ + manualContourModelBullEye * clone = new manualContourModelBullEye(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourModelBullEye::CopyAttributesTo( manualContourModelBullEye * cloneObject) +{ + // Fathers object + manualContourModel::CopyAttributesTo(cloneObject); +} + +//---------------------------------------------------------------- +int manualContourModelBullEye::GetTypeModel() //virtual +{ + return 4; +} + +//---------------------------------------------------------------- +int manualContourModelBullEye::GetNumberOfPointsSplineSectorBulleEje() +{ + return _numberPointsSlineBySector; +} + +//---------------------------------------------------------------- +void manualContourModelBullEye::SetNumberOfPointsSplineSectorBulleEje(int numpoints) +{ + this->_numberPointsSlineBySector = numpoints; +} + +//---------------------------------------------------------------- +void manualContourModelBullEye::AddSector( double radioA, + double radioB, + double ang, + double angDelta) +{ + manualContourModelBullEyeSector *modelSector = new manualContourModelBullEyeSector(); + modelSector->SetSector(radioA,radioB,ang,angDelta); + modelSector->SetNumberOfPointsSpline( this->GetNumberOfPointsSplineSectorBulleEje() ); + _lstModelBullEyeSector.push_back(modelSector); +} + +//---------------------------------------------------------------- +manualContourModelBullEyeSector * manualContourModelBullEye::GetModelSector(int id) +{ + return _lstModelBullEyeSector[id]; +} + +//---------------------------------------------------------------- +void manualContourModelBullEye::GetSector(int id, + double *radioA, + double *radioB, + double *ang, + double *angDelta) +{ + _lstModelBullEyeSector[id]->GetSector(radioA,radioB,ang,angDelta); +} + +void manualContourModelBullEye::UpdateSpline() // virtual +{ + manualContourModel::UpdateSpline(); + + if (this->GetSizeLstPoints()>2){ + double cx,cy; + double ww,hh; + manualPoint *mpA = GetManualPoint(0); + manualPoint *mpB = GetManualPoint(2); + cx = (mpA->GetX() + mpB->GetX()) / 2.0; + cy = (mpA->GetY() + mpB->GetY()) / 2.0; + ww = fabs( mpA->GetX() - mpB->GetX() )/2.0; + hh = fabs( mpA->GetY() - mpB->GetY() )/2.0; + int i,size = _lstModelBullEyeSector.size(); + for (i=0;iSetCenter(cx,cy); + _lstModelBullEyeSector[i]->SetSize(ww,hh); + } // for + } +} + + +//---------------------------------------------------------------- +void manualContourModelBullEye::ResetSectors() +{ + int i,size=_lstModelBullEyeSector.size(); + for (i=0;iSave(ff); + } +} + +//---------------------------------------------------------------- +void manualContourModelBullEye::Open(FILE *ff) // virtual +{ + manualContourModel::Open(ff); + + ResetSectors(); + + char tmp[255]; + int i; + int numberOfSections; +// double radioA,radioB,ang,deltaAng; + + fscanf(ff,"%s",tmp); // NumberOfSections + fscanf(ff,"%s",tmp); // ## + numberOfSections = atoi(tmp); + for (i=0;iOpen(ff); + } + +} + +// ---------------------------------------------------------------------------- +std::vector manualContourModelBullEye::ExploseModel( ) +{ +//EED004 + std::vector lstTmp; + int i,iSize=_lstModelBullEyeSector.size(); + for (i=0;i ExploseModel( ); + + + +private: + int _numberPointsSlineBySector; + std::vector _lstModelBullEyeSector; + +/* Borrame Eduardo + std::vector _lstRadioA; + std::vector _lstRadioB; + std::vector _lstAng; + std::vector _lstAngDelta; +*/ + + virtual int GetTypeModel(); +}; + +#endif // manualContourModelBullEye_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.cpp new file mode 100644 index 0000000..f9a145b --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.cpp @@ -0,0 +1,148 @@ +#include "manualContourModelBullEyeSector.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContourModelBullEyeSector::manualContourModelBullEyeSector() +: manualContourModel() +{ +} + +manualContourModelBullEyeSector::~manualContourModelBullEyeSector() +{ +} + + +// ---------------------------------------------------------------------------- +manualContourModelBullEyeSector * manualContourModelBullEyeSector :: Clone() // virtual +{ + manualContourModelBullEyeSector * clone = new manualContourModelBullEyeSector(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourModelBullEyeSector::CopyAttributesTo( manualContourModelBullEyeSector * cloneObject) +{ + // Fathers object + manualContourModel::CopyAttributesTo(cloneObject); +} + +//---------------------------------------------------------------- +int manualContourModelBullEyeSector::GetTypeModel() //virtual +{ + return 5; +} + + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::SetSector( double radioA, + double radioB, + double ang, + double angDelta) +{ + _radioA = radioA; + _radioB = radioB; + _ang = ang*3.14159265/180.0; + _angDelta = angDelta*3.14159265/180.0; +} + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::GetSector( + double *radioA, + double *radioB, + double *ang, + double *angDelta) +{ + *radioA = _radioA; + *radioB = _radioB; + *ang = _ang; + *angDelta = _angDelta; +} + +// ---------------------------------------------------------------------------- +void manualContourModelBullEyeSector::SetCenter(double cx,double cy) +{ + _cx = cx; + _cy = cy; +} + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::SetSize(double ww,double hh) +{ + _ww = ww; + _hh = hh; +} + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::GetSpline_i_Point(int i, double *x, double *y, double *z) +{ +//EED004 + + int ii,nps; +// double x,y,z; + double ang,angcos, angsin; + double radio; + + nps = GetNumberOfPointsSpline() - 3; + + if (i==GetNumberOfPointsSpline()-1) + { + i=0; + } + + if (i<=nps/2) + { + ii=i; + radio=_radioA; + } else { + ii=nps-i+1; + radio=_radioB; + } + ang = ((double)ii/(nps/2))*_angDelta + _ang; + angcos = cos(ang); + angsin = sin(ang); + + *x = _ww*radio*angcos + _cx; + *y = _hh*radio*angsin + _cy; + *z= 900; +} + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::Save(FILE *ff) // virtual +{ + manualContourModel::Save(ff); + fprintf(ff,"rA= %f rB= %f ang= %f deltaAng= %f\n", _radioA,_radioB, _ang , _angDelta); +} + +//---------------------------------------------------------------- +void manualContourModelBullEyeSector::Open(FILE *ff) // virtual +{ + char tmp[255]; + fscanf(ff,"%s",tmp); // TypeModel + fscanf(ff,"%s",tmp); // ## + + manualContourModel::Open(ff); + + + fscanf(ff,"%s",tmp); // radioA= + fscanf(ff,"%s",tmp); // radioA + _radioA = atof(tmp); + + fscanf(ff,"%s",tmp); // radioB= + fscanf(ff,"%s",tmp); // radioB + _radioB = atof(tmp); + + fscanf(ff,"%s",tmp); // ang= + fscanf(ff,"%s",tmp); // ang + _ang = atof(tmp); + + fscanf(ff,"%s",tmp); // deltaAng= + fscanf(ff,"%s",tmp); // deltaAng + _angDelta = atof(tmp); +} + + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.h new file mode 100644 index 0000000..b3e209a --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelBullEyeSector.h @@ -0,0 +1,44 @@ +#ifndef manualContourModelBullEyeSector_h +#define manualContourModelBullEyeSector_h + +#include "manualContourModel.h" + + +//-------------------------------------------------------- + +class manualContourModelBullEyeSector : public manualContourModel +{ +public: + manualContourModelBullEyeSector(); + virtual ~manualContourModelBullEyeSector(); + virtual manualContourModelBullEyeSector *Clone(); + void CopyAttributesTo( manualContourModelBullEyeSector *cloneObject); + void SetSector( double radioA, + double radioB, + double ang, + double angDelta); + void GetSector( double *radioA, + double *radioB, + double *ang, + double *angDelta); + void SetSize(double ww,double hh); + void SetCenter(double cx,double cy); + virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); + virtual void Save(FILE *ff); + virtual void Open(FILE *ff); + +private: + double _radioA; + double _radioB; + double _ang; + double _angDelta; + double _ww; + double _hh; + double _cx; + double _cy; + + virtual int GetTypeModel(); +}; + + +#endif // manualContourModelBullEyeSector_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.cpp new file mode 100644 index 0000000..a6d6c2c --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.cpp @@ -0,0 +1,73 @@ +#include "manualContourModelCircle.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualContourModelCircle::manualContourModelCircle() +: manualContourModel() +{ +} + +manualContourModelCircle::~manualContourModelCircle() +{ +} + + +// ---------------------------------------------------------------------------- +manualContourModelCircle * manualContourModelCircle :: Clone() // virtual +{ + manualContourModelCircle * clone = new manualContourModelCircle(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourModelCircle::CopyAttributesTo( manualContourModelCircle * cloneObject) +{ + // Fathers object + manualContourModel::CopyAttributesTo(cloneObject); +} + +//---------------------------------------------------------------- +int manualContourModelCircle::GetTypeModel() //virtual +{ + return 3; +} + +//---------------------------------------------------------------- +void manualContourModelCircle::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtal +{ + double angle = _deltaAngle*i; + *x = _radio*cos(angle) + _centerX; + *y = _radio*sin(angle) + _centerY; + *z = _centerZ; +} + +// +// --------------------------------------------------------------------------- +void manualContourModelCircle::UpdateSpline() // virtal +{ + manualPoint *mpA,*mpB; + double difX,difY; + int np = GetSizeLstPoints( ); + int nps = GetNumberOfPointsSpline(); + _deltaAngle=(3.14159265*2)/(nps-1); + + if (np==2){ + mpA = GetManualPoint(0); + mpB = GetManualPoint(1); + difX = mpA->GetX() - mpB->GetX(); + difY = mpA->GetY() - mpB->GetY(); + _radio = sqrt( difX*difX + difY*difY ); + _centerX = mpA->GetX(); + _centerY = mpA->GetY(); + _centerZ = mpA->GetZ(); + } else { + _radio = -1; + _centerX = -1; + _centerY = -1; + _centerZ = -1; + } +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.h new file mode 100644 index 0000000..fd6bc87 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelCircle.h @@ -0,0 +1,25 @@ +#ifndef manualContourModelCircle_h +#define manualContourModelCircle_h + +#include "manualContourModel.h" + +class creaMaracasVisu_EXPORT manualContourModelCircle : public manualContourModel +{ +public: + manualContourModelCircle(); + virtual ~manualContourModelCircle(); + virtual manualContourModelCircle *Clone(); + void CopyAttributesTo( manualContourModelCircle *cloneObject); + virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); +private: + double _deltaAngle; + double _radio; + double _centerX; + double _centerY; + double _centerZ; + + virtual int GetTypeModel(); + virtual void UpdateSpline(); +}; + +#endif // manualContourModelCircle_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.cpp new file mode 100644 index 0000000..4a64e37 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.cpp @@ -0,0 +1,82 @@ +#include "manualContourModelLine.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +//AD: 02-09 + +manualContourModelLine::manualContourModelLine() +: manualContourModel() +{ + SetNumberOfPointsSpline(20); + this->SetCloseContour(false); +} + +manualContourModelLine::~manualContourModelLine() +{ +} + + +// ---------------------------------------------------------------------------- +manualContourModelLine * manualContourModelLine :: Clone() // virtual +{ + manualContourModelLine * clone = new manualContourModelLine(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourModelLine::CopyAttributesTo( manualContourModelLine * cloneObject) +{ + manualContourModel::CopyAttributesTo(cloneObject); +} + +//---------------------------------------------------------------- +int manualContourModelLine::GetTypeModel() //virtual +{ + return 6; +} + + +//---------------------------------------------------------------- +/* +void manualContourModelLine::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtual +{ + int np = GetSizeLstPoints(); + if (np==0) + { + *x = 0; + *y = 0; + *z = 0; + } + if (np==1) + { + manualPoint *mp; + mp = GetManualPoint(0); + *x = mp->GetX(); + *y = mp->GetY(); + *z = mp->GetZ(); + } + if (np==2) + { + manualPoint *mp; + + if (i==0) + { + mp = GetManualPoint(0); + } + else if (i==1) + { + mp = GetManualPoint(1); + } + + *x = mp->GetX(); + *y = mp->GetY(); + *z = mp->GetZ(); + } + +} +*/ + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.h new file mode 100644 index 0000000..54c5661 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelLine.h @@ -0,0 +1,20 @@ +#ifndef manualContourModelLine_h +#define manualContourModelLine_h + +#include "manualContourModel.h" + +//-------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContourModelLine : public manualContourModel +{ +public: + manualContourModelLine(); + virtual ~manualContourModelLine(); + virtual manualContourModelLine *Clone(); + void CopyAttributesTo( manualContourModelLine *cloneObject); +// virtual void GetSpline_i_Point(int i, double *x, double *y, double *z); +private: + virtual int GetTypeModel(); +}; + +#endif // manualContourModelLine_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.cpp new file mode 100644 index 0000000..a304abd --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.cpp @@ -0,0 +1,42 @@ +#include "manualContourModelRoi.h" + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- + +//JSTG 25-02-08 -------------------------------------------------- +manualContourModelRoi::manualContourModelRoi() +: manualContourModel() +{ + SetNumberOfPointsSpline(5); +} + +manualContourModelRoi::~manualContourModelRoi() +{ +} + + +// ---------------------------------------------------------------------------- +manualContourModelRoi * manualContourModelRoi :: Clone() // virtual +{ + manualContourModelRoi * clone = new manualContourModelRoi(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualContourModelRoi::CopyAttributesTo( manualContourModelRoi * cloneObject) +{ + // Fathers object + manualContourModel::CopyAttributesTo(cloneObject); +} + +//---------------------------------------------------------------- +int manualContourModelRoi::GetTypeModel() //virtual +{ + return 2; +} + +//---------------------------------------------------------------- \ No newline at end of file diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.h new file mode 100644 index 0000000..3ef2c32 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourModelRoi.h @@ -0,0 +1,19 @@ +#ifndef manualContourModelRoi_h +#define manualContourModelRoi_h + +#include "manualContourModel.h" + +//-------------------------------------------------------- +//JSTG 25-02-08 ------------------------------------------ +class creaMaracasVisu_EXPORT manualContourModelRoi : public manualContourModel +{ + public: + manualContourModelRoi(); + virtual ~manualContourModelRoi(); + virtual manualContourModelRoi *Clone(); + void CopyAttributesTo( manualContourModelRoi *cloneObject); +private: + virtual int GetTypeModel(); +}; + +#endif // manualContourModelRoi_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.cpp new file mode 100644 index 0000000..c6662f0 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.cpp @@ -0,0 +1,168 @@ +#include "manualContourPerpPlaneControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +manualContourPerpPlaneControler::manualContourPerpPlaneControler() +{ + _flagMouseMove = true; +} +// ---------------------------------------------------------------------------- +manualContourPerpPlaneControler::~manualContourPerpPlaneControler() +{ +} +// ---------------------------------------------------------------------------- +manualContourPerpPlaneControler * manualContourPerpPlaneControler :: Clone() // virtual +{ + manualContourPerpPlaneControler * clone = new manualContourPerpPlaneControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualContourPerpPlaneControler::CopyAttributesTo( manualContourPerpPlaneControler * cloneObject) +{ + // Fathers object + manualContourControler::CopyAttributesTo(cloneObject); + + cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); + cloneObject->SetManualContour3VControler( this->GetManualContour3VControler() ); + cloneObject->SetVtkInteractorStylePlane2D( this->GetVtkInteractorStylePlane2D() ); +} + +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata) +{ + _vtkmprbasedata = vtkmprbasedata; +} + +// ---------------------------------------------------------------------------- +vtkMPRBaseData *manualContourPerpPlaneControler::GetVtkMPRBaseData() +{ + return _vtkmprbasedata; +} + + +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::InsertPoint(int x, int y, int z ) // virtual +{ + manualContourControler::InsertPoint( x, y, z ); + _manualcontour3Vcontroler->InsertPoint_Others(0); +} +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::AddPoint( int x, int y, int z ) +{ + manualContourControler::AddPoint( x, y, z ); + _manualcontour3Vcontroler->AddPoint_Others(); +} +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::DeleteActualMousePoint(int x, int y) +{ + int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); + manualContourControler::DeleteActualMousePoint( x , y ); + _manualcontour3Vcontroler->DeleteActualMousePoint_Others(id); +} +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::MouseMove( int x, int y ) +{ + _flagMouseMove = true; + int ss =this->_vtkInteractorStyleBaseView->vtkInteractorStyle::GetState(); + if ((this->GetState()!=7) && (ss!=1)){ + manualContourControler::MouseMove( x , y ); + int id = GetManualViewBaseContour()->GetIdPoint ( x , y , GetZ() ); + if (id!=-1) + { + _manualcontour3Vcontroler->MouseMove_Others(id); + _flagMouseMove = false; + } + } +} +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler) +{ + _manualcontour3Vcontroler = manualcontour3Vcontroler; +} +// ---------------------------------------------------------------------------- +manualContour3VControler * manualContourPerpPlaneControler::GetManualContour3VControler() +{ + return _manualcontour3Vcontroler; +} +// ---------------------------------------------------------------------------- +bool manualContourPerpPlaneControler::OnChar() // virtual +{ + if (manualContourControler::OnChar()==false ) + { + _manualcontour3Vcontroler->OnChar_Others(); + } + return true; +} +// ---------------------------------------------------------------------------- +bool manualContourPerpPlaneControler::OnMouseMove() // virtual +{ + manualContourControler::OnMouseMove(); + return _flagMouseMove; +} +// ---------------------------------------------------------------------------- +bool manualContourPerpPlaneControler::OnLeftDClick() // virtual +{ + manualContourControler::OnLeftDClick(); + return _flagMouseDClick; +} +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::ResetContour() // virtual +{ + manualContourControler::ResetContour(); + _manualcontour3Vcontroler->ResetContour_Others(); +} + +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::MouseDLeft( int x, int y) // virtual +{ + _flagMouseDClick=true; + manualContourControler::MouseDLeft(x,y); + + if (GetManualViewBaseContour()->ifTouchContour(x,y,0)==true) + { + _flagMouseDClick = false; + _vtkinteractorstyleplane2D->OnLeftDClick(); + ResetOrientationPlane(); + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + } + +// int id=GetManualViewBaseContour()->GetIdPoint(x,y,GetZ()); +// if ( (GetState()==0) && (id!=-1) ) +// { +// manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id); +// _vtkmprbasedata->SetX( mp->GetX() ); +// _vtkmprbasedata->SetY( mp->GetY() ); +// _vtkmprbasedata->SetZ( mp->GetZ() ); +// ResetOrientationPlane(); +// this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +// } +} + + + +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::ResetOrientationPlane() +{ + double p[3],rp[3],rn[3]; + p[0] = _vtkmprbasedata->GetX( ); + p[1] = _vtkmprbasedata->GetY( ); + p[2] = _vtkmprbasedata->GetZ( ); + this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn); + + _vtkmprbasedata->SetNormal(rn[0],rn[1],rn[2]); +} + +// ---------------------------------------------------------------------------- +void manualContourPerpPlaneControler::SetVtkInteractorStylePlane2D(InteractorStyleMaracas *vtkinteractorstyleplane2D) +{ + _vtkinteractorstyleplane2D = vtkinteractorstyleplane2D; +} +// ---------------------------------------------------------------------------- +InteractorStyleMaracas * manualContourPerpPlaneControler::GetVtkInteractorStylePlane2D() +{ + return _vtkinteractorstyleplane2D; +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.h new file mode 100644 index 0000000..e4ac11f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourPerpPlaneControler.h @@ -0,0 +1,50 @@ +#ifndef manualContourPerpPlaneControler_h +#define manualContourPerpPlaneControler_h + +#include "manualContourControler.h" +#include "manualContour3VControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualContourPerpPlaneControler: public manualContourControler +{ +public: + manualContourPerpPlaneControler(); + virtual ~manualContourPerpPlaneControler(); + virtual manualContourPerpPlaneControler * Clone(); + void CopyAttributesTo( manualContourPerpPlaneControler *cloneObject ); + + void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata); + vtkMPRBaseData *GetVtkMPRBaseData(); + + virtual bool OnChar(); + virtual bool OnMouseMove(); + virtual bool OnLeftDClick(); + virtual void AddPoint( int x, int y, int z ); + virtual void DeleteActualMousePoint(int x, int y); + virtual void MouseMove(int x, int y); + virtual void InsertPoint(int x, int y, int z); + virtual void ResetContour(); + + void SetManualContour3VControler(manualContour3VControler *manualcontour3Vcontroler); + manualContour3VControler *GetManualContour3VControler(); + + virtual void MouseDLeft( int x, int y); + void ResetOrientationPlane(); + void SetVtkInteractorStylePlane2D(InteractorStyleMaracas *vtkinteractorstyleplane2D); + InteractorStyleMaracas * GetVtkInteractorStylePlane2D(); + +private: + bool _flagMouseMove; + bool _flagMouseDClick; + InteractorStyleMaracas *_vtkinteractorstyleplane2D; + +protected: + vtkMPRBaseData *_vtkmprbasedata; + manualContour3VControler *_manualcontour3Vcontroler; +}; + + +#endif // manualContourPerpPlaneControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.cpp new file mode 100644 index 0000000..30e8a6e --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.cpp @@ -0,0 +1,137 @@ +#include "manualLineControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// AD:02-09 + +// _state = 0 // ..nothing.. +// _state = 5 // move point +// _state = 6 // move all +// _state = 7 // Empty mouse drag + +manualLineControler::manualLineControler() +{ +} +// ---------------------------------------------------------------------------- +manualLineControler::~manualLineControler() +{ +} +// ---------------------------------------------------------------------------- +manualLineControler * manualLineControler :: Clone() // virtual +{ + manualLineControler * clone = new manualLineControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualLineControler::CopyAttributesTo( manualLineControler * cloneObject) +{ + // Fathers object + manualContourBaseControler::CopyAttributesTo(cloneObject); +} + + +// ---------------------------------------------------------------------------- +void manualLineControler::MouseClickLeft(int x, int y){ + int z = GetZ(); + + if( IsEditable() ) + { // move control point + if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } + } //IsEditable + + // move contour + if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { + GetManualViewBaseContour()->InitMove(x,y,z); + SetState(6); + } + + // fist time create 2 control points and move a control point + int size=GetManualViewBaseContour()->GetNumberOfPoints(); + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(1); + } + } + + +/*EED 21 Avril 2009 + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + } else { + SetPoint(0,x,y,z); + SetPoint(1,x,y,z); + } + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } +*/ + + GetManualViewBaseContour()->Refresh(); +} +// ---------------------------------------------------------------------------- + +void manualLineControler::MouseMove(int x, int y) // virtual +{ + int z=GetZ(); + + GetManualViewBaseContour()->SelectPosibleContour(x,y,z); + GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); + + if (GetState()==1) { SetPoint( bakIdPoint , x , y ,z); } + if (GetState()==5) { SetPoint( bakIdPoint , x , y ,z); } + + if (GetState()==6) + { + GetManualViewBaseContour()->MoveContour(x,y,z); + } + GetManualViewBaseContour()->Refresh(); +} + + +// ---------------------------------------------------------------------------- +void manualLineControler::DeleteActualMousePoint(int x, int y) // virtual +{ +} +// ---------------------------------------------------------------------------- + +void manualLineControler::InitRoi(int ww, int hh, double porcentage) +{ + int zz; + manualPoint *mp; + + if (GetManualContourModel()->GetSizeLstPoints() ==0) + { + zz = GetZ(); + AddPoint(0,0,zz); + AddPoint(0,0,zz); + } + + double pp1=porcentage; + double pp2=1-porcentage; + + mp = GetManualContourModel()->GetManualPoint(0); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp2,zz); + + mp = GetManualContourModel()->GetManualPoint(1); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp1,zz); + + GetManualViewBaseContour() ->UpdateViewPoint(0); + GetManualViewBaseContour() ->UpdateViewPoint(1); + + SetState(0); + GetManualViewBaseContour()->Refresh(); +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.h new file mode 100644 index 0000000..d045926 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualLineControler.h @@ -0,0 +1,30 @@ +#ifndef manualLineControler_h +#define manualLineControler_h + +#include "manualContourControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// AD:02-09 +class creaMaracasVisu_EXPORT manualLineControler: public manualContourControler +{ +public: + manualLineControler(); + virtual ~manualLineControler(); + virtual manualLineControler * Clone(); + void CopyAttributesTo( manualLineControler *cloneObject ); + + virtual void MouseClickLeft(int x, int y); + virtual void MouseMove(int x, int y ); + virtual void DeleteActualMousePoint(int x, int y); + void InitRoi(int ww, int hh, double porcentage); + + + +private: + int bakIdPoint; +}; + +#endif // manualLineControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.cpp new file mode 100644 index 0000000..e1b1ba1 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.cpp @@ -0,0 +1,51 @@ +#include "manualPoint.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualPoint::manualPoint() +{ +} +// ---------------------------------------------------------------------------- +manualPoint::~manualPoint() +{ +} +// ---------------------------------------------------------------------------- +void manualPoint::SetPoint(double x,double y,double z){ + _x=x; + _y=y; + _z=z; +} +// ---------------------------------------------------------------------------- +void manualPoint::SetPointX(double x){ + _x=x; +} +// ---------------------------------------------------------------------------- +void manualPoint::SetPointY(double y){ + _y=y; +} +// ---------------------------------------------------------------------------- +void manualPoint::SetPointZ(double z){ + _z=z; +} +// ---------------------------------------------------------------------------- +double manualPoint::GetX(){ + return _x; +} +// ---------------------------------------------------------------------------- +double manualPoint::GetY(){ + return _y; +} +// ---------------------------------------------------------------------------- +double manualPoint::GetZ(){ + return _z; +} +// ---------------------------------------------------------------------------- +manualPoint * manualPoint :: Clone() +{ + manualPoint * clone = new manualPoint(); + clone->SetPoint( GetX(), GetY(), GetZ()); + return clone; +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.h new file mode 100644 index 0000000..d57d8eb --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualPoint.h @@ -0,0 +1,24 @@ +#ifndef manualPoint_h +#define manualPoint_h + +class manualPoint +{ +public: + manualPoint(); + virtual ~manualPoint(); + void SetPoint(double x,double y,double z); + void SetPointX(double x); + void SetPointY(double y); + void SetPointZ(double z); + double GetX(); + double GetY(); + double GetZ(); + virtual manualPoint * Clone(); + +private: + double _x; + double _y; + double _z; +}; + +#endif // manualPoint_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.cpp new file mode 100644 index 0000000..85f2068 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.cpp @@ -0,0 +1,206 @@ +#include "manualRoiControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// _state = 0 // ..nothing.. +// _state = 5 // move point +// _state = 6 // move all +// _state = 7 // Empty mouse drag + +manualRoiControler::manualRoiControler() +{ +} +// ---------------------------------------------------------------------------- +manualRoiControler::~manualRoiControler() +{ +} +// ---------------------------------------------------------------------------- +manualRoiControler * manualRoiControler :: Clone() // virtual +{ + manualRoiControler * clone = new manualRoiControler(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualRoiControler::CopyAttributesTo( manualRoiControler * cloneObject) +{ + // Fathers object + manualContourBaseControler::CopyAttributesTo(cloneObject); +} + +// ---------------------------------------------------------------------------- +void manualRoiControler::Configure() //virtual +{ + this->GetManualContourModel()->SetNumberOfPointsSpline(5); +} + +// ---------------------------------------------------------------------------- + +void manualRoiControler::MouseClickLeft(int x, int y){ + int z = GetZ(); + + if( IsEditable() ) + { // move control point + if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ){ + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } + } // IsEditable + + // Move contour + if ((GetState()==0) && (GetManualViewBaseContour()->GetPosibleSelected()==true)) { + GetManualViewBaseContour()->InitMove(x,y,z); + SetState(6); + } + + // if the firs time create 4 control points and move one point + int size=GetManualViewBaseContour()->GetNumberOfPoints(); + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + AddPoint(x,y,z); + AddPoint(x,y,z); + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(1); + } + } + +/*EED 21 Avril 2009 + if (GetState()==0) { + if (size==0){ + AddPoint(x,y,z); + AddPoint(x,y,z); + AddPoint(x,y,z); + AddPoint(x,y,z); + } else { + SetPoint(0,x,y,z); + SetPoint(1,x,y,z); + SetPoint(2,x,y,z); + SetPoint(3,x,y,z); + } + bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); + SetState(5); + } +*/ + + GetManualViewBaseContour()->Refresh(); +} + +// ---------------------------------------------------------------------------- +void manualRoiControler::MouseMove(int x, int y) // virtual +{ + int z=GetZ(); + +// this->_vtkInteractorStyleBaseView-> + + + GetManualViewBaseContour()->SelectPosibleContour(x,y,z); + GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); + + + if ( (GetState()==5) || (GetState()==1) ){ + SetPoint( bakIdPoint , x , y ,z); + if (bakIdPoint==0) + { + SetPointX( 1 , x ); + SetPointY( 3 , y ); + } + if (bakIdPoint==1) + { + SetPointX( 0 , x ); + SetPointY( 2 , y ); + } + if (bakIdPoint==2) + { + SetPointX( 3 , x ); + SetPointY( 1 , y ); + } + if (bakIdPoint==3) + { + SetPointX( 2 , x ); + SetPointY( 0 , y ); + } + } + if (GetState()==6){ + GetManualViewBaseContour()->MoveContour(x,y,z); + } + GetManualViewBaseContour()->Refresh(); +} +// ---------------------------------------------------------------------------- +void manualRoiControler::DeleteActualMousePoint(int x, int y) // virtual +{ +} +// ---------------------------------------------------------------------------- +void manualRoiControler::InitRoi(int ww, int hh, double porcentage) +{ + int zz; + manualPoint *mp; + + if (GetManualContourModel()->GetSizeLstPoints() ==0) + { + zz = GetZ(); + AddPoint(0,0,zz); + AddPoint(0,0,zz); + AddPoint(0,0,zz); + AddPoint(0,0,zz); + } + + double pp1=porcentage; + double pp2=1-porcentage; + + mp = GetManualContourModel()->GetManualPoint(2); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp1,hh*pp1,zz); + + mp = GetManualContourModel()->GetManualPoint(1); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp1,zz); + + mp = GetManualContourModel()->GetManualPoint(0); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp2,hh*pp2,zz); + + mp = GetManualContourModel()->GetManualPoint(3); + zz=(int)mp->GetZ(); + mp->SetPoint(ww*pp1,hh*pp2,zz); + + GetManualViewBaseContour() ->UpdateViewPoint(0); + GetManualViewBaseContour() ->UpdateViewPoint(1); + GetManualViewBaseContour() ->UpdateViewPoint(2); + GetManualViewBaseContour() ->UpdateViewPoint(3); + + SetState(0); + GetManualViewBaseContour()->Refresh(); +} + +// ---------------------------------------------------------------------------- +void manualRoiControler::SetRoi(int x1, int y1,int x2, int y2) +{ + manualPoint *mp; + InitRoi( 0 , 0 , 0.2 ); + mp = GetManualContourModel()->GetManualPoint(2); + mp->SetPointX(x1); + mp->SetPointY(y1); + + mp = GetManualContourModel()->GetManualPoint(1); + mp->SetPointX(x2); + mp->SetPointY(y1); + + mp = GetManualContourModel()->GetManualPoint(0); + mp->SetPointX(x2); + mp->SetPointY(y2); + + mp = GetManualContourModel()->GetManualPoint(3); + mp->SetPointX(x1); + mp->SetPointY(y2); + + GetManualViewBaseContour() ->UpdateViewPoint(0); + GetManualViewBaseContour() ->UpdateViewPoint(1); + GetManualViewBaseContour() ->UpdateViewPoint(2); + GetManualViewBaseContour() ->UpdateViewPoint(3); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.h new file mode 100644 index 0000000..4f5c969 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualRoiControler.h @@ -0,0 +1,31 @@ +#ifndef manualRoiControler_h +#define manualRoiControler_h + +#include "manualContourControler.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualRoiControler: public manualContourControler +{ +public: + manualRoiControler(); + virtual ~manualRoiControler(); + virtual manualRoiControler * Clone(); + void CopyAttributesTo( manualRoiControler *cloneObject ); + + virtual void MouseClickLeft(int x, int y); + virtual void MouseMove(int x, int y ); + virtual void DeleteActualMousePoint(int x, int y); + void InitRoi(int ww, int hh, double porcentage); + void SetRoi(int x1, int y1,int x2, int y2); + virtual void Configure(); + + +private: + int bakIdPoint; +}; + + +#endif // manualRoiControler_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3DContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3DContour.cpp new file mode 100644 index 0000000..aa00329 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3DContour.cpp @@ -0,0 +1,97 @@ +#include "manualView3DContour.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +manualView3DContour::manualView3DContour() +{ +} +// ---------------------------------------------------------------------------- +manualView3DContour::~manualView3DContour() +{ +} + +// ---------------------------------------------------------------------------- +manualView3DContour * manualView3DContour :: Clone() +{ + manualView3DContour * clone = new manualView3DContour(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- +void manualView3DContour::CopyAttributesTo( manualView3DContour * cloneObject) +{ + // Fathers object + manualViewContour::CopyAttributesTo(cloneObject); + + cloneObject->SetDimensions ( _w , _h , _d ); +} +// ---------------------------------------------------------------------------- +void manualView3DContour::SetDimensions(int w, int h, int d) +{ + _w = w; + _h = h; + _d = d; +} +// ---------------------------------------------------------------------------- +void manualView3DContour::TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type) +{ + X = _vtkmprbasedata->GetX(); + Y = _vtkmprbasedata->GetY(); + Z = _vtkmprbasedata->GetZ(); +} +// ---------------------------------------------------------------------------- +void manualView3DContour::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata) +{ + _vtkmprbasedata = vtkmprbasedata; +} +// ---------------------------------------------------------------------------- +int manualView3DContour::GetIdPoint2(int x, int y) +{ + int id = -1; + double p[3],pA[3],pB[3]; + + double pickPoint[ 3 ], cameraPos[ 3 ]; + vtkPointPicker* picker = vtkPointPicker::New( ); + vtkRenderer *pRenderer = this->GetWxVtkBaseView()->GetRenderer(); + picker->Pick( x, y, 0.0, pRenderer ); + pRenderer->GetActiveCamera( )->GetPosition( cameraPos ); + picker->GetPickPosition( pickPoint ); + picker->Delete( ); + + UtilVtk3DGeometriSelection utilVtk3Dgeometriselection; + utilVtk3Dgeometriselection.SetDimentions(_w,_h,_d); + + if( utilVtk3Dgeometriselection.FindCubePointsFromPoints( pA, pB, pickPoint, cameraPos ) ) + { + double dist,distMin=999999999; + int i,size=this->_manContModel->GetSizeLstPoints(); + for (i=0;i_manContModel->GetManualPoint(i); + p[0] = mp->GetX(); + p[1] = mp->GetY(); + p[2] = mp->GetZ(); + dist=utilVtk3Dgeometriselection.DistanceMinPointToLine(p,pA,pB); + if ( (dist<=2*GetRange()) && (distGetNumberOfPointsSpline(); +//------------------------------------------------------- + for( i = 0; i < nps; i++ ) + { + _pts->GetPoint( i, pp ); + FilterCordinateXYZ(pp[0],pp[1],pp[2]); + +//EED 27 sep 2006 + _pts->SetPoint( i, pp[0] , pp[1] ,pp[2] ); + } + +} + +// ---------------------------------------------------------------------------- + +void manualView3VContour::UpdateViewPoint(int id){ // virtual + double x,y,z; + manualPoint *mp = _manContModel->GetManualPoint(id); + x=mp->GetX(); + y=mp->GetY(); + z=mp->GetZ(); + + FilterCordinateXYZ(x,y,z); + _lstViewPoints[id]->SetPositionXY( x , y ,GetRange(), z ); +} + +// ---------------------------------------------------------------------------- + +int manualView3VContour::GetIdPoint(int x, int y, int z) // virtual +{ + int ii=-1; + if (_manContModel!=NULL){ + double xx=x; + double yy=y; + double zz=z; + TransfromeCoordViewWorld(xx,yy,zz,-1); + ii=_manContModel->GetIdPoint(xx,yy,zz,GetRange(),_type); + } + return ii; +} + +// ---------------------------------------------------------------------------- +bool manualView3VContour::ifTouchContour(int x,int y,int z){ // virtual + bool result=false; + double xx=x; + double yy=y; + double zz=z; + double ppA[3]; + double ppB[3]; + double d1,d2,d3; + TransfromeCoordViewWorld(xx,yy,zz,-1); + +//EED 27 sep 2006 + xx = xx * _spc[0]; + yy = yy * _spc[1]; + zz = zz * _spc[2]; + + unsigned int i, nps,nps_t; + nps = _sizePointsContour; + if (this->_manContModel->IfCloseContour()==true) + { + nps_t = nps; + } else { + nps_t = nps-1; + } + FilterCordinateXYZ(xx,yy,zz); + + for( i = 0; i < nps_t; i++ ) { + _pts->GetPoint(i%nps, ppA); + _pts->GetPoint((i+1)%nps, ppB); + FilterCordinateXYZ(ppA[0],ppA[1],ppA[2]); + FilterCordinateXYZ(ppB[0],ppB[1],ppB[2]); + d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz)); + d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz)); + d3= sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2])); + if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) ) { + result=true; + i=nps; + } + } + return result; +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3VContour.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3VContour.h new file mode 100644 index 0000000..61c9946 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualView3VContour.h @@ -0,0 +1,35 @@ +#ifndef manualView3VContour_h +#define manualView3VContour_h + +#include "manualViewContour.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class manualView3VContour: public manualViewContour +{ +public: + manualView3VContour(int type); + virtual ~manualView3VContour(); + virtual manualView3VContour * Clone(); + void CopyAttributesTo( manualView3VContour *cloneObject ); + + virtual void RefreshContour(); + virtual int GetIdPoint(int x, int y, int z); + virtual void UpdateViewPoint(int id); + virtual bool ifTouchContour(int x,int y,int z); + int GetType(); + +protected: +private: + int _type; + void FilterCordinateXYZ(double &x,double &y,double &z); + +// JSTG 25-02-08 ------------------------------------- + //manualContourModel *_manContModel; +//---------------------------------------------------- + +}; + +#endif // manualView3VContour_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp new file mode 100644 index 0000000..e9a8596 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp @@ -0,0 +1,907 @@ +#include "manualViewBaseContour.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualViewBaseContour::manualViewBaseContour() +{ + _show_text = true; + _textActor = NULL; + _manContModel = NULL; + _wxvtkbaseview = NULL; + _selected = false; + _posibleSelected = false; + _viewControlPoints = false; + _pts = NULL; + _pd = NULL; + _contourVtkActor = NULL; + _bboxMapper = NULL; + _range = 1; + _sizePointsContour = 100; + _spc[0] = 1; + _spc[1] = 1; + _spc[2] = 1; + + _coulorEdit_r = 1; + _coulorEdit_g = 1; + _coulorEdit_b = 0; + + _coulorNormal_r = 1; + _coulorNormal_g = 0; + _coulorNormal_b = 1; + + _coulorSelection_r = 0; + _coulorSelection_g = 1; + _coulorSelection_b = 0; + + _widthline = 1; + +} +// ---------------------------------------------------------------------------- +manualViewBaseContour::~manualViewBaseContour() +{ + int i,size=_lstViewPoints.size(); + for (i=0;iGetRenderer(); // JPRx ?? + //Adding the spline + AddSplineActor(); + + AddTextActor(); + //Adding each control point + if( ifControlPoints ) + AddControlPoints(); + RefreshContour(); + Refresh(); +} +// --------------------------------------------------------------------------- + +void manualViewBaseContour :: RemoveCompleteContourActor() +{ + /*vtkRenderer * theRenderer =*/ _wxvtkbaseview->GetRenderer(); // JPRx ?? + //Removing the spline + RemoveSplineActor(); + RemoveTextActor(); + + //Removing each point + RemoveControlPoints(); + RefreshContour(); + Refresh(); +} +// --------------------------------------------------------------------------- +manualViewBaseContour * manualViewBaseContour :: Clone( )//virtual +{ + manualViewBaseContour * clone = new manualViewBaseContour(); + CopyAttributesTo(clone); + return clone; + +} + +// --------------------------------------------------------------------------- + +void manualViewBaseContour::CopyAttributesTo( manualViewBaseContour * cloneObject) +{ + // Fathers object + //XXXX::CopyAttributesTo(cloneObject); + + cloneObject-> SetWxVtkBaseView( this->_wxvtkbaseview ); + cloneObject-> SetSelected( this->GetSelected() ); + cloneObject-> SetPosibleSelected( this->GetPosibleSelected() ); + cloneObject-> SetIfViewControlPoints( this->GetIfViewControlPoints() ); + cloneObject-> SetRange( this->GetRange() ); + cloneObject-> SetZ( this->GetZ() ); + cloneObject-> SetSpacing( _spc ); + cloneObject-> SetColorNormalContour( _coulorNormal_r, _coulorNormal_g, _coulorNormal_b ); + cloneObject-> SetColorEditContour( _coulorEdit_r, _coulorEdit_g, _coulorEdit_b ); + cloneObject-> SetColorSelectContour( _coulorSelection_r, _coulorSelection_g, _coulorSelection_b ); + + int i, size = _lstViewPoints.size(); + for ( i=0; iAddPoint( ); + } +} + +// ---------------------------------------------------------------------------- +void manualViewBaseContour :: AddSplineActor() +{ + vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); + if (_contourVtkActor!=NULL) + theRenderer->AddActor( _contourVtkActor ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour :: RemoveSplineActor() // virtual +{ + vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); + if (_contourVtkActor!=NULL) + theRenderer->RemoveActor( _contourVtkActor ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour :: RemoveControlPoints() +{ + if (_wxvtkbaseview!=NULL){ + vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); + int i,size=_lstViewPoints.size(); + for (i=0;iGetVtkActor(); + theRenderer->RemoveActor( pointActor ); + } // for + } // if + SetIfViewControlPoints( false ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::AddControlPoints() +{ + vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer(); + SetIfViewControlPoints( true ); + if( _viewControlPoints ) + { + int i,size=_lstViewPoints.size(); + for (i=0;iGetVtkActor(); + theRenderer->AddActor( pointActor ); + } + } +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::AddTextActor() +{ + _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::RemoveTextActor() +{ + _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::DeleteVtkObjects() +{ + if ( _contourVtkActor != NULL ) { _contourVtkActor -> Delete(); } + if ( _bboxMapper != NULL ) { _bboxMapper -> Delete(); } + if ( _pts != NULL ) { _pts -> Delete(); } + if ( _pd != NULL ) { _pd -> Delete(); } + _contourVtkActor = NULL; + _bboxMapper = NULL; + _pts = NULL; + _pd = NULL; +} + + +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetWidthLine(double width) +{ + _widthline = width; + this->UpdateColorActor(); + + // for the control points + int id, size = _lstViewPoints.size(); + for( id=0; id_lstViewPoints[id]->SetWidthLine(_widthline); + } + +} + +// ---------------------------------------------------------------------------- +double manualViewBaseContour::GetWidthLine() +{ + return _widthline; +} + +// ---------------------------------------------------------------------------- +void manualViewBaseContour::ConstructVTKObjects() +{ +//JSTG 29-02-08 ----------------------------------------------- + //int i , nps = _sizePointsContour; + int i; + int nps = _manContModel->GetNumberOfPointsSpline(); +//------------------------------------------------------------- + DeleteVtkObjects(); + _pts = vtkPoints::New(); + _pts->SetNumberOfPoints(nps); + + for (i=0 ; iSetPoint(i, 0 , 0 , 0 ); + } + // This is for the boundaring inicialisation + +//EED 29Mars2009 + _pts->SetPoint(0, 0 , 0 , -1000 ); + _pts->SetPoint(1, 0 , 0 , 1000 ); +// _pts->SetPoint(0, -1000 , -1000 , -1000 ); +// _pts->SetPoint(1, 1000 , 1000 , 1000 ); + + + vtkCellArray *lines = vtkCellArray::New(); + lines->InsertNextCell( nps /* +1 */ ); + for ( i=0 ; iInsertCellPoint(i % nps ); + } + + _pd = vtkPolyData::New(); + _pd->SetPoints( _pts ); + _pd->SetLines( lines ); + lines->Delete(); //do not delete lines ?? + + _contourVtkActor = vtkActor::New(); + _bboxMapper = vtkPolyDataMapper::New(); + _bboxMapper->ScalarVisibilityOff( ); + + _bboxMapper->SetInput(_pd); + _bboxMapper->ImmediateModeRenderingOn(); + _contourVtkActor->SetMapper(_bboxMapper); + _contourVtkActor->GetProperty()->BackfaceCullingOff(); + + UpdateColorActor(); + + _pd->ComputeBounds(); + + // Text + _textActor = vtkTextActor::New(); +// _textActor->SetDisplayPosition(200, 200); + _textActor->SetInput("00"); + // Set coordinates to match the old vtkScaledTextActor default value +// _textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport(); +// _textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 ); + _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld (); +// _textActor->GetPositionCoordinate()->SetValue( 0.8 , 0.8 ); + + vtkTextProperty *tprop = _textActor->GetTextProperty(); + tprop->SetFontSize(14); + tprop->SetFontFamilyToArial(); + tprop->SetColor(0, 0, 1); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::CreateNewContour() +{ + ConstructVTKObjects(); + /* + _wxvtkbaseview->GetRenderer()->AddActor( _contourVtkActor ); + _wxvtkbaseview->GetRenderer()->AddActor2D(_textActor);*/ + AddCompleteContourActor(); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UpdateViewPoint(int id) // virtual +{ + manualPoint *mp = _manContModel->GetManualPoint(id); + +//EEDx6 + double XX=mp->GetX(),YY=mp->GetY(),ZZ=mp->GetZ(); +// wxVtk2DBaseView *wxvtk2Dbasevie = (wxVtk2DBaseView*)this->GetWxVtkBaseView(); +// wxvtk2Dbasevie->TransformCoordinate_spacing_ModelToView(XX,YY,ZZ); + + _lstViewPoints[id]->SetPositionXY( XX , YY ,_range, ZZ ); +} + +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UpdateViewPoints() +{ + int id, size = _lstViewPoints.size(); + for( id=0; idGetWxVtkBaseView() ); + AddPoint( mvp ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::AddPoint( manualViewPoint * manualViewPoint ) +{ + _lstViewPoints.push_back( manualViewPoint ); + + // EED 3 oct 2006 + manualViewPoint->SetSpacing(_spc); + + vtkActor *actor = manualViewPoint->CreateVtkPointActor(); + _wxvtkbaseview->GetRenderer()->AddActor( actor ); +} + +// ---------------------------------------------------------------------------- +void manualViewBaseContour::InsertPoint(int id) +{ + manualViewPoint *mvp = new manualViewPoint( this->GetWxVtkBaseView() ); + +// EED 3 oct 2006 + mvp->SetSpacing(_spc); + + std::vector::iterator itNum = _lstViewPoints.begin() + id; + _lstViewPoints.insert(itNum,mvp); + _wxvtkbaseview->GetRenderer()->AddActor( mvp->CreateVtkPointActor() ); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::DeleteContour() +{ + RemoveCompleteContourActor(); + /*if (_contourVtkActor!=NULL){ + _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor ); + }*/ + DeleteVtkObjects(); + int i,size=_lstViewPoints.size(); + for (i=0;i=0) && (idDeletePickList(mvp->GetVtkActor()); + _wxvtkbaseview->GetRenderer()->RemoveActor( mvp->GetVtkActor() ); + std::vector::iterator itNum = _lstViewPoints.begin() + id; + _lstViewPoints.erase(itNum); + delete mvp; + Refresh(); + } +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::DeletePoint(int x, int y, int z) +{ + int id=GetIdPoint(x,y,z); + if (id!=-1){ + DeletePoint(id); + } +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetSelected(bool selected) +{ + _selected=selected; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetPosibleSelected(bool posibleSelected) +{ + _posibleSelected=posibleSelected; +} +// ---------------------------------------------------------------------------- +bool manualViewBaseContour::GetEditable() +{ + return *_editable; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetEditable( bool * condition ) +{ + _editable = condition; +} +// ---------------------------------------------------------------------------- +bool manualViewBaseContour::GetSelected() +{ + return _selected; +} +// ---------------------------------------------------------------------------- +bool manualViewBaseContour::GetPosibleSelected() +{ + return _posibleSelected; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::DeleteSelectedPoints() +{ + int i,size=_lstViewPoints.size(); + for (i=size-1;i>=0;i--){ + if (_lstViewPoints[i]->GetSelected()==true){ + DeletePoint(i); + } + } + Refresh(); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SelectPoint(int i, bool select) +{ + _lstViewPoints[i]->SetSelected(select); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SelectLstPoints() +{ + // ToDo +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SelectAllPoints(bool select) +{ + int i,size=_lstViewPoints.size(); + for (i=0;iSetPosibleSelected(select); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetPointSelected(int id,bool select) +{ + _lstViewPoints[id]->SetSelected(select); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SelectAllPossibleSelected(bool select) +{ + int i,size=_lstViewPoints.size(); + for (i=0;i_lstViewPoints.size()>=2) ) + { + if (ifTouchContour(x,y,z)==true) + { + result=true; + SetPosibleSelected(result); + } + } + + if (GetEditable()==false) + { + if (ifTouchContour(x,y,z)==true) + { + result=true; + SetPosibleSelected(result); + } + } + + + } + return result; +} +// ---------------------------------------------------------------------------- +bool manualViewBaseContour::ifTouchContour(int x,int y, int z) // virtual +{ + return false; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UnSelectPoint(int i){ + _lstViewPoints[i]->SetSelected(false); + Refresh(); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UnSelectLstPoints(){ + // ToDo +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UnSelectAllPoints(){ + int i,size=_lstViewPoints.size(); + for (i=0;iGetPoint(i,pp); + vx[i]=pp[0]; + } + return vx; +} +// ---------------------------------------------------------------------------- +double* manualViewBaseContour::GetVectorPointsYManualContour() +{ + double pp[3]; + int i,size = _sizePointsContour; + double *vy = (double*)malloc(sizeof(double)*size); + for (i=0;iGetPoint(i,pp); + vy[i]=pp[1]; + } + return vy; +} +// ---------------------------------------------------------------------------- +double* manualViewBaseContour::GetVectorPointsZManualContour() +{ + double pp[3]; + int i,size = _sizePointsContour; + double *vz = (double*)malloc(sizeof(double)*size); + for (i=0;iGetPoint(i,pp); + vz[i]=pp[2]; + } + return vz; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::Refresh() // virtual +{ + if (_contourVtkActor!=NULL){ + RefreshContour(); + } + int i,size=_lstViewPoints.size(); + for (i=0;iUpdateColorActor(); + } + UpdateColorActor(); + + if (_show_text==true) + { + RefreshText(); + } + + vtkRenderWindowInteractor *vri = _wxvtkbaseview->GetWxVTKRenderWindowInteractor (); + if (vri==NULL) + { + _wxvtkbaseview->GetRenWin()->Render(); + } + +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::RefreshText() // virtual +{ + if( _textActor!=NULL) + _textActor -> SetInput("00"); +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetColorNormalContour(double r, double g, double b) +{ + _coulorNormal_r = r; + _coulorNormal_g = g; + _coulorNormal_b = b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::GetColorNormalContour(double &r, double &g, double &b) +{ + r = _coulorNormal_r; + g = _coulorNormal_g; + b = _coulorNormal_b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetColorEditContour(double r, double g, double b) +{ + _coulorEdit_r = r; + _coulorEdit_g = g; + _coulorEdit_b = b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::GetColorEditContour(double &r, double &g, double &b) +{ + r = _coulorEdit_r; + g = _coulorEdit_g; + b = _coulorEdit_b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetColorSelectContour(double r, double g, double b) +{ + _coulorSelection_r = r; + _coulorSelection_g = g; + _coulorSelection_b = b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::GetColorSelectContour(double &r, double &g, double &b) +{ + r = _coulorSelection_r; + g = _coulorSelection_g; + b = _coulorSelection_b; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::UpdateColorActor() +{ + if (_contourVtkActor!=NULL) + { + _contourVtkActor->GetProperty()->SetLineWidth( _widthline ); + _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorNormal_r , _coulorNormal_g , _coulorNormal_b ); + if (_posibleSelected || (_posibleSelected && GetEditable() ) ) + { + _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorEdit_r , _coulorEdit_g , _coulorEdit_b ); + } + if( _selected ) + { + _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorSelection_r , _coulorSelection_g , _coulorSelection_b ); + } + } +} +// ---------------------------------------------------------------------------- +int manualViewBaseContour::GetIdPoint(int x, int y, int z) // virtual +{ + int ii = -1; + if (_manContModel!=NULL){ + double xx = x; + double yy = y; + double zz = z; + TransfromeCoordViewWorld(xx,yy,zz); + ii=_manContModel->GetIdPoint(xx,yy,zz,_range,-1); + } + return ii; +} + +// ---------------------------------------------------------------------------- + + +int manualViewBaseContour::GetNumberOfPoints() +{ + return _lstViewPoints.size(); +} + +// ---------------------------------------------------------------------------- + +//JSTG 25-02-08 --------------------------------------------------------------- +/*int manualViewBaseContour::GetNumberOfPointsSpline() +{ + return _sizePointsContour; +}*/ +//---------------------------------------------------------------------------- + +//JSTG 25-02-08 --------------------------------------------------------------- +/*void manualViewBaseContour::SetNumberOfPointsSpline(int size) +{ + _sizePointsContour = size; +}*/ +//---------------------------------------------------------------------------- +// virtual +void manualViewBaseContour::TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type) // Virtual +{ + _wxvtkbaseview->TransfromeCoordScreenToWorld(X, Y, Z, type); + + +//EED 27 sep 2007 +// //EEDx6 +// wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_wxvtkbaseview; +// wxvtk2Dbaseview->TransformCoordinate_spacing_ModelToView(X,Y,Z); + +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetRange(int range) +{ + _range=range; +} +// ---------------------------------------------------------------------------- +int manualViewBaseContour::GetRange() +{ + return _range; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetZ(int z) +{ +// _Z=z; +} +// ---------------------------------------------------------------------------- +int manualViewBaseContour::GetZ() +{ +// return _Z; + return 0; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::InitMove(int x, int y, int z) // virtual +{ + +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::MoveContour(int x, int y, int z) // virtual +{ +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::MoveContour(int horizontalUnits, int verticalUnits )// virtual +{ + +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ )// virtual +{ + double pp[3]; + manualPoint *mp; + int i; + int size=_manContModel->GetSizeLstPoints(); + minX=99999; + minY=99999; + maxX=-99999; + maxY=-99999; + bool ifFindZ = minZ!=-1.0 && maxZ!=-1.0; + if ( ifFindZ ) + { + minZ=99999; + maxZ=-99999; + } + for( i = 0; i < size; i++ ) + { + mp=_manContModel->GetManualPoint(i); + pp[0]=mp->GetX(); + pp[1]=mp->GetY(); + if ( ifFindZ ) + pp[2]=mp->GetZ(); + + // min X + if (pp[0]maxX) + { + maxX=pp[0]; + } + // max Y + if (pp[1]>maxY) + { + maxY=pp[1]; + } + if ( ifFindZ ) + { + // min Z + if (pp[2]maxZ) + { + maxZ=pp[2]; + } + } + } + if ( size<1 ) + { + minX = 0; + maxX = 0; + + minY = 0; + maxY = 0; + + minZ = 0; + maxZ = 0; + } +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::ClearContour() +{ + if (_contourVtkActor!=NULL){ + _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor ); + } + DeleteVtkObjects(); + int i,size=_lstViewPoints.size(); + for (i=0;iGetVtkActor(); + actor->GetProperty()->SetOpacity( opacity ); + } + _contourVtkActor->GetProperty()->SetOpacity( opacity ); + _textActor->GetProperty()->SetOpacity( opacity ); + _textActor->SetInput("00"); + +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetShowText(bool ok) +{ + _show_text = ok; + if (_show_text==false) + { + _textActor->SetInput("00"); + } +} +// ---------------------------------------------------------------------------- +wxVtkBaseView *manualViewBaseContour::GetWxVtkBaseView() +{ + return this->_wxvtkbaseview; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::GetSpacing(double spc[3]) +{ + spc[0] = _spc[0]; + spc[1] = _spc[1]; + spc[2] = _spc[2]; +} +// ---------------------------------------------------------------------------- +void manualViewBaseContour::SetSpacing(double spc[3]) +{ + _spc[0] = spc[0]; + _spc[1] = spc[1]; + _spc[2] = spc[2]; +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.h new file mode 100644 index 0000000..1766e97 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.h @@ -0,0 +1,207 @@ +#ifndef manualViewBaseContour_h +#define manualViewBaseContour_h + +#include "vtkRenderWindow.h" + +#include "vtkRenderer.h" +#include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! +#include "vtkCommand.h" +#include "vtkPolyData.h" +#include "vtkCellArray.h" +#include "vtkPolyDataMapper.h" +#include "vtkInteractorObserver.h" +#include "vtkInteractorStyleImage.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "widgets/UtilVtk3DGeometriSelection.h" + +#include + + +#include +#include +#include +#include + +#include "wxVTKRenderWindowInteractor.h" + + +//-- + +#include +#include "wxVtkBaseView.h" +#include "marTypes.h" + +#include "manualViewPoint.h" +#include "manualContourModel.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + + +class creaMaracasVisu_EXPORT manualViewBaseContour{ +public: + manualViewBaseContour(); + virtual ~manualViewBaseContour(); + + virtual int GetType(); + virtual void Save(FILE *pFile); + virtual void Open(FILE *pFile); + + void AddPoint(); + void AddPoint( manualViewPoint * manualViewPoint ); + void InsertPoint(int id); + void DeleteContour(); + void DeletePoint(int x, int y,int z); + virtual void DeletePoint(int id); + + virtual void UpdateViewPoint(int id); + virtual void UpdateViewPoints(); + + void SetSelected(bool selected); + void SetPosibleSelected(bool posibleSelected); + bool GetSelected(); + bool GetPosibleSelected(); + void DeleteSelectedPoints(); + bool GetEditable(); + void SetEditable( bool * condition ); + + + + virtual int GetIdPoint(int x, int y, int z); + + void SelectPoint(int i,bool select); + void SelectLstPoints(); + void SelectAllPoints(bool select); + virtual int SelectPosiblePoint(int x, int y ,int z); + bool SelectPosibleContour(int x, int y ,int z); + void SelectAllPossibleSelected(bool select); + void SetPointSelected(int id,bool select); + void SetPointPosibleSelected(int id,bool select); + void SetIfViewControlPoints(bool ifShow); + bool GetIfViewControlPoints(); + + void UnSelectPoint(int i); + void UnSelectLstPoints(); + void UnSelectAllPoints(); + + void SetModel(manualContourModel *manContModel); + void SetWxVtkBaseView(wxVtkBaseView *wxvtkbaseview); + + virtual void Refresh(); + int GetNumberOfPoints(); // ??? + //int GetNumberOfPointsSpline(); //JSTG 25-02-08 In ContourModel is the same method + //void SetNumberOfPointsSpline(int size); //JSTG 25-02-08 In ContourModel is the same method + + void CreateNewContour(); + double* GetVectorPointsXManualContour(); + double* GetVectorPointsYManualContour(); + double* GetVectorPointsZManualContour(); + + virtual bool ifTouchContour(int x,int y, int z); + void UpdateColorActor(); + + void SetRange(int range); + int GetRange(); + void SetZ(int z); + int GetZ(); + + wxVtkBaseView *GetWxVtkBaseView(); + + virtual void InitMove(int x, int y, int z); + virtual void MoveContour(int x, int y, int z); + virtual void MoveContour(int horizontalUnits, int verticalUnits ); + virtual void GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ ); + virtual void TransfromeCoordViewWorld(double &X, double &Y, double &Z, int type=2); + + void ClearContour(); + virtual void ClearPoint(int id); + + void SetVisible(bool ok); + void SetShowText(bool ok); + + void GetSpacing(double spc[3]); + void SetSpacing(double spc[3]); + + void SetColorNormalContour(double r, double g, double b); + void GetColorNormalContour(double &r, double &g, double &b); + void SetColorEditContour(double r, double g, double b); + void GetColorEditContour(double &r, double &g, double &b); + void SetColorSelectContour(double r, double g, double b); + void GetColorSelectContour(double &r, double &g, double &b); + + //Addinging and removing from visualization specific actors included in the viewer contour + void AddCompleteContourActor( bool ifControlPoints = false); + void RemoveCompleteContourActor(); + virtual void AddSplineActor(); + virtual void RemoveSplineActor(); + void AddControlPoints(); + void RemoveControlPoints(); + void AddTextActor(); + void RemoveTextActor(); + + virtual manualViewBaseContour * Clone(); + void CopyAttributesTo( manualViewBaseContour *cloneObject ); + virtual void RefreshContour(); + void SetWidthLine(double width); + double GetWidthLine(); + + virtual void ConstructVTKObjects(); + +private: + int _range; + + wxVtkBaseView *_wxvtkbaseview; + bool _selected; + bool *_editable; + bool _posibleSelected; + bool _viewControlPoints; + + + vtkPolyData *_pd; + vtkActor *_contourVtkActor; + vtkPolyDataMapper *_bboxMapper; + + double _coulorEdit_r; + double _coulorEdit_g; + double _coulorEdit_b; + double _coulorNormal_r; + double _coulorNormal_g; + double _coulorNormal_b; + double _coulorSelection_r; + double _coulorSelection_g; + double _coulorSelection_b; + double _widthline; + + void DeleteVtkObjects(); + virtual void RefreshText(); + + +protected: + + // text + bool _show_text; + int _id_viewPoint_for_text; + vtkTextActor *_textActor; + manualContourModel *_manContModel; + vtkPoints *_pts; +// JSTG 25-02-08 -------------------------------------------- + int _sizePointsContour; +//----------------------------------------------------------- + std::vector _lstViewPoints; + double _spc[3]; + +}; + + +#endif // manualViewBaseContour_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.cpp new file mode 100644 index 0000000..6d3cbc3 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.cpp @@ -0,0 +1,120 @@ +#include "manualViewBullEye.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualViewBullEye::manualViewBullEye() +{ +} + +// ---------------------------------------------------------------------------- +manualViewBullEye::~manualViewBullEye() +{ + // BullEye(s) + int i,size=lstSectorBullEye.size(); + for (i=0;iUpdateSpline(); + int np = GetNumberOfPoints( ); + // Refres sectors of BullEye(s) + + if (np>=2 ) + { + int i,size = lstSectorBullEye.size(); + for (i=0;iRefreshContour(); + } // for + } // if + + +} + +// ---------------------------------------------------------------------------- +void manualViewBullEye::ConstructVTKObjects() // virtual +{ + manualViewRoi::ConstructVTKObjects(); + + double spc[3]; + this->GetSpacing(spc); + manualViewBullEyeSector *mvbc; + manualContourModelBullEye *mcmbe = (manualContourModelBullEye*)this->_manContModel; + int i,size = mcmbe->GetSizeOfSectorLst(); + for ( i=0 ; iSetModel( mcmbe->GetModelSector(i) ); + mvbc->SetWxVtkBaseView( this->GetWxVtkBaseView() ); + mvbc->SetRange( 2 ); + mvbc->SetZ( 1000 ); + mvbc->SetSpacing(spc); + mvbc->SetColorNormalContour(1, 0, 0); +// mvbc->SetColorEditContour(0.5, 0.5, 0.5); +// mvbc->SetColorSelectContour(1, 0.8, 0); + mvbc->SetWidthLine( this->GetWidthLine() ); +//EED004 + mvbc->ConstructVTKObjects(); + lstSectorBullEye.push_back( mvbc ); + } + + +} + +// ---------------------------------------------------------------------------- +void manualViewBullEye::AddSplineActor() // virtual +{ + manualViewRoi::AddSplineActor(); + int i,size=lstSectorBullEye.size(); + for (i=0;iAddSplineActor(); + } +} + +// ---------------------------------------------------------------------------- +void manualViewBullEye::RemoveSplineActor() // virtual +{ + manualViewRoi::RemoveSplineActor(); + int i,size=lstSectorBullEye.size(); + for (i=0;iRemoveSplineActor(); + } +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.h new file mode 100644 index 0000000..7c8c343 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEye.h @@ -0,0 +1,40 @@ +#ifndef manualViewBullEye_h +#define manualViewBullEye_h + +#include "manualViewRoi.h" +#include "manualViewBullEyeSector.h" +#include "manualContourModelBullEye.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +//EED004 +class creaMaracasVisu_EXPORT manualViewBullEye: public manualViewRoi +{ +public: + manualViewBullEye(); + virtual ~manualViewBullEye(); + + virtual int GetType(); + virtual manualViewBullEye * Clone(); + void CopyAttributesTo( manualViewBullEye *cloneObject ); + +// void UpdateColorActorBullEye(); +// void DeleteVtkObjectsBullEye(); + virtual void RemoveSplineActor(); + virtual void AddSplineActor(); + virtual void ConstructVTKObjects(); + virtual void RefreshContour(); + +private: + +/*EED Borrame + std::vector lstSectorBullEye; +*/ + + std::vector lstSectorBullEye; + +}; + + +#endif // manualViewBullEye_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.cpp new file mode 100644 index 0000000..7f666de --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.cpp @@ -0,0 +1,30 @@ +#include "manualViewBullEyeSector.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +manualViewBullEyeSector::manualViewBullEyeSector() +{ +} + +// ---------------------------------------------------------------------------- +void manualViewBullEyeSector::RefreshContour() +{ +//EED004 + int i,nps; + double x,y,z; +//---------------------------------- + + _manContModel->UpdateSpline(); + nps = _manContModel->GetNumberOfPointsSpline(); + + if ( _pts!=NULL ) + { + for( i = 0; i < nps; i++ ) + { + _manContModel->GetSpline_i_Point(i,&x,&y,&z); + _pts->SetPoint(i , x*_spc[0] , y*_spc[1] , z*_spc[2] ); + }// for + } + +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.h new file mode 100644 index 0000000..6c18ea6 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBullEyeSector.h @@ -0,0 +1,16 @@ +#ifndef manualViewBullEyeSector_h +#define manualViewBullEyeSector_h + +#include "manualViewContour.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +class creaMaracasVisu_EXPORT manualViewBullEyeSector: public manualViewContour +{ +public: + manualViewBullEyeSector(); + virtual void RefreshContour(); +}; + +#endif // manualViewBullEyeSector_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp new file mode 100644 index 0000000..c234154 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp @@ -0,0 +1,210 @@ +#include "manualViewCircle.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// EED08 + +manualViewCircle::manualViewCircle() +{ +// _sizePointsContour=5; // default 100 +} +// ---------------------------------------------------------------------------- +manualViewCircle::~manualViewCircle() +{ +} + + +// ---------------------------------------------------------------------------- +manualViewCircle * manualViewCircle :: Clone() +{ + manualViewCircle * clone = new manualViewCircle(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualViewCircle::CopyAttributesTo( manualViewCircle * cloneObject) +{ + // Fathers object + manualViewBaseContour::CopyAttributesTo(cloneObject); +} + + +// ---------------------------------------------------------------------------- +/* +void manualViewCircle::RefreshContour(){ // virtual + + manualPoint *mpA,*mpB; + unsigned int i, np,nps; + double angle,radio; + double difX,difY; + double XX,YY,ZZ; + np = GetNumberOfPoints( ); + nps = _manContModel->GetNumberOfPointsSpline(); + double deltaAngle=(3.14159265*2)/(nps-1); + if ( np > 0) + { + if (np==2) + { + mpA = _manContModel->GetManualPoint(0); + mpB = _manContModel->GetManualPoint(1); + difX = mpA->GetX() - mpB->GetX(); + difY = mpA->GetY() - mpB->GetY(); + radio = sqrt( difX*difX + difY*difY ); + manualContourModelCircle *manContModelCir = (manualContourModelCircle*)_manContModel; + manContModelCir->SetRadio(radio); + + for( i = 0; i < nps; i++ ) { + manContModelCir->GetSpline_i_Point(i, &XX, &YY, &ZZ); +// angle = deltaAngle*i; +// XX = cos(angle)*radio+mpA->GetX(); +// YY = sin(angle)*radio+mpA->GetY(); + ZZ = mpA->GetZ(); + _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); + } // rof + } else { + _pts->SetPoint(0, 0 , 0 , 0); + _pts->SetPoint(1, 0 , 0 , 0); + } // if + } +} +*/ + +// ---------------------------------------------------------------------------- +int manualViewCircle::GetType() // virtual +{ + return 3; +} + +// ---------------------------------------------------------------------------- + +void manualViewCircle::GetMinMax(double &minX,double &minY, double &maxX, double &maxY) +{ + manualPoint *mpA,*mpB; + unsigned int np; + double radio; + double difX,difY; + np = GetNumberOfPoints( ); + if (np==2) + { + mpA = _manContModel->GetManualPoint(0); + mpB = _manContModel->GetManualPoint(1); + difX = mpA->GetX() - mpB->GetX(); + difY = mpA->GetY() - mpB->GetY(); + radio = sqrt( difX*difX + difY*difY ); + minX=mpA->GetX()-radio; + minY=mpA->GetY()-radio; + maxX=mpA->GetX()+radio; + maxY=mpA->GetY()+radio; + } else { + minX=0; + maxX=0; + minY=0; + maxY=0; + } +} + +/* +// ---------------------------------------------------------------------------- +bool manualViewCircle::ifTouchContour(int x,int y, int z) // virtual +{ + bool result=false; + double px1=99999,py1=99999,px2=-9999,py2=-99999; + + GetMinMax(px1,py1, px2, py2); + + double xx=x; + double yy=y; + double zz=z; + TransfromeCoordViewWorld(xx,yy,zz); + + bool ok1=false; + bool ok2=false; + double ddx=GetRange(); + double ddy=GetRange(); + + if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yyGetSizeLstPoints()==2){ + mp = _manContModel->GetManualPoint(0); + _dp0[0]= mp->GetX() - XX; + _dp0[1]= mp->GetY() - YY; + _dp0[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(1); + _dp1[0]= mp->GetX() - XX; + _dp1[1]= mp->GetY() - YY; + _dp1[2]= mp->GetZ(); +/* + mp = _manContModel->GetManualPoint(2); + _dp2[0]= mp->GetX() - XX; + _dp2[1]= mp->GetY() - YY; + _dp2[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(3); + _dp3[0]= mp->GetX() - XX; + _dp3[1]= mp->GetY() - YY; + _dp3[2]= mp->GetZ(); +*/ + } +} + + +// ---------------------------------------------------------------------------- +void manualViewCircle::MoveContour(int x, int y, int z) // virtual +{ + manualPoint *mp; + double XX=x; + double YY=y; + double ZZ=z; + TransfromeCoordViewWorld(XX,YY,ZZ); + + mp = _manContModel->GetManualPoint(0); + mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); + + mp = _manContModel->GetManualPoint(1); + mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); + +// mp = _manContModel->GetManualPoint(2); +// mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]); + +// mp = _manContModel->GetManualPoint(3); +// mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]); + + UpdateViewPoint(0); + UpdateViewPoint(1); +// UpdateViewPoint(2); +// UpdateViewPoint(3); + +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.h new file mode 100644 index 0000000..e11b25e --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.h @@ -0,0 +1,32 @@ +#ifndef manualViewCircle_h +#define manualViewCircle_h + +#include "manualViewContour.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// EED08 +class creaMaracasVisu_EXPORT manualViewCircle: public manualViewContour +{ +public: + manualViewCircle(); + virtual ~manualViewCircle(); + + virtual int GetType(); + virtual manualViewCircle * Clone(); + void CopyAttributesTo( manualViewCircle *cloneObject ); + + virtual void InitMove(int x, int y, int z); + virtual void MoveContour(int x, int y, int z); + void GetMinMax(double &minX,double &minY, double &maxX, double &maxY); + +private: + double _dp0[3]; + double _dp1[3]; +}; + + +#endif // manualViewCircle_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp new file mode 100644 index 0000000..c5b00f7 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp @@ -0,0 +1,277 @@ +#include "manualViewContour.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualViewContour::manualViewContour() +{ + _id_viewPoint_for_text = 0; + _mesureScale = 1; + _initialConoturModel = new manualContourModel(); +} +// ---------------------------------------------------------------------------- +manualViewContour::~manualViewContour() +{ + delete _initialConoturModel; +} +// ---------------------------------------------------------------------------- + +// ---------------------------------------------------------------------------- +manualViewContour * manualViewContour :: Clone() +{ + manualViewContour * clone = new manualViewContour(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualViewContour::CopyAttributesTo( manualViewContour * cloneObject) +{ + // Call to Fathers object + manualViewBaseContour::CopyAttributesTo(cloneObject); + + cloneObject->SetMesureScale(_mesureScale); +} + +// --------------------------------------------------------------------------- + +int manualViewContour::GetType() // virtual +{ + return 1; +} + +// ---------------------------------------------------------------------------- + +void manualViewContour::Save(FILE *pFile) +{ + manualViewBaseContour::Save(pFile); +} + +// ---------------------------------------------------------------------------- + +void manualViewContour::Open(FILE *pFile) +{ +} + + + +// ---------------------------------------------------------------------------- +void manualViewContour::RefreshContour() // virtual +{ + + int i,np,nps; + +//JSTG 25-02-08 -------------------- + //double t,delta, x,y,z; + double x,y,z; +//---------------------------------- + + _manContModel->UpdateSpline(); + np = GetNumberOfPoints( ); + //nps = GetNumberOfPointsSpline(); + nps = _manContModel->GetNumberOfPointsSpline(); + //delta=( double ) ( np ) / ( double ) ( nps-1 ); //JSTG 25-02-08 + + + if ( _pts!=NULL ) + { + if (np>=2 ) + { + for( i = 0; i < nps; i++ ) + { +//JSTG 25-02-08 ------------------------------------------------ + //t = delta * (double)i; + //_manContModel->GetSplinePoint(t,x,y,z); + _manContModel->GetSpline_i_Point(i,&x,&y,&z); +//-------------------------------------------------------------- + // EED 27 sep 2006 + // _pts->SetPoint(i, x,y,z ); + _pts->SetPoint(i , x*_spc[0] , y*_spc[1] , z*_spc[2] ); + + + }// for + } + else + { + _pts->SetPoint(0, 0 , 0 , 0); + _pts->SetPoint(1, 0 , 0 , 0); + } // if + } +} + +// ---------------------------------------------------------------------------- +void manualViewContour::RefreshText() // virtual +{ + if ((_textActor!=NULL) && ( _textActor->GetProperty()->GetOpacity()!=0 )){ + int size = GetNumberOfPoints(); + char text[50]; + char resultText[50]; + strcpy(resultText," "); + if (size==2) + { + strcpy(resultText,"L= "); + gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); + strcat(resultText,text); + } + if (size>2) + { + if (_manContModel->IfCloseContour()==true) + { + strcpy(resultText,"P= "); + gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); + strcat(resultText,text); + gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea() , 5, text ); + strcat(resultText," A= "); + strcat(resultText,text); + } else { + strcpy(resultText,"L= "); + gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text ); + strcat(resultText,text); + } + } + + _textActor->SetInput(resultText); + + if (size>=1){ + + int i; + for (i=0; iGetPosibleSelected()==true) + { + _id_viewPoint_for_text = i; + } + } + + int id = _id_viewPoint_for_text; + double px = _manContModel->GetManualPoint(id)->GetX(); + double py = _manContModel->GetManualPoint(id)->GetY(); + + //EED 27 sep 2006 + px=px*_spc[0]; + py=py*_spc[1]; + + _textActor->SetPosition(px+GetRange()+1,py); + } + + } +} + +// ---------------------------------------------------------------------------- +bool manualViewContour::ifTouchContour(int x,int y,int z){ + bool result=false; + double xx=x; + double yy=y; + double zz=z; + double ppA[3]; + double ppB[3]; + double d1,d2,d3; + TransfromeCoordViewWorld(xx,yy,zz); + +//EED 27 sep 2006 + xx = xx * _spc[0]; + yy = yy * _spc[1]; + zz = zz * _spc[2]; + + unsigned int i, nps,nps_t; + nps = _sizePointsContour; + + if (this->_manContModel->IfCloseContour()==true) + { + nps_t = nps; + } else { + nps_t = nps-1; + } + + + for( i = 0; i < nps_t; i++ ) + { + _pts->GetPoint(i%nps, ppA); + _pts->GetPoint((i+1)%nps, ppB); + d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz)); + d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz)); + d3= sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2])); + + + if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) ) + { + result=true; + i=nps; + } + } + + return result; +} + +// ---------------------------------------------------------------------------- +void manualViewContour::DeletePoint(int id) // virtual +{ + if (_lstViewPoints.size()>2) + { + manualViewBaseContour::DeletePoint( id ); + } +} +// ---------------------------------------------------------------------------- + +void manualViewContour::ClearPoint(int id) +{ + manualViewBaseContour::DeletePoint( id ); +} + +//------------------------------------------------------------------- +void manualViewContour::SetMesureScale(double mesureScale) +{ + _mesureScale = mesureScale; +} +//------------------------------------------------------------------- +void manualViewContour::InitMove(int x, int y, int z) +{ + _initialConoturModel->DeleteAllPoints(); + + manualPoint *mp = NULL; + double XX=x; + double YY=y; + double ZZ=z; + TransfromeCoordViewWorld(XX,YY,ZZ); + + int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); + for ( i=0; iGetManualPoint( i ); + this->_initialConoturModel->AddPoint( mp->GetX() - XX, mp->GetY() - YY, mp->GetZ() ); + } +} +//------------------------------------------------------------------- +void manualViewContour::MoveContour(int x, int y, int z) +{ + manualPoint *mpOrigin = NULL; + manualPoint *mpMoving = NULL; + double XX=x; + double YY=y; + double ZZ=z; + + TransfromeCoordViewWorld(XX,YY,ZZ); + + int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); + for ( i=0; iGetManualPoint( i ); + mpMoving = _initialConoturModel->GetManualPoint(i); + mpOrigin->SetPoint( mpMoving->GetX()+XX, mpMoving->GetY() + YY, mpMoving->GetZ() ); + } + UpdateViewPoints(); +} +void manualViewContour::MoveContour(int horizontalUnits, int verticalUnits ) +{ + manualPoint *mpOrigin = NULL; + + int i, manualPointsSZ = _manContModel->GetSizeLstPoints(); + for ( i=0; iGetManualPoint( i ); + mpOrigin->SetPoint( mpOrigin->GetX()+horizontalUnits, mpOrigin->GetY()+verticalUnits, mpOrigin->GetZ() ); + } + UpdateViewPoints(); +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.h new file mode 100644 index 0000000..330526d --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.h @@ -0,0 +1,42 @@ +#ifndef manualViewContour_h +#define manualViewContour_h + +#include "manualContourModel.h" +#include "manualViewBaseContour.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualViewContour: public manualViewBaseContour +{ +public: + manualViewContour(); + virtual ~manualViewContour(); + virtual manualViewContour * Clone(); + void CopyAttributesTo( manualViewContour *cloneObject ); + + virtual int GetType(); + virtual void Save(FILE *pFile); + virtual void Open(FILE *pFile); + + + virtual void RefreshContour(); + virtual bool ifTouchContour(int x,int y, int z); + virtual void InitMove(int x, int y, int z); + virtual void MoveContour(int x, int y, int z); + virtual void MoveContour(int horizontalUnits, int verticalUnits ); + virtual void DeletePoint(int id); + virtual void ClearPoint(int id); + void SetMesureScale(double mesureScale); +private: + double _mesureScale; + std::vector< std::vector > _initialMovingPoints; + manualContourModel * _initialConoturModel; + + virtual void RefreshText(); +protected: + +}; + +#endif // manualViewContour_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.cpp new file mode 100644 index 0000000..d19c8f3 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.cpp @@ -0,0 +1,88 @@ +#include "manualViewLine.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// AD:02-09 + +manualViewLine::manualViewLine() +{ + _sizePointsContour=20; +} +// ---------------------------------------------------------------------------- +manualViewLine::~manualViewLine() +{ +} + + +// ---------------------------------------------------------------------------- +manualViewLine * manualViewLine :: Clone() +{ + manualViewLine * clone = new manualViewLine(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualViewLine::CopyAttributesTo( manualViewLine * cloneObject) +{ + // Fathers object + manualViewBaseContour::CopyAttributesTo(cloneObject); +} + +// ---------------------------------------------------------------------------- +int manualViewLine::GetType() // virtual +{ + return 6; +} + + +// ---------------------------------------------------------------------------- + +void manualViewLine::InitMove(int x, int y, int z) // virtual +{ + manualPoint *mp; + double XX=x; + double YY=y; + double ZZ=z; + TransfromeCoordViewWorld(XX,YY,ZZ); + + if (_manContModel->GetSizeLstPoints()==2) + { + mp = _manContModel->GetManualPoint(0); + _dp0[0]= mp->GetX() - XX; + _dp0[1]= mp->GetY() - YY; + _dp0[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(1); + _dp1[0]= mp->GetX() - XX; + _dp1[1]= mp->GetY() - YY; + _dp1[2]= mp->GetZ(); + + } +} + + +// ---------------------------------------------------------------------------- +void manualViewLine::MoveContour(int x, int y, int z) // virtual +{ + manualPoint *mp; + double XX=x; + double YY=y; + double ZZ=z; + TransfromeCoordViewWorld(XX,YY,ZZ); + + mp = _manContModel->GetManualPoint(0); + mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); + + mp = _manContModel->GetManualPoint(1); + mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); + + + UpdateViewPoint(0); + UpdateViewPoint(1); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.h new file mode 100644 index 0000000..e1bae96 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewLine.h @@ -0,0 +1,30 @@ +#ifndef manualViewLine_h +#define manualViewLine_h + +#include "manualViewContour.h" + + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +// AD:02-09 +class creaMaracasVisu_EXPORT manualViewLine: public manualViewContour +{ +public: + manualViewLine(); + virtual ~manualViewLine(); + + virtual int GetType(); + virtual manualViewLine * Clone(); + void CopyAttributesTo( manualViewLine *cloneObject ); + + virtual void InitMove(int x, int y, int z); + virtual void MoveContour(int x, int y, int z); + +private: + double _dp0[3]; + double _dp1[3]; +}; + +#endif // manualViewLine_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.cpp new file mode 100644 index 0000000..61067b7 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.cpp @@ -0,0 +1,177 @@ +#include "manualViewPoint.h" + + +// --------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +//int manualViewPoint::range=1; + + +manualViewPoint::manualViewPoint(wxVtkBaseView *wxvtkbaseview){ + _selected = false; + _posibleSelected = false; + _pts = NULL; + _pd = NULL; + _pointVtkActor = NULL; + _bboxMapper = NULL; + _wxvtkbaseview = wxvtkbaseview; + _spc[0] = 1; + _spc[1] = 1; + _spc[2] = 1; + + _widthline = 1; + +} +// ---------------------------------------------------------------------------- +manualViewPoint::~manualViewPoint(){ + DeleteVtkObjects(); +} + +// ---------------------------------------------------------------------------- +void manualViewPoint::SetWidthLine( double width) +{ + _widthline = width; +} + +// ---------------------------------------------------------------------------- +void manualViewPoint::SetSelected(bool selected){ + _selected=selected; +} +// ---------------------------------------------------------------------------- +void manualViewPoint::SetPosibleSelected(bool posibleSelected){ + _posibleSelected=posibleSelected; +} +// ---------------------------------------------------------------------------- +bool manualViewPoint::GetSelected(){ + return _selected; +} +// ---------------------------------------------------------------------------- +bool manualViewPoint::GetPosibleSelected(){ + return _posibleSelected; +} +// ---------------------------------------------------------------------------- +void manualViewPoint::DeleteVtkObjects(){ + if (_pointVtkActor !=NULL) { _pointVtkActor->Delete(); } + if (_bboxMapper !=NULL) { _bboxMapper ->Delete(); } + if (_pts !=NULL) { _pts ->Delete(); } + if (_pd !=NULL) { _pd ->Delete(); } + _pointVtkActor = NULL; + _bboxMapper = NULL; + _pts = NULL; + _pd = NULL; +} + + + +// ---------------------------------------------------------------------------- +vtkActor* manualViewPoint::CreateVtkPointActor() +{ + DeleteVtkObjects(); + + _pts = vtkPoints::New(); + _pts->SetNumberOfPoints(8); + + _pts->SetPoint(0, -1000 , -1000 , 0 ); + _pts->SetPoint(1, 1000 , -1000 , 0 ); + _pts->SetPoint(2, 1000 , 1000 , 0 ); + _pts->SetPoint(3, -1000 , 1000 , 0 ); + _pts->SetPoint(4, -1000 , 1000 , 0 ); + _pts->SetPoint(5, -1000 , 1000 , 0 ); + _pts->SetPoint(6, -1000 , 1000 , 0 ); + _pts->SetPoint(7, -1000 , 1000 , 0 ); + + vtkCellArray *lines = vtkCellArray::New(); + lines->InsertNextCell(17); + lines->InsertCellPoint(0); + lines->InsertCellPoint(1); + lines->InsertCellPoint(2); + lines->InsertCellPoint(3); + lines->InsertCellPoint(0); + lines->InsertCellPoint(4); + lines->InsertCellPoint(5); + lines->InsertCellPoint(6); + lines->InsertCellPoint(7); + lines->InsertCellPoint(4); + lines->InsertCellPoint(0); + lines->InsertCellPoint(3); + lines->InsertCellPoint(7); + lines->InsertCellPoint(6); + lines->InsertCellPoint(2); + lines->InsertCellPoint(1); + lines->InsertCellPoint(5); + + _pd = vtkPolyData::New(); + _pd->SetPoints( _pts ); + _pd->SetLines( lines ); +// lines->Delete(); //do not delete lines ?? + + _pointVtkActor = vtkActor::New(); + _bboxMapper = vtkPolyDataMapper::New(); + + _bboxMapper->SetInput(_pd); +// _bboxMapper->ImmediateModeRenderingOn(); + _pointVtkActor->SetMapper(_bboxMapper); +// _pointVtkActor->GetProperty()->BackfaceCullingOn(); + UpdateColorActor(); +// _pd->ComputeBounds(); + + return _pointVtkActor; +} +// ---------------------------------------------------------------------------- +vtkActor* manualViewPoint::GetVtkActor(){ + return _pointVtkActor; +} +// ---------------------------------------------------------------------------- +void manualViewPoint::SetPositionXY(double x, double y,double i_range,double posZ) +{ +// double range=0.2; // i_range; +// double range=(double)manualViewPoint::range; + + double range=i_range; + +//EED 27 sep 2006 + x = x * _spc[0]; + y = y * _spc[1]; + posZ = posZ * _spc[2]; + + if (_pts!=NULL){ + _pts->SetPoint(0, x-range, y+range, posZ-range); + _pts->SetPoint(1, x+range, y+range, posZ-range); + _pts->SetPoint(2, x+range, y-range, posZ-range); + _pts->SetPoint(3, x-range, y-range, posZ-range); + _pts->SetPoint(4, x-range, y+range, posZ+range); + _pts->SetPoint(5, x+range, y+range, posZ+range); + _pts->SetPoint(6, x+range, y-range, posZ+range); + _pts->SetPoint(7, x-range, y-range, posZ+range); + } +} + + +// ---------------------------------------------------------------------------- +void manualViewPoint::UpdateColorActor() +{ + if (_pointVtkActor!=NULL){ +//EED03 + _pointVtkActor->GetProperty()->SetLineWidth( _widthline ); + _pointVtkActor->GetProperty()->SetDiffuseColor(1,0,0); + if (_posibleSelected==true){ + _pointVtkActor->GetProperty()->SetDiffuseColor(1,1,0); + } + } +} +// ---------------------------------------------------------------------------- +void manualViewPoint::GetSpacing(double spc[3]) +{ + spc[0] = _spc[0]; + spc[1] = _spc[1]; + spc[2] = _spc[2]; +} +// ---------------------------------------------------------------------------- +void manualViewPoint::SetSpacing(double spc[3]) +{ + _spc[0] = spc[0]; + _spc[1] = spc[1]; + _spc[2] = spc[2]; +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.h new file mode 100644 index 0000000..b8f3f4e --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.h @@ -0,0 +1,69 @@ +#ifndef manualViewPoint_h +#define manualViewPoint_h + +#include "vtkRenderWindow.h" + +#include "vtkRenderer.h" +#include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove ! +#include "vtkCommand.h" +#include "vtkPolyData.h" +#include "vtkCellArray.h" +#include "vtkPolyDataMapper.h" +#include "vtkInteractorObserver.h" +#include "vtkInteractorStyleImage.h" +#include + +#include + + +#include +#include +#include +#include + +#include "wxVTKRenderWindowInteractor.h" + + +//-- + +#include +#include "wxVtkBaseView.h" +#include "marTypes.h" + +//-------------------------------------------------------- + +class manualViewPoint{ +public: + +// static int range; + + manualViewPoint(wxVtkBaseView *wxvtkbaseview); + ~manualViewPoint(); + void SetSelected(bool selected); + void SetPosibleSelected(bool posibleSelected); + bool GetSelected(); + bool GetPosibleSelected(); + void DeleteVtkObjects(); + vtkActor* CreateVtkPointActor(); + void SetPositionXY(double x, double y, double range, double posZ); + vtkActor* GetVtkActor(); + void UpdateColorActor(); + void GetSpacing(double spc[3]); + void SetSpacing(double spc[3]); + void SetWidthLine( double width); + + +private: + bool _selected; + bool _posibleSelected; + vtkPoints *_pts; + vtkPolyData *_pd; + vtkActor *_pointVtkActor; + vtkPolyDataMapper *_bboxMapper; + wxVtkBaseView *_wxvtkbaseview; + double _widthline; +protected: + double _spc[3]; +}; + +#endif // manualViewPoint_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.cpp new file mode 100644 index 0000000..d86be6c --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.cpp @@ -0,0 +1,222 @@ +#include "manualViewRoi.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +manualViewRoi::manualViewRoi() +{ + _sizePointsContour=5; +} +// ---------------------------------------------------------------------------- +manualViewRoi::~manualViewRoi() +{ +} + + +// ---------------------------------------------------------------------------- +manualViewRoi * manualViewRoi :: Clone() +{ + manualViewRoi * clone = new manualViewRoi(); + CopyAttributesTo(clone); + return clone; +} + +// --------------------------------------------------------------------------- + +void manualViewRoi::CopyAttributesTo( manualViewRoi * cloneObject) +{ + // Fathers object + manualViewBaseContour::CopyAttributesTo(cloneObject); +} + +// ---------------------------------------------------------------------------- +void manualViewRoi::RefreshContour() // virtual +{ + unsigned int i,ii, np; + np = GetNumberOfPoints( ); +//EED01 + if ( np > 0) + { + if (np>=2) + { + manualPoint *mp; + for( i = 0; i < np+1; i++ ) { + ii=i%np; + mp = _manContModel->GetManualPoint(ii); + + //EEDx6 + double XX=mp->GetX(),YY=mp->GetY(),ZZ=mp->GetZ(); + // wxVtk2DBaseView *wxvtk2Dbasevie = (wxVtk2DBaseView*)this->GetWxVtkBaseView(); + // wxvtk2Dbasevie->TransformCoordinate_spacing_ModelToView(XX,YY,ZZ); + + //EED 27 sep 2007 + // _pts->SetPoint(i, XX,YY,ZZ ); + _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); + } // rof + + } else { + _pts->SetPoint(0, 0 , 0 , 0); + _pts->SetPoint(1, 0 , 0 , 0); + } // if + } +} + +// ---------------------------------------------------------------------------- +int manualViewRoi::GetType() // virtual +{ + return 2; +} + +// ---------------------------------------------------------------------------- + +void manualViewRoi::GetMinMax(double &minX,double &minY, double &maxX, double &maxY) +{ + double pp[3]; + manualPoint *mp; + unsigned int i; + + minX=99999; + minY=99999; + maxX=-99999; + maxY=-99999; + + unsigned int size=(unsigned int) _manContModel->GetSizeLstPoints(); + + for( i = 0; i < size; i++ ) + { + + mp=_manContModel->GetManualPoint(i); + pp[0]=mp->GetX(); + pp[1]=mp->GetY(); + + // min X + if (pp[0]maxX) + { + maxX=pp[0]; + } + // max Y + if (pp[1]>maxY) + { + maxY=pp[1]; + } + } + + if ( size<1 ) + { + minX=0; + maxX=0; + minY=0; + maxY=0; + } +} + +// ---------------------------------------------------------------------------- + + +bool manualViewRoi::ifTouchContour(int x,int y, int z) // virtual +{ + bool result=false; + double px1=99999,py1=99999,px2=-99999,py2=-99999; + + GetMinMax(px1,py1, px2, py2); + + double xx=x; + double yy=y; + double zz=z; + TransfromeCoordViewWorld(xx,yy,zz); + + bool ok1=false; + bool ok2=false; + double ddx=GetRange(); + double ddy=GetRange(); + + if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yyGetSizeLstPoints()==4){ + mp = _manContModel->GetManualPoint(0); + _dp0[0]= mp->GetX() - XX; + _dp0[1]= mp->GetY() - YY; + _dp0[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(1); + _dp1[0]= mp->GetX() - XX; + _dp1[1]= mp->GetY() - YY; + _dp1[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(2); + _dp2[0]= mp->GetX() - XX; + _dp2[1]= mp->GetY() - YY; + _dp2[2]= mp->GetZ(); + + mp = _manContModel->GetManualPoint(3); + _dp3[0]= mp->GetX() - XX; + _dp3[1]= mp->GetY() - YY; + _dp3[2]= mp->GetZ(); + } +} + +// ---------------------------------------------------------------------------- + +void manualViewRoi::MoveContour(int x, int y, int z) // virtual +{ + manualPoint *mp; + double XX=x; + double YY=y; + double ZZ=z; + TransfromeCoordViewWorld(XX,YY,ZZ); + + mp = _manContModel->GetManualPoint(0); + mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); + + mp = _manContModel->GetManualPoint(1); + mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); + + mp = _manContModel->GetManualPoint(2); + mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]); + + mp = _manContModel->GetManualPoint(3); + mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]); + + UpdateViewPoint(0); + UpdateViewPoint(1); + UpdateViewPoint(2); + UpdateViewPoint(3); + +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.h new file mode 100644 index 0000000..63ac00c --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewRoi.h @@ -0,0 +1,34 @@ +#ifndef manualViewRoi_h +#define manualViewRoi_h + +#include "manualViewContour.h" +#include "manualPoint.h" + +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +class creaMaracasVisu_EXPORT manualViewRoi: public manualViewContour +{ +public: + manualViewRoi(); + virtual ~manualViewRoi(); + + virtual int GetType(); + virtual manualViewRoi * Clone(); + void CopyAttributesTo( manualViewRoi *cloneObject ); + + virtual void RefreshContour(); + virtual bool ifTouchContour(int x,int y, int z); + virtual void InitMove(int x, int y, int z); + virtual void MoveContour(int x, int y, int z); + void GetMinMax(double &minX,double &minY, double &maxX, double &maxY); + +private: + double _dp0[3]; + double _dp1[3]; + double _dp2[3]; + double _dp3[3]; +}; + +#endif // manualViewRoi_h diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualViewPerpPlaneContour.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualViewPerpPlaneContour.h index 232c3da..6926a9b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualViewPerpPlaneContour.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualViewPerpPlaneContour.h @@ -1,7 +1,8 @@ #ifndef MANUALVIEWPERPPLANECONTOUR_H_ #define MANUALVIEWPERPPLANECONTOUR_H_ -#include "manualContour.h" +#include "manualViewPerpPlaneContour.h" +#include "manualViewContour.h" class manualViewPerpPlaneContour : public manualViewContour { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.h index d1d11b8..35418a2 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.h @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMPRWidget.h,v $ Language: C++ - Date: $Date: 2009/05/14 13:54:35 $ - Version: $Revision: 1.10 $ + Date: $Date: 2009/05/15 12:59:25 $ + Version: $Revision: 1.11 $ Copyright: (c) 2002, 2003 License: @@ -46,7 +46,7 @@ //#include "kernel/marInterface.h" -#include "manualContour.h" +//#include "manualContour.h" #include "wxMPRBaseData.h" #include "wxVtkBaseView.h" diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxManualTree_MPRWidget.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxManualTree_MPRWidget.h index 19f0184..14ea679 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxManualTree_MPRWidget.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxManualTree_MPRWidget.h @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxManualTree_MPRWidget.h,v $ Language: C++ - Date: $Date: 2009/05/14 13:54:35 $ - Version: $Revision: 1.2 $ + Date: $Date: 2009/05/15 12:59:25 $ + Version: $Revision: 1.3 $ Copyright: (c) 2002, 2003 License: @@ -46,7 +46,13 @@ #include "wxMPRWidget.h" #include "wxMPRWidget2.h" #include "manualViewPerpPlaneContour.h" -#include "../manualContour.h" +#include "manualContourModel.h" +#include "manualContour3VControler.h" +#include "manualView3VContour.h" +#include "manualContour3V3DControler.h" +#include "manualView3DContour.h" +#include "manualContourPerpPlaneControler.h" +#include "manualViewPerpPlaneContour.h" #include diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D.h index 0446df2..9de8eab 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D.h @@ -3,7 +3,9 @@ #include #include -#include "manualContour.h" +#include "manualContourControler.h" +#include "manualContourModel.h" +#include "manualViewContour.h" #include "wxVtk2DBaseView.h" class wxWidgetMesure2D : public wxSplitterWindow diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D_Plane.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D_Plane.h index f8a5898..b995f98 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D_Plane.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxWidgetMesure2D_Plane.h @@ -2,6 +2,7 @@ #define WXWIDGETMESURE2D_PLANE_H_ #include "wxWidgetMesure2D.h" +#include "wxVtk2DBaseView.h" class wxWidgetMesure2D_Plane : public wxWidgetMesure2D { -- 2.45.1