[Kstars-devel] KStars, now with indexing!

James Bowlin bowlin at mindspring.com
Wed Jul 25 06:40:33 CEST 2007


I've just updated the kdeedu_kstars_htm branch of kstars.  This branch
now includes a spatial index (HTM = Hierarchical Triangular Mesh) that
speeds up drawing (when zoomed in) and greatly speeds up some searches.
I've also added just-in-time updating for all indexed items.

Everyone is encourage to checkout this branch and try it.  It's been
stable on my system for a few weeks now and I suspect that if the
HTM code compiles on your system, it will run just fine.

The kdeedu_kstars_htm branch is a recent copy of kdeedu.  If you
already have libkdeedu installed then all you need to do is:

  $ svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu_kstars_htm
  $ mkdir build-kstars_htm
  $ cd build-kstars_htm
  $ cmakekde ../kdeedu_kstars_htm
  $ cd  kstars
  $ make
  $ sudo make install

where cmakekde is a Bash function defined as:

  function cmakekde {
  cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR -DCMAKE_BUILD_TYPE=debugfull $@
  }

It's just the standard cmake dance.

NOTE: I just made the commit to svn.kde.org.  I don't know how long
it will take for the changes to propagate to anonsvn.kde.org.  If
you want/need to get the code from anonsvn you should wait the
appropriate amount of time (24 hours?).

There were some large changes in the skycomponents/ directory and also
some large changes in data/ where the sets of Hipparcos, CBounds, and
NGCIC files were each combined into the single files: stars.dat,
cbounds.dat, and ngcic.dat.  The format of stars.dat was also modified
to put the variable length star name after the fixed length genitive
name.  The KStars program can read in the file in either format and a
program is included, reformat-hip.pl, which can convert from one format
to the other.

The code to do the indexing is under the htmesh/ directory and is almost
all written by a group from Johns Hopkins University and licensed under
the modified BSD license.  I've built it on both x86 and amd64 systems
after fixing a few problems.  The code may not compile on all systems 
(yet).  Any help in making it work on a larger range of systems would be 
most welcome.

Most things outside the solar system have already been indexed including:

  o Stars
  o DSO's
  o Constellation Lines
  o Constellation Boundaries
  o Coordinate Grid
  o Milky Way

Large changes to some (but not all) of the sky component classes were
unavoidable. There are copious details in the file README.indexing in
the skycomponents/ directory.  The important new classes are:

  + HTMesh      (in the htmesh/ directory)
    - SkyMesh

  + LineListIndex
    - CoordinateGrid
    - ConstellationLines
    - ConsellationBoundary
    + SkipListIndex
      - MilkWay

  + PolyListIndex
    - ConstellationBoundaryPoly


NOTE:  The code in kdeedu_kstars_htm was pretty old and it made CMake
unhappy.  So I did an svn delete and then copied over all the code from 
kdeedu (excluding the .svn directories).  Unfortunately I had a hard time 
doing the commit because it kept barfing on files with DOS line endings.  
I ended up deleting the contents of the marble/ subdirectory because a
lot of there errors were coming from there.  If this causes you a problem, 
just let me know and I will give you instructions on how to fix it, 
although you probably know more about it than I do.

-- 
Peace, James



More information about the Kstars-devel mailing list