[Python-ogre-commit] SF.net SVN: python-ogre: [593] trunk/python-ogre
Brought to you by:
andy_miller,
roman_yakovenko
From: <and...@us...> - 2008-06-12 13:21:28
|
Revision: 593 http://python-ogre.svn.sourceforge.net/python-ogre/?rev=593&view=rev Author: andy_miller Date: 2008-06-12 06:21:31 -0700 (Thu, 12 Jun 2008) Log Message: ----------- Updates to Ogre 1.7 (SVN) support Updates for Caelum and Quickgui etc Modified Paths: -------------- trunk/python-ogre/ThirdParty/ogreal/OgreALListener.h trunk/python-ogre/ThirdParty/ogreal/OgreALPrereqs.h trunk/python-ogre/ThirdParty/ogreal/OgreALSound.h trunk/python-ogre/code_generators/caelum/generate_code.py trunk/python-ogre/code_generators/common_utils/var_checker.py trunk/python-ogre/code_generators/ogre/generate_code.py trunk/python-ogre/code_generators/ogre/python_ogre_aliases.h trunk/python-ogre/code_generators/ogre/python_ogre_masterlist.h trunk/python-ogre/environment.py trunk/python-ogre/setup.py Added Paths: ----------- trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp trunk/python-ogre/ThirdParty/caelum/Astronomy.h trunk/python-ogre/ThirdParty/caelum/Caelum.h trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h trunk/python-ogre/ThirdParty/caelum/CaelumPrecompiled.cpp trunk/python-ogre/ThirdParty/caelum/CaelumPrecompiled.h trunk/python-ogre/ThirdParty/caelum/CaelumPrerequisites.h trunk/python-ogre/ThirdParty/caelum/CaelumSystem.cpp trunk/python-ogre/ThirdParty/caelum/CaelumSystem.h trunk/python-ogre/ThirdParty/caelum/CameraBoundElement.cpp trunk/python-ogre/ThirdParty/caelum/CameraBoundElement.h trunk/python-ogre/ThirdParty/caelum/GeometryFactory.cpp trunk/python-ogre/ThirdParty/caelum/GeometryFactory.h trunk/python-ogre/ThirdParty/caelum/GroundFog.cpp trunk/python-ogre/ThirdParty/caelum/GroundFog.h trunk/python-ogre/ThirdParty/caelum/ImageHelper.cpp trunk/python-ogre/ThirdParty/caelum/ImageHelper.h trunk/python-ogre/ThirdParty/caelum/LayeredClouds.cpp trunk/python-ogre/ThirdParty/caelum/LayeredClouds.h trunk/python-ogre/ThirdParty/caelum/Moon.cpp trunk/python-ogre/ThirdParty/caelum/Moon.h trunk/python-ogre/ThirdParty/caelum/SkyColourModel.cpp trunk/python-ogre/ThirdParty/caelum/SkyColourModel.h trunk/python-ogre/ThirdParty/caelum/SkyDome.cpp trunk/python-ogre/ThirdParty/caelum/SkyDome.h trunk/python-ogre/ThirdParty/caelum/SkyLight.cpp trunk/python-ogre/ThirdParty/caelum/SkyLight.h trunk/python-ogre/ThirdParty/caelum/SolarSystemModel.cpp trunk/python-ogre/ThirdParty/caelum/SolarSystemModel.h trunk/python-ogre/ThirdParty/caelum/Starfield.cpp trunk/python-ogre/ThirdParty/caelum/Starfield.h trunk/python-ogre/ThirdParty/caelum/Sun.cpp trunk/python-ogre/ThirdParty/caelum/Sun.h trunk/python-ogre/ThirdParty/caelum/UniversalClock.cpp trunk/python-ogre/ThirdParty/caelum/UniversalClock.h trunk/python-ogre/ThirdParty/quickgui/QuickGUI.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIBorder.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIBorder.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUICheckBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUICheckBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIComboBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIComboBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIConfigScriptParser.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIConfigScriptParser.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIConsole.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIConsole.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIEffect.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIEffect.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIEventArgs.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclarations.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalScrollBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalScrollBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalTrackBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalTrackBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIImage.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIImage.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIKeyCode.h trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUILabelArea.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUILabelArea.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIList.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIList.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIManager.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIManager.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMemberFunctionPointer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseButtonID.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseCursor.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseCursor.h trunk/python-ogre/ThirdParty/quickgui/QuickGUINStateButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUINStateButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPanel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPanel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPoint.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPoint.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPrecompiledHeaders.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPrecompiledHeaders.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuad.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuad.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuadContainer.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuadContainer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButtonGroup.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButtonGroup.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRect.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRect.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRoot.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRoot.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIScrollPane.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIScrollPane.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISheet.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISheet.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISize.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISize.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSet.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSet.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSetManager.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSetManager.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextHelper.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextHelper.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITree.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITree.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITypedef.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVector4.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVector4.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertex.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertexBuffer.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertexBuffer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalScrollBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalScrollBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalTrackBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalTrackBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIWidget.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIWidget.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.h trunk/python-ogre/boost/libs/python/build/Jamfile.v2.old Removed Paths: ------------- trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp trunk/python-ogre/ThirdParty/caelum/Astronomy.h trunk/python-ogre/ThirdParty/caelum/Caelum.h trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h trunk/python-ogre/ThirdParty/caelum/CaelumListener.h trunk/python-ogre/ThirdParty/caelum/CaelumPrecompiled.cpp trunk/python-ogre/ThirdParty/caelum/CaelumPrecompiled.h trunk/python-ogre/ThirdParty/caelum/CaelumPrerequisites.h trunk/python-ogre/ThirdParty/caelum/CaelumSystem.cpp trunk/python-ogre/ThirdParty/caelum/CaelumSystem.h trunk/python-ogre/ThirdParty/caelum/CameraBoundElement.cpp trunk/python-ogre/ThirdParty/caelum/CameraBoundElement.h trunk/python-ogre/ThirdParty/caelum/GeometryFactory.cpp trunk/python-ogre/ThirdParty/caelum/GeometryFactory.h trunk/python-ogre/ThirdParty/caelum/GroundFog.cpp trunk/python-ogre/ThirdParty/caelum/GroundFog.h trunk/python-ogre/ThirdParty/caelum/ImageHelper.cpp trunk/python-ogre/ThirdParty/caelum/ImageHelper.h trunk/python-ogre/ThirdParty/caelum/LayeredClouds.cpp trunk/python-ogre/ThirdParty/caelum/LayeredClouds.h trunk/python-ogre/ThirdParty/caelum/SkyColourModel.cpp trunk/python-ogre/ThirdParty/caelum/SkyColourModel.h trunk/python-ogre/ThirdParty/caelum/SkyDome.cpp trunk/python-ogre/ThirdParty/caelum/SkyDome.h trunk/python-ogre/ThirdParty/caelum/SolarSystemModel.cpp trunk/python-ogre/ThirdParty/caelum/SolarSystemModel.h trunk/python-ogre/ThirdParty/caelum/Starfield.cpp trunk/python-ogre/ThirdParty/caelum/Starfield.h trunk/python-ogre/ThirdParty/caelum/Sun.cpp trunk/python-ogre/ThirdParty/caelum/Sun.h trunk/python-ogre/ThirdParty/caelum/UniversalClock.cpp trunk/python-ogre/ThirdParty/caelum/UniversalClock.h trunk/python-ogre/ThirdParty/quickgui/QuickGUI.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIBorder.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIBorder.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUICheckBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUICheckBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIComboBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIComboBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIConfigScriptParser.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIConfigScriptParser.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIConsole.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIConsole.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIEffect.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIEffect.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIEventArgs.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIExportDLL.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIForwardDeclarations.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalScrollBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalScrollBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalTrackBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIHorizontalTrackBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIImage.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIImage.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIKeyCode.h trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUILabel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUILabelArea.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUILabelArea.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIList.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIList.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIManager.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIManager.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMemberFunctionPointer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIMenuLabel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseButtonID.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseCursor.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIMouseCursor.h trunk/python-ogre/ThirdParty/quickgui/QuickGUINStateButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUINStateButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPanel.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPanel.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPoint.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPoint.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIPrecompiledHeaders.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIPrecompiledHeaders.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIProgressBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuad.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuad.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuadContainer.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIQuadContainer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButton.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButton.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButtonGroup.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRadioButtonGroup.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRect.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRect.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIRoot.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIRoot.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIScrollPane.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIScrollPane.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISheet.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISheet.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISize.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISize.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSet.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSet.h trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSetManager.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUISkinSetManager.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIText.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextArea.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextBox.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITextHelper.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITextHelper.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITitleBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITree.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUITree.h trunk/python-ogre/ThirdParty/quickgui/QuickGUITypedef.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVector4.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVector4.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertex.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertexBuffer.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVertexBuffer.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalScrollBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalScrollBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalTrackBar.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIVerticalTrackBar.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIWidget.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIWidget.h trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.cpp trunk/python-ogre/ThirdParty/quickgui/QuickGUIWindow.h trunk/python-ogre/boost/libs/python/build/Jamfile.v2 Deleted: trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp 2008-05-23 01:30:05 UTC (rev 592) +++ trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp 2008-06-12 13:21:31 UTC (rev 593) @@ -1,240 +0,0 @@ -/* -This file is part of Caelum. -See http://www.ogre3d.org/wiki/index.php/Caelum - -Copyright (c) 2008 Caelum team. See Contributors.txt for details. - -Caelum is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published -by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Caelum is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with Caelum. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "CaelumPrecompiled.h" -#include "Astronomy.h" - -using Ogre::Degree; -using Ogre::Radian; -using Ogre::Math; - -namespace caelum -{ - const Ogre::Degree Astronomy::normalizeAngle (Ogre::Degree value) - { - value = fmod (value.valueDegrees (), 360); - if (value < Degree (0)) { - value += Degree (360); - } - return value; - } - - void Astronomy::convertRectangularToSpherical ( - LongReal x, LongReal y, LongReal z, - Degree &rasc, Degree &decl, LongReal &dist) - { - dist = Math::Sqrt (x * x + y * y + z * z); - rasc = Math::ATan2 (y, x); - decl = Math::ATan2 (z, Math::Sqrt (x * x + y * y)); - } - - void Astronomy::convertSphericalToRectangular ( - Degree rasc, Degree decl, LongReal dist, - LongReal &x, LongReal &y, LongReal &z) - { - x = dist * Math::Cos (rasc) * Math::Cos (decl); - y = dist * Math::Sin (rasc) * Math::Cos (decl); - z = dist * Math::Sin (decl); - } - - void Astronomy::convertEquatorialToHorizontal ( - LongReal jday, - Degree longitude, Degree latitude, - Degree rasc, Degree decl, - Degree &azimuth, Degree &altitude) - { - LongReal d = jday - 2451543.5; - Degree w = Degree (282.9404 + 4.70935E-5 * d); - Degree M = Degree (356.0470 + 0.9856002585 * d); - // Sun's mean longitude - Degree L = w + M; - // Universal time of day in degrees. - Degree UT = Degree(fmod(d, 1) * 360); - Degree hourAngle = longitude + L + Degree (180) + UT - rasc; - - LongReal x = Math::Cos (hourAngle) * Math::Cos (decl); - LongReal y = Math::Sin (hourAngle) * Math::Cos (decl); - LongReal z = Math::Sin (decl); - - LongReal xhor = x * Math::Sin (latitude) - z * Math::Cos (latitude); - LongReal yhor = y; - LongReal zhor = x * Math::Cos (latitude) + z * Math::Sin (latitude); - - azimuth = Math::ATan2 (yhor, xhor) + Degree (180); - altitude = Math::ATan2 (zhor, Math::Sqrt (xhor * xhor + yhor * yhor)); - } - - void Astronomy::getHorizontalSunPosition ( - LongReal jday, - Ogre::Degree longitude, Ogre::Degree latitude, - Ogre::Degree &azimuth, Ogre::Degree &altitude) - { - // Midnight at the start of 31 december 2000 - // 2451543.5 == Astronomy::getJulianDayFromGregorianDateTime(1999, 12, 31, 0, 0, 0)); - LongReal d = jday - 2451543.5; - - // Sun's Orbital elements: - // argument of perihelion - Degree w = Degree (282.9404 + 4.70935E-5 * d); - // eccentricity (0=circle, 0-1=ellipse, 1=parabola) - LongReal e = 0.016709 - 1.151E-9 * d; - // mean anomaly (0 at perihelion; increases uniformly with time) - Degree M = Degree(356.0470 + 0.9856002585 * d); - // Obliquity of the ecliptic. - Degree oblecl = Degree (23.4393 - 3.563E-7 * d); - - // Eccentric anomaly - Degree E = M + Radian(e * Math::Sin (M) * (1 + e * Math::Cos (M))); - - // Sun's Distance(R) and true longitude(L) - LongReal xv = Math::Cos (E) - e; - LongReal yv = Math::Sin (E) * Math::Sqrt (1 - e * e); - LongReal r = Math::Sqrt (xv * xv + yv * yv); - Degree lon = Math::ATan2 (yv, xv) + w; - - // Ecliptic rectangular. - LongReal xecl = r * Math::Cos(lon); - LongReal yecl = r * Math::Sin(lon); - LongReal zecl = 0; - - // Equatorial rectangular. - LongReal xequ = xecl; - LongReal yequ = yecl * Math::Cos (oblecl) - zecl * Math::Sin (oblecl); - LongReal zequ = yecl * Math::Sin (oblecl) + zecl * Math::Cos (oblecl); - - // Equatorial spherical. - Degree rasc, decl; - Astronomy::convertRectangularToSpherical (xequ, yequ, zequ, rasc, decl, r); - - // Horizontal spherical. - Astronomy::convertEquatorialToHorizontal ( - jday, longitude, latitude, rasc, decl, azimuth, altitude); - } - - int Astronomy::getJulianDayFromGregorianDate( - int year, int month, int day) - { - // Formulas from http://en.wikipedia.org/wiki/Julian_day - // These are all integer divisions, but I'm not sure it works - // correctly for negative values. - int a = (14 - month) / 12; - int y = year + 4800 - a; - int m = month + 12 * a - 3; - return day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045; - } - - LongReal Astronomy::getJulianDayFromGregorianDateTime( - int year, int month, int day, - int hour, int minute, LongReal second) - { - int fpmode = Astronomy::enterHighPrecissionFloatingPointMode (); - - int jdn = getJulianDayFromGregorianDate (year, month, day); - // These are NOT integer divisions. - LongReal jd = jdn + (hour - 12) / 24.0 + minute / 1440.0 + second / 86400.0; - - Astronomy::restoreFloatingPointMode(fpmode); - return jd; - } - - LongReal Astronomy::getJulianDayFromGregorianDateTime( - int year, int month, int day, - LongReal secondsFromMidnight) - { - int jdn = getJulianDayFromGregorianDate(year, month, day); - LongReal jd = jdn + secondsFromMidnight / 86400.0 - 0.5; - return jd; - } - - void Astronomy::getGregorianDateFromJulianDay( - int julianDay, int &year, int &month, int &day) - { - // From http://en.wikipedia.org/wiki/Julian_day - int J = julianDay; - int j = J + 32044; - int g = j / 146097; - int dg = j % 146097; - int c = (dg / 36524 + 1) * 3 / 4; - int dc = dg - c * 36524; - int b = dc / 1461; - int db = dc % 1461; - int a = (db / 365 + 1) * 3 / 4; - int da = db - a * 365; - int y = g * 400 + c * 100 + b * 4 + a; - int m = (da * 5 + 308) / 153 - 2; - int d = da - (m + 4) * 153 / 5 + 122; - year = y - 4800 + (m + 2) / 12; - month = (m + 2) % 12 + 1; - day = d + 1; - } - - void Astronomy::getGregorianDateTimeFromJulianDay( - LongReal julianDay, int &year, int &month, int &day, - int &hour, int &minute, LongReal &second) - { - // Integer julian days are at noon. - // static_cast<int)(floor( is more precise than Ogre::Math::IFloor. - // Yes, it does matter. - int ijd = static_cast<int>(floor(julianDay + 0.5)); - getGregorianDateFromJulianDay(ijd, year, month, day); - - LongReal s = (julianDay + 0.5 - ijd) * 86400.0; - hour = static_cast<int>(floor(s / 3600)); - s -= hour * 3600; - minute = static_cast<int>(floor(s / 60)); - s -= minute * 60; - second = s; - } - - void Astronomy::getGregorianDateFromJulianDay( - LongReal julianDay, int &year, int &month, int &day) - { - int hour; - int minute; - LongReal second; - getGregorianDateTimeFromJulianDay(julianDay, year, month, day, hour, minute, second); - } - -#if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && (OGRE_COMPILER == OGRE_COMPILER_MSVC) - int Astronomy::enterHighPrecissionFloatingPointMode () - { - int oldMode = ::_controlfp (0, 0); - ::_controlfp (_PC_64, _MCW_PC); - return oldMode; - } - - void Astronomy::restoreFloatingPointMode (int oldMode) - { - ::_controlfp (oldMode, _MCW_PC); - } -#else - int Astronomy::enterHighPrecissionFloatingPointMode () - { - // Meaningless - return 0xC0FFEE; - } - - void Astronomy::restoreFloatingPointMode (int oldMode) - { - // Useless check. - assert(oldMode == 0xC0FFEE); - } -#endif -} Added: trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp (rev 0) +++ trunk/python-ogre/ThirdParty/caelum/Astronomy.cpp 2008-06-12 13:21:31 UTC (rev 593) @@ -0,0 +1,348 @@ +/* +This file is part of Caelum. +See http://www.ogre3d.org/wiki/index.php/Caelum + +Copyright (c) 2008 Caelum team. See Contributors.txt for details. + +Caelum is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Caelum is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with Caelum. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "CaelumPrecompiled.h" +#include "Astronomy.h" + +namespace caelum +{ + const LongReal Astronomy::PI = 3.1415926535897932384626433832795029L; + + LongReal Astronomy::radToDeg (LongReal value) + { + return value * 180 / PI; + } + + LongReal Astronomy::degToRad (LongReal value) + { + return value * PI / 180; + } + + LongReal Astronomy::sinDeg (LongReal x) { + return std::sin (degToRad (x)); + } + + LongReal Astronomy::cosDeg (LongReal x) { + return std::cos (degToRad (x)); + } + + LongReal Astronomy::atan2Deg (LongReal y, LongReal x) { + return radToDeg(std::atan2 (y, x)); + } + + LongReal Astronomy::normalizeDegrees (LongReal value) + { + value = fmod (value, 360); + if (value < LongReal (0)) { + value += LongReal (360); + } + return value; + } + + void Astronomy::convertEclipticToEquatorialRad ( + LongReal lon, LongReal lat, + LongReal &rasc, LongReal &decl) + { + double ecl = Astronomy::degToRad(23.439281); + + double x = cos(lon) * cos(lat); + double y = cos(ecl) * sin(lon) * cos(lat) - sin(ecl) * sin(lat); + double z = sin(ecl) * sin(lon) * cos(lat) + cos(ecl) * sin(lat); + + double r = sqrt(x * x + y * y); + rasc = atan2(y, x); + decl = atan2(z, r); + } + + void Astronomy::convertRectangularToSpherical ( + LongReal x, LongReal y, LongReal z, + LongReal &rasc, LongReal &decl, LongReal &dist) + { + dist = sqrt (x * x + y * y + z * z); + rasc = atan2Deg (y, x); + decl = atan2Deg (z, sqrt (x * x + y * y)); + } + + void Astronomy::convertSphericalToRectangular ( + LongReal rasc, LongReal decl, LongReal dist, + LongReal &x, LongReal &y, LongReal &z) + { + x = dist * cosDeg (rasc) * cosDeg (decl); + y = dist * sinDeg (rasc) * cosDeg (decl); + z = dist * sinDeg (decl); + } + + void Astronomy::convertEquatorialToHorizontal ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal rasc, LongReal decl, + LongReal &azimuth, LongReal &altitude) + { + LongReal d = jday - 2451543.5; + LongReal w = LongReal (282.9404 + 4.70935E-5 * d); + LongReal M = LongReal (356.0470 + 0.9856002585 * d); + // Sun's mean longitude + LongReal L = w + M; + // Universal time of day in degrees. + LongReal UT = LongReal(fmod(d, 1) * 360); + LongReal hourAngle = longitude + L + LongReal (180) + UT - rasc; + + LongReal x = cosDeg (hourAngle) * cosDeg (decl); + LongReal y = sinDeg (hourAngle) * cosDeg (decl); + LongReal z = sinDeg (decl); + + LongReal xhor = x * sinDeg (latitude) - z * cosDeg (latitude); + LongReal yhor = y; + LongReal zhor = x * cosDeg (latitude) + z * sinDeg (latitude); + + azimuth = atan2Deg (yhor, xhor) + LongReal (180); + altitude = atan2Deg (zhor, sqrt (xhor * xhor + yhor * yhor)); + } + + void Astronomy::getHorizontalSunPosition ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal &azimuth, LongReal &altitude) + { + // 2451544.5 == Astronomy::getJulianDayFromGregorianDateTime(2000, 1, 1, 0, 0, 0)); + // 2451543.5 == Astronomy::getJulianDayFromGregorianDateTime(1999, 12, 31, 0, 0, 0)); + LongReal d = jday - 2451543.5; + + // Sun's Orbital elements: + // argument of perihelion + LongReal w = LongReal (282.9404 + 4.70935E-5 * d); + // eccentricity (0=circle, 0-1=ellipse, 1=parabola) + LongReal e = 0.016709 - 1.151E-9 * d; + // mean anomaly (0 at perihelion; increases uniformly with time) + LongReal M = LongReal(356.0470 + 0.9856002585 * d); + // Obliquity of the ecliptic. + //LongReal oblecl = LongReal (23.4393 - 3.563E-7 * d); + + // Eccentric anomaly + LongReal E = M + radToDeg(e * sinDeg (M) * (1 + e * cosDeg (M))); + + // Sun's Distance(R) and true longitude(L) + LongReal xv = cosDeg (E) - e; + LongReal yv = sinDeg (E) * sqrt (1 - e * e); + //LongReal r = sqrt (xv * xv + yv * yv); + LongReal lon = atan2Deg (yv, xv) + w; + LongReal lat = 0; + + LongReal lambda = degToRad(lon); + LongReal beta = degToRad(lat); + LongReal rasc, decl; + convertEclipticToEquatorialRad (lambda, beta, rasc, decl); + rasc = radToDeg(rasc); + decl = radToDeg(decl); + + // Horizontal spherical. + Astronomy::convertEquatorialToHorizontal ( + jday, longitude, latitude, rasc, decl, azimuth, altitude); + } + + void Astronomy::getHorizontalSunPosition ( + LongReal jday, + Ogre::Degree longitude, Ogre::Degree latitude, + Ogre::Degree &azimuth, Ogre::Degree &altitude) + { + LongReal az, al; + getHorizontalSunPosition(jday, longitude.valueDegrees (), latitude.valueDegrees (), az, al); + azimuth = Ogre::Degree(az); + altitude = Ogre::Degree(al); + } + + void Astronomy::getEclipticMoonPositionRad ( + LongReal jday, + LongReal &lon, LongReal &lat) + { + // Julian centuries since January 1, 2000 + double T = (jday - 2451545.0L) / 36525.0L; + double lprim = 3.8104L + 8399.7091L * T; + double mprim = 2.3554L + 8328.6911L * T; + double m = 6.2300L + 648.3019L * T; + double d = 5.1985L + 7771.3772L * T; + double f = 1.6280L + 8433.4663L * T; + lon = lprim + + 0.1098L * sin(mprim) + + 0.0222L * sin(2.0L * d - mprim) + + 0.0115L * sin(2.0L * d) + + 0.0037L * sin(2.0L * mprim) + - 0.0032L * sin(m) + - 0.0020L * sin(2.0L * f) + + 0.0010L * sin(2.0L * d - 2.0L * mprim) + + 0.0010L * sin(2.0L * d - m - mprim) + + 0.0009L * sin(2.0L * d + mprim) + + 0.0008L * sin(2.0L * d - m) + + 0.0007L * sin(mprim - m) + - 0.0006L * sin(d) + - 0.0005L * sin(m + mprim); + lat = + + 0.0895L * sin(f) + + 0.0049L * sin(mprim + f) + + 0.0048L * sin(mprim - f) + + 0.0030L * sin(2.0L * d - f) + + 0.0010L * sin(2.0L * d + f - mprim) + + 0.0008 * sin(2.0L * d - f - mprim) + + 0.0006L * sin(2.0L * d + f); + } + + void Astronomy::getHorizontalMoonPosition ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal &azimuth, LongReal &altitude) + { + // Ecliptic spherical + LongReal lonecl, latecl; + Astronomy::getEclipticMoonPositionRad (jday, lonecl, latecl); + + // Equatorial spherical + LongReal rasc, decl; + Astronomy::convertEclipticToEquatorialRad (lonecl, latecl, rasc, decl); + + // Radians to degrees (all angles are in radians up to this point) + rasc = radToDeg(rasc); + decl = radToDeg(decl); + + // Equatorial to horizontal + Astronomy::convertEquatorialToHorizontal ( + jday, longitude, latitude, rasc, decl, azimuth, altitude); + } + + void Astronomy::getHorizontalMoonPosition ( + LongReal jday, + Ogre::Degree longitude, Ogre::Degree latitude, + Ogre::Degree &azimuth, Ogre::Degree &altitude) + { + LongReal az, al; + getHorizontalMoonPosition(jday, longitude.valueDegrees (), latitude.valueDegrees (), az, al); + azimuth = Ogre::Degree(az); + altitude = Ogre::Degree(al); + } + + int Astronomy::getJulianDayFromGregorianDate( + int year, int month, int day) + { + // Formulas from http://en.wikipedia.org/wiki/Julian_day + // These are all integer divisions, but I'm not sure it works + // correctly for negative values. + int a = (14 - month) / 12; + int y = year + 4800 - a; + int m = month + 12 * a - 3; + return day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045; + } + + LongReal Astronomy::getJulianDayFromGregorianDateTime( + int year, int month, int day, + int hour, int minute, LongReal second) + { + int fpmode = Astronomy::enterHighPrecissionFloatingPointMode (); + + int jdn = getJulianDayFromGregorianDate (year, month, day); + // These are NOT integer divisions. + LongReal jd = jdn + (hour - 12) / 24.0 + minute / 1440.0 + second / 86400.0; + + Astronomy::restoreFloatingPointMode(fpmode); + return jd; + } + + LongReal Astronomy::getJulianDayFromGregorianDateTime( + int year, int month, int day, + LongReal secondsFromMidnight) + { + int jdn = getJulianDayFromGregorianDate(year, month, day); + LongReal jd = jdn + secondsFromMidnight / 86400.0 - 0.5; + return jd; + } + + void Astronomy::getGregorianDateFromJulianDay( + int julianDay, int &year, int &month, int &day) + { + // From http://en.wikipedia.org/wiki/Julian_day + int J = julianDay; + int j = J + 32044; + int g = j / 146097; + int dg = j % 146097; + int c = (dg / 36524 + 1) * 3 / 4; + int dc = dg - c * 36524; + int b = dc / 1461; + int db = dc % 1461; + int a = (db / 365 + 1) * 3 / 4; + int da = db - a * 365; + int y = g * 400 + c * 100 + b * 4 + a; + int m = (da * 5 + 308) / 153 - 2; + int d = da - (m + 4) * 153 / 5 + 122; + year = y - 4800 + (m + 2) / 12; + month = (m + 2) % 12 + 1; + day = d + 1; + } + + void Astronomy::getGregorianDateTimeFromJulianDay( + LongReal julianDay, int &year, int &month, int &day, + int &hour, int &minute, LongReal &second) + { + // Integer julian days are at noon. + // static_cast<int)(floor( is more precise than Ogre::Math::IFloor. + // Yes, it does matter. + int ijd = static_cast<int>(floor(julianDay + 0.5)); + getGregorianDateFromJulianDay(ijd, year, month, day); + + LongReal s = (julianDay + 0.5 - ijd) * 86400.0; + hour = static_cast<int>(floor(s / 3600)); + s -= hour * 3600; + minute = static_cast<int>(floor(s / 60)); + s -= minute * 60; + second = s; + } + + void Astronomy::getGregorianDateFromJulianDay( + LongReal julianDay, int &year, int &month, int &day) + { + int hour; + int minute; + LongReal second; + getGregorianDateTimeFromJulianDay(julianDay, year, month, day, hour, minute, second); + } + +#if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && (OGRE_COMPILER == OGRE_COMPILER_MSVC) + int Astronomy::enterHighPrecissionFloatingPointMode () + { + int oldMode = ::_controlfp (0, 0); + ::_controlfp (_PC_64, _MCW_PC); + return oldMode; + } + + void Astronomy::restoreFloatingPointMode (int oldMode) + { + ::_controlfp (oldMode, _MCW_PC); + } +#else + int Astronomy::enterHighPrecissionFloatingPointMode () + { + // Meaningless + return 0xC0FFEE; + } + + void Astronomy::restoreFloatingPointMode (int oldMode) + { + // Useless check. + assert(oldMode == 0xC0FFEE); + } +#endif +} Deleted: trunk/python-ogre/ThirdParty/caelum/Astronomy.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Astronomy.h 2008-05-23 01:30:05 UTC (rev 592) +++ trunk/python-ogre/ThirdParty/caelum/Astronomy.h 2008-06-12 13:21:31 UTC (rev 593) @@ -1,154 +0,0 @@ -/* -This file is part of Caelum. -See http://www.ogre3d.org/wiki/index.php/Caelum - -Copyright (c) 2008 Caelum team. See Contributors.txt for details. - -Caelum is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published -by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Caelum is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with Caelum. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef ASTRONOMY_H -#define ASTRONOMY_H - -#include "CaelumPrerequisites.h" - -namespace caelum -{ - /** Static class with astronomy routines. - * This class contains various astronomical routines useful in Caelum. - * - * Most of the formulas are from http://stjarnhimlen.se/comp/ppcomp.html - * That site contains much more than was implemented here; it has code - * for determining the positions of all the planets. Only the sun and - * moon are actually useful for caelum. - * - * The formulas are isolated here in pure procedural code for easier - * testing (Tests are done as assert in the demo). - * - * Precision is vital here, and this class should be converted to use - * caelum::LongReal instead of Ogre::Real and Ogre::Degree. - */ - class DllExport Astronomy - { - private: - Astronomy() {} - - public: - /** Normalize an angle to the 0, 360 range. - * @param x The angle to normalize - */ - static const Ogre::Degree normalizeAngle(Ogre::Degree x); - - static void convertRectangularToSpherical ( - LongReal x, LongReal y, LongReal z, - Ogre::Degree &rasc, Ogre::Degree &decl, LongReal &dist); - - static void convertSphericalToRectangular ( - Ogre::Degree rasc, Ogre::Degree decl, LongReal dist, - LongReal &x, LongReal &y, LongReal &z); - - /** Convert from equatorial to horizontal coordinates. - * This function converts from angles relative to the earth's equator - * to angle relative to the horizon at a given point. - * @param jday Astronomical time as julian day. - * @param longitude Observer's longitude in degrees east. - * @param latitude Observer's latitude in degrees north. - * @param rasc Object's right ascension. - * @param decl Object's declination. - * @param azimuth Object's azimuth (clockwise degrees from true north). - * @param altitude Object's altitude (degrees above the horizon). - */ - static void convertEquatorialToHorizontal ( - LongReal jday, - Ogre::Degree longitude, Ogre::Degree latitude, - Ogre::Degree rasc, Ogre::Degree decl, - Ogre::Degree &azimuth, Ogre::Degree &altitude); - - /** Get the sun's position in the sky in, relative to the horizon. - * @param jday Astronomical time as julian day. - * @param longitude Observer longitude - * @param latitude Observer latitude - * @param azimuth Astronomical azimuth, measured clockwise from North = 0. - * @param altitude Astronomical altitude, elevation above the horizon. - */ - static void getHorizontalSunPosition ( - LongReal jday, - Ogre::Degree longitude, Ogre::Degree latitude, - Ogre::Degree &azimuth, Ogre::Degree &altitude); - - /** Get astronomical julian day from normal gregorian calendar. - * From wikipedia: the integer number of days that have elapsed - * since the initial epoch defined as - * noon Universal Time (UT) Monday, January 1, 4713 BC - * @note this is the time at noon, not midnight. - */ - static int getJulianDayFromGregorianDate( - int year, int month, int day); - - /** Get astronomical julian day from normal gregorian calendar. - * Calculate julian day from a day in the normal gregorian calendar. - * Time should be given as UTC. - * @see http://en.wikipedia.org/wiki/Julian_day - */ - static LongReal getJulianDayFromGregorianDateTime( - int year, int month, int day, - int hour, int minute, LongReal second); - - /** Get astronomical julian day from normal gregorian calendar. - * @see above (I don't know the proper doxygen syntax). - */ - static LongReal getJulianDayFromGregorianDateTime( - int year, int month, int day, - LongReal secondsFromMidnight); - - /// Get gregorian date from integer julian day. - static void getGregorianDateFromJulianDay( - int julianDay, int &year, int &month, int &day); - - /// Get gregorian date time from floating point julian day. - static void getGregorianDateTimeFromJulianDay( - LongReal julianDay, int &year, int &month, int &day, - int &hour, int &minute, LongReal &second); - - /// Get gregorian date from floating point julian day. - static void getGregorianDateFromJulianDay( - LongReal julianDay, int &year, int &month, int &day); - - /** Enter high-precission floating-point mode. - * - * By default Direct3D decreases the precission of ALL floating - * point calculations, enough to stop Caelum's astronomy routines - * from working correctly. - * - * To trigger this behaviour in a standard ogre demo select the - * Direct3D render system and set "Floating-point mode" to - * "Fastest". Otherwise it's not a problem. - * - * It can be fixed by changing the precission only inside caelum's - * astronomy routines using the _controlfp function. This only works - * for MSVC on WIN32; This is a no-op on other compilers. - * - * @note: Must be paired with restoreFloatingPointMode. - * @return Value to pass to restoreFloatingModeMode. - */ - static int enterHighPrecissionFloatingPointMode (); - - /** Restore old floating point precission. - * @see enterHighPrecissionFloatingPointMode. - */ - static void restoreFloatingPointMode (int oldMode); - }; -} - -#endif // SOLARSYSTEMMODEL_H Added: trunk/python-ogre/ThirdParty/caelum/Astronomy.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Astronomy.h (rev 0) +++ trunk/python-ogre/ThirdParty/caelum/Astronomy.h 2008-06-12 13:21:31 UTC (rev 593) @@ -0,0 +1,201 @@ +/* +This file is part of Caelum. +See http://www.ogre3d.org/wiki/index.php/Caelum + +Copyright (c) 2008 Caelum team. See Contributors.txt for details. + +Caelum is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Caelum is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with Caelum. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef ASTRONOMY_H +#define ASTRONOMY_H + +#include "CaelumPrerequisites.h" + +namespace caelum +{ + /** Static class with astronomy routines. + * This class contains various astronomical routines useful in Caelum. + * + * Most of the formulas are from http://stjarnhimlen.se/comp/ppcomp.html + * That site contains much more than was implemented here; it has code + * for determining the positions of all the planets. Only the sun and + * moon are actually useful for caelum. + * + * The formulas are isolated here in pure procedural code for easier + * testing (Tests are done as assertions in the demo). + * + * Precision is vital here, so this class uses caelum::LongReal(double) + * instead of Ogre::Real(float) for precission. All angles are in degrees + * unless otherwise mentioned. Ogre::Degree and Ogre::Radian use + * Ogre::Real and should be avoided here. + */ + class CAELUM_EXPORT Astronomy + { + private: + Astronomy() {} + + static const LongReal PI; + + /** Normalize an angle to the 0, 360 range. + * @param x The angle to normalize + */ + static LongReal normalizeDegrees (LongReal x); + + /// Convert radians to degrees. + static LongReal radToDeg (LongReal x); + + /// Convert degrees to radians. + static LongReal degToRad (LongReal x); + + static LongReal sinDeg (LongReal x); + static LongReal cosDeg (LongReal x); + static LongReal atan2Deg (LongReal y, LongReal x); + + public: + /** Convert from ecliptic to ecuatorial spherical coordinates, in radians. + * @param lon Ecliptic longitude + * @param lat Ecliptic latitude + * @param rasc Right ascension + * @param decl Declination + * @warning: This function works in radians. + */ + static void convertEclipticToEquatorialRad ( + LongReal lon, LongReal lat, + LongReal& rasc, LongReal& decl); + + static void convertRectangularToSpherical ( + LongReal x, LongReal y, LongReal z, + LongReal &rasc, LongReal &decl, LongReal &dist); + + static void convertSphericalToRectangular ( + LongReal rasc, LongReal decl, LongReal dist, + LongReal &x, LongReal &y, LongReal &z); + + /** Convert from equatorial to horizontal coordinates. + * This function converts from angles relative to the earth's equator + * to angle relative to the horizon at a given point. + * @param jday Astronomical time as julian day. + * @param longitude Observer's longitude in degrees east. + * @param latitude Observer's latitude in degrees north. + * @param rasc Object's right ascension. + * @param decl Object's declination. + * @param azimuth Object's azimuth (clockwise degrees from true north). + * @param altitude Object's altitude (degrees above the horizon). + */ + static void convertEquatorialToHorizontal ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal rasc, LongReal decl, + LongReal &azimuth, LongReal &altitude); + + /** Get the sun's position in the sky in, relative to the horizon. + * @param jday Astronomical time as julian day. + * @param longitude Observer longitude + * @param latitude Observer latitude + * @param azimuth Astronomical azimuth, measured clockwise from North = 0. + * @param altitude Astronomical altitude, elevation above the horizon. + */ + static void getHorizontalSunPosition ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal &azimuth, LongReal &altitude); + + static void getHorizontalSunPosition ( + LongReal jday, + Ogre::Degree longitude, Ogre::Degree latitude, + Ogre::Degree &azimuth, Ogre::Degree &altitude); + + /// Gets the moon position at a specific time in ecliptic coordinates + /// @param lon: Ecliptic longitude, in radians. + /// @param lat: Ecliptic latitude, in radians. + static void getEclipticMoonPositionRad ( + LongReal jday, + LongReal &lon, + LongReal &lat); + + static void getHorizontalMoonPosition ( + LongReal jday, + LongReal longitude, LongReal latitude, + LongReal &azimuth, LongReal &altitude); + static void getHorizontalMoonPosition ( + LongReal jday, + Ogre::Degree longitude, Ogre::Degree latitude, + Ogre::Degree &azimuth, Ogre::Degree &altitude); + + /** Get astronomical julian day from normal gregorian calendar. + * From wikipedia: the integer number of days that have elapsed + * since the initial epoch defined as + * noon Universal Time (UT) Monday, January 1, 4713 BC + * @note this is the time at noon, not midnight. + */ + static int getJulianDayFromGregorianDate ( + int year, int month, int day); + + /** Get astronomical julian day from normal gregorian calendar. + * Calculate julian day from a day in the normal gregorian calendar. + * Time should be given as UTC. + * @see http://en.wikipedia.org/wiki/Julian_day + */ + static LongReal getJulianDayFromGregorianDateTime ( + int year, int month, int day, + int hour, int minute, LongReal second); + + /** Get astronomical julian day from normal gregorian calendar. + * @see above (I don't know the proper doxygen syntax). + */ + static LongReal getJulianDayFromGregorianDateTime ( + int year, int month, int day, + LongReal secondsFromMidnight); + + /// Get gregorian date from integer julian day. + static void getGregorianDateFromJulianDay ( + int julianDay, int &year, int &month, int &day); + + /// Get gregorian date time from floating point julian day. + static void getGregorianDateTimeFromJulianDay ( + LongReal julianDay, int &year, int &month, int &day, + int &hour, int &minute, LongReal &second); + + /// Get gregorian date from floating point julian day. + static void getGregorianDateFromJulianDay ( + LongReal julianDay, int &year, int &month, int &day); + + /** Enter high-precission floating-point mode. + * + * By default Direct3D decreases the precission of ALL floating + * point calculations, enough to stop Caelum's astronomy routines + * from working correctly. + * + * To trigger this behaviour in a standard ogre demo select the + * Direct3D render system and set "Floating-point mode" to + * "Fastest". Otherwise it's not a problem. + * + * It can be fixed by changing the precission only inside caelum's + * astronomy routines using the _controlfp function. This only works + * for MSVC on WIN32; This is a no-op on other compilers. + * + * @note: Must be paired with restoreFloatingPointMode. + * @return Value to pass to restoreFloatingModeMode. + */ + static int enterHighPrecissionFloatingPointMode (); + + /** Restore old floating point precission. + * @see enterHighPrecissionFloatingPointMode. + */ + static void restoreFloatingPointMode (int oldMode); + }; +} + +#endif // SOLARSYSTEMMODEL_H Deleted: trunk/python-ogre/ThirdParty/caelum/Caelum.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Caelum.h 2008-05-23 01:30:05 UTC (rev 592) +++ trunk/python-ogre/ThirdParty/caelum/Caelum.h 2008-06-12 13:21:31 UTC (rev 593) @@ -1,39 +0,0 @@ -/* -This file is part of Caelum. -See http://www.ogre3d.org/wiki/index.php/Caelum - -Copyright (c) 2006-2008 Caelum team. See Contributors.txt for details. - -Caelum is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published -by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Caelum is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with Caelum. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CAELUM_H -#define CAELUM_H - -#include "CaelumPrerequisites.h" - -#include "CaelumExceptions.h" -#include "CaelumListener.h" -#include "CaelumSystem.h" -#include "CameraBoundElement.h" -#include "GeometryFactory.h" -#include "SkyColourModel.h" -#include "SkyDome.h" -#include "Sun.h" -#include "LayeredClouds.h" -#include "UniversalClock.h" -#include "SolarSystemModel.h" -#include "Astronomy.h" - -#endif //CAELUM_H Added: trunk/python-ogre/ThirdParty/caelum/Caelum.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/Caelum.h (rev 0) +++ trunk/python-ogre/ThirdParty/caelum/Caelum.h 2008-06-12 13:21:31 UTC (rev 593) @@ -0,0 +1,38 @@ +/* +This file is part of Caelum. +See http://www.ogre3d.org/wiki/index.php/Caelum + +Copyright (c) 2006-2008 Caelum team. See Contributors.txt for details. + +Caelum is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Caelum is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with Caelum. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CAELUM_H +#define CAELUM_H + +#include "CaelumPrerequisites.h" + +#include "CaelumExceptions.h" +#include "CaelumSystem.h" +#include "CameraBoundElement.h" +#include "GeometryFactory.h" +#include "SkyColourModel.h" +#include "SkyDome.h" +#include "Sun.h" +#include "LayeredClouds.h" +#include "UniversalClock.h" +#include "SolarSystemModel.h" +#include "Astronomy.h" + +#endif //CAELUM_H Deleted: trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h 2008-05-23 01:30:05 UTC (rev 592) +++ trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h 2008-06-12 13:21:31 UTC (rev 593) @@ -1,41 +0,0 @@ -/* -This file is part of Caelum. -See http://www.ogre3d.org/wiki/index.php/Caelum - -Copyright (c) 2006-2007 Caelum team. See Contributors.txt for details. - -Caelum is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published -by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Caelum is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with Caelum. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CAELUMEXCEPTIONS_H -#define CAELUMEXCEPTIONS_H - -#include "CaelumPrerequisites.h" - -namespace caelum { - -/** Exception class for unsupported features. - * @author Jesús Alonso Abad. - */ -class DllExport UnsupportedException : public Ogre::Exception { - public: - /** Constructor. - */ - UnsupportedException (int number, const Ogre::String &description, const Ogre::String &source, const char *file, long line) - : Ogre::Exception (number, description, source, "UnsupportedException", file, line) { } -}; - -} // namespace caelum - -#endif // CAELUMEXCEPTIONS_H Added: trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h =================================================================== --- trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h (rev 0) +++ trunk/python-ogre/ThirdParty/caelum/CaelumExceptions.h 2008-06-12 13:21:31 UTC (rev 593) @@ -0,0 +1,41 @@ +/* +This file is part of Caelum. +See http://www.ogre3d.org/wiki/index.php/Caelum + +Copyright (c) 2006-2007 Caelum team. See Contributors.txt for details. + +Caelum is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Caelum is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with Caelum. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CAELUMEXCEPTIONS_H +#define CAELUMEXCEPTIONS_H + +#include "CaelumPrerequisites.h" + +namespace caelum { + +/** Exception class for unsupported features. + * @author Jesús Alonso Abad. + */ +class CAELUM_EXPORT UnsupportedException : public Ogre::Exception { + public: + /** Constructor. + */ + UnsupportedException (int number, const Ogre::String &description, const Ogre::String &sou... [truncated message content] |