[prev in list] [next in list] [prev in thread] [next in thread]
List: kstars-devel
Subject: [Kstars-devel] KDE/kdeedu/kstars/kstars/skycomponents
From: Akarsh Simha <akarshsimha () gmail ! com>
Date: 2008-10-08 14:17:02
Message-ID: 1223475422.880110.32696.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 869221 by asimha:
+ Introducing a StarObject pointer called focusStar in StarComponent
that always gets drawn if it is on the screen.
+ Whenever a search by HD number is made, the resulting "copy"
StarObject is put into the draw loop by making focusStar point to
it. Although this method is ugly, it works and the requested star
doesn't drift away.
CCMAIL: kstars-devel@kde.org
M +27 -2 starcomponent.cpp
M +1 -0 starcomponent.h
--- trunk/KDE/kdeedu/kstars/kstars/skycomponents/starcomponent.cpp #869220:869221
@@ -42,7 +42,8 @@
#include <kde_file.h>
StarComponent::StarComponent(SkyComponent *parent )
- : ListComponent(parent), m_reindexNum(J2000), m_FaintMagnitude(-5.0), starsLoaded(false)
+ : ListComponent(parent), m_reindexNum(J2000), m_FaintMagnitude(-5.0),
+ starsLoaded(false), focusStar(NULL)
{
m_skyMesh = SkyMesh::Instance();
m_StarBlockFactory = StarBlockFactory::Instance();
@@ -336,6 +337,29 @@
// t_drawNamed += t.restart();
}
+ // Draw focusStar if not null
+ if( focusStar ) {
+ if ( focusStar->updateID != updateID )
+ focusStar->JITupdate( data );
+
+ float mag = focusStar->mag();
+
+ if ( map->checkVisibility( focusStar ) ) {
+ QPointF o = map->toScreen( focusStar );
+
+ if ( map->onScreen( o ) ) {
+
+ float size = ( sizeFactor*( sizeMagLim - mag ) / sizeMagLim ) + 1.;
+ if ( size <= 1.0 ) size = 1.0;
+ if( size > maxSize ) size = maxSize;
+
+ focusStar->draw( psky, o.x(), o.y(), size, (starColorMode()==0),
+ starColorIntensity(), true );
+ visibleStarCount++;
+ }
+ }
+ }
+
// Now draw each of our DeepStarComponents
for( int i =0; i < m_DeepStarComponents.size(); ++i ) {
m_DeepStarComponents.at( i )->draw( psky );
@@ -553,9 +577,10 @@
m_starObject.init( &stardata );
m_starObject.EquatorialToHorizontal( data()->lst(), data()->geo()->lat() );
m_starObject.JITupdate( data() );
+ focusStar = &m_starObject;
hdidxReader.closeFile();
// TODO: Lots of trouble since we are returning a copy. Can we fix that?
- return &m_starObject;
+ return focusStar;
}
return 0;
--- trunk/KDE/kdeedu/kstars/kstars/skycomponents/starcomponent.h #869220:869221
@@ -161,6 +161,7 @@
quint16 MSpT; // Maximum number of stars in any given trixel
StarObject m_starObject;
+ StarObject *focusStar; // This object is always drawn
KStarsSplash* m_reloadSplash;
KStarsSplash* m_reindexSplash;
_______________________________________________
Kstars-devel mailing list
Kstars-devel@kde.org
https://mail.kde.org/mailman/listinfo/kstars-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic