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
cEvaluePositionListMemLimit.h
Go to the documentation of this file.
1 /**
2  * @class cEvaluePositionListMemLimit
3  * file name: cEvaluePositionListMemLimit.h
4  * @author Betti Oesterholz
5  * @date 30.04.2010
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This file contains the class for evaluing fib -objects and storing
11  * the evalued data into a list.
12  * Copyright (C) @c LGPL3 2010 Betti Oesterholz
13  *
14  * This program is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License (LGPL) as
16  * published by the Free Software Foundation, either version 3 of the
17  * License, or any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU Lesser General Public License for more details.
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * along with this program. If not, see <http://www.gnu.org/licenses/>.
26  *
27  *
28  * This file contains the class for evaluing fib -objects and storing
29  * the evalued data into a list (@see liEvaluedPositionData).
30  * When the fib -object is evalued this method is called every time a
31  * pointelement is reached. The parameter for the method are the
32  * positionsvector of the point and properties of the point.
33  * This class sorts and reduces the evalued positionslist every
34  * @see ulMaximalPointsAddToList calls of the method evaluePosition().
35  * Allso no position outside the dimension bounderies will be added.
36  */
37 /*
38 History:
39 30.04.2010 Oesterholz created
40 */
41 
42 #ifndef ___C_EVALUE_POSITION_LIST_MEM_LIMIT__
43 #define ___C_EVALUE_POSITION_LIST_MEM_LIMIT__
44 
45 #include "version.h"
46 
47 #include "cEvaluePositionList.h"
48 
49 #include "cVectorPosition.h"
50 #include "cVectorProperty.h"
51 #include "cDomainVectorBasis.h"
52 
53 
54 #include <list>
55 
56 
57 using std::list;
58 
59 namespace fib{
60 
62 public:
63 
64 
65  /**
66  * The number of positions, which should be added to the positionslist,
67  * befor it is sorted and reduced.
68  * If this bounderie is reached, the list with the positions and ther
69  * properties will be sorted.
70  *
71  * @see ulNewPositionsInserted
72  * @see sortPositionsData()
73  */
74  unsigned long long ulMaximalPointsAddToList;
75 
76  /**
77  * The number of points inserted after the last @see sortPositionsData()
78  * call because of @see ulMaximalPointsAddToList .
79  *
80  * @see ulMaximalPointsAddToList
81  */
82  unsigned long long ulNewPositionsInserted;
83 
84  /**
85  * The dimension domain for the positions.
86  * No position outside this domain will be added.
87  * If NULL no check will be executed.
88  */
90 
91  /**
92  * If true points without properties will be deleted when the
93  * positionslist is reduced, else (if false) points without properties
94  * won't be deleted.
95  */
97 
98  /**
99  * standardconstructor
100  *
101  * @param ulInMaximalPointsAddToList The number of positions, which
102  * should be added to the positionslist, befor it is sorted and
103  * reduced. (@see ulMaximalPointsAddToList)
104  * @param pInVecDomainDimension The dimension domain for the positions.
105  * No position outside this domain will be added.
106  * If NULL no check will be executed. (@see pVecDomainDimension)
107  * @param bInDeleteEmptyPoints if true points without properties will be
108  * deleted when the positionslist is reduced, else (if false) points
109  * without properties won't be deleted (@see bDeleteEmptyPoints)
110  */
111  cEvaluePositionListMemLimit( unsigned long long ulInMaximalPointsAddToList,
112  const cDomainVectorBasis * pInVecDomainDimension = NULL,
113  bool bInDeleteEmptyPoints=true );
114 
115  /**
116  * copyconstructor
117  *
118  * @param evaluePositionListMemLimit the cEvaluePositionListMemLimit
119  * object to copy
120  */
121  cEvaluePositionListMemLimit( const cEvaluePositionListMemLimit & evaluePositionListMemLimit );
122 
123  /**
124  * destructor
125  */
127 
128  /**
129  * The method with wich the evalued points with ther properties are
130  * inserted. Everytime a point (to evalue) is reached in the
131  * evaluation, this method is called with the position and the
132  * properties of the point and stores the copies of this data
133  * to the end of the list @see liEvaluedPositionData .
134  *
135  * @see liEvaluedPositionData
136  * @param vPosition the position of the point, which is evalued
137  * @param vProperties a list of the properties of the point
138  */
139  virtual bool evaluePosition( const cVectorPosition & vPosition,
140  const list<cVectorProperty> & vProperties );
141 
142 
143 };//class cEvaluePositionListMemLimit
144 
145 };
146 
147 #endif
148 
149