[Kstars-devel] KDE/kdeedu/kstars/kstars/skycomponents
Akarsh Simha
akarshsimha at gmail.com
Wed Oct 8 15:35:43 CEST 2008
SVN commit 869202 by asimha:
Reverting my earlier commit (Revision 869148). What seemed to work
does not actually work. This is probably because the StarBlock might
get re-used by the LRU Cache while drawing and the star gets
overwritten.
CCMAIL: kstars-devel at kde.org
M +0 -37 deepstarcomponent.cpp
M +0 -2 deepstarcomponent.h
M +7 -7 starcomponent.cpp
--- trunk/KDE/kdeedu/kstars/kstars/skycomponents/deepstarcomponent.cpp #869201:869202
@@ -409,43 +409,6 @@
return m_CatalogNumber.value( HDnum, NULL ); // TODO: Maybe, make this more general.
}
-SkyObject *DeepStarComponent::findByData( starData &stardata ) {
- Trixel trixel;
- StarObject m_starObject;
-
- m_starObject.init( &stardata );
- // Which trixel is this star in?
- trixel = m_skyMesh->indexStar( &m_starObject );
- // Fill the required trixel
- m_starBlockList.at( trixel )->fillToMag( m_starObject.mag() );
- for( int i = 0; i < m_starBlockList.at( trixel )->getBlockCount(); ++i ) {
- StarBlock *block = m_starBlockList.at( trixel )->block( i );
- for( int j = 0; j < block->getStarCount(); ++j ) {
- // int match = 0;
- StarObject *star = block->star( j );
- if( !star )
- continue;
- if( star->getHDIndex() == m_starObject.getHDIndex() && star->getHDIndex() != 0 ) {
- // 100% match
- return star;
- }
- /*
- // Unused code
- if( star->mag() == m_starObject.mag() )
- ++match;
- if( abs( star->ra()->Degrees() - m_starObject.ra()->Degrees() ) < 0.05 )
- ++match;
- if( abs( star->dec()->Degrees() - m_starObject.dec()->Degrees() ) < 0.05 )
- ++match;
-
- */
- }
- }
- return NULL;
-}
-
-
-
// This uses the main star index for looking up nearby stars but then
// filters out objects with the generic name "star". We could easily
// build an index for just the named stars which would make this go
--- trunk/KDE/kdeedu/kstars/kstars/skycomponents/deepstarcomponent.h #869201:869202
@@ -97,8 +97,6 @@
SkyObject* findByHDIndex( int HDnum );
- SkyObject* findByData( starData &stardata );
-
SkyObject* objectNearest(SkyPoint *p, double &maxrad );
inline bool fileOpen() { return fileOpened; }
--- trunk/KDE/kdeedu/kstars/kstars/skycomponents/starcomponent.cpp #869201:869202
@@ -539,23 +539,23 @@
FILE *hdidxFile = hdidxReader.openFile( "Henry-Draper.idx" );
if( !hdidxFile )
return 0;
+ FILE *dataFile;
KDE_fseek( hdidxFile, (HDnum - 1) * 4, SEEK_SET );
fread( &offset, 4, 1, hdidxFile );
- hdidxReader.closeFile();
-
if( offset <= 0 )
return 0;
-
// TODO: Implement byteswapping
- FILE *dataFile;
dataFile = m_DeepStarComponents.at( 1 )->getStarReader()->getFileHandle();
-
KDE_fseek( dataFile, offset, SEEK_SET );
fread( &stardata, sizeof( starData ), 1, dataFile );
// TODO: Implement byteswapping
// byteSwap( &stardata );
-
- return m_DeepStarComponents.at( 1 )->findByData( stardata );
+ m_starObject.init( &stardata );
+ m_starObject.EquatorialToHorizontal( data()->lst(), data()->geo()->lat() );
+ m_starObject.JITupdate( data() );
+ hdidxReader.closeFile();
+ // TODO: Lots of trouble since we are returning a copy. Can we fix that?
+ return &m_starObject;
}
return 0;
More information about the Kstars-devel
mailing list