"Fossies" - the Fresh Open Source Software Archive

Member "tesseract-5.2.0/src/textord/sortflts.h" (6 Jul 2022, 1881 Bytes) of package /linux/misc/tesseract-5.2.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "sortflts.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 4.1.3_vs_5.0.0.

    1 /**********************************************************************
    2  * File:        sortflts.h  (Formerly sfloats.h)
    3  * Description: Code to maintain a sorted list of floats.
    4  * Author:      Ray Smith
    5  *
    6  * (C) Copyright 1993, Hewlett-Packard Ltd.
    7  ** Licensed under the Apache License, Version 2.0 (the "License");
    8  ** you may not use this file except in compliance with the License.
    9  ** You may obtain a copy of the License at
   10  ** http://www.apache.org/licenses/LICENSE-2.0
   11  ** Unless required by applicable law or agreed to in writing, software
   12  ** distributed under the License is distributed on an "AS IS" BASIS,
   13  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14  ** See the License for the specific language governing permissions and
   15  ** limitations under the License.
   16  *
   17  **********************************************************************/
   18 
   19 #ifndef SORTFLTS_H
   20 #define SORTFLTS_H
   21 
   22 #include "elst.h"
   23 
   24 namespace tesseract {
   25 
   26 class SORTED_FLOAT : public ELIST_LINK {
   27   friend class SORTED_FLOATS;
   28 
   29 public:
   30   SORTED_FLOAT() = default;
   31   SORTED_FLOAT(      // create one
   32       float value,   // value of entry
   33       int32_t key) { // reference
   34     entry = value;
   35     address = key;
   36   }
   37 
   38 private:
   39   float entry;     // value of float
   40   int32_t address; // key
   41 };
   42 
   43 ELISTIZEH(SORTED_FLOAT)
   44 class SORTED_FLOATS {
   45 public:
   46   /** empty constructor */
   47   SORTED_FLOATS() {
   48     it.set_to_list(&list);
   49   }
   50   /**
   51    * add sample
   52    * @param value sample float
   53    * @param key retrieval key
   54    */
   55   void add(float value, int32_t key);
   56   /**
   57    * delete sample
   58    * @param key key to delete
   59    */
   60   void remove(int32_t key);
   61   /**
   62    * index to list
   63    * @param index item to get
   64    */
   65   float operator[](int32_t index);
   66 
   67 private:
   68   SORTED_FLOAT_LIST list; // list of floats
   69   SORTED_FLOAT_IT it;     // iterator built-in
   70 };
   71 
   72 } // namespace tesseract
   73 
   74 #endif