コード例 #1
0
ファイル: Trave.cs プロジェクト: Fred68/Engineering
 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;
 }
コード例 #2
0
ファイル: Trave.cs プロジェクト: Fred68/Engineering
 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;
 }
コード例 #3
0
ファイル: Trave.cs プロジェクト: Fred68/Engineering
 // Dissocia da un tipo di oggetto
 public override bool Dissocia(TipoOggetto tipogg)
 {
     bool ok = false;
     switch (tipogg)
         {
         case TipoOggetto.Materiale:
                 {
                 if (this.materiale != null)							// Se l'oggetto era gia` associato ad un materiale...
                     (this.materiale).RimuoviCollegamento();			// decrementa i link del vecchio materiale
                 Materiale = (Materiale)null;						// Cancella il riferimento al materiale
                 ok = true;
                 break;
                 }
         case TipoOggetto.Sezione:
                 {
                 if (this.sezione != null)							// Se l'oggetto era gia` associato ad una sezione...
                     (this.sezione).RimuoviCollegamento();			// decrementa i link della vecchia sezione
                 Sezione = (Sezione)null;							// Cancella il riferimento alla sezione
                 ok = true;
                 break;
                 }
         }
     return ok;
 }
コード例 #4
0
ファイル: Trave.cs プロジェクト: Fred68/Engineering
 // 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;
 }
コード例 #5
0
ファイル: Trave.cs プロジェクト: Fred68/Engineering
 // Associa ad un oggetto (materiale o sezione)
 public override bool Associa(Oggetto ogg)
 {
     bool ok = false;
     switch(ogg.Tipo)
         {
         case TipoOggetto.Materiale:
             {
             if(this.materiale != null)									// Se l'oggetto era gia` associato ad un materiale...
                 (this.materiale).RimuoviCollegamento();					// decrementa i link del vecchio materiale
             Materiale = (Materiale) ogg;								// Imposta il riferimento al nuovo materiale
             ogg.AggiungiCollegamento();									// incrementa i link del nuovo materiale
             ok = true;
             break;
             }
         case TipoOggetto.Sezione:
             {
             if (this.sezione != null)									// Se l'oggetto era gia` associato ad una sezione...
                 (this.sezione).RimuoviCollegamento();					// decrementa i link della vecchia sezione
             Sezione = (Sezione)ogg;										// Imposta il riferimento alla nuova sezione
             ogg.AggiungiCollegamento();									// incrementa i link del nuovo materiale
             ok = true;
             break;
             }
         }
     return ok;
 }