[vtkusers] Changing Cell Color After picking

Ricardo Seco VTK secolasUA at gmail.com
Sun Jan 7 17:00:31 EST 2007


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
>>     
>
>   




More information about the vtkusers mailing list