Exemple #1
0
 public Trave(Nodo n1, Nodo n2, int numeroTrave, string nomeTrave)
     : base(numeroTrave, nomeTrave)
 {
     nodi = new Nodo[2];
     selezionato = false;
     nodi[0] = n1;
     nodi[1] = n2;
     tipo = TipoOggetto.Trave;
     n1.AggiungiCollegamento();
     n2.AggiungiCollegamento();
     sezione = new Sezione();
     sezione.AggiungiCollegamento();
     materiale = new Materiale();
     materiale.AggiungiCollegamento();
     rifTrave = null;
 }
Exemple #2
0
 public Trave(Nodo n1, Nodo n2)
     : base()
 {
     nodi = new Nodo[NumeroNodi];
     selezionato = false;
     nodi[0] = n1;
     nodi[1] = n2;
     tipo = TipoOggetto.Trave;
     n1.AggiungiCollegamento();
     n2.AggiungiCollegamento();
     sezione = new Sezione();
     sezione.AggiungiCollegamento();
     materiale = new Materiale();
     materiale.AggiungiCollegamento();
     rifTrave = null;
 }
Exemple #3
0
 // Sostituisce gli indici con i riferimenti
 public bool SostituisciIndici(ArchivioStruttura arch)
 {
     bool fatto = false;
     if(rifTrave != null)
         {
         fatto = true;															// Mette a true; se errore qulunque: false
         if(rifTrave.nodi[0] != Oggetto.NonValido)								// Controlla se indice inizializzato. Se no...
             {																	// Prosegue senza errori
             Nodo n = (Nodo)arch.Trova(TipoOggetto.Nodo, rifTrave.nodi[0]);
             if(n != null)
                 {
                 nodi[0] = n;
                 nodi[0].AggiungiCollegamento();
                 }
             else
                 fatto = false;
             }
         if (rifTrave.nodi[1] != Oggetto.NonValido)
             {
             Nodo n = (Nodo)arch.Trova(TipoOggetto.Nodo, rifTrave.nodi[1]);
             if (n != null)
                 {
                 nodi[1] = n;
                 nodi[1].AggiungiCollegamento();
                 }
             else
                 fatto = false;
             }
         if (rifTrave.sezione != Oggetto.NonValido)
             {
             Sezione s = (Sezione)arch.Trova(TipoOggetto.Sezione, rifTrave.sezione);
             if (s != null)
                 {
                 sezione = s;
                 sezione.AggiungiCollegamento();
                 }
             else
                 fatto = false;
             }
         if (rifTrave.materiale != Oggetto.NonValido)
             {
             Materiale m = (Materiale)arch.Trova(TipoOggetto.Materiale, rifTrave.materiale);
             if (m != null)
                 {
                 materiale = m;
                 materiale.AggiungiCollegamento();
                 }
             else
                 fatto = false;
             }
         }
     if(fatto)											// Se operazione completata, cancella il riferimento al_
         rifTrave = null;								// l'oggetto con gli indici (eliminato poi dal gc)
     return fatto;
 }
Exemple #4
0
 public new bool Leggi(StreamReader sr)
 {
     string str;									// Riga letta dal file
     int i;										// Contatore
     int itmp;									// Temporanei per conversione
     rifTrave = new RifTrave();
     TokenString tk = new TokenString();			// Tokenizzatore
     if (!sr.EndOfStream)
         {
         str = sr.ReadLine();					// Legge una riga (ossia un oggetto completo)
         tk.Set(ref str, "\t ");					// Imposta il tokenizzatore, str per reference
         i = 0;									// Azzera contatore
         foreach (string s in tk)
             {
             switch (i)
                 {
                 case 0:
                     if (s != descrittore)		// Se oggetto non riconosciuto
                         i = int.MaxValue;
                     break;
                 case 1:
                     if (int.TryParse(s, out itmp))
                         nID = itmp;
                     break;
                 case 2:
                     nome = s;
                     break;
                 case 3:
                     if (int.TryParse(s, out itmp))
                         numero = itmp;
                     break;
                 case 4:
                     if (int.TryParse(s, out itmp))
                         rifTrave.nodi[0] = itmp;
                     break;
                 case 5:
                     if (int.TryParse(s, out itmp))
                         rifTrave.nodi[1] = itmp;
                     break;
                 case 6:
                     if (int.TryParse(s, out itmp))
                         rifTrave.sezione = itmp;
                     break;
                 case 7:
                     if (int.TryParse(s, out itmp))
                         rifTrave.materiale = itmp;
                     break;
                 }
             i++;
             }
         }
     return true;
 }