viewer.data().set_mesh(RV, RF)

viewer.data().set_mesh(RV, RF)

par Alexandre Aubry,
Nombre de réponses : 1

Bonjour à tous,

Mon code me permet d'accéder aux bonnes matrices RV et RF, cependant à la ligne viewer.data().set_mesh(RV, RF) j'obtient cette erreur :

Assertion failed: (i>=0) && ( ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows()) ||((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && i<xpr.cols())), file C:\Users\alex\Documents\ETS\MTI836\libigl\external\eigen\Eigen\src/Core/Block.h, line 122

Et j'ai du mal à comprendre le fichier Block.h

C'est d'autant plus curieux que lorsque je récupère les matrices RV et RF de mes logs et que je les recopie et exécute telle quelle , j'obtiens la bonne surface de révolution.

Merci de me dire si vous voyez ce que je n'ai pas fait correctement,

Bon après-midi,

Alexandre

En réponse à Alexandre Aubry

Re: viewer.data().set_mesh(RV, RF)

par Eric Paquette,
Après vérification en privé, l'erreur ne se situait pas dans « Block.h ». Si vous avez des problèmes semblables, vérifiez vos matrices RV et RF. La librairie libigl assume que les matrices RV et RF sont « bonnes ». Choses à vérifier :
  • matrices de la bonne taille, c'est à dire 3 colonnes
  • la matrice des faces comporte des indices qui existent bel et bien dans la matrice des sommets. Ces indices doivent être entre 0 et RV.rows()-1. Notez bien le « -1 », car Eigen et libigl sont « 0-based », c'est à dire que les indices commencent à 0 et vont jusqu'au nombre de sommets - 1. C'est différent du format .obj pour lequel les indices sont « 1-based ».