[vtkusers] Changing Cell Color After picking
Dominik Szczerba
domi at vision.ee.ethz.ch
Sun Jan 7 17:05:05 EST 2007
you may need to set/update the range in the mapper
--ds
Ricardo Seco VTK wrote:
> well i did after setting the tuple the update of my polydata object and
> nothing....
> any more sugestions?
>
> Ricardo Seco
>
> Dominik Szczerba escreveu:
>> well you have to Update() something
>> --DS
>>
>> Ricardo Seco VTK wrote:
>>
>>> Hello. I am trying to change the color of the cell after picking but
>>> nothing happens...
>>> Could someone help me?
>>>
>>> Best Regards
>>> Ricardo Seco
>>>
>>> class vtkMyCallback : public vtkCommand
>>> {
>>> public:
>>> vtkMyCallback::vtkMyCallback() { m_pvtkActorSelection = NULL; };
>>> static vtkMyCallback *New() { return new vtkMyCallback; }
>>> void SetSelectionActor(vtkActor* pvtkActorSelection) {
>>> m_pvtkActorSelection = pvtkActorSelection; };
>>> void SetSelectionList(vtkIdList* pvtkIdDeletion) {
>>> m_pvtkIdDeletion = pvtkIdDeletion; };
>>> void SetSelectionDataSet(vtkPolyData* pvtkDataSet) {
>>> m_pvtkDataSet = pvtkDataSet; };
>>> void SetIren(vtkRenderWindowInteractor* pvtkIren) { m_pvtkIren =
>>> pvtkIren; };
>>> virtual void Execute(vtkObject *caller, unsigned long, void*)
>>> {
>>> double coords[3];
>>> int pId;
>>> float ptr;
>>> vtkCellPicker *picker = (vtkCellPicker
>>> *)m_pvtkIren->GetPicker();
>>> picker->GetPickPosition(coords);
>>> // Obter o Id da cell que acabamos de fazer pickin
>>> pId = picker->GetCellId();
>>>
>>> m_pvtkDataSet->GetPointData()->GetScalars()->SetTuple1(pId,0);--------------------------------------------------
>>>
>>> HERE
>>> printf("Cell ID a remover: %d \n",pId);
>>> // Inserção da cell na vtkIdList
>>> m_pvtkIdDeletion->InsertNextId(pId);
>>> // Caso a cell já esteja na vtkIdList ou seja NULL(-1)
>>> for(int k=0; k<m_pvtkIdDeletion->GetNumberOfIds(); k++)
>>> {
>>> if ((pId) == (m_pvtkIdDeletion->GetId(k)) && (k!=0))
>>> {
>>> m_pvtkIdDeletion->DeleteId(pId);
>>> m_pvtkIdDeletion->InsertNextId(pId);
>>> }
>>> if ((pId) == -1)
>>> m_pvtkIdDeletion->DeleteId(pId);
>>> }
>>>
>>> printf("-------------------------------------------------------------------------\n");
>>>
>>>
>>> printf("Numero de Cells para
>>> remocao:%d\n",m_pvtkIdDeletion->GetNumberOfIds());
>>> printf("Lista de Cells para remocao:\n");
>>> for(int k=0; k<m_pvtkIdDeletion->GetNumberOfIds(); k++)
>>> printf("Pos:%d
>>> CellId:%d\n",k,m_pvtkIdDeletion->GetId(k));
>>> // Renderizar a nossa esfera de picking para a cell
>>> seleccionada
>>> if (picker->GetCellId() != -1)
>>> {
>>> if (m_pvtkActorSelection)
>>> m_pvtkActorSelection->SetPosition(coords);
>>> }
>>> m_pvtkIren->Render();
>>>
>>> m_pvtkDataSet->GetPointData()->GetScalars()->SetTuple1(pId,1);
>>> }
>>> private:
>>> vtkActor* m_pvtkActorSelection;
>>> vtkIdList* m_pvtkIdDeletion;
>>> vtkPolyData* m_pvtkDataSet;
>>> vtkRenderWindowInteractor* m_pvtkIren;
>>> };
>>> _______________________________________________
>>> This is the private VTK discussion list. Please keep messages on-topic.
>>> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>
>>
>
> _______________________________________________
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list