The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cFibIndividual.h
Go to the documentation of this file.
1 /**
2  * @file cFibIndividual
3  * file name: cFibIndividual.h
4  * @author Betti Oesterholz
5  * @date 01.03.2010
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This header specifies a class for a fib -individal.
11  * Copyright (C) @c GPL3 2010 Betti Oesterholz
12  *
13  * This program is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License (GPL) as
15  * published by the Free Software Foundation, either version 3 of the
16  * License, or any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
25  *
26  *
27  * This header specifies a class for a fib -individals.
28  * An individal is an central object on which the genetic algorithm
29  * (enviroment) works.
30  * It contains a fib -object with it's information.
31  *
32  */
33 /*
34 History:
35 01.03.2010 Oesterholz created
36 */
37 
38 #ifndef ___C_FIB_INDIVIDUAL_H__
39 #define ___C_FIB_INDIVIDUAL_H__
40 
41 #include "version.h"
42 
43 #include "cIndividual.h"
44 
45 #include "cFibElement.h"
46 
47 namespace enviroment{
48 namespace fib{
49 
50 
52 
53 protected:
54 
55  /**
56  * The fib -object which is represented by the individual.
57  */
59 
60 public:
61 
62  /**
63  * constructor
64  *
65  * @param pInFibObject the fib -object which is represented by the individual;
66  * this fib -object won't be copied but destructed when the individual is
67  * destructed if bInDeleteObjectOnDestruction is true
68  * @param inIndividalInfo the information for the individual
69  * @param bInDeleteObjectOnDestruction if true delete the object
70  * (pInObject) when the individual is deleted
71  */
72  cFibIndividual( cFibElement * pInFibObject, const cIndividualInfo & inIndividalInfo,
73  bool bInDeleteObjectOnDestruction=true );
74 
75  /**
76  * constructor
77  * A copy of the contained fib individual is also done.
78  *
79  * @param fibIndividual the fib -individual to copy
80  */
81  cFibIndividual( const cFibIndividual & fibIndividual );
82 
83  /**
84  * destructor
85  * It deletes the objekt to the individual.
86  */
87  virtual ~cFibIndividual();
88 
89  /**
90  * @return a pointer to the object which is represented by the individual
91  */
92  virtual cFibElement * getFibObject();
93 
94  /**
95  * @return a pointer to the object which is represented by the individual
96  */
97  virtual const cFibElement * getFibObject() const;
98 
99  /**
100  * @return the name of this class
101  */
102  virtual string getClassName() const;
103 
104  /**
105  * Comparisson on equal method for two cIndividual objects.
106  *
107  * @param individual the cIndividual to compare this
108  * idIndividualobject to
109  * @param checkIdentifiers if true (standradvalue) the identifiers will
110  * be checked allso, else not
111  * @return true if the cIndividual this object represents is
112  * equal to the cIndividual the given object individual
113  * represents
114  */
115  virtual bool equal( const cIndividual &individual, bool checkIdentifiers=true ) const;
116 
117  /**
118  * This method clones this individual inclusive the containing object.
119  *
120  * @return a clone of this object
121  */
122  virtual cFibIndividual * clone() const;
123 
124  /**
125  * This method clones this individual inclusive the containing object.
126  *
127  * @return a clone of this object
128  * @param bCloneObject if true the object will be cloned and
129  * @see bInDeleteObjectOnDestruction will be set to true, if false
130  * the object won't be cloned and @see bInDeleteObjectOnDestruction
131  * will be set to false
132  */
133  virtual cFibIndividual * clone( bool bCloneObject ) const;
134 
135 
136 #ifdef TEST
137 protected:
138 #endif
139  /**
140  * This method kills the individual, so it isn't living anymor.
141  *
142  * @see cIndividualInfo::isLiving()
143  * @see cIndividualInfo::bIsLiving
144  * @return true if the individal was killed, else false
145  */
146  virtual bool kill();
147 
148 };//end class cFibIndividual
149 
150 
151 };//end namespace fib
152 };//end namespace enviroment
153 
154 #endif //___C_FIB_INDIVIDUAL_H__
155 
156 
157 
158 
159 
160 
161