Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
color-table-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 : Color_Table_Att.h *
26  * Auteur : DEXET Martine *
27  *----------------------------------------------------------------------------*
28  * Ce fichier contient la spécification de la classe Color_Table_Att. Cette *
29  * classe permet de stocker un objet de la classe Color_Table en tant *
30  * qu'attribut. *
31  * *
32  *****************************************************************************/
33 
34 
35 #ifndef COLOR_TABLE_ATT_H
36 #define COLOR_TABLE_ATT_H
37 
38 #include "color-table.hh"
39 #include "attribute.hh"
40 
41 
42 
43 /******************************************************************************
44  * Classe Color_Table_Att *
45  *****************************************************************************/
46 
47 class Color_Table_Att : public CAttribute {
48 
49  public:
50 
51  // Constructeurs.
53  Color_Table_Att(Color const & c1, Color const & c2,
54  Color const & c3, Color const & c4);
56 
57  // Destructeur.
58  virtual ~Color_Table_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 Color_Table.
71  Color_Table * tab;
72 };
73 
74 /******************************************************************************
75  * Fichier : Color_Table_Att.inl *
76  * Auteur : DEXET Martine *
77  *----------------------------------------------------------------------------*
78  * Ce fichier contient l'implémentation des méthodes de la classe *
79  * Color_Table_Att. *
80  * *
81  *****************************************************************************/
82 
83 
84 #include "user.hh"
85 
86 // Constructeurs.
87 inline
89 {
90  tab = new Color_Table();
91 }
92 
93 
94 inline
96  Color const & c3, Color const & c4)
97 {
98  tab = new Color_Table(c1, c2, c3, c4);
99 }
100 
101 
102 inline
104 {
105  tab = t;
106 }
107 
108 
109 // Destructeur.
110 inline
112 {
113  delete tab;
114 }
115 
116 
117 // Surcharge des méthodes de la classe CAttribute.
118 inline
119 TAttributeId Color_Table_Att::getType() const
120 {
122 }
123 
124 
125 inline
127 {
128  return tab;
129 }
130 
131 
132 inline
133 CAttribute * Color_Table_Att::copy() const
134 {
135  Color_Table * t = new Color_Table(*(this->tab));
136 
137  return new Color_Table_Att(t);
138 }
139 
140 
141 inline
143 {
144  delete this;
145 }
146 
147 
148 inline
149 void Color_Table_Att::save(std::ostream &fd) const
150 {
151  for (int i=0 ; i<4 ; i++)
152  fd << *tab->Get_Color(i);
153 }
154 
155 
156 inline
157 void Color_Table_Att::load(std::istream &fd)
158 {
159  Color col;
160 
161  for (int i=0; i<4; i++)
162  {
163  fd >> col;
164  tab->Set_Color(i, col);
165  }
166 }
167 
168 #endif