ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/FAS/src/extradata.cpp
Revision: 83
Committed: Fri Aug 16 15:30:40 2002 UTC (21 years, 10 months ago) by tim
File size: 3844 byte(s)
Log Message:
*** empty log message ***

File Contents

# Content
1 /**********************************************************************
2 * Copyright (C) 2002-2003 by Gezelter's Group
3 *This program is free software; you can redistribute it and/or modify
4 *it under the terms of the GNU General Public License as published by
5 *the Free Software Foundation version 2 of the License.
6 *
7 *This program is distributed in the hope that it will be useful,
8 *but WITHOUT ANY WARRANTY; without even the implied warranty of
9 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 *GNU General Public License for more details.
11 *
12 ************************************************************************
13 *Author: Teng Lin Email: tlin@nd.edu
14 *Date: 08/13/2002 Version: 1.0
15 *
16 ************************************************************************
17 *Description:
18 *
19 ***********************************************************************/
20 #include <algorithm>
21 #include "extradata.h"
22
23 /***********************************************************************
24 * Class TExtraData
25 ***********************************************************************/
26
27 TExtraData::TExtraData()
28 {
29 _ident = "unknown";
30 _type = TExtraDataType::UNKNOWN;
31 }
32
33 TExtraData::TExtraData(const TExtraData & extraData)
34 {
35 _ident = extraData._ident;
36 _type = extraData._type;
37 }
38
39 TExtraData &TExtraData::operator =(const TExtraData &extraData)
40 {
41 if (this == &extraData)
42 return *this;
43
44 _ident = extraData._ident;
45 _type = extraData._type;
46 return *this;
47 }
48
49 //member function for Energy Data
50 TEnergyData::TEnergyData()
51 {
52 _ident = "Energy";
53 _type = TExtraDataType::ENERGY;
54 }
55
56 /***********************************************************************
57 * Class TExtraDataList
58 ***********************************************************************/
59 void TExtraDataList::AddExtraData(TExtraData *extraData)
60 {
61 if (extraData != NULL)
62 {
63 _extraDataList.push_back(extraData);
64 }
65
66 }
67
68 void TExtraDataList::RemoveExtraData(TExtraData *extraData)
69 {
70 vector<TExtraData *>::iterator i;
71
72 i = find(_extraDataList.begin(), _extraDataList.end(), extraData);
73
74 if (i != _extraDataList.end())
75 {
76 _extraDataList.erase(i);
77 }
78 else
79 {//warning
80
81 }
82
83 }
84
85 TExtraData *TExtraDataList::GetExtraData(int extraDataType)
86 {
87
88 }
89
90 TExtraData *TExtraDataList::GetExtraData(string attr)
91 {
92
93 }
94
95 /***********************************************************************
96 * Class TEnergyData
97 ***********************************************************************/
98
99 TEnergyData::TEnergyData(const TEnergyData &energyData) : TExtraData(energyData)
100 {
101 _energy = energyData._energy;
102 }
103
104 TEnergyData &TEnergyData::operator =(const TEnergyData &energyData)
105 {
106 if (this == &energyData)
107 return *this;
108 TExtraData::operator =(energyData);
109 _energy = energyData._energy;
110 }
111
112 TEnergyData::~TEnergyData()
113 {
114 _energy.clear();
115 }
116
117 map<int, float>::iterator TEnergyData::FindEnergy(int energyType)
118 {
119 return _energy.find(energyType);
120 }
121
122 void TEnergyData::AddEnergy(int energyType, float value)
123 {
124 _energy.insert(map<int,float>::value_type(energyType, value));
125 }
126
127 void TEnergyData::ReplaceEnergy(int energyType, float value)
128 {
129 map<int, float>::iterator i;
130 i = FindEnergy(energyType);
131
132 if (i != _energy.end())
133 {
134 (*i).second = value;
135 }
136 }
137
138 void TEnergyData::DeleteEnergy(int energyType)
139 {
140 map<int, float>::iterator i;
141 i = FindEnergy(energyType);
142
143 if (i != _energy.end())
144 {
145 _energy.erase(i);
146 }
147 }
148
149 //return the energy with specified type, return NULL if not find
150 float *TEnergyData::GetEnergy(int energyType)
151 {
152 map<int, float>::iterator i;
153 i = FindEnergy(energyType);
154
155 if (i != _energy.end())
156 {
157 return &((*i).second);
158 }
159 else
160 {
161 return NULL;
162 }
163 }
164
165 /***********************************************************************
166 * Class TBitVector
167 ***********************************************************************/
168