//=========================================================================
vtkGPortView::vtkGPortView()
- {
+ {
}
//=========================================================================
}
//=========================================================================
- void vtkGPortView::update(int command)
+ void vtkGPortView::update(int idController,int command)
{
- if(_model->getState()==HIGHLIGHTED)
- {
- _objectActor->GetProperty()->SetColor(0.8,0.2,0.5);
- }
- else
- {
- _objectActor->GetProperty()->SetColor(0.3,0.2,0.2);
- }
-
+ updateColors();
+
double xInic, yInic,zInic,xFin, yFin,zFin;
_model->getInicPoint(xInic,yInic,zInic);
_model->getFinalPoint(xFin, yFin,zFin);
- _pts->SetPoint(0, xInic, yInic, 0 );
- _pts->SetPoint(1, xInic, yFin, 0 );
- _pts->SetPoint(2, xFin, yFin, 0 );
- _pts->SetPoint(3, xFin, yInic, 0 );
+ // RaC In the actual version, zInic=zFin=900
+
+ double mid = (xInic+xFin)/2;
- _baseView->GetRenderer()->Render();
- _baseView->GetRenWin()->Render();
+ _pts->SetPoint(0, xInic, yInic, zInic );
+ _pts->SetPoint(1, mid, yFin, zInic );
+ _pts->SetPoint(2, xFin, yInic, zFin );
+ _borderObjectActor->Modified();
+ _fillPolyMapper->Modified();
+
+ setRefreshWaiting();
}
//=========================================================================
_pts = vtkPoints::New();
vtkCellArray *lines = vtkCellArray::New();
vtkPolyData *_pd = vtkPolyData::New();
- vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New();
- _objectActor=vtkActor::New();
+ _borderPolyMapper=vtkPolyDataMapper::New();
+ _borderObjectActor=vtkActor::New();
- _pts->SetNumberOfPoints(4);
+ _pts->SetNumberOfPoints(3);
double xInic, yInic,zInic,xFin, yFin,zFin;
_model->getInicPoint(xInic,yInic,zInic);
_model->getFinalPoint(xFin, yFin,zFin);
- _pts->SetPoint(0, xInic, yInic, 0 );
- _pts->SetPoint(1, xInic, yFin, 0 );
- _pts->SetPoint(2, xFin, yFin, 0 );
- _pts->SetPoint(3, xFin, yInic, 0 );
+ // RaC In the actual version, zInic=zFin=900
+
+ double mid = (xInic+xFin)/2;
+
+ _pts->SetPoint(0, xInic, yInic, zInic );
+ _pts->SetPoint(1, mid, yFin, zInic );
+ _pts->SetPoint(2, xFin, yInic, zFin );
- lines->InsertNextCell(5);
+ lines->InsertNextCell(4);
lines->InsertCellPoint(0);
lines->InsertCellPoint(1);
lines->InsertCellPoint(2);
- lines->InsertCellPoint(3);
lines->InsertCellPoint(0);
_pd->SetPoints( _pts );
_pd->SetLines( lines );
- _bboxMapper->SetInput(_pd);
- _objectActor->SetMapper(_bboxMapper);
+ _borderPolyMapper->SetInput(_pd);
+ _borderObjectActor->SetMapper(_borderPolyMapper);
+ _borderPolyMapper->Modified();
+
+
+ ///************************* FILL *************************
+
+ vtkCellArray *strip = vtkCellArray::New();
+ vtkPolyData *pdFill = vtkPolyData::New();
+ _fillPolyMapper=vtkPolyDataMapper::New();
+ _fillObjectActor=vtkActor::New();
- _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B);
+ // RaC In the actual version, zInic=zFin=900
+
+ strip->InsertNextCell(3);
+ strip->InsertCellPoint(0);
+ strip->InsertCellPoint(1);
+ strip->InsertCellPoint(2);
+
+ pdFill->SetPoints( _pts );
+ pdFill->SetStrips( strip );
+ _fillPolyMapper->SetInput(pdFill);
+ _fillObjectActor->SetMapper(_fillPolyMapper);
+ _fillPolyMapper->Modified();
+
+ ///************************* FILL *************************
+
+ updateColors();
+
+
+ }
+
+ //=========================================================================
+
+ void vtkGPortView::updateColors()
+ {
+ _borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,BOXBORDER_NH_G,BOXBORDER_NH_B);
+ _fillObjectActor->GetProperty()->SetColor(0.6,0.6,0.6);
+
+ if(_state==HIGHLIGHTED)
+ {
+ _borderObjectActor->GetProperty()->SetColor(0.35,0.15,0.1);
+ _fillObjectActor->GetProperty()->SetColor(0.8,0.8,0.8);
+ }
+ else
+ {
+ GPortModel* portm = (GPortModel*)_model;
+ _borderObjectActor->GetProperty()->SetColor(0.15,0.15,0.15);
+ if(portm->isConnected())
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.2,0.2,0.2);
+ }
+ else
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.6,0.6,0.6);
+ }
+ }
}
//=========================================================================