ArchaeoLines.hpp   ArchaeoLines.hpp 
skipping to change at line 59 skipping to change at line 59
-# Declination of the Zenith passage -# Declination of the Zenith passage
-# Declination of the Nadir passage -# Declination of the Nadir passage
-# Declination of the currently selected object -# Declination of the currently selected object
-# Current declination of the sun -# Current declination of the sun
-# Current declination of the moon -# Current declination of the moon
-# Current declination of a naked-eye planet -# Current declination of a naked-eye planet
Some religions, most notably Islam, adhere to a practice of observing a pra yer direction towards a particular location. Some religions, most notably Islam, adhere to a practice of observing a pra yer direction towards a particular location.
Azimuth lines (vertical semicircles from zenith to nadir) for two locations can be shown. Default locations are Mecca (Kaaba) and Jerusalem. Azimuth lines (vertical semicircles from zenith to nadir) for two locations can be shown. Default locations are Mecca (Kaaba) and Jerusalem.
The directions are computed based on spherical trigonometry on a spherical Earth. The directions are computed based on spherical trigonometry on a spherical Earth.
In addition, up to 2 custom azimuth lines can be drawn, also with a customi zed label. In addition, up to 2 custom azimuth lines, and up to 2 custom declination l ines can be drawn, also with customized labels.
The lunar lines include horizon parallax effects. There are two lines each The lunar lines include horizon parallax effects. There are two lines each
drawn, for maximum and minimum distance of the moon. Note that declination drawn, for maximum and minimum distance of the moon. Note that declination
of the moon at the major standstill can exceed the indicated limits if it of the moon at the major standstill can exceed the indicated limits if it
is high in the sky due to parallax effects. is high in the sky due to parallax effects.
It may be very instructive to let the time run quite fast and observe the It may be very instructive to let the time run quite fast and observe the
line of "current moon" swinging between its north and south limits each mon th. line of "current moon" swinging between its north and south limits each mon th.
These limits grow and shrink between the Major and Minor Standstills. These limits grow and shrink between the Major and Minor Standstills.
skipping to change at line 107 skipping to change at line 107
Equinox, Equinox,
Solstices, Solstices,
Crossquarters, Crossquarters,
MajorStandstill, MajorStandstill,
MinorStandstill, MinorStandstill,
ZenithPassage, ZenithPassage,
NadirPassage, NadirPassage,
SelectedObject, SelectedObject,
CurrentSun, CurrentSun,
CurrentMoon, CurrentMoon,
GeographicLocation1, CustomDeclination1,
CustomDeclination2,
GeographicLocation1, // The following types are in altaz fra
me!
GeographicLocation2, GeographicLocation2,
CustomAzimuth1, CustomAzimuth1,
CustomAzimuth2 CustomAzimuth2
}; };
ArchaeoLine(ArchaeoLine::Line lineType, double definingAngle); ArchaeoLine(ArchaeoLine::Line lineType, double definingAngle);
virtual ~ArchaeoLine(){} virtual ~ArchaeoLine(){}
void draw(StelCore* core, float intensity=1.0f) const; void draw(StelCore* core, float intensity=1.0f) const;
const Vec3f& getColor() const {return color;} const Vec3f& getColor() const {return color;}
bool isDisplayed(void) const {return fader;} bool isDisplayed(void) const {return fader;}
skipping to change at line 258 skipping to change at line 260
) )
// Note: following 2 are only "forwarding properties", no proper var iables! // Note: following 2 are only "forwarding properties", no proper var iables!
Q_PROPERTY(double customAzimuth1 Q_PROPERTY(double customAzimuth1
READ getCustomAzimuth1 READ getCustomAzimuth1
WRITE setCustomAzimuth1 WRITE setCustomAzimuth1
NOTIFY customAzimuth1Changed) NOTIFY customAzimuth1Changed)
Q_PROPERTY(double customAzimuth2 Q_PROPERTY(double customAzimuth2
READ getCustomAzimuth2 READ getCustomAzimuth2
WRITE setCustomAzimuth2 WRITE setCustomAzimuth2
NOTIFY customAzimuth2Changed) NOTIFY customAzimuth2Changed)
// TODO: Maybe add properties for geo locations and custom azimuths: Q_PROPERTY(bool flagShowCustomDeclination1
labels. READ isCustomDeclination1Displayed
WRITE showCustomDeclination1
NOTIFY showCustomDeclination1Changed
)
Q_PROPERTY(bool flagShowCustomDeclination2
READ isCustomDeclination2Displayed
WRITE showCustomDeclination2
NOTIFY showCustomDeclination2Changed
)
// Note: following 2 are only "forwarding properties", no proper var
iables!
Q_PROPERTY(double customDeclination1
READ getCustomDeclination1
WRITE setCustomDeclination1
NOTIFY customDeclination1Changed)
Q_PROPERTY(double customDeclination2
READ getCustomDeclination2
WRITE setCustomDeclination2
NOTIFY customDeclination2Changed)
// TODO: Maybe add properties for geo locations and custom azimuths/
declinations: labels.
public: public:
ArchaeoLines(); ArchaeoLines();
virtual ~ArchaeoLines(); virtual ~ArchaeoLines();
//////////////////////////////////////////////////////////////////// /////// //////////////////////////////////////////////////////////////////// ///////
// Methods defined in the StelModule class // Methods defined in the StelModule class
virtual void init(); virtual void init();
virtual void update(double deltaTime); virtual void update(double deltaTime);
virtual void draw(StelCore* core); virtual void draw(StelCore* core);
skipping to change at line 309 skipping to change at line 331
void showCurrentSunChanged(bool on); void showCurrentSunChanged(bool on);
void showCurrentMoonChanged(bool on); void showCurrentMoonChanged(bool on);
void showGeographicLocation1Changed(bool on); void showGeographicLocation1Changed(bool on);
void showGeographicLocation2Changed(bool on); void showGeographicLocation2Changed(bool on);
void geographicLocation1Changed(); void geographicLocation1Changed();
void geographicLocation2Changed(); void geographicLocation2Changed();
void showCustomAzimuth1Changed(bool on); void showCustomAzimuth1Changed(bool on);
void showCustomAzimuth2Changed(bool on); void showCustomAzimuth2Changed(bool on);
void customAzimuth1Changed(double az); void customAzimuth1Changed(double az);
void customAzimuth2Changed(double az); void customAzimuth2Changed(double az);
void showCustomDeclination1Changed(bool on);
void showCustomDeclination2Changed(bool on);
void customDeclination1Changed(double dec);
void customDeclination2Changed(double dec);
void currentPlanetChanged(ArchaeoLine::Line l); // meaningful only C urrentPlanetNone...CurrentPlanetSaturn. void currentPlanetChanged(ArchaeoLine::Line l); // meaningful only C urrentPlanetNone...CurrentPlanetSaturn.
public slots: public slots:
void enableArchaeoLines(bool b); void enableArchaeoLines(bool b);
//void useDmsFormat(bool b); //void useDmsFormat(bool b);
bool isEnabled() const {return flagShowArchaeoLines;} bool isEnabled() const {return flagShowArchaeoLines;}
bool isEquinoxDisplayed() const {return flagShowEquinox;} bool isEquinoxDisplayed() const {return flagShowEquinox;}
bool isSolsticesDisplayed() const {return flagShowSolstices;} bool isSolsticesDisplayed() const {return flagShowSolstices;}
bool isCrossquartersDisplayed() const {return flagShowCrossquarters; } bool isCrossquartersDisplayed() const {return flagShowCrossquarters; }
skipping to change at line 331 skipping to change at line 357
bool isZenithPassageDisplayed() const {return flagShowZenithPassage; } bool isZenithPassageDisplayed() const {return flagShowZenithPassage; }
bool isNadirPassageDisplayed() const {return flagShowNadirPassage;} bool isNadirPassageDisplayed() const {return flagShowNadirPassage;}
bool isSelectedObjectDisplayed() const {return flagShowSelectedObjec t;} bool isSelectedObjectDisplayed() const {return flagShowSelectedObjec t;}
bool isCurrentSunDisplayed() const {return flagShowCurrentSun;} bool isCurrentSunDisplayed() const {return flagShowCurrentSun;}
bool isCurrentMoonDisplayed() const {return flagShowCurrentMoon;} bool isCurrentMoonDisplayed() const {return flagShowCurrentMoon;}
ArchaeoLine::Line whichCurrentPlanetDisplayed() const {return enumSh owCurrentPlanet;} ArchaeoLine::Line whichCurrentPlanetDisplayed() const {return enumSh owCurrentPlanet;}
bool isGeographicLocation1Displayed() const {return flagShowGeograph icLocation1;} bool isGeographicLocation1Displayed() const {return flagShowGeograph icLocation1;}
bool isGeographicLocation2Displayed() const {return flagShowGeograph icLocation2;} bool isGeographicLocation2Displayed() const {return flagShowGeograph icLocation2;}
bool isCustomAzimuth1Displayed() const {return flagShowCustomAzimuth 1;} bool isCustomAzimuth1Displayed() const {return flagShowCustomAzimuth 1;}
bool isCustomAzimuth2Displayed() const {return flagShowCustomAzimuth 2;} bool isCustomAzimuth2Displayed() const {return flagShowCustomAzimuth 2;}
bool isCustomDeclination1Displayed() const {return flagShowCustomDec
lination1;}
bool isCustomDeclination2Displayed() const {return flagShowCustomDec
lination2;}
void showEquinox(bool b); void showEquinox(bool b);
void showSolstices(bool b); void showSolstices(bool b);
void showCrossquarters(bool b); void showCrossquarters(bool b);
void showMajorStandstills(bool b); void showMajorStandstills(bool b);
void showMinorStandstills(bool b); void showMinorStandstills(bool b);
void showZenithPassage(bool b); void showZenithPassage(bool b);
void showNadirPassage(bool b); void showNadirPassage(bool b);
void showSelectedObject(bool b); void showSelectedObject(bool b);
void showCurrentSun(bool b); void showCurrentSun(bool b);
skipping to change at line 364 skipping to change at line 392
double getGeographicLocation2Longitude() const {return geographicLoc ation2Longitude; } double getGeographicLocation2Longitude() const {return geographicLoc ation2Longitude; }
double getGeographicLocation2Latitude() const {return geographicLoc ation2Latitude; } double getGeographicLocation2Latitude() const {return geographicLoc ation2Latitude; }
void showCustomAzimuth1(bool b); void showCustomAzimuth1(bool b);
void showCustomAzimuth2(bool b); void showCustomAzimuth2(bool b);
void setCustomAzimuth1(double az); void setCustomAzimuth1(double az);
double getCustomAzimuth1() const { return customAzimuth1Line->getDef iningAngle(); } double getCustomAzimuth1() const { return customAzimuth1Line->getDef iningAngle(); }
void setCustomAzimuth2(double az); void setCustomAzimuth2(double az);
double getCustomAzimuth2() const { return customAzimuth2Line->getDef iningAngle(); } double getCustomAzimuth2() const { return customAzimuth2Line->getDef iningAngle(); }
void setCustomAzimuth1Label(QString label); void setCustomAzimuth1Label(QString label);
void setCustomAzimuth2Label(QString label); void setCustomAzimuth2Label(QString label);
void showCustomDeclination1(bool b);
void showCustomDeclination2(bool b);
void setCustomDeclination1(double dec);
double getCustomDeclination1() const { return customDeclination1Line
->getDefiningAngle(); }
void setCustomDeclination2(double dec);
double getCustomDeclination2() const { return customDeclination2Line
->getDefiningAngle(); }
void setCustomDeclination1Label(QString label);
void setCustomDeclination2Label(QString label);
// called by the dialog GUI, converts GUI's QColor (0..255) to Stell arium's Vec3f float color. // called by the dialog GUI, converts GUI's QColor (0..255) to Stell arium's Vec3f float color.
void setLineColor(ArchaeoLine::Line whichLine, QColor color); void setLineColor(ArchaeoLine::Line whichLine, QColor color);
// called by the dialog UI, converts Stellarium's Vec3f float color to QColor (0..255). // called by the dialog UI, converts Stellarium's Vec3f float color to QColor (0..255).
QColor getLineColor(ArchaeoLine::Line whichLine); QColor getLineColor(ArchaeoLine::Line whichLine);
//! query a line for its current defining angle. Returns declination or azimuth, respectively. //! query a line for its current defining angle. Returns declination or azimuth, respectively.
double getLineAngle(ArchaeoLine::Line whichLine); double getLineAngle(ArchaeoLine::Line whichLine);
QString getLineLabel(ArchaeoLine::Line whichLine); QString getLineLabel(ArchaeoLine::Line whichLine);
private slots: private slots:
skipping to change at line 401 skipping to change at line 437
Vec3f zenithPassageColor; Vec3f zenithPassageColor;
Vec3f nadirPassageColor; Vec3f nadirPassageColor;
Vec3f selectedObjectColor; Vec3f selectedObjectColor;
Vec3f currentSunColor; Vec3f currentSunColor;
Vec3f currentMoonColor; Vec3f currentMoonColor;
Vec3f currentPlanetColor; Vec3f currentPlanetColor;
Vec3f geographicLocation1Color; Vec3f geographicLocation1Color;
Vec3f geographicLocation2Color; Vec3f geographicLocation2Color;
Vec3f customAzimuth1Color; Vec3f customAzimuth1Color;
Vec3f customAzimuth2Color; Vec3f customAzimuth2Color;
Vec3f customDeclination1Color;
Vec3f customDeclination2Color;
bool flagShowEquinox; bool flagShowEquinox;
bool flagShowSolstices; bool flagShowSolstices;
bool flagShowCrossquarters; bool flagShowCrossquarters;
bool flagShowMajorStandstills; bool flagShowMajorStandstills;
bool flagShowMinorStandstills; bool flagShowMinorStandstills;
bool flagShowZenithPassage; bool flagShowZenithPassage;
bool flagShowNadirPassage; bool flagShowNadirPassage;
bool flagShowSelectedObject; bool flagShowSelectedObject;
bool flagShowCurrentSun; bool flagShowCurrentSun;
bool flagShowCurrentMoon; bool flagShowCurrentMoon;
ArchaeoLine::Line enumShowCurrentPlanet; ArchaeoLine::Line enumShowCurrentPlanet;
bool flagShowGeographicLocation1; bool flagShowGeographicLocation1;
double geographicLocation1Longitude; double geographicLocation1Longitude;
double geographicLocation1Latitude; double geographicLocation1Latitude;
bool flagShowGeographicLocation2; bool flagShowGeographicLocation2;
double geographicLocation2Longitude; double geographicLocation2Longitude;
double geographicLocation2Latitude; double geographicLocation2Latitude;
bool flagShowCustomAzimuth1; bool flagShowCustomAzimuth1;
bool flagShowCustomAzimuth2; bool flagShowCustomAzimuth2;
bool flagShowCustomDeclination1;
bool flagShowCustomDeclination2;
double lastJDE; // cache last-time-computed to every 10 days or so? double lastJDE; // cache last-time-computed to every 10 days or so?
ArchaeoLine * equinoxLine; ArchaeoLine * equinoxLine;
ArchaeoLine * northernSolsticeLine; ArchaeoLine * northernSolsticeLine;
ArchaeoLine * southernSolsticeLine; ArchaeoLine * southernSolsticeLine;
ArchaeoLine * northernCrossquarterLine; ArchaeoLine * northernCrossquarterLine;
ArchaeoLine * southernCrossquarterLine; ArchaeoLine * southernCrossquarterLine;
ArchaeoLine * northernMajorStandstillLine0; ArchaeoLine * northernMajorStandstillLine0;
ArchaeoLine * northernMajorStandstillLine1; ArchaeoLine * northernMajorStandstillLine1;
ArchaeoLine * northernMinorStandstillLine2; ArchaeoLine * northernMinorStandstillLine2;
skipping to change at line 446 skipping to change at line 486
ArchaeoLine * zenithPassageLine; ArchaeoLine * zenithPassageLine;
ArchaeoLine * nadirPassageLine; ArchaeoLine * nadirPassageLine;
ArchaeoLine * selectedObjectLine; ArchaeoLine * selectedObjectLine;
ArchaeoLine * currentSunLine; ArchaeoLine * currentSunLine;
ArchaeoLine * currentMoonLine; ArchaeoLine * currentMoonLine;
ArchaeoLine * currentPlanetLine; ArchaeoLine * currentPlanetLine;
ArchaeoLine * geographicLocation1Line; ArchaeoLine * geographicLocation1Line;
ArchaeoLine * geographicLocation2Line; ArchaeoLine * geographicLocation2Line;
ArchaeoLine * customAzimuth1Line; ArchaeoLine * customAzimuth1Line;
ArchaeoLine * customAzimuth2Line; ArchaeoLine * customAzimuth2Line;
ArchaeoLine * customDeclination1Line;
ArchaeoLine * customDeclination2Line;
StelButton* toolbarButton; StelButton* toolbarButton;
QSettings* conf; QSettings* conf;
// GUI // GUI
ArchaeoLinesDialog* configDialog; ArchaeoLinesDialog* configDialog;
StelCore* core; // used quite often, better keep a reference... StelCore* core; // used quite often, better keep a reference...
StelObjectMgr* objMgr; StelObjectMgr* objMgr;
}; };
 End of changes. 9 change blocks. 
4 lines changed or deleted 52 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/