Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:09

0001 // -*- C++ -*-
0002 // AID-GENERATED
0003 // =========================================================================
0004 // This class was generated by AID - Abstract Interface Definition          
0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
0006 // =========================================================================
0007 #ifndef AIDA_ITUPLE_H
0008 #define AIDA_ITUPLE_H 1
0009 
0010 //  This file is part of the AIDA library
0011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
0012 //  This library is free software and under the terms of the
0013 //  GNU Library General Public License described in the LGPL.txt 
0014 
0015 #include <string>
0016 #include <vector>
0017 
0018 namespace AIDA {
0019 
0020 class IAnnotation;
0021 class ICloud1D;
0022 class ICloud2D;
0023 class ICloud3D;
0024 class IEvaluator;
0025 class IFilter;
0026 class IHistogram1D;
0027 class IHistogram2D;
0028 class IHistogram3D;
0029 class IProfile1D;
0030 class IProfile2D;
0031 class ITupleEntry;
0032 
0033 /**
0034  * User level interface to a Tuple.
0035  * 
0036  * @author The AIDA team (http://aida.freehep.org/)
0037  *
0038  */
0039 
0040 class ITuple {
0041 
0042 public: 
0043     /// Destructor.
0044     virtual ~ITuple() { /* nop */; }
0045 
0046     /**
0047      * Get the title of this ITuple.
0048      * @return The ITuple's title.
0049      *
0050      */
0051     virtual std::string title() const = 0;
0052 
0053     /**
0054      * Set the title of the ITuple.
0055      * @param title The new ITuple's title.
0056      * @return false If title cannot be changed.
0057      *
0058      */
0059     virtual bool setTitle(const std::string & title) = 0;
0060 
0061     /**
0062      * Get the IAnnotation corresponding to this ITuple.
0063      * @return The ITuple's IAnnotation.
0064      *
0065      */
0066     virtual IAnnotation & annotation() = 0;
0067 
0068     virtual const IAnnotation & annotation() const = 0;
0069 
0070     /**
0071      * Fill a given column with a double.
0072      * @param column The column's index within the ITuple.
0073      * @param value  The double.
0074      * @return false If the column is of the wrong type.
0075      *
0076      */
0077     virtual bool fill(int column, double value) = 0;
0078 
0079     /**
0080      * Fill a given column with a float.
0081      * @param column The column's index within the ITuple.
0082      * @param value  The float.
0083      * @return false If the column is of the wrong type.
0084      *
0085      */
0086     virtual bool fill(int column, float value) = 0;
0087 
0088     /**
0089      * Fill a given column with an integer.
0090      * @param column The column's index within the ITuple.
0091      * @param value  The integer.
0092      * @return false If the column is of the wrong type.
0093      *
0094      */
0095     virtual bool fill(int column, int value) = 0;
0096 
0097     /**
0098      * Fill a given column with a short.
0099      * @param column The column's index within the ITuple.
0100      * @param value  The short.
0101      * @return false If the column is of the wrong type.
0102      *
0103      */
0104     virtual bool fill(int column, short value) = 0;
0105 
0106     /**
0107      * Fill a given column with a long.
0108      * @param column The column's index within the ITuple.
0109      * @param value  The long.
0110      * @return false If the column is of the wrong type.
0111      *
0112      */
0113     virtual bool fill(int column, long value) = 0;
0114 
0115     /**
0116      * Fill a given column with a char.
0117      * @param column The column's index within the ITuple.
0118      * @param value  The char.
0119      * @return false If the column is of the wrong type.
0120      *
0121      */
0122     virtual bool fill(int column, char value) = 0;
0123 
0124     /**
0125      * Fill a given column with a boolean.
0126      * @param column The column's index within the ITuple.
0127      * @param value  The boolean.
0128      * @return false If the column is of the wrong type.
0129      *
0130      */
0131     virtual bool fill(int column, bool value) = 0;
0132 
0133     /**
0134      * Fill a given column with a string.
0135      * @param column The column's index within the ITuple.
0136      * @param value  The string.
0137      * @return false If the column is of the wrong type.
0138      *
0139      */
0140     virtual bool fill(int column, const std::string & value) = 0;
0141 
0142     /**
0143      * Fill a given column with an object.
0144      * @param column The column's index within the ITuple.
0145      * @param value  The object.
0146      * @return false If the column is of the wrong type.
0147      *
0148      */
0149     virtual bool fill(int column, const ITupleEntry & value) = 0;
0150 
0151     /**
0152      * Fill all the columns at once with doubles.
0153      * @param values The array of doubles.
0154      * @return false If any column is not of type double or if
0155      *               the array has the wrong dimension.
0156      *
0157      */
0158     virtual bool fill(const std::vector<double>  & values) = 0;
0159 
0160     /**
0161      * Fill all the columns at once with floats.
0162      * @param values The array of floats.
0163      * @return false If any column is not of type float or if
0164      *               the array has the wrong dimension.
0165      *
0166      */
0167     virtual bool fill(const std::vector<float>  & values) = 0;
0168 
0169     /**
0170      * Add the current row to the ITuple. This method should be called after 
0171      * fill has been called for the columns; unfilled columns will be filled 
0172      * with their default value.
0173      * @return false When the ITuple runs out of storage space.
0174      *
0175      */
0176     virtual bool addRow() = 0;
0177 
0178     /**
0179      * Clear the current(not yet added) row.
0180      *
0181      */
0182     virtual void resetRow() = 0;
0183 
0184     /**
0185      * Reset the ITuple. All the rows are reset.
0186      * The ITuple is as just created.
0187      *
0188      */
0189     virtual void reset() = 0;
0190 
0191     /**
0192      * Get the number of rows currently filled in the ITuple.
0193      * @return The number of rows. -1 if empty or if it cannot be determined.
0194      *
0195      */
0196     virtual int rows() const = 0;
0197 
0198     /**
0199      * Positions the read cursor immediately before the first row.
0200      *
0201      */
0202     virtual void start() = 0;
0203 
0204     /**
0205      * Skips a given number of rows.
0206      * @param rows The number of rows to skip.
0207      * @return false If rows is less than zero or
0208      *             if it is not possible to perform the jump.
0209      *
0210      */
0211     virtual bool skip(int rows) = 0;
0212 
0213     /**
0214      * Positions the cursor at the next row.
0215      * @return false if there is no next row.
0216      *
0217      */
0218     virtual bool next() = 0;
0219 
0220     /**
0221      * Position the cursor at a give row.
0222      * @param rowIndex The row where the cursor has to be positioned.
0223      * @return false If the cursor cannot be positioned
0224      *                 at the give row.
0225      *
0226      */
0227     virtual bool setRow(int rowIndex) = 0;
0228 
0229     /**
0230      * Get the index within the ITuple of a given column.
0231      * @param name The colum's name.
0232      * @return The corresponding column's index. Note: in C++ -1 may
0233      *         be returned if the column does not exist.
0234      */
0235     virtual int findColumn(const std::string & name) const = 0;
0236 
0237     /**
0238      * Get the double stored in a given column at the current cursor's position.
0239      * @param column The column's index within the ITuple.
0240      * @return       The double.
0241      *
0242      */
0243     virtual double getDouble(int column) const = 0;
0244 
0245     /**
0246      * Get the float stored in a given column at the current cursor's position.
0247      * @param column The column's index within the ITuple.
0248      * @return       The float.
0249      *
0250      */    
0251     virtual float getFloat(int column) const = 0;
0252 
0253     /**
0254      * Get the integer stored in a given column at the current cursor's position.
0255      * @param column The column's index within the ITuple.
0256      * @return       The integer.
0257      *
0258      */    
0259     virtual int getInt(int column) const = 0;
0260 
0261     /**
0262      * Get the short stored in a given column at the current cursor's position.
0263      * @param column The column's index within the ITuple.
0264      * @return       The short.
0265      *
0266      */    
0267     virtual short getShort(int column) const = 0;
0268 
0269     /**
0270      * Get the long stored in a given column at the current cursor's position.
0271      * @param column The column's index within the ITuple.
0272      * @return       The long.
0273      *
0274      */    
0275     virtual long getLong(int column) const = 0;
0276 
0277     /**
0278      * Get the character stored in a given column at the current cursor's position.
0279      * @param column The column's index within the ITuple.
0280      * @return       The character.
0281      *
0282      */    
0283     virtual char getChar(int column) const = 0;
0284 
0285     /**
0286      * Get the boolean stored in a given column at the current cursor's position.
0287      * @param column The column's index within the ITuple.
0288      * @return       The boolean.
0289      *
0290      */    
0291     virtual bool getBoolean(int column) const = 0;
0292 
0293     /**
0294      * Get the string stored in a given column at the current cursor's position.
0295      * @param column The column's index within the ITuple.
0296      * @return       The string.
0297      *
0298      */    
0299     virtual std::string getString(int column) const = 0;
0300 
0301     /**
0302      * Get the object stored in a given column at the current cursor's position.
0303      * @param column The column's index within the ITuple.
0304      * @return       The object.
0305      *
0306      */    
0307     virtual const ITupleEntry * getObject(int column) const = 0;
0308 
0309     /**
0310      * Return method for tuple variables of type ITuple for a given column.
0311      * This method can be used in order to fill a tuple variable in the master tuple.
0312      * @param column The column's index.
0313      * @return       The ITuple representing the structure of this column.
0314      *
0315      */
0316     virtual const ITuple * getTuple(int column) const = 0;
0317 
0318     virtual ITuple * getTuple(int column) = 0;
0319 
0320    /** 
0321     * Get the number of columns in the ITuple
0322     * @return The number of columns.
0323     *
0324     */
0325     virtual int columns() const = 0;
0326 
0327    /** 
0328     * Get the name of a column from its index.
0329     * @param column The column's index.
0330     * @return       The column's name.
0331     *
0332     */
0333     virtual std::string columnName(int column) const = 0;
0334 
0335    /** 
0336     * Get the names of all the columns.
0337     * @return  The column names.
0338     *
0339     */
0340     virtual std::vector<std::string>  columnNames() const = 0;
0341 
0342    /** 
0343     * Get the type of a give column.
0344     * @param column The column's type.
0345     * @return       The column's Class.
0346     *
0347     */
0348     virtual std::string columnType(int column) const = 0;
0349 
0350    /** 
0351     * Get the types of all the columns.
0352     * @return  The column Classes.
0353     *
0354     */
0355     virtual std::vector<std::string>  columnTypes() const = 0;
0356 
0357    /**
0358     * Get the minimum value of a given column (if it can be converted to a double).
0359     * @param column The column's index.
0360     * @return       The column's minimum value. In Java Double.NaN might be returned.
0361     *
0362     */
0363     virtual double columnMin(int column) const = 0;
0364 
0365    /**
0366     * Get the maximum value of a given column (if it can be converted to a double).
0367     * @param column The column's index.
0368     * @return       The column's maximum value. In Java Double.NaN might be returned.
0369     *
0370     */
0371     virtual double columnMax(int column) const = 0;
0372 
0373    /**
0374     * Get the mean value of a given column (if it can be converted to a double).
0375     * @param column The column's index.
0376     * @return       The column's mean value. In Java Double.NaN might be returned.
0377     *
0378     */
0379     virtual double columnMean(int column) const = 0;
0380 
0381    /**
0382     * Get the RMS of a given column (if it can be converted to a double).
0383     * @param column The column's index.
0384     * @return       The column's RMS. In Java Double.NaN might be returned.
0385     *
0386     */
0387     virtual double columnRms(int column) const = 0;
0388 
0389     /**
0390      * Fill an IHistogram1D from the tuple.
0391      * @param histogram  The histogram to fill.
0392      * @param evaluatorX The evaluator used to compute the value
0393      *                   to be filled in the histogram. The value is computed
0394      *                   from the current row of the tuple.
0395      * @return false If something goes wrong.
0396      *
0397      */
0398     virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX) = 0;
0399 
0400     /**
0401      * Fill an IHistogram1D from the tuple.
0402      * @param histogram  The histogram to fill.
0403      * @param evaluatorX The evaluator used to compute the value
0404      *                   to be filled in the histogram. The value is computed
0405      *                   from the current row of the tuple.
0406      * @param filter     The filter object used to accept or not the current row.
0407      *                   If rejected, the histogram is not filled.
0408      * @return false If something goes wrong.
0409      *
0410      */    
0411     virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter) = 0;
0412 
0413     /**
0414      * Fill an IHistogram1D from the tuple.
0415      * @param histogram  The histogram to fill.
0416      * @param evaluatorX The evaluator used to compute the value
0417      *                   to be filled in the histogram. The value is computed
0418      *                   from the current row of the tuple.
0419      * @param weight     The evaluator which determines the weight which is used during the filling.
0420      * @return false If something goes wrong.
0421      *
0422      */    
0423     virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IEvaluator & weight) = 0;
0424 
0425     /**
0426      * Fill an IHistogram1D from the tuple.
0427      * @param histogram  The histogram to fill.
0428      * @param evaluatorX The evaluator used to compute the value
0429      *                   to be filled in the histogram. The value is computed
0430      *                   from the current row of the tuple.
0431      * @param filter     The filter object used to accept or not the current row.
0432      *                   If rejected, the histogram is not filled.
0433      * @param weight     The evaluator which determines the weight which is used during the filling.
0434      * @return false If something goes wrong.
0435      *
0436      */    
0437     virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0;
0438 
0439     /**
0440      * Fill an IHistogram2D from the tuple.
0441      * @param histogram  The histogram to fill.
0442      * @param evaluatorX The evaluator used to compute the value
0443      *                   to be filled in the histogram along the x axis. 
0444      *                   The value is computed from the current row of the tuple.
0445      * @param evaluatorY The evaluator used to compute the value
0446      *                   to be filled in the histogram along the y axis. 
0447      *                   The value is computed from the current row of the tuple.
0448      * @return false If something goes wrong.
0449      *
0450      */
0451     virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
0452 
0453     /**
0454      * Fill an IHistogram2D from the tuple.
0455      * @param histogram  The histogram to fill.
0456      * @param evaluatorX The evaluator used to compute the value
0457      *                   to be filled in the histogram along the x axis. 
0458      *                   The value is computed from the current row of the tuple.
0459      * @param evaluatorY The evaluator used to compute the value
0460      *                   to be filled in the histogram along the y axis. 
0461      *                   The value is computed from the current row of the tuple.
0462      * @param filter     The filter object used to accept or not the current row.
0463      *                   If rejected, the histogram is not filled.
0464      * @return false If something goes wrong.
0465      *
0466      */
0467     virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
0468 
0469     /**
0470      * Fill an IHistogram2D from the tuple.
0471      * @param histogram  The histogram to fill.
0472      * @param evaluatorX The evaluator used to compute the value
0473      *                   to be filled in the histogram along the x axis. 
0474      *                   The value is computed from the current row of the tuple.
0475      * @param evaluatorY The evaluator used to compute the value
0476      *                   to be filled in the histogram along the y axis. 
0477      *                   The value is computed from the current row of the tuple.
0478      * @param weight     The evaluator which determines the weight which is used during the filling.
0479      * @return false If something goes wrong.
0480      *
0481      */
0482     virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
0483 
0484     /**
0485      * Fill an IHistogram2D from the tuple.
0486      * @param histogram  The histogram to fill.
0487      * @param evaluatorX The evaluator used to compute the value
0488      *                   to be filled in the histogram along the x axis. 
0489      *                   The value is computed from the current row of the tuple.
0490      * @param evaluatorY The evaluator used to compute the value
0491      *                   to be filled in the histogram along the y axis. 
0492      *                   The value is computed from the current row of the tuple.
0493      * @param filter     The filter object used to accept or not the current row.
0494      *                   If rejected, the histogram is not filled.
0495      * @param weight     The evaluator which determines the weight which is used during the filling.
0496      * @return false If something goes wrong.
0497      *
0498      */
0499     virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
0500 
0501     /**
0502      * Fill an IHistogram3D from the tuple.
0503      * @param histogram  The histogram to fill.
0504      * @param evaluatorX The evaluator used to compute the value
0505      *                   to be filled in the histogram along the x axis. 
0506      *                   The value is computed from the current row of the tuple.
0507      * @param evaluatorY The evaluator used to compute the value
0508      *                   to be filled in the histogram along the y axis. 
0509      *                   The value is computed from the current row of the tuple.
0510      * @param evaluatorZ The evaluator used to compute the value
0511      *                   to be filled in the histogram along the z axis. 
0512      *                   The value is computed from the current row of the tuple.
0513      * @return false If something goes wrong.
0514      *
0515      */
0516     virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
0517 
0518     /**
0519      * Fill an IHistogram3D from the tuple.
0520      * @param histogram  The histogram to fill.
0521      * @param evaluatorX The evaluator used to compute the value
0522      *                   to be filled in the histogram along the x axis. 
0523      *                   The value is computed from the current row of the tuple.
0524      * @param evaluatorY The evaluator used to compute the value
0525      *                   to be filled in the histogram along the y axis. 
0526      *                   The value is computed from the current row of the tuple.
0527      * @param evaluatorZ The evaluator used to compute the value
0528      *                   to be filled in the histogram along the z axis. 
0529      *                   The value is computed from the current row of the tuple.
0530      * @param filter     The filter object used to accept or not the current row.
0531      *                   If rejected, the histogram is not filled.
0532      * @return false If something goes wrong.
0533      *
0534      */
0535     virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
0536 
0537     /**
0538      * Fill an IHistogram3D from the tuple.
0539      * @param histogram  The histogram to fill.
0540      * @param evaluatorX The evaluator used to compute the value
0541      *                   to be filled in the histogram along the x axis. 
0542      *                   The value is computed from the current row of the tuple.
0543      * @param evaluatorY The evaluator used to compute the value
0544      *                   to be filled in the histogram along the y axis. 
0545      *                   The value is computed from the current row of the tuple.
0546      * @param evaluatorZ The evaluator used to compute the value
0547      *                   to be filled in the histogram along the z axis. 
0548      *                   The value is computed from the current row of the tuple.
0549      * @param weight     The evaluator which determines the weight which is used during the filling.
0550      * @return false If something goes wrong.
0551      *
0552      */
0553     virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
0554 
0555     /**
0556      * Fill an IHistogram3D from the tuple.
0557      * @param histogram  The histogram to fill.
0558      * @param evaluatorX The evaluator used to compute the value
0559      *                   to be filled in the histogram along the x axis. 
0560      *                   The value is computed from the current row of the tuple.
0561      * @param evaluatorY The evaluator used to compute the value
0562      *                   to be filled in the histogram along the y axis. 
0563      *                   The value is computed from the current row of the tuple.
0564      * @param evaluatorZ The evaluator used to compute the value
0565      *                   to be filled in the histogram along the z axis. 
0566      *                   The value is computed from the current row of the tuple.
0567      * @param filter     The filter object used to accept or not the current row.
0568      *                   If rejected, the histogram is not filled.
0569      * @param weight     The evaluator which determines the weight which is used during the filling.
0570      * @return false If something goes wrong.
0571      *
0572      */
0573     virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
0574 
0575     /**
0576      * Fill an ICloud1D from the tuple.
0577      * @param cloud      The cloud to fill.
0578      * @param evaluatorX The evaluator used to compute the value
0579      *                   to be filled in the cloud. The value is computed
0580      *                   from the current row of the tuple.
0581      * @return false If something goes wrong.
0582      *
0583      */
0584     virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX) = 0;
0585 
0586     /**
0587      * Fill an ICloud1D from the tuple.
0588      * @param cloud      The cloud to fill.
0589      * @param evaluatorX The evaluator used to compute the value
0590      *                   to be filled in the cloud. The value is computed
0591      *                   from the current row of the tuple.
0592      * @param filter     The filter object used to accept or not the current row.
0593      *                   If rejected, the cloud is not filled.
0594      * @return false If something goes wrong.
0595      *
0596      */    
0597     virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter) = 0;
0598 
0599     /**
0600      * Fill an ICloud1D from the tuple.
0601      * @param cloud      The cloud to fill.
0602      * @param evaluatorX The evaluator used to compute the value
0603      *                   to be filled in the cloud. The value is computed
0604      *                   from the current row of the tuple.
0605      * @param weight     The evaluator which determines the weight which is used during the filling.
0606      * @return false If something goes wrong.
0607      *
0608      */    
0609     virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IEvaluator & weight) = 0;
0610 
0611     /**
0612      * Fill an ICloud1D from the tuple.
0613      * @param cloud      The cloud to fill.
0614      * @param evaluatorX The evaluator used to compute the value
0615      *                   to be filled in the cloud. The value is computed
0616      *                   from the current row of the tuple.
0617      * @param filter     The filter object used to accept or not the current row.
0618      *                   If rejected, the cloud is not filled.
0619      * @param weight     The evaluator which determines the weight which is used during the filling.
0620      * @return false If something goes wrong.
0621      *
0622      */    
0623     virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0;
0624 
0625     /**
0626      * Fill an ICloud2D from the tuple.
0627      * @param cloud      The cloud to fill.
0628      * @param evaluatorX The evaluator used to compute the value
0629      *                   to be filled in the cloud along the x axis. 
0630      *                   The value is computed from the current row of the tuple.
0631      * @param evaluatorY The evaluator used to compute the value
0632      *                   to be filled in the cloud along the y axis. 
0633      *                   The value is computed from the current row of the tuple.
0634      * @return false If something goes wrong.
0635      *
0636      */
0637     virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
0638 
0639     /**
0640      * Fill an ICloud2D from the tuple.
0641      * @param cloud      The cloud to fill.
0642      * @param evaluatorX The evaluator used to compute the value
0643      *                   to be filled in the cloud along the x axis. 
0644      *                   The value is computed from the current row of the tuple.
0645      * @param evaluatorY The evaluator used to compute the value
0646      *                   to be filled in the cloud along the y axis. 
0647      *                   The value is computed from the current row of the tuple.
0648      * @param filter     The filter object used to accept or not the current row.
0649      *                   If rejected, the cloud is not filled.
0650      * @return false If something goes wrong.
0651      *
0652      */
0653     virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
0654 
0655     /**
0656      * Fill an ICloud2D from the tuple.
0657      * @param cloud      The cloud to fill.
0658      * @param evaluatorX The evaluator used to compute the value
0659      *                   to be filled in the cloud along the x axis. 
0660      *                   The value is computed from the current row of the tuple.
0661      * @param evaluatorY The evaluator used to compute the value
0662      *                   to be filled in the cloud along the y axis. 
0663      *                   The value is computed from the current row of the tuple.
0664      * @param weight     The evaluator which determines the weight which is used during the filling.
0665      * @return false If something goes wrong.
0666      *
0667      */
0668     virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
0669 
0670     /**
0671      * Fill an ICloud2D from the tuple.
0672      * @param cloud      The cloud to fill.
0673      * @param evaluatorX The evaluator used to compute the value
0674      *                   to be filled in the cloud along the x axis. 
0675      *                   The value is computed from the current row of the tuple.
0676      * @param evaluatorY The evaluator used to compute the value
0677      *                   to be filled in the cloud along the y axis. 
0678      *                   The value is computed from the current row of the tuple.
0679      * @param filter     The filter object used to accept or not the current row.
0680      *                   If rejected, the cloud is not filled.
0681      * @param weight     The evaluator which determines the weight which is used during the filling.
0682      * @return false If something goes wrong.
0683      *
0684      */
0685     virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
0686 
0687     /**
0688      * Fill an ICloud3D from the tuple.
0689      * @param cloud      The cloud to fill.
0690      * @param evaluatorX The evaluator used to compute the value
0691      *                   to be filled in the cloud along the x axis. 
0692      *                   The value is computed from the current row of the tuple.
0693      * @param evaluatorY The evaluator used to compute the value
0694      *                   to be filled in the cloud along the y axis. 
0695      *                   The value is computed from the current row of the tuple.
0696      * @param evaluatorZ The evaluator used to compute the value
0697      *                   to be filled in the cloud along the z axis. 
0698      *                   The value is computed from the current row of the tuple.
0699      * @return false If something goes wrong.
0700      *
0701      */
0702     virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
0703 
0704     /**
0705      * Fill an ICloud3D from the tuple.
0706      * @param cloud      The cloud to fill.
0707      * @param evaluatorX The evaluator used to compute the value
0708      *                   to be filled in the cloud along the x axis. 
0709      *                   The value is computed from the current row of the tuple.
0710      * @param evaluatorY The evaluator used to compute the value
0711      *                   to be filled in the cloud along the y axis. 
0712      *                   The value is computed from the current row of the tuple.
0713      * @param evaluatorZ The evaluator used to compute the value
0714      *                   to be filled in the cloud along the z axis. 
0715      *                   The value is computed from the current row of the tuple.
0716      * @param filter     The filter object used to accept or not the current row.
0717      *                   If rejected, the cloud is not filled.
0718      * @return false If something goes wrong.
0719      *
0720      */
0721     virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
0722 
0723     /**
0724      * Fill an ICloud3D from the tuple.
0725      * @param cloud      The cloud to fill.
0726      * @param evaluatorX The evaluator used to compute the value
0727      *                   to be filled in the cloud along the x axis. 
0728      *                   The value is computed from the current row of the tuple.
0729      * @param evaluatorY The evaluator used to compute the value
0730      *                   to be filled in the cloud along the y axis. 
0731      *                   The value is computed from the current row of the tuple.
0732      * @param evaluatorZ The evaluator used to compute the value
0733      *                   to be filled in the cloud along the z axis. 
0734      *                   The value is computed from the current row of the tuple.
0735      * @param weight     The evaluator which determines the weight which is used during the filling.
0736      * @return false If something goes wrong.
0737      *
0738      */
0739     virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
0740 
0741     /**
0742      * Fill an ICloud3D from the tuple.
0743      * @param cloud      The cloud to fill.
0744      * @param evaluatorX The evaluator used to compute the value
0745      *                   to be filled in the cloud along the x axis. 
0746      *                   The value is computed from the current row of the tuple.
0747      * @param evaluatorY The evaluator used to compute the value
0748      *                   to be filled in the cloud along the y axis. 
0749      *                   The value is computed from the current row of the tuple.
0750      * @param evaluatorZ The evaluator used to compute the value
0751      *                   to be filled in the cloud along the z axis. 
0752      *                   The value is computed from the current row of the tuple.
0753      * @param filter     The filter object used to accept or not the current row.
0754      *                   If rejected, the cloud is not filled.
0755      * @param weight     The evaluator which determines the weight which is used during the filling.
0756      * @return false If something goes wrong.
0757      *
0758      */
0759     virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
0760 
0761     /**
0762      * Fill an IProfile1D from the tuple.
0763      * @param profile    The profile to fill.
0764      * @param evaluatorX The evaluator used to compute the value
0765      *                   to be filled in the profile along the x axis. 
0766      *                   The value is computed from the current row of the tuple.
0767      * @param evaluatorY The evaluator used to compute the value
0768      *                   to be filled in the profile along the y axis. 
0769      *                   The value is computed from the current row of the tuple.
0770      * @return false If something goes wrong.
0771      *
0772      */
0773     virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
0774 
0775     /**
0776      * Fill an IProfile1D from the tuple.
0777      * @param profile    The profile to fill.
0778      * @param evaluatorX The evaluator used to compute the value
0779      *                   to be filled in the profile along the x axis. 
0780      *                   The value is computed from the current row of the tuple.
0781      * @param evaluatorY The evaluator used to compute the value
0782      *                   to be filled in the profile along the y axis. 
0783      *                   The value is computed from the current row of the tuple.
0784      * @param filter     The filter object used to accept or not the current row.
0785      *                   If rejected, the profile is not filled.
0786      * @return false If something goes wrong.
0787      *
0788      */
0789     virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
0790 
0791     /**
0792      * Fill an IProfile1D from the tuple.
0793      * @param profile    The profile to fill.
0794      * @param evaluatorX The evaluator used to compute the value
0795      *                   to be filled in the profile along the x axis. 
0796      *                   The value is computed from the current row of the tuple.
0797      * @param evaluatorY The evaluator used to compute the value
0798      *                   to be filled in the profile along the y axis. 
0799      *                   The value is computed from the current row of the tuple.
0800      * @param weight     The evaluator which determines the weight which is used during the filling.
0801      * @return false If something goes wrong.
0802      *
0803      */
0804     virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
0805 
0806     /**
0807      * Fill an IProfile1D from the tuple.
0808      * @param profile    The profile to fill.
0809      * @param evaluatorX The evaluator used to compute the value
0810      *                   to be filled in the profile along the x axis. 
0811      *                   The value is computed from the current row of the tuple.
0812      * @param evaluatorY The evaluator used to compute the value
0813      *                   to be filled in the profile along the y axis. 
0814      *                   The value is computed from the current row of the tuple.
0815      * @param filter     The filter object used to accept or not the current row.
0816      *                   If rejected, the profile is not filled.
0817      * @param weight     The evaluator which determines the weight which is used during the filling.
0818      * @return false If something goes wrong.
0819      *
0820      */
0821     virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
0822 
0823     /**
0824      * Fill an IProfile2D from the tuple.
0825      * @param profile    The profile to fill.
0826      * @param evaluatorX The evaluator used to compute the value
0827      *                   to be filled in the profile along the x axis. 
0828      *                   The value is computed from the current row of the tuple.
0829      * @param evaluatorY The evaluator used to compute the value
0830      *                   to be filled in the profile along the y axis. 
0831      *                   The value is computed from the current row of the tuple.
0832      * @param evaluatorZ The evaluator used to compute the value
0833      *                   to be filled in the profile along the z axis. 
0834      *                   The value is computed from the current row of the tuple.
0835      * @return false If something goes wrong.
0836      *
0837      */
0838     virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
0839 
0840     /**
0841      * Fill an IProfile2D from the tuple.
0842      * @param profile    The profile to fill.
0843      * @param evaluatorX The evaluator used to compute the value
0844      *                   to be filled in the profile along the x axis. 
0845      *                   The value is computed from the current row of the tuple.
0846      * @param evaluatorY The evaluator used to compute the value
0847      *                   to be filled in the profile along the y axis. 
0848      *                   The value is computed from the current row of the tuple.
0849      * @param evaluatorZ The evaluator used to compute the value
0850      *                   to be filled in the profile along the z axis. 
0851      *                   The value is computed from the current row of the tuple.
0852      * @param filter     The filter object used to accept or not the current row.
0853      *                   If rejected, the profile is not filled.
0854      * @return false If something goes wrong.
0855      *
0856      */
0857     virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
0858 
0859     /**
0860      * Fill an IProfile2D from the tuple.
0861      * @param profile    The profile to fill.
0862      * @param evaluatorX The evaluator used to compute the value
0863      *                   to be filled in the profile along the x axis. 
0864      *                   The value is computed from the current row of the tuple.
0865      * @param evaluatorY The evaluator used to compute the value
0866      *                   to be filled in the profile along the y axis. 
0867      *                   The value is computed from the current row of the tuple.
0868      * @param evaluatorZ The evaluator used to compute the value
0869      *                   to be filled in the profile along the z axis. 
0870      *                   The value is computed from the current row of the tuple.
0871      * @param weight     The evaluator which determines the weight which is used during the filling.
0872      * @return false If something goes wrong.
0873      *
0874      */
0875     virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
0876 
0877     /**
0878      * Fill an IProfile2D from the tuple.
0879      * @param profile    The profile to fill.
0880      * @param evaluatorX The evaluator used to compute the value
0881      *                   to be filled in the profile along the x axis. 
0882      *                   The value is computed from the current row of the tuple.
0883      * @param evaluatorY The evaluator used to compute the value
0884      *                   to be filled in the profile along the y axis. 
0885      *                   The value is computed from the current row of the tuple.
0886      * @param evaluatorZ The evaluator used to compute the value
0887      *                   to be filled in the profile along the z axis. 
0888      *                   The value is computed from the current row of the tuple.
0889      * @param filter     The filter object used to accept or not the current row.
0890      *                   If rejected, the profile is not filled.
0891      * @param weight     The evaluator which determines the weight which is used during the filling.
0892      * @return false If something goes wrong.
0893      *
0894      */
0895     virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
0896 
0897   /**
0898    *  See IManagedObject for a description.
0899    * @param className The name of the class to cast on.
0900    * @return The right pointer. Return 0 if failure.
0901    */ 
0902     virtual void * cast(const std::string & className) const = 0;
0903 }; // class
0904 } // namespace AIDA
0905 #endif /* ifndef AIDA_ITUPLE_H */