/***************************************************** ** ** TextHelper --- writeAstronomicalData ** ******************************************************/ int TextHelper::writeAstronomicalData() { wxString pname; int p, ret = 0; Calculator *calculator = CalculatorFactory().getCalculator(); Formatter *f = Formatter::get(); Lang lang; vector<int> obs1 = chartprops->getPlanetList(); vector<int> obs; for ( unsigned int i = 0; i < obs1.size(); i++ ) { if ( obs1[i] < MAX_EPHEM_OBJECTS ) obs.push_back( obs1[i] ); } if ( show_header ) writer->writeHeader1( _( "Astronomical Positions" )); Table table( 4, obs.size() + 1 ); table.setHeader( 0, _( "Planet" )); table.setHeader( 1, _( "Longitude" )); table.setHeader( 2, _( "Latitute" )); table.setHeader( 3, _( "Speed (deg/day)" )); table.col_line[0] = true; table.col_alignment[0] = Align::Right; table.col_alignment[1] = Align::Right; int line = 1; for ( unsigned int i = 0; i < obs.size(); i++ ) { p = obs[i]; if ( horoscope->getTropicalLength( p ) == 0 ) ret++; pname = writer->getObjectName( p, TLARGE); table.setEntry( 0, line, pname ); table.setEntry( 1, line, writer->getPosFormatted( horoscope->getTropicalLength( p ), horoscope->isRetrograde( p ), DEG_PRECISION_MORE )); if ( p != OASCENDANT && p != OMERIDIAN ) { table.setEntry( 2, line, f->getLatitudeFormatted( horoscope->getLatitude( p ), DEG_PRECISION_MORE )); table.setEntry( 3, line, f->getLenFormatted( horoscope->getSpeed( p ), DEG_PRECISION_MORE )); } line++; } writer->writeTable( table ); Table t2( 2, 5 ); t2.setHeader( 0, _( "Name" )); t2.setHeader( 1, _( "Value" )); writer->writeHeader2( _( "Ayanamsa" )); line = 1; for ( int i = 0; i < NB_AYANAMSAS; i++ ) { t2.setEntry( 0, line, lang.getAyanamsaName( i+1 )); t2.setEntry( 1, line, f->getDegreesFormatted( calculator->calcAyanamsa( horoscope->getJD(), i+1 ), DEG_PRECISION_MORE )); line++; } t2.setEntry( 0, 4, _( "Custom" ) ); t2.setEntry( 1, 4, f->getDegreesFormatted( calculator->calcAyanamsa( horoscope->getJD(), 4 ), DEG_PRECISION_MORE )); writer->writeTable( t2 ); return ret; }
/***************************************************** ** ** PrintoutHelper --- writeHouse ** ******************************************************/ void PrintoutHelper::writeHouse( Table *table, const int &row, const int &line, const int& house, const bool &vedic ) { double len; wxString s; Lang lang; Formatter *formatter = Formatter::get(); if ( config->useVedicPlanetNames ) s = lang.getBhavaName( house - 1 ); else s.Printf( wxT( "%02d" ), house ); table->setEntry( row, line, s ); len = h->getHouse( house - 1, vedic ); if ( config->useVedicPositions ) table->setEntry( row + 2, line, writer->getPosFormatted( len, false, DEG_PRECISION_SECOND ), false ); else { table->setEntry( row + 2, line, formatter->getLenFormatted( getRasiLen( len ), DEG_PRECISION_MINUTE )); table->setEntry( row + 3, line, writer->getSignName( getRasi( len )), config->useSignSymbols ); } if ( vedic ) { KpData kp = h->getHouseKPLords( house - 1 ); table->setEntry( row + 5, line, writer->getObjectName( kp.lord, TSHORT, true ), config->usePlanetSymbols ); table->setEntry( row + 6, line, writer->getObjectName( kp.sublord, TSHORT, true ), config->usePlanetSymbols ); table->setEntry( row + 7, line, writer->getObjectName( kp.subsublord, TSHORT, true ), config->usePlanetSymbols ); } }
/***************************************************** ** ** PrintoutHelper --- writeWesternAspectarium ** ******************************************************/ void PrintoutHelper::writeWesternAspectarium( ChartProperties *props, const int &type ) { Formatter *formatter = Formatter::get(); wxString s; AspectExpert expert( h ); list<AspectEvent> al = expert.update( h, props ); int numrows = (int)al.size() / 3; if ( al.size() % 3 ) numrows++; Table table( 12, numrows + 1 ); table.show_grid = false; table.setHeader( 0, _( "Aspect" ), false, 2 ); table.setHeader( 3, _( "Orbis" ) ); table.col_line[2] = true; table.col_line[3] = true; table.setHeader( 4, _( "Aspect" ), false, 2 ); table.setHeader( 7, _( "Orbis" ) ); table.col_line[6] = true; table.col_line[7] = true; table.setHeader( 8, _( "Aspect" ), false, 2 ); table.setHeader( 11, _( "Orbis" ) ); table.col_line[10] = true; int col = 0; int row = 0; for ( list<AspectEvent>::iterator iter = al.begin(); iter != al.end(); iter++ ) { table.setEntry( 4 * col, row + 1, writer->getObjectName( (*iter).planet1, TMEDIUM ), config->usePlanetSymbols ); s = AspectExpert::getAspectSymbol( (*iter).aspectType ); if ( s.IsEmpty()) { s = AspectExpert::getAspectShortDescription( (*iter).aspectType ); table.setEntry( 4 * col + 1, row + 1, s, false ); } else { table.setEntry( 4 * col + 1, row + 1, s, true ); } table.setEntry( 4 * col + 2, row + 1, writer->getObjectName( (*iter).planet2, TMEDIUM ), config->usePlanetSymbols ); table.setEntry( 4 * col + 3, row + 1, formatter->getLenFormatted( (*iter).orbis, DEG_PRECISION_MINUTE ), false ); row++; if ( row >= numrows ) { col++; row = 0; } } writer->writeTable( table, true ); }
/***************************************************** ** ** GenericTableWriter --- write45DegreeLongitude ** ******************************************************/ void GenericTableWriter::write45DegreeLongitude( const uint &colid, const TcColumnSet &set ) { assert( table->getNbCols() >= colid + 1 ); assert( table->getNbRows() > obs.size()); Formatter *formatter = Formatter::get(); table->setHeader( colid, _( "45 Degree" )); for ( uint p = 0; p < obs.size(); p++ ) { table->setEntry( colid, p + 1, formatter->getLenFormatted( a_red( getObjectPosition( obs[p], set ).longitude, 45.0 ))); if ( IS_EPHEM_OBJECT( obs[p] ) && h->getTropicalLongitude( obs[p] ) == 0 ) table->errorcount++; } }
/***************************************************** ** ** PrintoutHelper --- writePlanetaryObject ** ******************************************************/ void PrintoutHelper::writePlanetaryObject( Table *table, const int& row, const int &line, const int& i, const bool& withHouse, const bool &vedic, const bool cutname ) { wxString s; Formatter *formatter = Formatter::get(); ObjectPosition pos = h->getObjectPosition( i, vedic ); table->setEntry( row, line, writer->getObjectName( i, TMEDIUM, true ), config->usePlanetSymbols ); if ( pos.retro ) table->setEntry( row + 1, line, ( config->usePlanetSymbols ? wxT( "_" ) : wxT( "R" )), config->usePlanetSymbols ); if ( config->useVedicPositions ) table->setEntry( row + 2, line, writer->getPosFormatted( pos.length, pos.retro, DEG_PRECISION_SECOND ), false ); else { table->setEntry( row + 2, line, formatter->getLenFormatted( getRasiLen( pos.length )), false ); table->setEntry( row + 3, line, writer->getSignName( getRasi( pos.length ), cutname ? TSHORT : TMEDIUM ), config->useSignSymbols ); } if ( withHouse ) { s.Printf( wxT( "%02d" ), h->getHousePos( i, vedic ) + 1 ); table->setEntry( row + 4, line, s ); } }