C++ classes and routines: general, math, astronomy, calendars, games
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE
Unknown
license.txt
davidand36/libEpsilonDelta
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
An Overview of EpsilonDelta libraries. Copyright (C) 2007 David M. Anderson INTRODUCTION libEpsilonDelta is a collection of C++ classes and routines. Many are general purpose, and some are specific to domains of interest to me. It is still very much under development; I have a number of improvements in mind as I write this. Extensive unit tests are included. libEpsilonDelta is divided into several directories by subject matter: util -- basic utility classes, routines, and definitions, used all over. math -- mathematical and numerical analysis classes and functions. time -- date and time classes. file -- file and directory routines. cgi -- some classes for Web apps using the Common Gateway Interface. sql -- fairly uniform interface to several SQL database systems. astro -- astronomy routines. calendar -- classes representing the world's major calendars. mmbase -- foundation for system-specific multimedia applications. graphics2d -- a 2-D graphics system. input -- keyboard, mouse, and joystick/gamepad input. REQUIREMENTS In modern Linux distributions the required tools and libraries are available as packages in the standard repositories. I've listed the package names for Ubuntu where they are not obvious. These are generally the same for Debian, Fedora, etc. For Windows (and Mac, as far as I know) you will need to obtain them individually. I've tried to provide useful URLs for this purpose as well as for additional documentation and information. Build system: My current build system uses CMake (www.cmake.org). You will also want cmake-qt-gui and/or cmake-curses-gui. Previously I used SCons (www.scons.org). I've left the SCons scripts in the repository, but haven't kept them up to date. Libraries: General: boost (www.boost.org, libboost-dev) -- Near-standard C++ libraries. Now that the boost smart pointers and array are incorporated in std::tr1, and modern C++ implementations include this, Boost is only required for random and bind in the math library. SQL: Any or all of these libraries may be used, as desired: SQLite (www.sqlite.org, libsqlite3-dev) -- Excellent embedded database system. PostgreSQL (www.postgresql.org, libpq-dev) -- Advanced database system. MySQL (www.mysql.org, libmysqlclient-dev) -- High performance database system. CGI: This is optional: FastCGI (www.fastcgi.com, libfcgi-dev) -- Extension of CGI protocol. Use together with Apache mod_fcgid or whatever your HTTP server needs. Graphics & Input: SDL (www.libsdl.org, libsdl-dev, libsdl-image1.2-dev) -- Simple Directmedia Layer, a cross-platform multimedia library. Required for mmbase, input, and graphics2d. NOTE: For Windows, this needs to be built with statically-linked runtime library (Properties->C/C++->CodeGeneration->Runtime Library): /MT or /MTd. PNG (www.libpng.org, libpng-dev) and JPEG (www.ijg.org, libjpeg-dev) -- Optional. Used by graphics2d for creation of image files. Freetype (www.freetype.org, libfreetype6-dev) -- Optional. Used by graphics2d for rendering text. CWiiD (abstrakraft.org/cwiid, libcwiid-dev) (Linux) or WiiYourself! (wiiyourself.gl.tter.org) (Windows) -- Optional. Used by input for support of Wii remote controller. Astronomy & Calendar: JPL Planetary and Lunar Ephemerides (http://iau-comm4.jpl.nasa.gov/access2ephs.html) -- Data files needed for many of the astronomical and calendric computations. DE405 and DE406 are the ones currently used, but DE200 is included in tests. The tests currently expect the big-endian binary files provided by JPL, named as follows: astrodata/JPL_DExxx.be, where xxx = 200, 405, and 406, and the .be extension stands for big-endian. BUILD INSTRUCTIONS CMake: 1) If you don't want to build all of the EpsilonDelta libraries, edit CMakeLists.txt to change the libraries and tests lists. 2) mkdir build cd build 3) cmake .. 4) ccmake .. or cmake-gui .. These provide interfaces where you can set various options. In particular, you can specify which of the optional libraries to use. You can also provide paths to these libraries if CMake was unable to find them. (On Linux CMake can usually find them if they are in the standard locations. On Windows you will probably need to help out CMake.) Finally, you can also set CMAKE_BUILD_TYPE to Debug, which will also allow for testing. 5) CMake has now created makefiles or IDE project files, depending on the platform. (Note that cmake has a -G option which allows you to specify a target.) So you can type "make" or run the IDE to build the libraries and test programs. TESTS Tests programs are built in the tests directory, and are designed to run from a terminal (a.k.a. console). Most of them are straightforward: simply run TestUtilLib, for example and make sure it reports that all tests passed. (If not, search the output for "FAILED" and investigate further.) A few tests are special, requiring some setup. Please read the "README.txt" files in the test subdirectories for details.
About
C++ classes and routines: general, math, astronomy, calendars, games
Resources
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE
Unknown
license.txt
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published