Bonjour,
Je code un petit HalfEdge. Voilà un code minimal :
#include <iostream>
#include <SFML/Graphics.hpp>
struct HalfEdge
{
int x;
int y;
HalfEdge* next;
};
int main()
{
std::vector<HalfEdge> m;
m.resize(6);
const int width = 600;
const int height = 400;
m[0] = {50,50,&m[1]};
m[1] = {width,50,&m[2]};
m[2] = {50,height,&m[0]};
m[3] = {50,height,&m[4]};
m[4] = {width,50,&m[5]};
m[5] = {width,height,&m[3]};
m.push_back({100,100,&m[0]});
sf::VertexArray vertexArray(sf::Lines);
for (unsigned i=0; i<m.size(); i++)
{
std::cout << m[i].x << "," << m[i].y << "," << m[i].next->x << "," << m[i].next->y << std::endl;
vertexArray.append({sf::Vector2f(m[i].x,m[i].y),sf::Color(250,250,250,50)});
vertexArray.append({sf::Vector2f(m[i].next->x,m[i].next->y),sf::Color(250,250,250,10)});
}
sf::RenderWindow window(sf::VideoMode(800,600), "SFML window");
sf::Event event;
while (window.isOpen())
{
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed || sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
window.close();
}
window.clear();
window.draw(vertexArray);
window.display();
}
return 0;
}
J'observe un comportement plutôt étrange : quand je n'ajoute pas les points à vertexArray, l'output est le suivant (tout bon)
50,50,600,50
600,50,50,400
50,400,50,50
50,400,600,50
600,50,600,400
600,400,50,400
100,100,50,50
Alors que quand je les ajoute, ça part en cacahuète :
50,50,600,50
600,50,50,400
50,400,
1112014848,
111201484850,400,
0,
184220410600,50,
0,
1073741824600,400,
855309050,
0100,100,
0,
1073741824Est ce un problème de la SFML ou du vector, je ne sais pas trop. Mais ça me dérange
Quelqu'un a déjà eu ce problème ?