librairie VTK - extraire des "vtkactor"
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

librairie VTK - extraire des "vtkactor"



  1. #1
    a2bou

    librairie VTK - extraire des "vtkactor"


    ------

    Bonjour,

    J'ai écrit une petite application qui permet de charger un assemblage 3D depuis un fichier au format stl. Ensuite avec les fonctions vtk je suis capable d'en extraire les pièces de telle sorte que chaque pièce devienne un nouveau "vtkactor", ça marche très bien et du coup je suis même capable de colorier les composants. Le problème est que lorsque je déplace l'assemblage (pas la caméra ) juste avant d'effectuer l'extraction, les "vtkactor" se retrouvent au même positions qu'il y aurait eu si je n'avais pas déplacer l'assemblage.

    Pour être plus clair, lorsque je bouge mon assemblage par exemple de 1m dans une direction donnée puis procède à l’extraction des composants, ceux-ci ne se superposent pas avec l'assemblage dans sa nouvelle positions mais avec celle avant le déplacement! Je ne veux pas de ça

    Voici un extrait du code que

    Code:
    appendFilter->AddInputData(vtkPolyData::SafeDownCast(actor->GetMapper()->GetInput()));
    appendFilter->Update();
    vtkPolyDataConnectivityFilter *connectivityFilter=vtkPolyDataConnectivityFilter::New();
    connectivityFilter->SetInputConnection(appendFilter->GetOutputPort());
    
    connectivityFilter->SetExtractionModeToAllRegions();
    connectivityFilter->Update();
    
    nbracteurs=connectivityFilter->GetNumberOfExtractedRegions();
    connectivityFilter->SetExtractionModeToSpecifiedRegions();
    
    for (i=0; i<nbracteurs;i++)
    {
    
    connectivityFilter->Update();
    connectivityFilter->InitializeSpecifiedRegionList();
    connectivityFilter->AddSpecifiedRegion(i);
    connectivityFilter->Update();
    
    vtkPolyData *output = vtkPolyData::New();
    output->DeepCopy(connectivityFilter->GetOutput());
    vtkPolyDataMapper *mapper =vtkPolyDataMapper::New();
    mapper->SetInputData(output);
    mapper->Update();
    
    vtkActor *actor2=vtkActor::New();
    actor2->SetMapper(mapper);
    m_renderer->AddActor(actor2);
    
    }

    -----
    Dernière modification par JPL ; 21/09/2016 à 15h13. Motif: Ajout de la balise Code (#)

Discussions similaires

  1. VB mettre le micro en mode " ecoute" "veille" et "stop" sous visual basic
    Par mattlander dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 14/12/2015, 12h45
  2. Erreur "fichier non valide ou endommagé" en C++ en incluant une librairie
    Par fiatlux dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 18/12/2011, 17h13
  3. "Extraire" la porteuse avec un IC PLL...
    Par invite3740f94c dans le forum Électronique
    Réponses: 5
    Dernier message: 24/03/2011, 18h40
  4. [PIC] - Librairie pour carte SD avec "long filename"
    Par maximilien dans le forum Électronique
    Réponses: 3
    Dernier message: 24/11/2010, 23h13