Page 1 of 1

renderfile with command line

Posted: Wed Sep 02, 2015 4:00 pm
by jrivest
Bonjour,

J'utilise présentement des lignes de commandes mises dans un fichier .bat pour combiner différentes prises de vue et faire les rotations-translations requises. Je dois visualiser rapidement les fichiers résultants (quelques milliers) pour faire un trie initial. Pour faciliter le trie, j'aimerais extraire une image (bmp ou autre) de chaque fichier en ajoutant une option aux lignes commandes. J'ai réussi à compiler votre programme et j'essai de me retrouver dans le code pour implémenter la fonctionalité désirée. Comme je suis nouveau en programmation C++ et objet en général, je me demandais si vous prévoyer implémenter une telle fonctionalité, ou sinon, si vous pensez que cela peut se faire relativement facilement, auquel cas je m'y attarderai.

En passant, merci grandement pour cet utilitaire qu'est Cloudcompare, il m'est très utile en ce moment.

Cordialement
Joël Rivest

Re: renderfile with command line

Posted: Wed Sep 02, 2015 7:52 pm
by daniel
Techniquement je comprends ce que vous dites mais je précise que c'est quand même un forum anglophone ;)

Sinon faire ce que vous voulez n'est pas impossible mais va être compliqué : dans le mode "Command line" (class "ccCommandLineParser") aucune fenêtre d'application (MainWindow) n'est créée et il n'y a donc pas non plus de vue OpenGL (c'est d'ailleurs un des intérêts de ce mode, donc ça restera sans doute comme ça dans la version officielle).

Dans votre cas il faudrait en créer une pour afficher les entités 3D et enfin faire une capture (voir ccGLWindow::renderToFile).

En détail, il faut :
  • créer une instance de QMainWindow (la "MainWindow" officielle devrait faire l'affaire)
  • récupérer un pointeur vers la vue 3D courante (MainWindow::getActiveGLWindow)
  • ajouter les entités 3D à cette vue (ccGLWindow::addToOwnDB)
  • régler le zoom (ccGLWindow::updateConstellationCenterAndZoom)
  • régler la caméra si besoin (ccGLWindow::setView ou ccGLWindow::rotateBaseViewMat)
  • et abuser des appels à QApplication::porcessEvents car vous utiliserez des widgets Qt sans "main loop" active (Cf. le fonctionnement de Qt) ... sinon vous ne verrez rien s'afficher ...
Avec un peu de chance ça peut marcher.

Re: renderfile with command line

Posted: Thu Sep 10, 2015 1:01 am
by jrivest
Bonjour,

Merci d'avoir pris le temps de me répondre (je viens juste de voir la réponse). Je suspectais un peu la difficulté occasionnée par l'absence de fenêtre d'application. Finalement, je vais utiliser une approche différente, soit me créer un viewer avec webgl pour visualiser rapidement les fichiers produits par Cloudcompare.

Et désolé pour l'anglais. Si vous le voulez, je peux traduire ma question et la réponse pour le bénéfice des utilisateurs du forum.

Encore merci.
Joël

Re: renderfile with command line

Posted: Thu Sep 10, 2015 5:26 am
by daniel
Vous avez testé ccViewer ?

Re: renderfile with command line

Posted: Thu Sep 10, 2015 3:11 pm
by jrivest
Bonjour
Je viens de le tester, il charge très rapidement et fonctionne très bien. Pour mon besoin, j'aimerais afficher simultanément plusieurs images dans des cadres différents. À moins que CCviewer ne le permette (je n'ai pas vu comment), j'utiliserais des frames et webgl (j'ai un prototype qui semble bien fonctioner pour le moment).
Cordialement,
Joël