-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Committed; thanks.
Tim Anders Gidenstam wrote: > On Sun, 12 Aug 2007, Hans Fugal wrote: > >> That's because there is no custom comparison predicate for comparing >> bucket*. vector<bucket*> is just a list of pointers, and so uses the >> sort order for pointers. You'd have to set up an STL functor to sort >> them, which is ugly and difficult (but certainly doable). If sorting >> is unnecessary it's a better way to go, obviously. :-) > > Yep, that's what I figured out eventually. I think it is safer to keep the > sorting for now - in case e.g. the user changes the layer elevations > using the property browser. > > The patch included adds a comparison predicate for buckets. > > Please test it and commit it if it is acceptable. It works fine here. > > Cheers, > > Anders > > > ------------------------------------------------------------------------ > > diff --git a/src/Environment/environment_ctrl.cxx > b/src/Environment/environment_ctrl.cxx > index a1ed5f2..0ca2cba 100644 > --- a/src/Environment/environment_ctrl.cxx > +++ b/src/Environment/environment_ctrl.cxx > @@ -231,7 +231,7 @@ FGInterpolateEnvironmentCtrl::read_table (const > SGPropertyNode * node, > table.push_back(b); > } > } > - sort(table.begin(), table.end()); > + sort(table.begin(), table.end(), bucket::lessThan); > } > > void > @@ -312,6 +312,11 @@ FGInterpolateEnvironmentCtrl::bucket::operator< (const > bucket &b) const > return (altitude_ft < b.altitude_ft); > } > > +bool > +FGInterpolateEnvironmentCtrl::bucket::lessThan(bucket *a, bucket *b) > +{ > + return (a->altitude_ft) < (b->altitude_ft); > +} > > > //////////////////////////////////////////////////////////////////////// > diff --git a/src/Environment/environment_ctrl.hxx > b/src/Environment/environment_ctrl.hxx > index f561f05..cd01b55 100644 > --- a/src/Environment/environment_ctrl.hxx > +++ b/src/Environment/environment_ctrl.hxx > @@ -134,6 +134,8 @@ private: > double altitude_ft; > FGEnvironment environment; > bool operator< (const bucket &b) const; > + // LessThan predicate for bucket pointers. > + static bool lessThan(bucket *a, bucket *b); > }; > > void read_table (const SGPropertyNode * node, vector<bucket *> &table); > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Flightgear-devel mailing list > Flightgear-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/flightgear-devel - -- Red Hat France SARL, 171 Avenue Georges Clemenceau 92024 Nanterre Cedex, France. Siret n° 421 199 464 00056 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFGwxp3eDhWHdXrDRURAi06AJ9HC5lPWthjDXoBhb7C1WaQlLwfGACgph1s FgxdcvBCmHOD/yjfJjMpLVQ= =0m5Y -----END PGP SIGNATURE----- ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel