[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