-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArete.cpp
69 lines (67 loc) · 1.84 KB
/
Arete.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
63
64
65
66
67
68
69
#include "Arete.h"
using namespace std;
Arete::Arete(grman::WidgetBox& sommet1,grman::WidgetBox& sommet2,int lsommet1,int lsommet2,float facteur)
{
m_facteur=facteur;
m_utilise=1;
m_sommet1=lsommet1;
m_sommet2=lsommet2;
m_top_box.set_frame(500, 600, 0, 0);
m_top_box.add_child( m_lien );
m_lien.attach_from(sommet2);
m_lien.attach_to(sommet1);
m_lien.reset_arrow_with_bullet();
m_lien.add_child(m_bouton);
m_bouton.set_dim(10,10);
m_bouton.set_bg_color(ROUGE);
m_lien.add_child(m_regle);
m_regle.set_range(0, 5, false); // 3ème param true => valeurs entières
m_regle.set_frame(10,-25,20,40);
m_regle.set_bg_color(ROSE);
m_regle.set_value(m_facteur);
m_lien.add_child(m_box);
m_box.set_bg_color(ROSE);
m_box.set_frame(10,15,20,15);
m_box.add_child(m_legende);
m_legende.set_message(to_string(m_facteur));
m_legende.set_bg_color(ROSE);
}
void Arete::update(vector<Sommet*> Sommets)
{
m_facteur=m_regle.get_value();
m_legende.set_message(to_string(m_facteur));
if(m_bouton.clicked())
{
m_utilise=0;
}
if(Sommets[m_sommet1]->utilise()&&Sommets[m_sommet2]->utilise())
m_top_box.update();
else
m_utilise=0;
}
std::string Arete::save(vector<int> sommets_non_utilise)
{
string chaine;int newsommet1,newsommet2;
newsommet1=m_sommet1;newsommet2=m_sommet2;
for(int i=0;i<(signed)sommets_non_utilise.size();i++)
{
if(m_sommet1>sommets_non_utilise[i])
newsommet1=newsommet1-1;
if(m_sommet2>sommets_non_utilise[i])
newsommet2=newsommet2-1;
}
chaine=to_string(newsommet1);
chaine+=" ";
chaine+=to_string(newsommet2);
chaine+=" ";
chaine+=to_string(m_facteur);
return chaine;
}
Arete::~Arete()
{
//dtor
}
int Arete::utilise()
{
return m_utilise;
}