Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ineq-table-6-att.hh
Go to the documentation of this file.
1 /*
2  * lib-spamod : Visualisation des objets en discret.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-spamod
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 /******************************************************************************
25  * Fichier : Ineq_Table6_Att.h *
26  * Auteur : DEXET Martine *
27  *----------------------------------------------------------------------------*
28  * Ce fichier contient la spécification de la classe Ineq_Table6_Att. Cette *
29  * classe permet de stocker un objet de la classe Ineq_Table6 en tant *
30  * qu'attribut. *
31  * *
32  *****************************************************************************/
33 
34 
35 #ifndef INEQ_TABLE6_ATT_H
36 #define INEQ_TABLE6_ATT_H
37 
38 #include "ineq-table-6.hh"
39 #include "attribute.hh"
40 
41 
42 
43 /******************************************************************************
44  * Classe Ineq_Table6_Att *
45  *****************************************************************************/
46 
47 class Ineq_Table6_Att : public CAttribute {
48 
49  public:
50 
51  // Constructeurs.
53  Ineq_Table6_Att(CVertex const & p);
54  Ineq_Table6_Att(CVertex const & p1, CVertex const & p2);
56 
57  // Destructeur.
58  virtual ~Ineq_Table6_Att();
59 
60  // Surcharge des méthodes de la classe CAttribute.
61  TAttributeId getType() const;
63  CAttribute * copy() const;
64  void destroy();
65  void save(std::ostream &fd) const;
66  void load(std::istream &fd);
67 
68  private:
69 
70  // Pointeur sur un objet de la classe Ineq_Table6.
71  Ineq_Table6 * tab;
72 };
73 
74 /******************************************************************************
75  * Fichier : Ineq_Table6_Att.inl *
76  * Auteur : DEXET Martine *
77  *----------------------------------------------------------------------------*
78  * Ce fichier contient l'implémentation des méthodes de la classe *
79  * Ineq_Table6_Att. *
80  * *
81  *****************************************************************************/
82 
83 #include "user.hh"
84 
85 // Constructeurs.
86 inline
88 {
89  tab = new Ineq_Table6();
90 }
91 
92 inline
94 {
95  tab = new Ineq_Table6(p);
96 }
97 
98 inline
99 Ineq_Table6_Att::Ineq_Table6_Att(CVertex const & p1, CVertex const & p2)
100 {
101  tab = new Ineq_Table6(p1, p2);
102 }
103 
104 inline
106 {
107  tab = t;
108 }
109 
110 
111 // Destructeur.
112 inline
114 {
115  delete tab;
116 }
117 
118 
119 // Surcharge des méthodes de la classe CAttribute.
120 inline
121 TAttributeId Ineq_Table6_Att::getType() const
122 {
123  return INEQ6_ATTRIBUTE_ID;
124 }
125 
126 inline
128 {
129  return tab;
130 }
131 
132 inline
133 CAttribute * Ineq_Table6_Att::copy() const
134 {
135  Ineq_Table6 * t = new Ineq_Table6(*(this->tab));
136 
137  return new Ineq_Table6_Att(t);
138 }
139 
140 
141 inline
143 {
144  delete this;
145 }
146 
147 
148 inline
149 void Ineq_Table6_Att::save(std::ostream &fd) const
150 {
151  for (int i=0; i<6; i++)
152  fd << *tab->Get_Ineq(i);
153 }
154 
155 inline
156 void Ineq_Table6_Att::load(std::istream &fd)
157 {
158  Inequation iq;
159 
160  for (int i=0; i<6; i++)
161  {
162  fd >> iq;
163  tab->Set_Ineq(i, iq);
164  }
165 }
166 
167 #endif