30 MG_ASSEMBLAGE::MG_ASSEMBLAGE(std::string nm): MG_CONSTRUCTION_GEOMETRIQUE(), nom(nm)
35 MG_ASSEMBLAGE::MG_ASSEMBLAGE(
long unsigned int num,std::string nm): MG_CONSTRUCTION_GEOMETRIQUE(num), nom(nm)
40 MG_ASSEMBLAGE::MG_ASSEMBLAGE(MG_ASSEMBLAGE& mdd): MG_CONSTRUCTION_GEOMETRIQUE(mdd), nom(mdd.nom)
45 MG_ASSEMBLAGE::~MG_ASSEMBLAGE()
47 supprimer_tout_mg_primitive();
50 int MG_ASSEMBLAGE::ajouter_mg_primitive(MG_PRIMITIVE* mgprim)
52 std::pair<const unsigned long,MG_PRIMITIVE*> tmp(mgprim->get_id(),mgprim);
53 std::pair<LISTE_MG_PRIMITIVE::iterator,bool> p = lst_mg_primitive.insert(tmp);
60 int MG_ASSEMBLAGE::ajouter_mg_primitive(
unsigned long id)
62 lst_mg_primitive_id.push_back(
id);
65 void MG_ASSEMBLAGE::ini_donne(MG_ARBRE* arb)
67 int nb=lst_mg_primitive_id.size();
68 for (
int i=0;i<nb;i++)
70 MG_PRIMITIVE* prim=arb->get_mg_primitiveid(lst_mg_primitive_id[i]);
71 ajouter_mg_primitive(prim);
74 MG_PRIMITIVE* MG_ASSEMBLAGE::get_mg_primitiveid(
long unsigned int num)
76 LISTE_MG_PRIMITIVE::iterator i=lst_mg_primitive.find(num);
77 if (i==lst_mg_primitive.end())
84 MG_PRIMITIVE* MG_ASSEMBLAGE::get_mg_primitive(
unsigned int num)
86 if (!(num<lst_mg_primitive.size()))
90 LISTE_MG_PRIMITIVE::iterator i=lst_mg_primitive.begin();
91 for (
unsigned long j=0;j<num;j++) i++;
95 MG_PRIMITIVE* MG_ASSEMBLAGE::get_premier_primitive(LISTE_MG_PRIMITIVE::iterator & it)
97 it = lst_mg_primitive.begin();
98 if (it == lst_mg_primitive.end())
103 MG_PRIMITIVE* MG_ASSEMBLAGE::get_suivant_primitive(LISTE_MG_PRIMITIVE::iterator & it)
106 if (it == lst_mg_primitive.end())
111 unsigned int MG_ASSEMBLAGE::get_nb_mg_primitive(
void)
113 return lst_mg_primitive.size();
116 int MG_ASSEMBLAGE::supprimer_mg_primitiveid(
long unsigned int num)
118 MG_PRIMITIVE* mgprim=get_mg_primitiveid(num);
123 LISTE_MG_PRIMITIVE::iterator j=lst_mg_primitive.find(num);
124 lst_mg_primitive.erase(j);
129 int MG_ASSEMBLAGE::supprimer_mg_primitive(
unsigned int num)
131 MG_PRIMITIVE* mgprim=get_mg_primitive(num);
136 LISTE_MG_PRIMITIVE::iterator j=lst_mg_primitive.begin();
137 for (
unsigned int k=0;k<num;k++) j++;
138 lst_mg_primitive.erase(j);
143 void MG_ASSEMBLAGE::supprimer_tout_mg_primitive(
void)
145 while (get_nb_mg_primitive()!=0)
147 LISTE_MG_PRIMITIVE::iterator j=lst_mg_primitive.begin();
148 MG_PRIMITIVE* mgprim=(*j).second;
149 lst_mg_primitive.erase(j);
154 void MG_ASSEMBLAGE::enregistrer(std::ostream& o,
double version)
159 <<
"," << get_nb_mg_primitive()
161 for(
long i=0;i<get_nb_mg_primitive();i++)
163 o <<
"$" << get_mg_primitive(i)->get_id();
164 if(i!=get_nb_mg_primitive()-1) o <<
",";
167 o <<
");"<< std::endl;
170 int MG_ASSEMBLAGE::get_type_mg_construction_geometrique(
void)
172 return TYPE_MG_CONSTRUCTION_GEOMETRIQUE::ASSEMBLAGE;