//=========================================================================
vtkGPortView::vtkGPortView()
- {
+ {
}
//=========================================================================
}
//=========================================================================
- void vtkGPortView::update()
+ void vtkGPortView::update(int idController,int command)
{
- //paint();
- if(_model->getState()==HIGHLIGHTED)
- {
- _objectActor->GetProperty()->SetColor(0.0,0.2,0.5);
- }
- else
- {
- _objectActor->GetProperty()->SetColor(0.3,0.2,0.2);
- }
- _baseView->GetRenderer()->Render();
+ updateColors();
+
+ double xInic, yInic,zInic,xFin, yFin,zFin;
+
+ _model->getInicPoint(xInic,yInic,zInic);
+ _model->getFinalPoint(xFin, yFin,zFin);
+
+ // 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 );
+
+ _fillPolyMapper->Modified();
+
+ setRefreshWaiting();
}
//=========================================================================
void vtkGPortView::createVtkObjects() //virtual
{
- vtkPoints *_pts = vtkPoints::New();
- vtkCellArray *lines = vtkCellArray::New();
- vtkPolyData *_pd = vtkPolyData::New();
- vtkPolyDataMapper* _bboxMapper=vtkPolyDataMapper::New();
- _objectActor=vtkActor::New();
-
- _pts->SetNumberOfPoints(4);
+ _pts = vtkPoints::New();
+ _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 );
-
- lines->InsertNextCell(5);
- lines->InsertCellPoint(0);
- lines->InsertCellPoint(1);
- lines->InsertCellPoint(2);
- lines->InsertCellPoint(3);
- lines->InsertCellPoint(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 );
+
+ ///************************* FILL *************************
+
+ vtkCellArray *strip = vtkCellArray::New();
+ vtkPolyData *pdFill = vtkPolyData::New();
+ _fillPolyMapper=vtkPolyDataMapper::New();
+ _fillObjectActor=vtkActor::New();
+
+ // RaC In the actual version, zInic=zFin=900
+
+ strip->InsertNextCell(3);
+ strip->InsertCellPoint(0);
+ strip->InsertCellPoint(1);
+ strip->InsertCellPoint(2);
- _pd->SetPoints( _pts );
- _pd->SetLines( lines );
+ pdFill->SetPoints( _pts );
+ pdFill->SetStrips( strip );
+
+ _fillPolyMapper->SetInput(pdFill);
+ _fillObjectActor->SetMapper(_fillPolyMapper);
+ _fillPolyMapper->Modified();
+
+ ///************************* FILL *************************
+
+ updateColors();
+
- _bboxMapper->SetInput(_pd);
- _objectActor->SetMapper(_bboxMapper);
+ }
- _objectActor->GetProperty()->SetColor(0.8,0.0,0.0);
+ //=========================================================================
+ void vtkGPortView::updateColors()
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.5,0.45,0.45);
+
+ if(_state==HIGHLIGHTED)
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.8,0.8,0.8);
+ }
+ else
+ {
+ GPortModel* portm = (GPortModel*)_model;
+ if(portm->isConnected())
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.15,0.15,0.15);
+ }
+ else if(portm->isValueSet())
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.55,0.25,0.25);
+ }
+ else
+ {
+ _fillObjectActor->GetProperty()->SetColor(0.5,0.45,0.45);
+ }
+ }
}
//=========================================================================