Commit Graph

984 Commits

Author SHA1 Message Date
Don Cross
0aa80dbf6f C: Implemented Astronomy_Rotation_HOR_EQD. 2019-12-09 11:18:15 -05:00
Don Cross
4399e72334 Added Astronomy_HorizonFromVector, Astronomy_Rotation_EQD_HOR.
Astronomy_HorizonFromVector is a specialized variant of
Astronomy_SphereFromVector that flips the orientation of the
azimuth angle to the more traditional clockwise-from-north
direction used in navigation and cartography.
It also allows the same optional refraction correction as
Astronomy_Horizon.

Astronomy_Rotation_EQD_HOR converts a equatorial-of-date vector
to a horizontal vector. The horizontal vector has the following
components:
    x = North
    y = West
    z = Zenith

Removed trailing whitespace in generate.c.
2019-12-09 11:06:02 -05:00
Don Cross
212c60b633 C: Implemented Astronomy_Rotation_EQD_EQJ. 2019-12-08 20:41:01 -05:00
Don Cross
cd545033ae C: Added Astronomy_Rotation_EQJ_EQD(). 2019-12-08 19:48:43 -05:00
Don Cross
bf7e958152 C: Implemented Astronomy_Rotation_ECL_EQJ.
This function returns the rotation matrix for
converting ecliptic J2000 coordinates to equatorial J2000.
2019-12-08 16:44:43 -05:00
Don Cross
dd39803180 C: Implemented Astronomy_Rotation_EQJ_ECL.
This function returns the constant rotation matrix that converts
equatorial J2000 coordinates to ecliptic J2000 coordinates.
Verified that it is exactly consistent with existing Ecliptic().
2019-12-08 15:49:29 -05:00
Don Cross
f493707e6d C: Implemented Astronomy_RotateVector.
Astronomy_RotateVector translates a vector in one orientation
to another orientation, as specified by a rotation matrix.
I will use this to implement all the coordinate transforms
among EQJ, EQD, ECL, HOR.
2019-12-08 15:13:55 -05:00
Don Cross
65e3e931c9 C: Implemented Astronomy_SphereFromVector.
Implemented C function that converts cartesian vector to spherical coordinates.
2019-12-08 14:17:23 -05:00
Don Cross
bca3f808ae C: Added Astronomy_VectorFromSphere, astro_spherical_t.
Added new data type astro_spherical_t that represents generic spherical coordinates.
Implemented Astronomy_VectorFromSphere to convert spherical coordinates
to Cartesian coordinates. Included unit test to verify it is working as expected.
2019-12-08 13:48:27 -05:00
Don Cross
ae0946bd47 Implemented C versions of Astronomy_CombineRotation, Astronomy_InverseRotation.
Beginning to implement functions for converting among the
following four orientation systems:

- EQJ: equatorial J2000
- EQD: equatorial of date
- ECL: ecliptic J2000
- HOR: horizontal

Starting with some basic functions for manipulating rotation matrices.
Astronomy_CombineRotation multiplies two rotation matrices to obtain
a third that combines their effects in order. I will use these for
combining a precession matrix and a nutation matrix, to obtain a
rotation matrix that can convert between EQJ and EQD.

Astronomy_InverseRotation will allow converting in either direction
between two orientations.
2019-12-08 11:26:59 -05:00
Don Cross
0aeb875ec5 C#: Implemented SearchPeakMagnitude. 2019-12-01 11:41:48 -05:00
Don Cross
efd1629e9a C#: Implemented Illumination(). Not fully tested yet.
The unit test exercises Illumination() except for Saturn.
Will implement that next.
2019-12-01 10:27:40 -05:00
Don Cross
df12a2c8c8 C#: Added SearchLunarApsis, NextLunarApsis. 2019-11-27 22:13:52 -05:00
Don Cross
655b9bca46 C#: Implemented functions Elongation and SearchMaxElongation. 2019-11-06 18:50:06 -05:00
Don Cross
af106481f6 C#: Implemented SearchRelativeLongitude. 2019-11-05 22:12:21 -05:00
Don Cross
162f3c5683 C#: Added SearchHourAngle and SearchRiseSet. 2019-11-03 15:33:30 -05:00
Don Cross
d9f447a7a4 C#: Added moon phase/quarter search functions. 2019-10-30 22:14:54 -04:00
Don Cross
a449818c13 C#: work in progress : starting to implement search functions. 2019-10-29 20:41:56 -04:00
Don Cross
904037a126 C#: Implemented geocentric moon calculation. Passes unit tests. 2019-10-28 15:37:46 -04:00
Don Cross
5acf8230cd C#: Fixed bugs and validated Horizon().
Fixed bug in C# version nutation().
Need to write observer location to C# output file.
Now Horizon output verifies.
2019-10-28 13:47:46 -04:00
Don Cross
c92ac89986 C#: Added Horizon function. Fixed a couple of things in the C code. 2019-10-28 10:25:40 -04:00
Don Cross
9955fbd3f9 Implemented most of Equator(), GeoVector() functions.
Still need to implement moon calculations and associated code.
Reworked AstroVector as a struct instead of a class, to reduce
memory allocation overhead.
2019-10-27 21:02:00 -04:00
Don Cross
0bbbd06177 C#: Implemented Chebyshev calculations for Pluto. 2019-10-25 16:00:52 -04:00
Don Cross
b49973bec3 C# code generator adds whitespace for proper code indenting. 2019-10-25 15:09:45 -04:00
Don Cross
4173c88e63 C#: implemented VSOP code generator and CalcVsop function. Not yet tested. 2019-10-25 14:06:19 -04:00
Don Cross
c88c73437b C#: Adding more data structures and documentation. 2019-10-25 13:11:49 -04:00
Don Cross
eabbd4b628 Added stub documentation of all C# public symbols.
This is just to get build errors to go away.
Will have to come back and flesh out all of the documentation
once I start working on the C# documentation generator.
2019-10-24 22:36:18 -04:00
Don Cross
e7ae0288c1 C# work in progress - broken build checked in on purpose.
I'm checking in a broken build on purpose in this topic branch
so that I can move the work over to my Windows machine and use
Visual Studio to help with formatting XML comments.
2019-10-24 22:00:35 -04:00
Don Cross
2b1abb399a Implemented C# time functions and added unit tests for them. 2019-10-24 14:17:08 -04:00
Don Cross
2846481d1b Starting to define class AstroTime. 2019-10-10 15:52:28 -04:00
Don Cross
2285e4032b Starting to compile generated C# code and reference it from unit test. 2019-10-10 15:19:47 -04:00
Don Cross
7bff374d57 Starting to add support for generating C# code.
Decided to move call to makedoc script from run script.
It was confusing that it was hidden inside unit_test_js,
especially because it invokes the code generator for
all supported languages.
2019-10-10 14:56:49 -04:00
Don Cross
ab648ac6ab Finished first pass of Python documentation.
Also make pydown.py generate an error, not just a warning,
for missing documentation, now that all the documentation is filled out.
2019-07-25 23:00:53 -04:00
Don Cross
44084cdf20 Python: added more documentation. 2019-07-19 21:33:19 -04:00
Don Cross
c64880a789 Python: added documentation for function SearchRiseSet. 2019-07-19 21:23:52 -04:00
Don Cross
91e4c7c8d2 Python: added documentation for function SearchHourAngle. 2019-07-19 21:11:54 -04:00
Don Cross
f7bda9890c Python: added documentation for function SearchPeakMagnitude. 2019-07-19 21:05:19 -04:00
Don Cross
972e43e952 Python: added documentation for function Illumination. 2019-07-19 21:01:13 -04:00
Don Cross
712f334146 Python: added documentation for class IlluminationInfo. 2019-07-19 20:57:20 -04:00
Don Cross
3ad7c7d9ec Python: Documented moon quarter type and functions. 2019-07-17 20:17:04 -04:00
Don Cross
8287a211a9 Python: added more documentation. 2019-07-17 20:09:34 -04:00
Don Cross
453e06e943 More documentation work.
In C code, replaced HTML italics with Markdown emphasis markers.
Added warnings for Python symbols with missing documentation.
Documented Python class Apsis.
2019-07-17 19:46:33 -04:00
Don Cross
8a18cdc58a Python: include documentation about function return values in Markdown. 2019-07-13 17:48:15 -04:00
Don Cross
7721f7a735 Python: added documentation for function SearchRelativeLongitude. 2019-07-13 17:02:39 -04:00
Don Cross
0d94f03f64 Added lots more Python documentation.
Changed visibility from a string 'morning'/'evening' to enum type.
Was not testing visibility was correct; now test.py does that.
Corrected a couple of minor things in C documentation.
2019-07-13 16:46:24 -04:00
Don Cross
c0b4d28805 Python: adding support for documenting class member functions. 2019-07-12 21:20:02 -04:00
Don Cross
959ea8d048 Python: generate markdown for error types. 2019-07-12 20:53:16 -04:00
Don Cross
f97096105a Python docs: support documentation of enumerated types. 2019-07-12 19:58:14 -04:00
Don Cross
033a2a1b53 pydown: Split classes into regular classes, enums, and errors.
Will generate different Markdown for my regular classes,
enumerated types, and error types.

Found out that 'from enum import IntEnum' pulls IntEnum
into the astronomy module and causes us to try to generate
documentation for it. Just keep it in the enum module.

Removed spurious dump of JavaScript README.md when verify_clean
fails.
2019-07-10 21:57:07 -04:00
Don Cross
c7210a108f Python: replace _DEG2RAD, _RAD2DEG constants with math functions. 2019-07-09 22:09:53 -04:00