Graphite  Version 3
An experimental 3D geometry processing program
filter.h
Go to the documentation of this file.
1 /*
2  * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
3  * Copyright (C) 2000-2009 INRIA - Project ALICE
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  * If you modify this software, you should include a notice giving the
20  * name of the person performing the modification, the date of modification,
21  * and the reason for such modification.
22  *
23  * Contact: Bruno Levy - levy@loria.fr
24  *
25  * Project ALICE
26  * LORIA, INRIA Lorraine,
27  * Campus Scientifique, BP 239
28  * 54506 VANDOEUVRE LES NANCY CEDEX
29  * FRANCE
30  *
31  * Note that the GNU General Public License does not permit incorporating
32  * the Software into proprietary programs.
33  *
34  * As an exception to the GPL, Graphite can be linked with the following
35  * (non-GPL) libraries: Qt, SuperLU, WildMagic and CGAL
36  */
37 
38 
39 #ifndef H_OGF_MESH_COMMANDS_FILTER_H
40 #define H_OGF_MESH_COMMANDS_FILTER_H
41 
42 #include <OGF/mesh/common/common.h>
43 
49 namespace OGF {
53  class MESH_API Filter {
54  public:
72  index_t size, const std::string& description,
73  bool floating_point=false
74  );
75 
82  bool test(index_t item) const;
83 
90  bool test(double value) const;
91 
92  protected:
96  void parse_items(const std::string& destription);
97 
101  void parse_values(const std::string& destription);
102 
103  private:
104  index_t size_;
105  vector<double> include_items_;
106  vector<std::pair<double, double> > include_intervals_;
107  vector<double> exclude_items_;
108  vector<std::pair<double, double> > exclude_intervals_;
109  };
110 }
111 
112 #endif
A class to select subsets in an array.
Definition: filter.h:53
void parse_items(const std::string &destription)
used in 'items' mode (ctor, floating_point = false)
bool test(index_t item) const
Tests an element.
Filter(index_t size, const std::string &description, bool floating_point=false)
Filter constructor.
void parse_values(const std::string &destription)
used in 'values' mode (ctor, floating_point = true)
bool test(double value) const
Tests an element by value.
geo_index_t index_t
The type for storing and manipulating indices.
Definition: numeric.h:329
Global Graphite namespace.
Definition: common.h:76
Definitions common to all include files in the mesh library.