X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=Array%2Farray.hxx;h=f90b88b9251f4838ca28feef25b5070a90b2194d;hb=b4a9bde0e9d5a8c578d9002d555d2b933f58117c;hp=087c8c7d2911ad394c086bf8e03d67dcbb38c28b;hpb=e07ae2989e4d7f13252fb69d3301d0c812c13294;p=flightgear.git diff --git a/Array/array.hxx b/Array/array.hxx index 087c8c7d2..f90b88b92 100644 --- a/Array/array.hxx +++ b/Array/array.hxx @@ -31,14 +31,26 @@ #endif +#include + +#include + #include +#include #include +FG_USING_STD(vector); + #define ARRAY_SIZE 1200 #define ARRAY_SIZE_1 1201 +typedef vector < Point3D > fitnode_list; +typedef fitnode_list::iterator fitnode_list_iterator; +typedef fitnode_list::const_iterator const_fitnode_list_iterator; + + class FGArray { private: @@ -58,37 +70,23 @@ private: // pointers to the actual grid data allocated here float (*in_data)[ARRAY_SIZE_1]; - float (*out_data)[ARRAY_SIZE_1]; - - // Current "A" Record Information - // char dem_description[80], dem_quadrangle[80]; - // double dem_x1, dem_y1, dem_x2, dem_y2, dem_x3, dem_y3, dem_x4, dem_y4; - // double dem_z1, dem_z2; - // int dem_resolution, dem_num_profiles; - - // Current "B" Record Information - // int prof_col, prof_row; - // int prof_num_cols, prof_num_rows; - // double prof_x1, prof_y1; - // int prof_data; - - // temporary values for the class to use - // char option_name[32]; - // int do_data; - // int cur_col, cur_row; + // float (*out_data)[ARRAY_SIZE_1]; + + // output nodes + fitnode_list node_list; // Initialize output mesh structure - void outputmesh_init( void ); + // void outputmesh_init( void ); // Get the value of a mesh node - double outputmesh_get_pt( int i, int j ); + // double outputmesh_get_pt( int i, int j ); // Set the value of a mesh node - void outputmesh_set_pt( int i, int j, double value ); + // void outputmesh_set_pt( int i, int j, double value ); #if 0 // Write out a node file that can be used by the "triangle" program - void outputmesh_output_nodes( const string& fg_root, FGBucket& p ); + // void outputmesh_output_nodes( const string& fg_root, FGBucket& p ); #endif public: @@ -112,6 +110,9 @@ public: // Use least squares to fit a simpler data set to dem data void fit( double error ); + // add a node to the output (fitted) node list + void add_fit_node( int i, int j, double val ); + // return the current altitude based on grid data. We should // rewrite this to interpolate exact values, but for now this is // good enough @@ -124,6 +125,8 @@ public: inline int get_rows() const { return rows; } inline double get_col_step() const { return col_step; } inline double get_row_step() const { return row_step; } + + inline fitnode_list get_fit_node_list() const { return node_list; } }; @@ -131,6 +134,10 @@ public: // $Log$ +// Revision 1.3 1999/03/20 20:32:52 curt +// First mostly successful tile triangulation works. There's plenty of tweaking +// to do, but we are marching in the right direction. +// // Revision 1.2 1999/03/13 23:50:27 curt // Tweaked output formatting a bit. //