#include "SkySearch.h" class SkySearch : public TclAstroCat { ... public: SkySearch(Tcl_Interp* interp, const char* cmdname, const char* instname); static int astroCatCmd(ClientData, Tcl_Interp* interp, int argc, char* argv[]); virtual int imgplotCmd(int argc, char* argv[]); };
The SkySearch class extends the "astrocat" Tcl command (class TclAstroCat) with image plotting capabilities. The plot method was originally implemented as an Itcl method (see SkySearch(n)), but this turned out to be slow for large numbers of plot symbols. This class improves the plotting performace by making use of C++ symbol drawing methods defined in the Skycat class. This class adds a "plot" subcommand to the astrocat Tcl command.
astroCatCmd(clientData, interp, argc, argv) This is the entry point from Tcl. This static method is called when the astrocat command is used. It creates a new Tcl command with the same name as its first argument, that can be used to access the astrocat and skysearch subcommands. the object can be deleted with the "delete" subcommand. imgplotCmd(argc, argv) This method implements the "plot" subcommand: usage: $instName imgplot $image ?$data? ?$equinox? ?$headings? This subcommand is used to plot catalog objects on the skycat image and was reimplemented here in C++ code to improve performance for large complicated catalogs. $image is the name of the image object ("rtdimage" object, implemented by the RtdImage C++ class and extended by the Skycat C++ class). If $data is specified, it should be a Tcl list of rows to be plotted, in the format returned by the query command. If $equinox is specified, it is the equinox of the ra and dec columns in the data (the first 3 columns are assumed to be id, ra and dec, unless otherwise defined in the catalog config entry or header). If $headings is given, it is used as a Tcl list of column headings. Otherwise the catalog headings are used, if there is a current catalog. Note: normally you will need to specify all the arguments, since the querries are done in the background (See AstroCat(n) (cat package) and Batch(n) (tclutil package)). The information for the previous query is lost when the background process exits. This might change if queries were done using threads or if the background/interrupt handling were done in the C++ code rather than in the Tcl code, as it is done now.
astrocat(n), AstroCat(n), SkyCat(n), SkySearch(n), RtdImage(3), TkImage(3), TclCommand(3), Batch(n)
- - - - - - Last change: 07 May 99
Please send questions or comments to abrighto@eso.org.
Copyright © 1998 ESO - European Southern Observatory