// FICHIER : ReferenceNE.h // CLASSE : ReferenceNE /************************************************************************ * UNIVERSITE DE BRETAGNE SUD (UBS) --- I.U.P/I.U.T. DE LORIENT * ************************************************************************ * LABORATOIRE DE GENIE MECANIQUE ET MATERIAUX (LG2M) * * Centre de Recherche Rue de Saint Maudé - 56325 Lorient cedex * * tel. 02.97.87.45.70 fax. 02.97.87.45.72 http://www-lg2m.univ-ubs.fr * ************************************************************************ * DATE: 23/01/97 * * $ * * AUTEUR: G RIO (mailto:gerard.rio@univ-ubs.fr) * * Tel 0297874571 fax : 02.97.87.45.72 * * $ * * PROJET: Herezh++ * * $ * ************************************************************************ * BUT: Def, stockage et manipulation des références pour les * * noeuds et les éléments. * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * * VERIFICATION: * * * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * ! ! ! ! * * $ * * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' * * MODIFICATIONS: * * ! date ! auteur ! but ! * * ------------------------------------------------------------ * * $ * ************************************************************************/ #ifndef REFERENCENE_H #define REFERENCENE_H class ReferenceNE : public Reference { public : // CONSTRUCTEURS : // Constructeur par defaut ReferenceNE ( string nom = "rien_actuellement"); // Constructeur fonction d'un tableau des numeros de la reference // du nb de maillage, du type de ref ReferenceNE (const Tableau& tab,int nbmaille , int indic, string nom = "rien_actuellement"); // Constructeur fonction d'un nom de reference // du nb de maillage, du type de ref ReferenceNE (string nom,int nbmaille , int indic); // Constructeur de copie ReferenceNE (const ReferenceNE& ref); // DESTRUCTEUR : ~ReferenceNE (); // METHODES : inline Reference& operator= (const Reference& ref) // Surcharge de l'operateur = : realise l'egalite entre deux references { indic = ref.indic; nbmaille = ref.nbmaille; nom_ref = ref.nom_ref; tab_num = ref.tab_num; return (*this); }; inline Tableau& Tab_num () // Retourne le tableau des numeros de la reference { return tab_num; }; inline string Nom () const // Retourne le nom associe a la reference { return nom_ref; }; inline int Indic () const // Retourne le type de reference { return indic; }; inline int Nbmaille() const // Retourne le numero du maillage auquelle la reference se rattache { return nbmaille; }; inline int& Numero(int i) // Retourne le ieme element du tableau des numeros // de la reference (acces lecture et ecriture) { return tab_num(i); }; inline int Numero(int i) const // Retourne le ieme element du tableau des numeros // de la reference (acces lecture uniquement) { return tab_num(i); }; inline int Taille () const // Retourne le nombre de numeros de la reference { return tab_num.Taille(); }; inline void Change_nom (string nouveau_nom) // Remplace l'ancien nom de la reference par nouveau_nom { nom_ref = nouveau_nom; }; inline void Affiche () const // Affiche les donnees liees a la reference { cout << "\nNom de la reference : " << nom_ref << " , maillage nb =" << nbmaille << ", de type = " << indic << '\n'; cout << "Taille du tableau : " << tab_num.Taille() << " .\n"; cout << "Composante(s) :\n\t[ "; for (int i=1;i<=tab_num.Taille();i++) cout << tab_num(i) << " "; cout << "]\n\n"; }; protected : string nom_ref; // nom de la reference int nbmaille; // numero du maillage auquelle la reference se rapporte int indic; // indic = 1 : il s'agit de reference de noeud // indic = 2 : il s'agit de reference d'element // =3 -> surface, =4 -> arrete Tableau tab_num; // tableau des numeros de la reference }; #endif