La difficulté y Compris les / en Utilisant GLM bibliothèque
J'ai du mal à correctement y compris les /en utilisant le glm bibliothèque de mathématiques (http://glm.g-truc.net/ ) dans mon projet de c++. Depuis glm est un "en-tête seulement" de la bibliothèque, j'ai pensé que je pourrais juste l'inclure avec cette ligne:
#include "glm/glm.hpp"
Au début, cela semblait être au travail, que j'ai pu créer et utiliser des matrices et des vecteurs. Cependant, quand j'ai essayé d'utiliser le glm::translate(...)
fonction que j'ai eu cette erreur:
error: ‘translate’ is not a member of ‘glm’
Sur le GLM site web, ils recommandent notamment de la bibliothèque avec un triangle entre crochets, comme ceci:
#include <glm/glm.hpp>
...mais n'est-il pas correct de penser que je puisse l'inclure dans l'autre sens, étant donné qu'il est à l'intérieur de la structure de répertoire du projet?
J'ai mis en place le test ci-dessous pour illustrer le problème que j'ai. Le glm
dossier est assis à côté de la testglm.cpp
fichier.
#include <iostream>
#include "glm/glm.hpp"
using namespace std;
int main(void) {
//works:
glm::mat4 testMatrix1 = glm::mat4(5.0f) * glm::mat4(2.0f);
cout << testMatrix1[0][0] << endl; //output: 10
//doesn't work - (error: ‘translate’ is not a member of ‘glm’):
glm::mat4 testMatrix2 = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
}
Je suis la construction de ce test avec cette version commande dans le terminal, sur osx:
g++ -o bin/glm_test src/testglm.cpp
Je ne sais pas si mon problème est lié à la façon dont je suis, y compris la bibliothèque, comment je l'utilise, ou comment je suis en train de construire le projet. Google ne me donne pas à tout les coups pour que le message d'erreur, donc je me demande si je fais quelque chose de fondamentalement mauvais. Des conseils seront très appréciés. Merci.
OriginalL'auteur null | 2013-10-11
Vous devez vous connecter pour publier un commentaire.
yngum la suggestion de me conduire à y regarder de plus près à la documentation, et j'ai réalisé que
glm::translate
fait partie d'un module qui s'étend le glm de base. J'avais besoin de comprendre à la fois le glm de base et le matrix_transform extension:Maintenant l'exemple de test fonctionne. (J'ai aussi remarqué que j'avais aussi fait une stupide erreur dans le test, ce qui aurait empêché de la compilation. Qui a été résolu dans la question d'origine maintenant pour le plaisir des futurs lecteurs qui peuvent éprouver le problème que j'ai eu pour la même raison.)
OriginalL'auteur null
Peut-être que je suis un peu en retard, mais au lieu de
on pourrait utiliser
OriginalL'auteur Tqq
assurez-vous d'avoir les bons arguments ou de l'utilisation d'un IDE pour vous simplifier la vie.
voici les
glm::translate
signatures je peux trouvertranslate()
- une faute de frappe à partir de quand j'ai essayé lerotate()
fonction. Cependant, ce n'était pas la cause réelle du problème, commetranslate
est effectivement trouvé dans une extension que je n'avais pas compris. J'ai décidé de corriger la faute de frappe et de répondre à ma propre question, je pense que ce sera de plus une valeur pratique pour les futurs lecteurs de googler pour cette erreur. +1 pour me faire examiner de plus près les docs. Merci.BTW, je ne serait certainement utiliser un ide pour des projets sérieux, mais pour le moment je suis moi forçant à apprendre à écrire des Makefiles. Je pense que c'est un exercice utile qui finira par payer éviter la douleur et de la souffrance.
OriginalL'auteur yngccc