]> git.mxchange.org Git - simgear.git/blob - Math/interpolater.hxx
Added point3d.hxx to replace cheezy fgPoint3d struct.
[simgear.git] / Math / interpolater.hxx
1 //
2 // interpolater.hxx -- routines to handle linear interpolation from a table of
3 //                     x,y   The table must be sorted by "x" in ascending order
4 //
5 // Written by Curtis Olson, started April 1998.
6 //
7 // Copyright (C) 1998  Curtis L. Olson  - curt@me.umn.edu
8 //
9 // This program is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU General Public License as
11 // published by the Free Software Foundation; either version 2 of the
12 // License, or (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful, but
15 // WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 // General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program; if not, write to the Free Software
21 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 //
23 // $Id$
24 // (Log is kept at end of this file)
25
26
27 #ifndef _INTERPOLATER_H
28 #define _INTERPOLATER_H
29
30
31 #ifndef __cplusplus                                                          
32 # error This library requires C++
33 #endif                                   
34
35
36 #define MAX_TABLE_SIZE 32
37
38
39 class fgINTERPTABLE {
40     int size;
41     double table[MAX_TABLE_SIZE][2];
42
43 public:
44
45     // Constructor -- loads the interpolation table from the specified
46     // file
47     fgINTERPTABLE( char *file );
48
49     // Given an x value, linearly interpolate the y value from the table
50     double interpolate(double x);
51
52     // Destructor
53     ~fgINTERPTABLE( void );
54 };
55
56
57 #endif // _INTERPOLATER_H
58
59
60 // $Log$
61 // Revision 1.2  1998/04/22 13:18:10  curt
62 // C++ - ified comments.  Make file open errors fatal.
63 //
64 // Revision 1.1  1998/04/21 19:14:23  curt
65 // Modified Files:
66 //     Makefile.am Makefile.in
67 // Added Files:
68 //     interpolater.cxx interpolater.hxx
69 //