@ -24,7 +24,7 @@
# include "skypoint.h"
# include "starpixmap.h"
# define HOVER_INTERVAL 500
# define HOVER_INTERVAL 500
class TQPainter ;
class TQPaintDevice ;
@ -58,7 +58,7 @@ class DeepSkyObject;
class SkyMap : public TQWidget {
Q_OBJECT
public :
/**
* Constructor . Read stored settings from TDEConfig object ( focus position ,
@ -84,7 +84,7 @@ public:
*/
void updateFocus ( ) ;
/**@short Retrieve the Focus point; the position on the sky at the
/**@short Retrieve the Focus point; the position on the sky at the
* center of the skymap .
* @ return a pointer to the central focus point of the sky map
*/
@ -93,7 +93,7 @@ public:
/**@short retrieve the Destination position.
*
* The Destination is the point on the sky to which the focus will
* be moved .
* be moved .
*
* @ return a pointer to the destination point of the sky map
*/
@ -101,9 +101,9 @@ public:
/**@short retrieve the FocusPoint position.
*
* The FocusPoint stores the position on the sky that is to be
* focused next . This is not exactly the same as the Destination
* point , because when the Destination is set , it will begin slewing
* The FocusPoint stores the position on the sky that is to be
* focused next . This is not exactly the same as the Destination
* point , because when the Destination is set , it will begin slewing
* immediately .
*
* @ return a pointer to the sky point which is to be focused next .
@ -112,8 +112,8 @@ public:
/**@short retrieve the last focus posiiton.
*
* We store the previous focus point to determine how much the focus
* position has changed .
* We store the previous focus point to determine how much the focus
* position has changed .
*
* @ return a pointer to the previous central focus point of the sky map
*/
@ -126,7 +126,7 @@ public:
/**@short sets the focus point of the skymap, using ra/dec coordinates
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param ra the new right ascension
@ -136,7 +136,7 @@ public:
/**@short sets the focus point of the sky map, using ra/dec coordinates
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param ra the new right ascension
@ -152,7 +152,7 @@ public:
/**@short sets the central focus point of the sky map, using alt/az coordinates
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param alt the new altitude
@ -163,7 +163,7 @@ public:
/**@short sets the destination point of the sky map.
* @ note setDestination ( ) emits the destinationChanged ( ) SIGNAL ,
* which triggers the TQT_SLOT function SkyMap : : slewFocus ( ) . This
* function iteratively steps the Focus point toward Destination ,
* function iteratively steps the Focus point toward Destination ,
* repainting the sky at each step ( if Options : : useAnimatedSlewing ( ) = = true ) .
* @ param f a pointer to the SkyPoint the map should slew to
*/
@ -171,7 +171,7 @@ public:
/**@short sets the destination point of the skymap, using ra/dec coordinates.
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param ra the new right ascension
@ -181,7 +181,7 @@ public:
/**@short sets the destination point of the sky map, using ra/dec coordinates
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param ra the new right ascension
@ -197,7 +197,7 @@ public:
/**@short sets the destination point of the sky map, using its alt/az coordinates.
*
* @ note This function behaves essentially like the above function .
* @ note This function behaves essentially like the above function .
* It differs only in the data types of its arguments .
*
* @ param alt the new altitude
@ -230,7 +230,7 @@ public:
void setClickedPoint ( SkyPoint * f ) { ClickedPoint . set ( f - > ra ( ) , f - > dec ( ) ) ; }
/**@short Retrieve the PreviousClickedPoint position.
* @ return a pointer to PreviousClickedPoint , the sky coordinates of the
* @ return a pointer to PreviousClickedPoint , the sky coordinates of the
* penultimate mouse click .
*/
SkyPoint * previousClickedPoint ( ) { return & PreviousClickedPoint ; }
@ -243,32 +243,32 @@ public:
/**@short Retrieve a pointer to MousePoint, the sky coordinates of the mouse cursor.
*
* When the user moves the mouse in the sky map , the sky coordinates of the mouse
* cursor are continually stored in MousePoint by the function mouseMoveEvent ( ) .
* cursor are continually stored in MousePoint by the function mouseMoveEvent ( ) .
* @ return a pointer to MousePoint , the current sky coordinates of the mouse cursor .
*/
SkyPoint * mousePoint ( ) { return & MousePoint ; }
/**@short Set the MousePoint to the skypoint given as an argument.
* @ note In this function , the argument is a SkyPoint , not a pointer to a SkyPoint .
* This is because setMousePoint always uses the function dXdYToRaDec ( ) for the
* This is because setMousePoint always uses the function dXdYToRaDec ( ) for the
* argument , and this function returns by value .
* @ param f the new MousePoint ( typically the output of dXdYToRaDec ( ) ) .
*/
void setMousePoint ( SkyPoint f ) { MousePoint . set ( f . ra ( ) , f . dec ( ) ) ; }
/**@short Attempt to find a named object near the SkyPoint argument.
/**@short Attempt to find a named object near the SkyPoint argument.
*
* There is a object - type preference order for selecting among nearby objects :
* objects of a less - preferred type will be selected only if they are twice as close
* to the SkyPoint as the nearest object of a more - preferred type . The order ( from
* most to least preferred ) is : Solar System , custom object , Messier ,
* NGC , IC , stars . If no named object was found within the zoom - dependent maximum
* There is a object - type preference order for selecting among nearby objects :
* objects of a less - preferred type will be selected only if they are twice as close
* to the SkyPoint as the nearest object of a more - preferred type . The order ( from
* most to least preferred ) is : Solar System , custom object , Messier ,
* NGC , IC , stars . If no named object was found within the zoom - dependent maximum
* search radius of about 4 pixels , then the function returns a NULL pointer .
*
* @ note This code used to be in mousePressEvent ( ) , but now we need it in
* @ note This code used to be in mousePressEvent ( ) , but now we need it in
* slotTransientLabel ( ) and other parts of the code as well .
* @ param p pointer to the skypoint around which to search for an object .
* @ return a pointer to the nearest named object to point p , or NULL if
* @ return a pointer to the nearest named object to point p , or NULL if
* no object was found .
*/
SkyObject * objectNearest ( SkyPoint * p ) ;
@ -291,7 +291,7 @@ public:
*
* If the user centers the sky map on an object ( by double - clicking or using the
* Find Object dialog ) , a pointer to the " focused " object is stored in
* the private member FocusObject . This function returns a pointer to the
* the private member FocusObject . This function returns a pointer to the
* FocusObject , or NULL if there is not FocusObject .
* @ return a pointer to the object at the center of the sky map .
*/
@ -305,19 +305,19 @@ public:
/**@short Retrieve the object nearest to the point at which the mouse has hovered.
*
* When the mouse hovers near an object , it is set as the TransientObject ( so named
* because a transient name label will be attached to it ) . This function returns
* because a transient name label will be attached to it ) . This function returns
* a pointer to the current TransientObject , or NULL if no TransientObject is set .
* @ return pointer to the SkyObject nearest to the mouse hover position .
* @ see SkyMap : : slotTransientLabel ( )
*/
SkyObject * transientObject ( void ) const { return TransientObject ; }
/**@short Set the TransientObject pointer to the argument.
* @ param o pointer to the SkyObject to be assigned as the TransientObject .
*/
void setTransientObject ( SkyObject * o ) { TransientObject = o ; }
/**@return the current setting of the color mode for stars (0=real colors,
/**@return the current setting of the color mode for stars (0=real colors,
* 1 = solid red , 2 = solid white or 3 = solid black ) .
*/
int starColorMode ( void ) const { return starpix - > mode ( ) ; }
@ -329,7 +329,7 @@ public:
/**@short Retrieve the color-intensity value for stars.
*
* When using the " realistic colors " mode for stars , stars are rendered as
* When using the " realistic colors " mode for stars , stars are rendered as
* white circles with a colored border . The " color intensity " setting modulates
* the relative thickness of this colored border , so it effectively adjusts
* the color - saturation level for star images .
@ -339,7 +339,7 @@ public:
/**@short Sets the color-intensity value for stars.
*
* When using the " realistic colors " mode for stars , stars are rendered as
* When using the " realistic colors " mode for stars , stars are rendered as
* white circles with a colored border . The " color intensity " setting modulates
* the relative thickness of this colored border , so it effectively adjusts
* the color - saturation level for star images .
@ -348,7 +348,7 @@ public:
/**@short set up variables for the checkVisibility function.
*
* checkVisibility ( ) uses some variables to assist it in determining whether points are
* checkVisibility ( ) uses some variables to assist it in determining whether points are
* on - screen or not . The values of these variables do not depend on which object is being tested ,
* so we save a lot of time by bringing the code which sets their values outside of checkVisibility ( )
* ( which must be run for each and every SkyPoint ) . setMapGeometry ( ) is called once in paintEvent ( ) .
@ -365,7 +365,7 @@ public:
/**@short Call keyPressEvent, as if the key given as an argument had been pressed. */
void invokeKey ( int key ) ;
/**@return true if the angular distance measuring mode is on
/**@return true if the angular distance measuring mode is on
*/
bool isAngleMode ( ) const { return angularDistanceMode ; }
@ -388,9 +388,9 @@ public:
/**@short Draw the current Sky map to a pixmap which is to be printed or exported to a file.
*
* Each of the draw functions is called , with a value for the Scale parameter computed to fit the
* Each of the draw functions is called , with a value for the Scale parameter computed to fit the
* geometry of the TQPaintDevice .
* @ param pd pointer to the TQPaintDevice on which to draw .
* @ param pd pointer to the TQPaintDevice on which to draw .
* @ see KStars : : slotExportImage ( )
* @ see KStars : : slotPrint ( )
*/
@ -400,7 +400,7 @@ public slots:
/**@short This overloaded function is used internally to resize the Sky pixmap to match the window size.
*/
virtual void setGeometry ( int x , int y , int w , int h ) ;
/**@short This overloaded function is used internally to resize the Sky pixmap to match the window size.
*
* This function behaves essentially like the above function . It differs only in the data types * of its arguments .
@ -419,13 +419,13 @@ public slots:
*/
void forceUpdateNow ( ) { forceUpdate ( true ) ; }
/**Estimate the effect of atmospheric refraction on object positions. Refraction
* affects only the Altitude angle of objects . Also , the correction should not be applied
/**Estimate the effect of atmospheric refraction on object positions. Refraction
* affects only the Altitude angle of objects . Also , the correction should not be applied
* to the horizon , which is not beyond the atmosphere .
*
* To estimate refraction , we use a simple analytic equation . To save time , we store
* values of the correction for 0.5 - degree Altitude intervals . Individual objects are then
* simply assigned the nearest stored value . The precaclulated values are stored in the
* values of the correction for 0.5 - degree Altitude intervals . Individual objects are then
* simply assigned the nearest stored value . The precaclulated values are stored in the
* RefractCorr1 and RefractCorr2 arrays , and these are initialized in the SkyMap constructor .
*
* There are two cases : the true altitude is known , and the apparent altitude is needed ;
@ -436,17 +436,17 @@ public slots:
*/
dms refract ( const dms * alt , bool findApparent ) ;
/**Step the Focus point toward the Destination point. Do this iteratively, redrawing the Sky
/**Step the Focus point toward the Destination point. Do this iteratively, redrawing the Sky
* Map after each step , until the Focus point is within 1 step of the Destination point .
* For the final step , snap directly to Destination , and redraw the map .
*/
void slewFocus ( void ) ;
/**@short Center the display at the point ClickedPoint.
/**@short Center the display at the point ClickedPoint.
*
* The essential part of the function is to simply set the Destination point , which will emit
* The essential part of the function is to simply set the Destination point , which will emit
* the destinationChanged ( ) SIGNAL , which triggers the slewFocus ( ) SLOT . Additionally , this
* function performs some bookkeeping tasks , such updating whether we are tracking the new
* function performs some bookkeeping tasks , such updating whether we are tracking the new
* object / position , adding a Planet Trail if required , etc .
*
* @ see destinationChanged ( )
@ -454,38 +454,38 @@ public slots:
*/
void slotCenter ( void ) ;
/**@short Popup menu function: Display 1st-Generation DSS image with the Image Viewer.
/**@short Popup menu function: Display 1st-Generation DSS image with the Image Viewer.
* @ note the URL is generated using the coordinates of ClickedPoint .
*/
void slotDSS ( void ) ;
/**@short Popup menu function: Display 2nd-Generation DSS image with the Image Viewer.
/**@short Popup menu function: Display 2nd-Generation DSS image with the Image Viewer.
* @ note the URL is generated using the coordinates of ClickedPoint .
*/
void slotDSS2 ( void ) ;
/**@short Popup menu function: Show webpage about ClickedObject
* ( only available for some objects ) .
/**@short Popup menu function: Show webpage about ClickedObject
* ( only available for some objects ) .
* @ param id the popup - menu ID entry of the selected information page
*/
void slotInfo ( int id ) ;
/**@short Popup menu function: Show image of ClickedObject
* ( only available for some objects ) .
/**@short Popup menu function: Show image of ClickedObject
* ( only available for some objects ) .
* @ param id the popup - menu ID entry of the selected image
*/
void slotImage ( int id ) ;
/**@short Popup menu function: Show the Detailed Information window for ClickedObject.
/**@short Popup menu function: Show the Detailed Information window for ClickedObject.
*/
void slotDetail ( void ) ;
/**Add ClickedObject to KStarsData::ObjLabelList, which stores pointers to SkyObjects which
/**Add ClickedObject to KStarsData::ObjLabelList, which stores pointers to SkyObjects which
* have User Labels attached .
*/
void slotAddObjectLabel ( void ) ;
/**Remove ClickedObject from KStarsData::ObjLabelList, which stores pointers to SkyObjects which
/**Remove ClickedObject from KStarsData::ObjLabelList, which stores pointers to SkyObjects which
* have User Labels attached .
*/
void slotRemoveObjectLabel ( void ) ;
@ -497,7 +497,7 @@ public slots:
* @ see KSPlanetBase : : addToTrail ( )
*/
void slotAddPlanetTrail ( void ) ;
/**@short Remove the PlanetTrail from ClickedObject.
* @ note The Trail is removed by simply calling KSPlanetBase : : clearTrail ( ) . As long as
* the trail is empty , no new points will be automatically appended .
@ -505,26 +505,26 @@ public slots:
*/
void slotRemovePlanetTrail ( void ) ;
/**Popup menu function: Add a custom Image or Information URL.
/**Popup menu function: Add a custom Image or Information URL.
* Opens the AddLinkDialog window .
*/
void addLink ( void ) ;
/**Checks whether the timestep exceeds a threshold value. If so, sets
* ClockSlewing = true and sets the SimClock to ManualMode .
* ClockSlewing = true and sets the SimClock to ManualMode .
*/
void slotClockSlewing ( ) ;
/**Enables the angular distance measuring mode. It saves the first
/**Enables the angular distance measuring mode. It saves the first
* position of the ruler in a SkyPoint . It makes difference between
* having clicked on the skymap and not having done so */
void slotBeginAngularDistance ( void ) ;
/**Computes the angular distance, prints the result in the status
/**Computes the angular distance, prints the result in the status
* bar and disables the angular distance measuring mode
* If the user has clicked on the map the status bar shows the
* name of the clicked object plus the angular distance . If
* the user did not clicked on the map , just pressed ] , only
* If the user has clicked on the map the status bar shows the
* name of the clicked object plus the angular distance . If
* the user did not clicked on the map , just pressed ] , only
* the angular distance is printed */
void slotEndAngularDistance ( void ) ;
@ -533,15 +533,15 @@ public slots:
void slotCancelAngularDistance ( void ) ;
signals :
/**Emitted by setDestination(), and connected to slewFocus(). Whenever the Destination
* point is changed , slewFocus ( ) will iteratively step the Focus toward Destination
/**Emitted by setDestination(), and connected to slewFocus(). Whenever the Destination
* point is changed , slewFocus ( ) will iteratively step the Focus toward Destination
* until it is reached .
* @ see SkyMap : : setDestination ( )
* @ see SkyMap : : slewFocus ( )
*/
void destinationChanged ( ) ;
/**Emitted by SkyMap::addLink(). This Signal is used to inform the Details Dialog
/**Emitted by SkyMap::addLink(). This Signal is used to inform the Details Dialog
* that it needs to update its lists of URL links .
*/
void linkAdded ( ) ;
@ -550,12 +550,12 @@ protected:
/**Draw the Sky, and all objects in it. */
virtual void paintEvent ( TQPaintEvent * e ) ;
/**Process keystrokes:
/**Process keystrokes:
* @ li arrow keys Slew the map
* @ li + / - keys Zoom in and out
* @ li + / - keys Zoom in and out
* @ li N / E / S / W keys Go to the cardinal points on the Horizon
* @ li Z Go to the Zenith
* @ li < i > Space < / i > Toggle between Qt: : Horizontal and Equatorial coordinate systems
* @ li < i > Space < / i > Toggle between Horizontal and Equatorial coordinate systems
* @ li 0 - 9 Go to a major Solar System body ( 0 = Sun ; 1 - 9 are the major planets , except 3 = Moon )
* @ li [ Place starting point for measuring an angular distance
* @ li ] End point for Angular Distance ; display measurement .
@ -572,7 +572,7 @@ protected:
/**Determine RA, Dec coordinates of clicked location. Find the SkyObject
* which is nearest to the clicked location .
*
* If left - clicked : Set set mouseButtonDown = = true , slewing = = true ; display
* If left - clicked : Set set mouseButtonDown = = true , slewing = = true ; display
* nearest object name in status bar .
* If right - clicked : display popup menu appropriate for nearest object .
*/
@ -588,10 +588,10 @@ protected:
* @ li If Angle - measurement mode is active , update the end - ruler point to the mouse cursor ,
* and continue this function .
* @ li If we are dragging an InfoBox , simply redraw the screen and return .
* @ li If we are defining a ZoomBox , update the ZoomBox rectangle , redraw the screen ,
* @ li If we are defining a ZoomBox , update the ZoomBox rectangle , redraw the screen ,
* and return .
* @ li If dragging the mouse in the map , update focus such that RA , Dec under the mouse
* cursor remains constant .
* @ li If dragging the mouse in the map , update focus such that RA , Dec under the mouse
* cursor remains constant .
* @ li If just moving the mouse , simply update the curso coordinates in the status bar .
*/
virtual void mouseMoveEvent ( TQMouseEvent * e ) ;
@ -599,25 +599,25 @@ protected:
/**Zoom in and out with the mouse wheel. */
virtual void wheelEvent ( TQWheelEvent * e ) ;
/**If the skymap will be resized, the sky must be new computed. So this
/**If the skymap will be resized, the sky must be new computed. So this
* function calls explicitly new computing of the skymap .
* It also repositions the InfoBoxes , if they are anchored to a window edge .
* It also repositions the InfoBoxes , if they are anchored to a window edge .
*/
virtual void resizeEvent ( TQResizeEvent * ) ;
private slots :
/**Gradually fade the Transient Hover Label into the background sky color, and
* redraw the screen after each color change . Once it has faded fully , set the
* redraw the screen after each color change . Once it has faded fully , set the
* TransientObject pointer to NULL to remove the label .
*/
void slotTransientTimeout ( ) ;
/**@short attach transient label to object nearest the mouse cursor.
* This slot is connected to the timeout ( ) signal of the HoverTimer , which is restarted
* in every mouseMoveEvent ( ) . So this slot is executed only if the mouse does not move for
* HOVER_INTERVAL msec . It points TransientObject at the SkyObject nearest the
* in every mouseMoveEvent ( ) . So this slot is executed only if the mouse does not move for
* HOVER_INTERVAL msec . It points TransientObject at the SkyObject nearest the
* mouse cursor , and the TransientObject is subsequently labeled in paintEvent ( ) .
* Note that when TransientObject is not NULL , the next mouseMoveEvent ( ) calls
* Note that when TransientObject is not NULL , the next mouseMoveEvent ( ) calls
* fadeTransientLabel ( ) , which fades the label color and then sets TransientLabel to NULL .
* @ sa mouseMoveEvent ( ) , paintEvent ( ) , slotTransientTimeout ( ) , fadeTransientLabel ( )
*/
@ -628,7 +628,7 @@ private slots:
private :
// Drawing functions. Each takes a TQPainter reference and a scaling factor as arguments.
// The TQPainter is usually the Sky pixmap, but it can also be the Export-to-Image pixmap, or the
// The TQPainter is usually the Sky pixmap, but it can also be the Export-to-Image pixmap, or the
// Printer device. The scaling factors are 1.0 by default (for screen images). The scale factor
// is used to resize the image to fit the page when printing or exporting to a file.
@ -637,56 +637,56 @@ private:
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawMilkyWay ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the coordinate system grid lines.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawCoordinateGrid ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Celestial Equator line.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawEquator ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Ecliptic line.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawEcliptic ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Horizon Line, the compass point labels, and the opaque ground.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawHorizon ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Constellation Lines.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawConstellationLines ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Constellation Boundaries.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawConstellationBoundaries ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Constellation Names.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawConstellationNames ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Stars.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawStars ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw the Deep-Sky Objects.
/**@short Draw the Deep-Sky Objects.
*
* Calls drawDeepSkyCatalog ( ) for each catalog ( Messier / NGC / IC / Custom )
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
@ -694,7 +694,7 @@ private:
* @ see SkyMap : : drawDeepSkyCatalog ( )
*/
void drawDeepSkyObjects ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Draw a Deep-Sky Catalog.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param catalog List of pointers to the objects in a particular deep - sky catalog .
@ -704,7 +704,7 @@ private:
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawDeepSkyCatalog ( TQPainter & psky , TQPtrList < DeepSkyObject > & catalog , TQColor & color , bool drawObject , bool drawImage , double scale = 1.0 ) ;
/**@short Draw the Planet Trails.
*
* " Planet Trails " can be attached to any solar system body ; they are lists of SkyPoints
@ -714,23 +714,23 @@ private:
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawPlanetTrail ( TQPainter & psky , KSPlanetBase * ksp , double scale = 1.0 ) ;
/**@short Draw all solar system bodies: Sun, Moon, 8 planets, comets, asteroids.
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param drawPlanets if FALSE , do nothing
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawSolarSystem ( TQPainter & psky , bool drawPlanets , double scale = 1.0 ) ;
/**@short Draw "User Labels". User labels are name labels attached to objects manually with
/**@short Draw "User Labels". User labels are name labels attached to objects manually with
* the right - click popup menu . Also adds a label to the FocusObject if the Option UseAutoLabel
* is TRUE .
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param scale the scaling factor . We use the default value ( 1.0 ) everywhere , except when printing .
*/
void drawAttachedLabels ( TQPainter & psky , double scale = 1.0 ) ;
/**@short Attach a name label to a SkyObject. This Function is called by the object-specific
/**@short Attach a name label to a SkyObject. This Function is called by the object-specific
* draw functions and also by drawAttachedLabels ( ) .
* @ param psky reference to the TQPainter on which to draw ( either the sky pixmap or printer device )
* @ param obj pointer to the SkyObject which is to be labeled .
@ -745,19 +745,19 @@ private:
/**Draw a planet. This is an image if the planet image is loaded, the zoomlevel
* is high enough ( but not so high that the image fills the screen ) , and the
* user has selected that planet images be shown . If one of these conditions
* is false , then a simple colored circle is drawn instead .
* is false , then a simple colored circle is drawn instead .
* @ param psky reference to the TQPainter on which to draw
* @ param p pointer to the KSPlanetBase to be drawn
* @ param c the color of the circle to be used if not plotting an image of the planet
* @ param zoommin the minimum zoomlevel for drawing the planet image
* @ param resize_mult scale factor for angular size of planet . This is used only for Saturn ,
* because its image includes the Rings , which are not included in its angular size measurement .
* @ param resize_mult scale factor for angular size of planet . This is used only for Saturn ,
* because its image includes the Rings , which are not included in its angular size measurement .
* ( there ' s probably a better way to handle this )
* @ param scale the scale factor used for printing the sky image .
*/
void drawPlanet ( TQPainter & psky , KSPlanetBase * p , TQColor c ,
double zoommin , int resize_mult = 1 , double scale = 1.0 ) ;
/**Draw the overlays on top of the sky map. These include the infoboxes,
* field - of - view indicator , telescope symbols , zoom box and any other
* user - interaction graphics .
@ -768,21 +768,21 @@ private:
* @ param pm pointer to the Sky pixmap
*/
void drawOverlays ( TQPixmap * pm ) ;
/**Draw the Focus, Geo and Time InfoBoxes. This is called by drawOverlays().
* @ param p reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
* @ see SkyMap : : drawOverlays ( )
*/
void drawBoxes ( TQPainter & p ) ;
/**Draw symbols at the position of each Telescope currently being controlled by KStars.
* @ note The shape of the Telescope symbol is currently a hard - coded bullseye .
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
*/
void drawTelescopeSymbols ( TQPainter & psky ) ;
/**@short Draw symbols for objects in the observing list.
* @ param psky reference to the TQPainter on which to draw ( this should be the sky pixmap )
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
@ -790,14 +790,14 @@ private:
void drawObservingList ( TQPainter & psky , double scale = 1.0 ) ;
/**Draw a dotted-line rectangle which traces the potential new field-of-view in ZoomBox mode.
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
*/
void drawZoomBox ( TQPainter & psky ) ;
/**Draw the current TransientLabel. TransientLabels are triggered when the mouse
/**Draw the current TransientLabel. TransientLabels are triggered when the mouse
* hovers on an object .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
* @ sa SkyMap : : slotTransientLabel ( ) , SkyMap : : slotTransientTimeout ( )
*/
@ -805,7 +805,7 @@ private:
/**Draw a dashed line from the Angular-Ruler start point to the current mouse cursor,
* when in Angular - Ruler mode .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ param psky reference to the TQPainter on which to draw ( this should be the Sky pixmap ) .
* @ note there is no scale factor because this is only used for drawing onto the screen , not printing .
*/
void drawAngleRuler ( TQPainter & psky ) ;
@ -825,7 +825,7 @@ private:
* screen pixel coordinate offsets from the center of the Sky pixmap .
* @ param dx horizontal pixel offset from center of SkyMap .
* @ param dy vertical pixel offset from center of SkyMap .
* @ param Horiz if TRUE , the SkyMap is displayed using the Qt: : Horizontal coordinate system
* @ param Horiz if TRUE , the SkyMap is displayed using the Horizontal coordinate system
* @ param LSTh pointer to the local sidereal time , as a dms object .
* @ param lat pointer to the current geographic laitude , as a dms object
* @ param doRefraction if TRUE , correct for atmospheric refraction
@ -833,43 +833,43 @@ private:
SkyPoint dXdYToRaDec ( double dx , double dy , bool Horiz , dms * LST , const dms * lat , bool doRefraction = true ) ;
/**@return the angular field of view of the sky map, in degrees.
* @ note it must use either the height or the width of the window to calculate the
* @ note it must use either the height or the width of the window to calculate the
* FOV angle . It chooses whichever is larger .
*/
float fov ( ) ;
/**@short Determine if the skypoint p is likely to be visible in the display
/**@short Determine if the skypoint p is likely to be visible in the display
* window .
*
* checkVisibility ( ) is an optimization function . It determines whether an object
* appears within the bounds of the skymap window , and therefore should be drawn .
* The idea is to save time by skipping objects which are off - screen , so it is
* The idea is to save time by skipping objects which are off - screen , so it is
* absolutely essential that checkVisibility ( ) is significantly faster than
* the computations required to draw the object to the screen .
*
* The function first checks the difference between the Declination / Altitude
* coordinate of the Focus position , and that of the point p . If the absolute
* coordinate of the Focus position , and that of the point p . If the absolute
* value of this difference is larger than fov , then the function returns FALSE .
* For most configurations of the sky map window , this simple check is enough to
* For most configurations of the sky map window , this simple check is enough to
* exclude a large number of objects .
*
* Next , it determines if one of the poles of the current Coordinate System
* ( Equatorial or Qt: : Horizontal ) is currently inside the sky map window . This is
* stored in the member variable ' bool SkyMap : : isPoleVisible , and is set by the
* Next , it determines if one of the poles of the current Coordinate System
* ( Equatorial or Horizontal ) is currently inside the sky map window . This is
* stored in the member variable ' bool SkyMap : : isPoleVisible , and is set by the
* function SkyMap : : setMapGeometry ( ) , which is called by SkyMap : : paintEvent ( ) .
* If a Pole is visible , then it will return TRUE immediately . The idea is that
* when a pole is on - screen it is computationally expensive to determine whether
* a particular position is on - screen or not : for many valid Dec / Alt values , * all *
* values of RA / Az will indeed be onscreen , but for other valid Dec / Alt values ,
* only * most * RA / Az values are onscreen . It is cheaper to simply accept all
* " horizontal " RA / Az values , since we have already determined that they are
* when a pole is on - screen it is computationally expensive to determine whether
* a particular position is on - screen or not : for many valid Dec / Alt values , * all *
* values of RA / Az will indeed be onscreen , but for other valid Dec / Alt values ,
* only * most * RA / Az values are onscreen . It is cheaper to simply accept all
* " horizontal " RA / Az values , since we have already determined that they are
* on - screen in the " vertical " Dec / Alt coordinate .
*
* Finally , if no Pole is onscreen , it checks the difference between the Focus
* position ' s RA / Az coordinate and that of the point p . If the absolute value of
* Finally , if no Pole is onscreen , it checks the difference between the Focus
* position ' s RA / Az coordinate and that of the point p . If the absolute value of
* this difference is larger than XMax , the function returns FALSE . Otherwise ,
* it returns TRUE .
* @ param p pointer to the skypoint to be checked .
* @ param fov the vertical center - to - edge angle of the window , in degrees
* @ param XMax the horizontal center - to - edge angle of the window , in degrees
@ -881,12 +881,12 @@ private:
/**@short Begin fading out the name label attached to TransientObject.
*
* mouseMoveEvent ( ) will call fadeTransientLabel ( ) when TransientObject is not a
* NULL pointer , and the TransientTimer is not already active . These conditions
* are met when the mouse did not move for HOVER_INTERVAL msec ( triggering a
* TransientLabel ) , but the mouse has since been moved , thus ending the Hover event .
* This function merely starts the TransientTimer , whose timeout TQT_SIGNAL is
* connected to the slotTransientTimeout ( ) SLOT , which handles the actual fading
* mouseMoveEvent ( ) will call fadeTransientLabel ( ) when TransientObject is not a
* NULL pointer , and the TransientTimer is not already active . These conditions
* are met when the mouse did not move for HOVER_INTERVAL msec ( triggering a
* TransientLabel ) , but the mouse has since been moved , thus ending the Hover event .
* This function merely starts the TransientTimer , whose timeout TQT_SIGNAL is
* connected to the slotTransientTimeout ( ) SLOT , which handles the actual fading
* of the transient label , and eventually resets TransientObject to NULL .
* @ sa SkyMap : : slotTransientLabel ( ) , SkyMap : : slotTransientTimeout ( )
*/
@ -894,24 +894,24 @@ private:
/**Determine the on-screen position angle of a SkyObject. This is the sum
* of the object ' s sky position angle ( w . r . t . North ) , and the position angle
* of " North " at the position of the object ( w . r . t . the screen Y - axis ) .
* The latter is determined by constructing a test point with the same RA but
* a slightly increased Dec as the object , and calculating the angle w . r . t . the
* Y - axis of the line connecing the object to its test point .
* of " North " at the position of the object ( w . r . t . the screen Y - axis ) .
* The latter is determined by constructing a test point with the same RA but
* a slightly increased Dec as the object , and calculating the angle w . r . t . the
* Y - axis of the line connecing the object to its test point .
*/
double findPA ( SkyObject * o , int x , int y , double scale = 1.0 ) ;
/**@short Sets the shape of the default mouse cursor to a cross.
/**@short Sets the shape of the default mouse cursor to a cross.
*/
void setDefaultMouseCursor ( ) ;
/**@short Sets the shape of the mouse cursor to a magnifying glass.
/**@short Sets the shape of the mouse cursor to a magnifying glass.
*/
void setZoomMouseCursor ( ) ;
/**Check if the current point on screen is a valid point on the sky. This is needed
* to avoid a crash of the program if the user clicks on a point outside the sky ( the
* corners of the sky map at the lowest zoom level are the invalid points ) .
* corners of the sky map at the lowest zoom level are the invalid points ) .
* @ param dx the screen pixel X - coordinate , relative to the screen center
* @ param dy the screen pixel Y - coordinate , relative to the screen center
*/
@ -936,7 +936,7 @@ private:
double guideXRange ;
TQString sURL ;
KStars * ksw ;
KStarsData * data ;
KSPopupMenu * pmenu ;