-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQAmiensRCode_main.cpp
63 lines (53 loc) · 2.77 KB
/
QAmiensRCode_main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
*********************************************************************************************************************************
CE PROGRAMME NE TOURNE PAS !
CE N'EST PAS UN MOTEUR !
*********************************************************************************************************************************
*/
#include <cstdint>
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <SFML/Graphics.hpp>
#include "QAmiensRCode.hpp"
// La boucle principale du programme, exécutée la première.
int main(int argc, char **argv) {
std::string texteString;
std::cout << "Entrer le texte à encoder en QAmiensRCode : ";
std::cin >> texteString; // On entre le texte qu'on veut convertir
int correction;
std::cout << "Entrer le niveau de correction (1 = bas, 2 = moyen, 3 = haut, 4 = extrême) : ";
std::cin >> correction;
const QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr &nivCorrErreur = QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr::BAS;
if(correction==1) const QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr &nivCorrErreur = QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr::BAS;
if(correction==2) const QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr &nivCorrErreur = QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr::MOYEN;
if(correction==3) const QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr &nivCorrErreur = QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr::MOYEN_PLUS;
if(correction==4) const QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr &nivCorrErreur = QAmiensRCodeGeneration::QAmiensRCode::NivCorrErr::HAUT;
const char *texte = texteString.c_str(); // On convertit la chaine de caractère en liste de caractères (et oui c'est important !)
// Création du QAmiensRCode et copiage des données SVG dans un fichier xml
const QAmiensRCodeGeneration::QAmiensRCode qamiensrcode = QAmiensRCodeGeneration::QAmiensRCode::encoderTexte(texte, nivCorrErreur);
std::fstream xml("QAmiensRCode.xml", std::ios::out | std::ios::trunc);
if (xml) {
xml << qamiensrcode.encoderSVG(4);
xml.close();
}
sf::RenderWindow fen(sf::VideoMode(500, 500), "QAmiensRCode");
sf::Sprite sprite;
sf::Texture texture(qamiensrcode.encoderSFML(4));
sprite.setTexture(texture);
float echelle = qamiensrcode.getEchelle(4);
sprite.setScale(echelle, echelle);
while (fen.isOpen()) {
sf::Event event;
while (fen.pollEvent(event)) {
if (event.type == sf::Event::Closed) fen.close();
// Si on appuie sur Entrer on ferme la fenêtre
if (event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::Return) fen.close();
}
fen.clear();
fen.draw(sprite);
fen.display();
}
return 0;
}