void DrawAxisTree3D::DrawOneAxis(int iGeneral,int numPoints, int iAxis)
{
+printf("8.1 ");
vtkPolyData *polydata = vtkPolyData::New( );
vtkPolyDataMapper *polydatamapper = vtkPolyDataMapper::New();
vtkActor *vtkactor = vtkActor::New();
#endif
vtkactor->SetMapper(polydatamapper);
+printf("8.2 ");
+
vecVtkPolyData.push_back( polydata );
vecVtkPolyDataMaper.push_back( polydatamapper );
vecVtkActors.push_back( vtkactor );
+printf("8.3 ");
+
// vtkImageData* img = bbGetInputImage();
unsigned int i,size;
double spc[3];
int lstpointsXsize =bbGetInputlstPointX().size();
- if( lstpointsXsize>0 ){
- vtkPoints* allPoints = vtkPoints::New( );
-vtkPolyLine *polyline = vtkPolyLine::New();
+printf("8.4 ");
+
+ if( lstpointsXsize>0 )
+ {
+printf("8.5 ");
+ vtkPoints *allPoints = vtkPoints::New( );
+ vtkPolyLine *polyline = vtkPolyLine::New();
vtkCellArray* allTopology = vtkCellArray::New( );
// allTopology->InsertNextCell( numPoints );
+printf("8.6 ");
size=iGeneral+numPoints;
for (i=iGeneral;i<size;i++)
{
+printf("8.7(%d) ",i);
//multiplicar ver parametros spacing, en maracas cuando se toca la imagen y se ve dycom
//hay parĀ·metro dycom, vtkImagedata valor spacing y esos datos hay que multiplicar al polydata
allPoints->InsertNextPoint( bbGetInputlstPointX()[i]*spc[0],
// allTopology->InsertCellPoint( i-iGeneral );
} // rof
+printf("8.8 ");
+
allTopology->InsertNextCell(polyline);
// create cell array for edges
vtkCellArray *edges = vtkCellArray::New();
+printf("8.9 ");
// connect edge's and vertexes point ids
for(vtkIdType i = iGeneral; i < size-1; i++)
{
+printf("8.10(%d) ",i);
vtkLine *edge = vtkLine::New();
edge->GetPointIds()->SetId(0, i-iGeneral);
edge->GetPointIds()->SetId(1, (i-iGeneral+1) );
// vertexes->InsertNextCell(vertex);
}
+printf("8.11 ");
polydata->SetPoints( allPoints );
polydata->SetLines(edges);
// polydata->SetLines( allTopology );
edges->Delete();
allPoints->Delete();
allTopology->Delete();
+printf("8.12 ");
+
}
// color
if (bbGetInputColourLaw()==1) // the same color for all
{
+printf("8.13(%d) ",bbGetInputColour().size() );
+
r = bbGetInputColour()[0];
g = bbGetInputColour()[1];
b = bbGetInputColour()[2];
if (bbGetInputColourLaw()==2) // different colors for each segment
{
+printf("8.14 ");
if ( (iAxis*3+1) < (int)(bbGetInputColour().size()) )
{
r = bbGetInputColour()[0+iAxis*3];
g = (rand() % 100) / 100.0;
b = (rand() % 100) / 100.0;
}
+printf("8.15 ");
vtkactor->GetProperty()->SetColor( r,g,b );
} // Law 2 color for each segment
if (bbGetInputColourLaw()==3) // color for each point
{
+printf("8.16 ");
// Setup the colors array
vtkUnsignedCharArray *colors = vtkUnsignedCharArray::New();
colors->SetNumberOfComponents(3);
} // Law 3 color for each point
+printf("8.17 ");
vtkactor->GetProperty()->SetLineWidth( bbGetInputLineWidth() );
vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() );
if ( bbGetInputTransform()!=NULL )
{
+printf("8.18 ");
vtkactor->SetUserTransform( bbGetInputTransform() );
}
// Interface Update
if (bbGetInputRenderer()!=NULL )
{
+printf("8.19 ");
bbGetInputRenderer()->AddActor( vtkactor );
}
+printf("8.20 ");
}
void DrawAxisTree3D::Process()
{
-
+printf("1 ");
int iGeneral=0;
std::vector<int> lstIndexs = bbGetInputlstIndexs();
if ( bbGetInputlstIndexs().size()==0 )
{
+printf("2 ");
lstIndexs.push_back( bbGetInputlstPointX().size() );
} // if
int iAxis,sizeLstAxis=lstIndexs.size();
int iActor,sizeActors = vecVtkActors.size();
int numPoints;
+printf("3 ");
// if (oldLstSize!=sizeLstAxis)
// {
// oldLstSize=sizeLstAxis;
for (iActor=0 ; iActor<sizeActors; iActor++)
{
+printf("4-%d ",iActor);
if (bbGetInputRenderer()!=NULL )
{
+printf("5 ");
bbGetInputRenderer()->RemoveActor( vecVtkActors[iActor] );
vecVtkPolyData[iActor]->Delete();
vecVtkPolyDataMaper[iActor]->Delete();
vecVtkActors[iActor]->Delete();
+printf("6 ");
} // if
} // for iActor
vecVtkPolyData.clear();
vecVtkPolyDataMaper.clear();
vecVtkActors.clear();
+printf("7 ");
for ( iAxis=0 ; iAxis<sizeLstAxis ; iAxis++)
{
+printf("8(%d) ",iAxis);
numPoints = lstIndexs[iAxis];
+printf("9(%d) ",iAxis);
DrawOneAxis(iGeneral,numPoints,iAxis);
+printf("10 ");
iGeneral = iGeneral+numPoints;
// if ((iAxis % 1)==0)
// {
// }
} // for iAxis
+printf("11 ");
+
if ( bbGetInputiAxis() < (int)(vecVtkActors.size() ) )
{
bbSetOutputOutAxis( vecVtkActors[ bbGetInputiAxis() ] );
} // if
// } else {// if oldLstSize
// } // if oldLstSize
+
+printf("12 \n");
+
+
}
void DrawAxisTree3D::bbUserSetDefaultValues()
//EED 24oct2010
_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified();
- _imageViewer2XYZ->GetVtkImageViewer2()->Render();
+//EED2120-06-23 _imageViewer2XYZ->GetVtkImageViewer2()->Render();
//////////////
//RaC 04-2010 Look for the description of new changes in vtkInteractorStyleBaseView2D constructor.
//-------------------------------------------------------------------
void wxVtkMPR3DView::Configure()
{
+printf("EED wxVtkMPR3DView::Configure Configure Start\n");
+
vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
_wxvtk3Dbaseview->Configure();
_wxvtkmpr3DviewCntrlPanel->UpdateControlPanel();
// render window (expressed in pixels).
_wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 );
//EED 23oct2010 _wxvtk3Dbaseview->GetRenWin()->SetSize(400, 400);
+
+printf("EED wxVtkMPR3DView::Configure Configure End\n");
+
}
//-------------------------------------------------------------------
void wxVtkMPR3DView::ConfigureFreePlanes()
{
+printf("EED wxVtkMPR3DView::ConfigureFreePlanes Start\n");
// The shared picker enables us to use 3 planes at one time
// and gets the picking order right
vtkCellPicker* picker = vtkCellPicker::New();
_planeWidgetX->AddObserver(vtkCommand::InteractionEvent, wlipwc );
_planeWidgetY->AddObserver(vtkCommand::InteractionEvent, wlipwc );
_planeWidgetZ->AddObserver(vtkCommand::InteractionEvent, wlipwc );
+
+
+
+printf("EED wxVtkMPR3DView::ConfigureFreePlanes End\n");
}
//-------------------------------------------------------------------
void wxVtkMPR3DView::SetImage()
{
+printf("EED wxVtkMPR3DView::SetImage Start\n");
vtkImageData *imageData = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
// Orthogonal planes B&W
//EED 2017-01-01 Migration VTK7
double y = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetY();
double z = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetZ();
+
+/*
+ if (mchange==NULL)
+ {
+ mchange = vtkImageChangeInformation::New();
+ mchange->SetInputData( imageData );
+ mchange->Modified(); //important
+ mchange->Update(); //important
+ _planeWidgetX->SetInputData( mchange->GetOutput() );
+ _planeWidgetY->SetInputData( mchange->GetOutput() );
+ _planeWidgetZ->SetInputData( mchange->GetOutput() );
+ } else {
+ mchange->SetInputData( imageData );
+ mchange->Modified(); //important
+ mchange->Update(); //important
+ }
+
+*/
+
+
+
+
_planeWidgetX->SetInputData( imageData );
- _planeWidgetX->SetWindowLevel(colorWindow,colorLevel,1);
- _planeWidgetX->SetSlicePosition( x*spc[0] );
_planeWidgetY->SetInputData( imageData );
- _planeWidgetY->SetWindowLevel(colorWindow,colorLevel,1);
- _planeWidgetY->SetSlicePosition( y*spc[1] );
_planeWidgetZ->SetInputData( imageData );
- _planeWidgetZ->SetWindowLevel(colorWindow,colorLevel,1);
+//EED 2021-06-23
+// _planeWidgetX->SetWindowLevel(colorLevel,colorWindow,1);
+// _planeWidgetY->SetWindowLevel(colorLevel,colorWindow,1);
+// _planeWidgetY->SetWindowLevel(colorLevel,colorWindow,1);
+ _planeWidgetX->SetSlicePosition( x*spc[0] );
+ _planeWidgetY->SetSlicePosition( y*spc[1] );
_planeWidgetZ->SetSlicePosition( z*spc[2] );
// -- Plane widget
_probe->SetSourceData( imageData );
#endif
_vtkmpr3Ddataviewer->SetImage();
+printf("EED wxVtkMPR3DView::SetImage End %f %f \n", colorWindow,colorLevel );
+
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
void wxVtkMPR3DView::Refresh() // virtual
{
+printf("EED wxVtkMPR3DView::Refresh Start\n");
_vtkmpr3Ddataviewer->Refresh();
if (_wxvtkmpr3DviewCntrlPanel!=NULL)
{
_wxvtkmpr3DviewCntrlPanel->Refresh();
}
+printf("EED wxVtkMPR3DView::Refresh End\n");
}
//-------------------------------------------------------------------
void wxVtkMPR3DView::RefreshView() // virtual
{
+printf("EED wxVtkMPR3DView::RefreshView Start\n");
double spc[3];
vtkImageData *image = GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
if(image)
#else
_probe->Update();
#endif
- }
+ } //_pointWidget
if (_wxvtkmpr3DviewCntrlPanel!=NULL)
{
_wxvtkmpr3DviewCntrlPanel->UpdateControlPanel(false);
} // if _wxvtkmpr3DviewCntrlPanel
+printf("EED wxVtkMPR3DView::RefreshView End\n");
}
//-------------------------------------------------------------------
#include "vtkPlaneWidget.h"
#include "vtkPointWidget.h"
#include "vtkImagePlaneWidget.h"
+#include "vtkImageChangeInformation.h"
//class vtkmyPWCallback_3DPointWidget;
vtkImagePlaneWidget *_planeWidgetY;
vtkImagePlaneWidget *_planeWidgetZ;
+ vtkImageChangeInformation *mchange;
+
protected:
};