Remove unneeded files

pull/6/head
Hleb Valoshka 2020-01-13 22:53:05 +03:00
parent 908daf95cf
commit c1ac166ecc
1231 changed files with 0 additions and 422703 deletions

View File

@ -1,83 +0,0 @@
version: 1.7.0-dev-{build}
only_commits:
files:
- src/
- .appveyor.yml
- CMakeLists.txt
pull_requests:
do_not_increment_build_number: true
# Start builds on tags only (GitHub and BitBucket)
skip_non_tags: false
# Do not build feature branch with open Pull Requests
skip_branch_with_pr: true
# Even with `skip_branch_with_pr: true` appveyor builds that branch
# for the first time.
branches:
only:
- master
artifacts:
- path: '**/celestia-*.exe'
name: win
# Build worker image (VM template)
image: "Visual Studio 2015"
# clone directory
clone_folder: c:\projects\celestia
# set clone depth
clone_depth: 1
# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform:
- x86
environment:
Qt5_DIR: 'C:\Qt\5.10\msvc2015'
PATH: '%Qt5_DIR%\bin;%PATH%'
# scripts that run after cloning repository
init:
- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %platform%
install:
- cd c:\tools\vcpkg
- git pull
- vcpkg install libpng:x86-windows
- vcpkg install gettext:x86-windows
- vcpkg install libjpeg-turbo:x86-windows
- vcpkg remove lua:x86-windows
- vcpkg install luajit:x86-windows
- vcpkg install fmt:x86-windows
- vcpkg install glew:x86-windows
- vcpkg install eigen3:x86-windows
- vcpkg install freetype:x86-windows
- vcpkg install cspice:x86-windows
- vcpkg integrate install
- cd %APPVEYOR_BUILD_FOLDER%
build_script:
- cmd: >-
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=%Qt5_DIR% -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TTF=ON ..
cmake --build . --config Release -- /maxcpucount:4 /nologo
#on_failure:
#- type "c:\projects\celestia\build\CMakeFiles\CMakeOutput.log"
#- type "c:\projects\celestia\build\CMakeFiles\CMakeError.log"
#- type "c:\projects\celestia\build\CMakeCache.txt"
# build cache to preserve files/folders between builds
cache: c:\tools\vcpkg\installed\

View File

@ -1,47 +0,0 @@
AccessModifierOffset: -3
AlignEscapedNewlinesLeft: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortFunctionsOnASingleLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackParameters: false
BreakBeforeBinaryOperators: false
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 80
CommentPragmas: ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 0
Cpp11BracedListStyle: false
DerivePointerBinding: false
IndentCaseLabels: false
IndentFunctionDeclarationAfterType: false
IndentWidth: 4
Language: Cpp
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 100
PenaltyBreakComment: 100
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 100
PenaltyExcessCharacter: 1
PenaltyReturnTypeOnItsOwnLine: 20
PointerBindsToType: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
Standard: Cpp11
TabWidth: 4
UseTab: Never

10
.gitmodules vendored
View File

@ -1,10 +0,0 @@
[submodule "thirdparty/Eigen"]
path = thirdparty/Eigen
url = https://github.com/eigenteam/eigen-git-mirror
branch = branches/3.3
[submodule "thirdparty/fmt"]
path = thirdparty/fmt
url = https://github.com/fmtlib/fmt
[submodule "thirdparty/Spice"]
path = thirdparty/Spice
url = https://github.com/OpenSpace/Spice

View File

@ -1,64 +0,0 @@
dist: xenial
osx_image: xcode11.2
language: cpp
sudo: true
git:
depth: 1
quiet: true
notifications:
email: false
os:
- linux
- osx
env:
- LUA=jit-5.1
- LUA=5.2
- LUA=5.3
matrix:
exclude:
- os: osx
env: LUA=jit-5.1
- os: osx
env: LUA=5.2
- os: linux
env: LUA=5.2
before_script:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt install -y liblua${LUA}-dev; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then brew install glew --build-from-source; brew link gettext --force; fi
- mkdir build
- cd build
script:
- cmake -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TTF=ON ..
- make -j $(nproc || echo 4)
addons:
apt:
packages:
- libeigen3-dev
- libglew-dev
- libtheora-dev
- libjpeg-dev
- libpng-dev
- libglu1-mesa-dev
- qtbase5-dev
- qtbase5-dev-tools
- libqt5opengl5-dev
- libfreetype6-dev
homebrew:
packages:
- eigen
- cspice
- fmt
- jpeg
- gettext
- libpng
- lua
- qt5
- freetype

325
INSTALL
View File

@ -1,325 +0,0 @@
Basic installation instructions
-------------------------------
Stable version installation on Unix-like systems (e.g. GNU/Linux or *BSD):
* Check your OS repository for already built packages.
* Check https://celestia.space/download.html.
* Check https://bintray.com/celestia if it contains packages for your system.
Stable version installation on Windows and OSX:
* Check https://celestia.space/download.html.
Development snapshots installation on Unix-like systems:
* On Debian 10 and derived systems:
curl https://download.opensuse.org/repositories/home:/munix9:/unstable/Debian_10/Release.key | sudo apt-key add -
echo "deb https://download.opensuse.org/repositories/home:/munix9:/unstable/Debian_10/ ./" | sudo tee /etc/apt/sources.list.d/celestia-obs.list
sudo apt update && sudo apt install celestia
* On Ubuntu 18.04 and derived systems:
curl https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_18.04/Release.key | sudo apt-key add -
echo "deb https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_18.04/ ./" | sudo tee /etc/apt/sources.list.d/celestia-obs.list
sudo apt update && sudo apt install celestia
* On openSUSE Leap 15.1:
sudo zypper addrepo https://download.opensuse.org/repositories/home:munix9:unstable/openSUSE_Leap_15.1/home:munix9:unstable.repo
sudo zypper refresh
sudo zypper install celestia
* On openSUSE Tumbleweed:
sudo zypper addrepo https://download.opensuse.org/repositories/home:munix9:unstable/openSUSE_Tumbleweed/home:munix9:unstable.repo
sudo zypper refresh
sudo zypper install celestia
* On other GNU/Linux distributions:
Try experimental portable AppImage (see https://github.com/CelestiaProject/Celestia/issues/333):
wget https://github.com/munix9/Celestia/releases/download/continuous/celestia-qt-continuous-x86_64.AppImage
chmod 755 celestia-qt-continuous-x86_64.AppImage
Optionally create a portable, version-independent $HOME directory in the
same folder as the AppImage file:
mkdir celestia-qt.home
Development snapshots installation on Windows:
* https://bintray.com/celestia/celestia-builds/snapshots contains
official 32/64 bit development snapshots for Windows.
To build from sources please follow instructions below.
Common building instructions
----------------------------
We recommend using a copy of our git repository to build your own installation
as it contains some dependencies required for building.
To create the copy install git from your OS distribution repository or from
https://git-scm.com/ and then execute the following commands:
1. git clone https://github.com/CelestiaProject/Celestia
2. cd Celestia
3. git submodule update --init
If you have fmtlib and Eigen3 installed from other sources (OS repository or
vcpkg) or don't want to build Celestia with SPICE support then you can skip the 3rd step.
Celestia Install instructions for UNIX
--------------------------------------
First you need a C++ compiler able to compile C++11 code (GCC 4.8.1 or later,
Clang 3.3 or later), CMake, GNU Make or Ninja.
Then you need to have the following devel components installed before Celestia
will build: OpenGL, glu, glew, theora, libjpeg, and libpng. Optional packages
are fmtlib, Eigen3, Qt5, Gtk2 and glut.
For example on modern Debian-derived system you need to install the following
packages: libglew-dev, libjpeg-dev, libpng-dev, libtheora-dev, libgl1-mesa-dev,
libglu1-mesa-dev. Them you may want to install libeigen3-dev, libfmt-dev;
qtbase5-dev, qtbase5-dev-tools and libqt5opengl5-dev if you want to build with
Qt5 interface; libgtk2.0-dev and libgtkglext1-dev to build with legacy Gtk2
interface; or freeglut3-dev to build with glut interface.
OK, assuming you've collected all the necessary libraries, here's
what you need to do to build and run Celestia:
mkdir build
cd build
cmake .. -DENABLE_INTERFACE=ON [*]
make
sudo make install
[*] INTERFACE must be replaced with one of "QT", "GTK", or "GLUT".
Three interfaces are available for Celestia on Unix-like systems:
- GLUT: minimal interface, barebone Celestia core with no toolbar or menu...
Disabled by default.
- GTK: A full interface with minimal dependencies, adds a menu, a configuration
dialog some other utilities. Legacy interface, may lack some new
features. Disabled by default.
- QT: A full interface with minimal dependencies, adds a menu, a configuration
dialog some other utilities, bookmarks... A preferred option. Enabled by
default, No need to pass -DENABLE_QT=ON.
Starting with version 1.3.1, Lua is the new scripting engine for Celestia,
the old homegrown scripting engine is still available. By default Lua support
is enabled, it can be disabled passing -DENABLE_CELX=OFF to cmake.
Versions 5.1, 5.2 or 5.3 of Lua library is required. On Debian-based systems
either one of liblua5.3-dev, liblua5.2-dev or liblua5.1-dev should be installed
to have Lua support.
To check wether your Celestia has been compiled with Lua support, go to File
-> Open. If you have '*.cel *.celx' in the filter box, then Lua is available
otherwise the filter will contain only '*.cel'.
The GtkGLExt widget that is required in order to build Celestia with Gtk+ may
be downloaded from http://gtkglext.sf.net. Note that depending in your
distribution you may also need other packages containing various files needed
by the build process. For instance, to build under SUSE Linux, you will also
need to have the gtk-devel package installed.
Celestia will be installed into /usr/local by default, with data files landing
in /usr/local/share/celestia, but you may specify a new location with the
following option to cmake: -DCMAKE_INSTALL_PREFIX=/another/path.
Celestia Install instructions for Windows (MSVC)
------------------------------------------------
Currently to build on Windows you need a Visual Studio 2015 or later, CMake
and vcpkg (*).
Install required packages:
vcpkg install libpng libjpeg-turbo gettext lua fmt glew eigen3
Install optional packages:
vcpkg install qt5 luajit
Configure and build 32-bit version:
md build32
cd build32
cmake -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake ..
cmake --build . -- /maxcpucount:N /nologo
Configure and build 64-bit version:
md build64
cd build64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake ..
cmake --build . -- /maxcpucount:N /nologo
Instead of N in /maxcpucount pass a number of CPU cores you want to use during
a build.
If you have Qt5 installed using official Qt installer, then pass parameter
CMAKE_PREFIX_PATH to cmake call used to configure Celestia, e.g.
cmake -DCMAKE_PREFIX_PATH=C:\Qt\5.10.1\msvc2015 ..
Not supported yet:
- automatic installation using cmake
- using Ninja instead of MSBuild
Notes:
* vcpkg installation instructions are located on
https://github.com/Microsoft/vcpkg
Celestia Install instructions for Windows (MINGW64), qt-only
------------------------------------------------------------
It is recommended to build the source with MSYS2
https://www.msys2.org/ .
Do the following in the MINGW64 shell (mingw64.exe).
Install required packages:
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel
pacman -S git
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-freeglut mingw-w64-x86_64-glew mingw-w64-x86_64-lua
pacman -S mingw-w64-x86_64-libtheora mingw-w64-x86_64-mesa
Install optional packages:
pacman -S mingw-w64-x86_64-fmt mingw-w64-x86_64-eigen3 mingw-w64-x86_64-luajit
Clone the source and go to the source directory.
Configure and build:
mkdir build
cd build
cmake .. -G"MSYS Makefiles" -DENABLE_WIN=OFF
mingw32-make.exe -jN
Instead of N, pass a number of CPU cores you want to use during a build.
To build in debug configuration, you have to use lld linker instead of the
default linker in gcc.
pacman -S mingw-w64-x86_64-lld mingw-w64-x86_64-lldb
Follow by:
cmake .. -G "MSYS Makefiles" -DENABLE_WIN=OFF -DCMAKE_CXX_FLAGS='-fuse-ld=lld' -DCMAKE_BUILD_TYPE=Debug
Then do mingw32-make.exe.
Celestia Install instructions for macOS, qt-only
--------------------------------------
Currently Qt frontend is the only available option for macOS users building
Celestia from source.
Install the latest Xcode:
You should be able to get Xcode from the Mac App Store.
Install Homebrew
Follow the instructions on https://brew.sh/
Install required packages:
brew install cmake cspice fmt gettext libpng lua qt5 jpeg eigen
Build GLEW from source (Homebrew's precompiled GLEW has wrong linking path):
brew install glew --build-from-source
Clone the source and go to the source directory.
Configure and build:
mkdir build
cd build
cmake -DENABLE_SPICE=ON ..
make -jN
Instead of N, pass a number of CPU cores you want to use during a build.
Install:
make install
Celestia will be installed into /usr/local by default, with data files landing
in /usr/local/share/celestia, but you may specify a new location with the
following option to cmake: -DCMAKE_INSTALL_PREFIX=/another/path.
To build the application bundle, pass -DNATIVE_OSX_APP=ON to the cmake command,
the application bundle will be located in the "build" folder that you previously
created.
Supported CMake parameters
--------------------------
List of supported parameters (passed as -DPARAMETER=VALUE):
| Parameter | TYPE | Default | Description
+----------------------+------+---------+--------------------------------------
| CMAKE_INSTALL_PREFIX | path | * | Prefix where to install Celestia
| CMAKE_PREFIX_PATH | path | | Additional path to look for libraries
| LEGACY_OPENGL_LIBS | bool | **OFF | Use OpenGL libraries not GLvnd
| ENABLE_CELX | bool | ON | Enable Lua scripting support
| ENABLE_SPICE | bool | OFF | Enable NAIF kernels support
| ENABLE_NLS | bool | ON | Enable interface translation
| ENABLE_GLUT | bool | OFF | Build simple Glut frontend
| ENABLE_GTK | bool | **OFF | Build legacy GTK2 frontend
| ENABLE_QT | bool | ON | Build Qt frontend
| ENABLE_WIN | bool | ***ON | Build Windows native frontend
| ENABLE_THEORA | bool | **ON | Support video capture to OGG Theora
| ENABLE_TOOLS | bool | OFF | Build tools for Celestia data files
| ENABLE_TTF | bool | ****OFF | Build with FreeType support
| NATIVE_OSX_APP | bool | OFF | Support native OSX data paths
Notes:
* /usr/local on Unix-like systems, c:\Program Files or c:\Program Files (x86)
on Windows depending on OS type (32 or 64 bit) and build configuration.
This option effect is overriden by NATIVE_OSX_APP.
** Ignored on Windows systems.
*** Ignored on Unix-like systems.
**** This option support is not finished yet.
Parameters of type "bool" accept ON or OFF value. Parameters of type "path"
accept any directory.
On Windows systems two additonal options are supported:
- CMAKE_GENERATOR_PLATFORM - can be set to x64 on 64-bit Windows to build
64-bit Celestia. To build 32-bit Celestia it should be omitted.
- CMAKE_TOOLCHAIN_FILE - location of vcpkg.cmake if vcpkg is used.
Executable files
----------------
As said prevously Celestia provides several user interfaces, accordingly with
interfaces it's built with it has different executable files installed to
${CMAKE_INSTALL_PREFIX}/bin (e.g. with default CMAKE_INSTALL_PREFIX on
Unix-like systems they are installed into /usr/local/bin).
Here the table which provides executable file names accordingly to interface:
| Interface | Executable name
+-----------+-----------------
| Qt5 | celestia-qt
| GTK | celestia-gtk
| GLUT | celestia-glut
| WIN | celestia-win

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>celestia-qt</string>
<key>CFBundleIconFile</key>
<string>celestia</string>
<key>CFBundleIdentifier</key>
<string>org.celestia.Celestia</string>
<key>CFBundleName</key>
<string>Celestia</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>LSMinimumSystemVersion</key>
<string>@CMAKE_OSX_DEPLOYMENT_TARGET@</string>
<key>CFBundleDisplayName</key>
<string>@DISPLAY_NAME@</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>true</string>
<key>Application Category</key>
<string>Education</string>
</dict>
</plist>

466
README
View File

@ -1,466 +0,0 @@
***************************************************************************
* Celestia *
* *
* A real-time space simulation that lets you experience our universe in *
* three dimensions. *
* *
* Copyright (c) 2001-2020, Celestia Development Team *
* *
*-------------------------------------------------------------------------*
* Celestia web site: https://celestia.space *
* *
* Celestia documentation: *
* http://celestiamotherlode.net/catalog/documentation.html *
* Celestia WikiBook: http://en.wikibooks.org/wiki/Celestia *
* *
* Celestia forums: https://celestia.space/forum/ *
* *
***************************************************************************
CONTENTS
--------
License
Getting Started
Mouse, Keyboard & Joystick Controls
Star & Solar System Browser
Selecting Objects by Name
Known Issues
User Modifiable Elements
Celestia Resources
Building From Sources
Contributions
Acknowledgements
LICENSE
-------
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program 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 General Public License for more
details, which you should have received along with this program (filename:
COPYING). If not, request a copy from:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307
USA
GETTING STARTED
---------------
Celestia will start up in a window, and if everything is working correctly,
you'll see Earth in front of a field of stars. Displayed on-screen, is some
information about your target (Earth), your speed, and the current time
(Universal Time, so it'll probably be a few hours off from your computer's
clock).
Right drag the mouse to orbit Earth and you might see the Moon and some
familiar constellations. Left dragging the mouse changes your orientation
also, but the camera rotates about its center instead of rotating around
Earth. Rolling the mouse wheel will change your distance to Earth--you can
move light years away, then roll the wheel in the opposite direction to get
back to your starting location. If your mouse lacks a wheel, you can use the
Home and End keys instead.
When running Celestia, you will usually have some object selected. Currently,
it's Earth, but it could also be a star, moon, spacecraft, galaxy, or some
other object. The simplest way to select an object is to click on it. Try
clicking on a star to select it. The information about Earth is replaced with
some details about the star. Press G (or use the Navigation menu), and you'll
zoom through space toward the selected star. If you press G again, you'll
approach the star even closer.
Press H to select our Sun, and then G to go back to our Sun. Right click on
the sun to bring up a menu of planets and other objects in the solar system.
After selecting a planet from the menu, hit G again to travel toward it. Once
there, hold down the right mouse button and drag to orbit the planet.
The Tour Guide is a list of some of the more interesting objects you can visit
in Celestia. Select the Tour Guide option in the Navigation menu to display
the Tour Guide window. Choose a destination from the list, click the Goto
button, and you're off.
That covers the very basics. For a more in-depth look at Celestia and the
controls available to you, download the "Celestia User's Guide" (written by
Frank Gregorio), available in several languages, from:
http://celestiamotherlode.net/catalog/documentation.html
This web page also includes links to the Celestia README file translated into
Japanese.
MOUSE, KEYBOARD & JOYSTICK CONTROLS
-----------------------------------
See the included file: controls.txt OR use the Help menu to display the Controls
list.
STAR & SOLAR SYSTEM BROWSER
-------------------------------------------
The Navigation menu contains 'Solar System Browser' and 'Star Browser'
options.
STAR BROWSER
By default, the Star Browser window displays a table of the 100 nearest stars,
along with their Distance, Apparent and Absolute Magnitude, and Type. Clicking
on the column headers will sort the stars. The table is not continuously
updated, so if you travel to another star, you should press the Refresh button
to update the table for your current position. The radio buttons beneath the
table let you switch between viewing a list of Nearest, Brightest, or 'With
planets' stars. As with the solar system browser, clicking on any star name
in the table will select it. Use this feature along with the Center and Go
To buttons to tour the stars visible from any night sky in the galaxy.
SOLAR SYSTEM BROWSER
The Solar System Browser displays a window with a tree view of all the objects
in the nearest solar system (if there is one within a light year of your current
position.) Clicking on the name of any object in the window will select it.
You can then use the Center or Go To buttons to display that object in the main
Celestia window.
SELECTING OBJECTS BY NAME
-------------------------
Celestia provides several ways to select an object by name...
1. Choose 'Select Object' from the Navigation menu, type in the object
name, and click OK.
2. Press Enter, type in the entire object name, and press Enter again.
3. Press Enter, type in the first few characters of the object name,
press the Tab key to move through the displayed listing until the
object is highlighted, then press Enter again.
You can use common names, Bayer designations or catalog numbers for stars.
Celestia currently supports the HIP, HD and SAO catalogs. Catalog numbers must
be entered with a space between the prefix and the catalog number.
KNOWN ISSUES
------------
For up-to-the-minute answers to some common problems encountered when running
Celestia, please view either the FAQ in the Help menu or take a look at the
"Celestia User's FAQ" located on the Celestia User's Forum:
https://celestia.space/forum/
USER MODIFIABLE ELEMENTS
------------------------
You can modify how Celestia starts up each time you run it, by defining your
own start-up settings. Simply open the file "start.cel" in a plain text
editor and follow the in-file instructions. Also, view the celestia.cfg file
in a plain text editor to see additional settings.
Celestia allows you to easily add real, hypothetical, or fictional objects
by creating new catalog files. It is *not* recommended that you alter the
built-in data files; nearly all desired modifications and additions can be
made by placing new catalog files in Celestia's extras folders. There are three
types of catalog files:
- ssc (solar system catalog: planets, moons, spacecraft, etc.)
- stc (star catalog)
- dsc (deep sky catalog: galaxies, star clusters, and nebulae)
All three types of catalog file are text files that can be updated with your
favorite text editing program.
CELESTIA RESOURCES
------------------
Celestia Web Site:
https://celestia.space
Celestia User Forums:
https://celestia.space/forum/
Selden's List of Resources for Celestia:
http://www.lepp.cornell.edu/~seb/celestia/
Celestia WikiBook:
http://en.wikibooks.org/wiki/Celestia
Celestial Matters Website and Forums:
http://www.celestialmatters.org/
http://forum.celestialmatters.org/
Celestia Motherlode:
http://www.celestiamotherlode.net/
Celestia Cource Repository:
https://github.com/CelestiaProject/Celestia
Celestia Binary Repository:
https://bintray.com/celestia
Celestia Bug Tracking:
https://github.com/CelestiaProject/celestia/issues
Celestia Feature Requests:
https://github.com/CelestiaProject/celestia/issues
Celestia Discord Server:
https://discordapp.com/invite/WEWDcJh
Celestia SubReddit:
https://www.reddit.com/r/Celestiasoftware/
BUILDING FROM SOURCES
---------------------
See file INSTALL for building instructions.
CONTRIBUTIONS
-------------
Authors
-------
Chris Laurel <claurel@gmail.com>
Clint Weisbrod <cweisbrod@cogeco.ca>
Fridger Schrempp <t00fri@mail.desy.de>
Bob Ippolito <bob@redivi.com>
Christophe Teyssier <chris@teyssier.org>
Hank Ramsey <hramsey@users.sourceforge.net>
Grant Hutchison <grant.celestia@xemaps.com>
Pat Suwalski <pat@suwalski.net>
Toti
Da Woon Jung <dirkpitt2050@users.sf.net>
Vincent Giangiulio <vince.gian@free.fr>
Andrew Tribick
Hleb Valoshka
Li Linfeng
Contributors
------------
Deon Ramsey ........... original GTK1 interface
Christopher Andre ..... Eclipse Finder
Colin Walters ......... Endianness fixes
Peter Chapman ......... Orbit path rendering changes
James Holmes ..........
Harald Schmidt ........ Lua scripting enhancements, bug fixes
Nils Larsson .......... Qt enhancements
Documentation
-------------
Frank Gregorio ........ Celestia User's Guide
Hitoshi Suzuki ........ Japanese README translation
Christophe Teyssier ... DocBook and HTML conversion of User's Guide
Diego Rodriguez ....... Acrobat conversion of User's Guide
Don Goyette ........... CEL Scripting Guide
Harald Schmidt ........ Celx/Lua Scripting Guide
Scientific Data Base
--------------------
# Grant Hutchison
Supplied the correct orientations for the major planets, their moons, and a
number of asteroids and also worked on these data files:
Solarsys.ssc, nearstars.stc, extrasolar.ssc, extrasolar.stc, earth_locs.ssc
# Fridger Schrempp
Complete NGC/IC galaxy database + local group galaxies (galaxies.dsc)
Data base on globular clusters (globulars.dsc)
Data base on visual and spectroscopic binaries (visualbins.stc,
spectbins.stc)
World-capitals.ssc
Asterisms.dat
# Andrew Tribick
Significant update of the star.dat base based on new HIP Reduction of the
Raw data, Floor van Leeuwen, 2007.
CHARM2 stellar radii (charm2.stc)
Texture maps
------------
# The new textures repository in their original quality can be found here:
https://www.deviantart.com/celestiaofficial/gallery/68412929/Release-Textures
In particular, there are textures of Jupiter, Saturn, Phobos and Deimos.
# Most of the old maps are from David Seal's site: http://maps.jpl.nasa.gov/.
Some of these maps were modified, with fictional terrain added to fill in
gaps. The Galileo spacecraft model is also from David Seal's site (though
it was converted from Inventor to 3DS format.)
# The Mars, Neptune, and Uranus textures and Mars bump maps are all from James
Hastings-Trew's collection.
# Grant Hutchison
Saturn's rings were built by Grant Hutchison from Cassini imaging.
The Eros map is a shaded relief generated from the NEAR laser rangefinder.
# Jens Meyer
Dione and Rhea are USGS maps colored and modified by Jens Meyer.
The Moon map is based on data from PDS Map-A-Planet at with colors from
Mark Robinson.
# Fridger Schrempp
'Available data' Pluto and Charon textures using maps created by Marc Buie
at Lowell Observatory. Buie's maps were generated from photometric data
gathered during six years of mutual occultations of Pluto and Charon.
Titan's cloud texture in natural colors and its surface map at near-infrared
wavelength. They are based on resources available from the imaging site
(Ciclops) of the Cassini mission http://ciclops.org/
The Phoebe base texture was created from the cylindrical map published by
the Cassini imaging team
(http://photojournal.jpl.nasa.gov/catalog/PIA07775)
The Tethys textures are based on the Oct 2008 Ciclops map
(http://photojournal.jpl.nasa.gov/catalog/PIA11116)
The Iapetus texture was created from the Oct 2008 Ciclops map
(http://photojournal.jpl.nasa.gov/catalog/PIA11116)
The Lunar topography and bump maps, using Clementine laser altimeter data,
merged in the polar regions with topographic data from Clementine 750 nm
oblique and nadir images.
The Mercury map was created from a combination of Mariner 10 imaging
with recent MESSENGER WAC images from the first two flybys, as collected
and reprojected by Steve Albers.
# Phil Stooke
Proteus, Janus, Prometheus and Epimetheus maps are from Phil Stooke.
The Ida and Gaspra photomosaic maps are by Phil Stooke.
# Venus's clouds and the textures for Ganymede, Callisto and Saturn are from
Björn Jónsson.
# Venus's surface is a copyright-free NASA image, prepared from Magellan radar
data. The original is available at
http://www.solarviews.com/cap/venus/venmap.htm
# The Earth texture was created by NASA using data from the MODIS instrument
aboard the Terra satellite.
# Steve Albers
The Io and Europa maps are by Steve Albers.
# The textures for the Uranian satellites were created by Ivan Rivera from JPL
data. His Celestia page is: http://bruckner.homelinux.net/celestia.html
# The Hyperion map is a photomosaic assembled by Phil Stooke and
colored by Jens Meyer.
# Amalthea is a shaded relief map by Phil Stooke, colored by Wm. Robert Johnston
(http://www.johnstonsarchive.net/spaceart/cylmaps.html), and further modified
by Jens Meyer and Grant Hutchison.
# The asteroid.jpg texture was created by Paul Roberts.
# The textures for the five classes of extrasolar giant planet were created by
Andrew Tribick.
# CICLOPS
The map of Enceladus is derived from the December 2008 CICLOPS map:
http://ciclops.org/view/5447/Map_of_Enceladus_December_2008
3D Models
---------
# New space bodies models can be found in Greg Friger's 3D Asteroid Catalogue:
https://space.frieger.com/asteroids/
# Models of Mars Global Surveyor and Mars Odyssey were created by Shrox:
http://www.shrox.com/
# The Cassini and Huygens models are by Jack Higgins:
http://homepage.eircom.net/~jackcelestia/
# The 3D model of ISS is a deconstruction of Andrew Farnaby's
complete ISS model with textures by Bob Hundley. The model
represents the ISS as of June 2008 and is a modification of
the model that can be found here:
http://www.celestiamotherlode.net/catalog/show_addon_details.php?addon_id=1199
ISS model of June 2008 (with Kibo) by krisci3 (modified and
converted in order to work with JPG by Ulrich Dickmann, a.k.a.
Adirondack)
# 3D asteroid models of Toutatis, Kleopatra, Geographos, 1998 KY26, Bacchus,
Castalia and Golevka are courtesy of Scott Hudson, Washington State
University.
# 3D models of Amalthea, Janus, Epimetheus, Prometheus, Pandora,
Hyperion, Larissa, Proteus, Vesta, Ida, Gaspra and Halley are derived from
Phil Stooke's Cartography of Non-Spherical Worlds.
# The 3D model of Eros was prepared from the NEAR laser rangefinder shape model.
# The Phoebe mesh was designed by Jerry Gardner aka Jestr, jestr@ntlworld.com,
based on Phoebe's bumpy topography display from Cassini,
http://photojournal.jpl.nasa.gov/catalog/PIA06070
Libraries
---------
# This software is based in part on the work of the Independent JPEG Group.
# Some versions of Celestia may use the SPICE system for spacecraft and
planetary information, developed by Caltech/JPL under contract to NASA.
# Many cylindrical projections of photographs were performed by Fridger
Schrempp with Matthew Arcus 'mmps' software,
http://www.users.globalnet.co.uk/~arcus/mmps/
# The lower resolution textures were all converted from their higher resolution
versions using Gimp.
# The star database (stars.dat) was derived from the ESA's HIPPARCOS data set.
# Constellation boundaries are drawn from Davenhall & Leggett's "Catalogue of
Constellation Boundary Data":
http://cdsweb.u-strasbg.fr/viz-bin/ftp-index?/ftp/cats/VI/49
Other work
----------
# Selden Ball deserves a special mention for suffering more prerelease versions
finding more bugs, and giving more feedback than anyone else.
# Christophe Campos aka ElChristou created the splash screen for Celestia.
# The MacOS X icon was designed by Chris Alford: http://www.chrisalford.com/
# The txf font format used by Celestia was devised by Mark Kilgard.
ACKNOWLEDGEMENTS
----------------
A very big thank you for creating Celestia goes to Chris Laurel who started this
program in the year 2001.
<claurel@gmail.com>
http://www.shatters.net/~claurel/
http://www.shatters.net/celestia/
Special thanks go to all Celestia users who submit bug reports, suggestions, and
fixes. Celestia wouldn't be the program it is today, without their help.
The Celestia Development Team

143
README.md
View File

@ -1,143 +0,0 @@
| **`Release`** | **`Localized`** | **`License`** | **`Contribute`** |
|-------------------|---------------|---------------|---------------|
|[![GitHub release](https://img.shields.io/badge/Release-v1.6.1-blue.svg)](https://celestiaproject.net/download.html) | [![Localization](https://img.shields.io/badge/Localized-85%25-green.svg)](#) | [![License](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://github.com/CelestiaProject/Celestia/blob/master/COPYING) | [![Contribute](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg)](#contributing) |
# Celestia
![Celestia](celestia-logo.png)<br>
**A real-time space simulation that lets you experience our universe in three dimensions.**
**Copyright © 2001-2020, Celestia Development Team**<br>
**Celestia website: https://celestia.space**<br>
**Celestia WikiBook: https://en.wikibooks.org/wiki/Celestia**<br>
**Celestia forums: https://celestia.space/forum/**<br>
**Celestia Discord Server: https://discordapp.com/invite/WEWDcJh**<br>
**Celestia SubReddit: https://www.reddit.com/r/Celestiasoftware/**<br>
**Celestia Archive Repository: https://github.com/Anthony-B-Russo10/Celestia-Archive**
## License
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program 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 General Public License for more details,
which you should have received along with this program (filename: COPYING).
If not, request a copy from:<br>
Free Software Foundation, Inc.<br>
59 Temple Place - Suite 330<br>
Boston, MA 02111-1307<br>
USA
## Getting started
Celestia will start up in a window, and if everything is working correctly,
you'll see Earth in front of a field of stars. Displayed on-screen, is some
information about your target (Earth), your speed, and the current time
(Universal Time, so it'll probably be a few hours off from your computer's
clock).
Right drag the mouse to orbit Earth and you might see the Moon and some
familiar constellations. Left dragging the mouse changes your orientation
also, but the camera rotates about its center instead of rotating around
Earth. Rolling the mouse wheel will change your distance to Earth--you can
move light years away, then roll the wheel in the opposite direction to get
back to your starting location. If your mouse lacks a wheel, you can use the
Home and End keys instead.
When running Celestia, you will usually have some object selected. Currently,
it's Earth, but it could also be a star, moon, spacecraft, galaxy, or some
other object. The simplest way to select an object is to click on it. Try
clicking on a star to select it. The information about Earth is replaced with
some details about the star. Press G (or use the Navigation menu), and you'll
zoom through space toward the selected star. If you press G again, you'll
approach the star even closer.
Press H to select our Sun, and then G to go back to our Sun. Right click on
the sun to bring up a menu of planets and other objects in the solar system.
After selecting a planet from the menu, hit G again to travel toward it. Once
there, hold down the right mouse button and drag to orbit the planet.
The Tour Guide is a list of some of the more interesting objects you can visit
in Celestia. Select the Tour Guide option in the Navigation menu to display
the Tour Guide window. Choose a destination from the list, click the Goto
button, and you're off.
That covers the very basics. For a more in-depth look at Celestia and the
controls available to you, download the "Celestia User's Guide" (written by
Frank Gregorio), available in several languages, from:<br>
https://celestia.space/guides.html<br>
This web page also includes links to the Celestia README file translated into
Japanese.
### Star browser
By default, the Star Browser window displays a table of the 100 nearest stars,
along with their Distance, Apparent and Absolute Magnitude, and Type. Clicking
on the column headers will sort the stars. The table is not continuously
updated, so if you travel to another star, you should press the Refresh button
to update the table for your current position. The radio buttons beneath the
table let you switch between viewing a list of Nearest, Brightest, or 'With
planets' stars. As with the solar system browser, clicking on any star name
in the table will select it. Use this feature along with the Center and Go
To buttons to tour the stars visible from any night sky in the galaxy.
### Solar system browser
The Solar System Browser displays a window with a tree view of all the objects
in the nearest solar system (if there is one within a light year of your current
position.) Clicking on the name of any object in the window will select it.
You can then use the Center or Go To buttons to display that object in the main
Celestia window.
### Selecting objects by name
Celestia provides several ways to select an object by name...
1. Choose 'Select Object' from the Navigation menu, type in the object name, and click OK.
2. Press Enter, type in the entire object name, and press Enter again.
3. Press Enter, type in the first few characters of the object name,
press the Tab key to move through the displayed listing until the object is highlighted,
then press Enter again.
You can use common names, Bayer designations or catalog numbers for stars.
Celestia currently supports the HIP, HD and SAO catalogs. Catalog numbers must
be entered with a space between the prefix and the catalog number.
### Known issues
For up-to-the-minute answers to some common problems encountered when running
Celestia, please view either the FAQ in the Help menu or take a look at the
"Celestia User's FAQ" located on the Celestia User's Forum:
https://celestia.space/forum/
### User modifiable elements
You can modify how Celestia starts up each time you run it, by defining your
own start-up settings. Simply open the file "start.cel" in a plain text
editor and follow the in-file instructions. Also, view the celestia.cfg file
in a plain text editor to see additional settings.
Celestia allows you to easily add real, hypothetical, or fictional objects
by creating new catalog files. It is *not* recommended that you alter the
built-in data files; nearly all desired modifications and additions can be
made by placing new catalog files in Celestia's extras folders. There are three
types of catalog files:
* ssc (solar system catalog: planets, moons, spacecraft, etc.)
* stc (star catalog)
* dsc (deep sky catalog: galaxies, star clusters, and nebulae)
All three types of catalog file are text files that can be updated with your
favorite text editing program.
### Building from sources
See instructions in file [INSTALL](INSTALL).
## Contributions
| **`Authors`** | **`Contributors`** | **`Documentation`** | **`Other`** |
|-----------------|---------------------|------------------|-------------------|
| Chris Laurel, Clint Weisbrod, Fridger Schrempp, Bob Ippolito, Christophe Teyssier, Hank Ramsey, Grant Hutchison, Pat Suwalski, Toti, Da Woon Jung, Vincent Giangiulio, Andrew Tribick, Hleb Valoshka, Łukasz Buczyński, Li Linfeng | Deon Ramsey, Christopher Andre, Colin Walters, Peter Chapman, James Holmes, Harald Schmidt, Nils Larsson, Sergey Leonov, Alexell, Dmitry Brant, Janus | Selden Ball, Frank Gregorio, Hitoshi Suzuki, Christophe Teyssier, Diego Rodriguez, Don Goyette, Harald Schmidt | Creators of scientific database, texture maps, 3D models and used libraries, you can see in full README.|
### Contributing
**We welcome feedback, bug reports, and pull requests!**
For pull requests, please stick to the following guidelines:
* Be sure to test your code changes.
* Follow the existing code style (e.g., indents).
* Put a lot of comments into the code, if necessary.
* Separate unrelated changes into multiple pull requests.

View File

@ -1,37 +0,0 @@
AR: Ali Al-Khudair <saudilink@lycos.com>
BG: Atanas Kumbarov <kumbarov@gmail.com>
DE: German Translator Team <celestia-deutsch@gmx.net>
U. Dickmann / C. Lenz / S. Schreiber / A. Wagner
EL: Charis Kouzinopoulos <ckouz@uom.gr>
ES: Guillermo Abramson <abramson@cab.cnea.gov.ar>
FR: Christophe Teyssier <chris@teyssier.org>
Vincent Giangiulio <gvince@sfr.fr>
GL: Xabier Cancela <xabiercs@terra.es>
HU: Székely Zoltán <zoltanszekely@hotmail.com>
IT: Paolo Angeli <pangeli70@virgilio.it>
Mauro Santandrea <mausan66@tiscali.it>
Andrea Pelloni <mc3657@mclink.it>
Vincent Giangiulio <gvince@sfr.fr>
JA: Sui Ota <aqua@aqsp.net>
KO: Jacob Lee <jaeuck@gmail.com>
Seung-Bum Lee <blcktgr73@gmail.com>
LT: Marius Mikalainis <neoromancer@gmail.com>
LV: Jānis Jātnieks <sg30022@lanet.lv>
NL: Myckel Habets <myckel@sdf.lonestar.org>
PL: Michał Trzebiatowski <hippie_1968@hotmail.com>
PT: José Raeiro <zeraeiro@gmail.com>
PT_BR: Luis Gabriel <lgabriel@brazilmail.com>
Igor Borgo <igorborgo@gmail.com>
RO: Oana Radu <oanaradu32@queeq.com>
RU: Sergey Leonov <leserg@ua.fm>
SV: Daniel Nylander <po@danielnylander.se>
Anders Pamdal <anders@pamdal.se>
UK: Serhij Dubyk <dubyk@library.lviv.ua>
Yuri Chornoivan <yurchor@ukr.net>
ZH_CN: Markerz Li <markerzli@gmail.com>
ZH_TW: An-Li Chen<alchen@tam.gov.tw>
I-Yuan Chiang <iychiangg1809@gmail.com>
Lung-Chin Hsieh<lungchin@gmail.com>
Frank Weng<franklin@goodhorse.idv.tw>
Shan-wun Yang<oiseaumer@gmail.com>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,374 +0,0 @@
#************************************************************************
# Celestia Configuration File
#
# This file contains configuration data read by Celestia each time it
# is run. Many of the items may be changed to suit your specific needs
# or requirements. PLEASE make a backup copy of this file before you
# make any changes to it.
#
# To learn more about Celestia, visit the Celestia forums at:
# https://celestia.space/forum/
# or the Celestia web site at: https://celestia.space/
#************************************************************************
Configuration
{
#------------------------------------------------------------------------
# This section contains a list of data files that Celestia uses to load
# information about stars, constellations and locations. DO NOT change
# these file names or the order in which they are listed, unless you
# know exactly what you are doing. Most of these files can be viewed
# with a plain text editor. Discussion about their content and formats
# can be found on the Celestia forums: https://celestia.space/forum/
# If you want to load all your stars from .stc files, you can now comment
# out the StarDatabase entry.
#------------------------------------------------------------------------
StarDatabase "data/stars.dat"
StarNameDatabase "data/starnames.dat"
StarCatalogs [ "data/revised.stc"
"data/extrasolar.stc"
"data/nearstars.stc"
"data/visualbins.stc"
"data/spectbins.stc"
"data/charm2.stc" ]
HDCrossIndex "data/hdxindex.dat"
SAOCrossIndex "data/saoxindex.dat"
GlieseCrossIndex "data/gliesexindex.dat"
SolarSystemCatalogs [ "data/solarsys.ssc"
"data/asteroids.ssc"
"data/comets.ssc"
"data/dwarfplanets.ssc"
"data/outersys.ssc"
"data/minormoons.ssc"
"data/numberedmoons.ssc"
"data/extrasolar.ssc"
"data/eros_locs.ssc"
"data/gaspra_locs.ssc"
"data/ida_locs.ssc"
"data/itokawa_locs.ssc"
"data/merc_locs.ssc"
"data/venus_locs.ssc"
"data/earth_locs.ssc"
"data/mars_locs.ssc"
"data/moon_locs.ssc"
"data/marsmoons_locs.ssc"
"data/jupitermoons_locs.ssc"
"data/saturnmoons_locs.ssc"
"data/uranusmoons_locs.ssc"
"data/neptunemoons_locs.ssc"
"data/ring_locs.ssc"
"data/world-capitals.ssc" ]
DeepSkyCatalogs [ "data/galaxies.dsc"
"data/globulars.dsc"
"data/openclusters.dsc" ]
AsterismsFile "data/asterisms.dat"
BoundariesFile "data/boundaries.dat"
#------------------------------------------------------------------------
# Default star textures for each spectral type
#
# The default textures may be overridden in individual star definitions.
#------------------------------------------------------------------------
StarTextures
{
# This texture will be used for any spectral type not listed
# in this block.
Default "astar.jpg"
O "bstar.*"
B "bstar.*"
A "astar.*"
F "astar.*"
G "gstar.*"
K "gstar.*"
M "mstar.*"
# carbon stars
C "mstar.*"
R "mstar.*" # former subclass of carbon star
N "mstar.*" # former subclass of carbon star
S "mstar.*" # roughly between M and C
# Wolf-Rayet stars
WC "bstar.*"
WN "bstar.*"
# brown dwarfs
L "browndwarf.*"
T "browndwarf.*"
Y "browndwarf.*"
# stellar remnants
WD "astar.jpg"
NeutronStar "astar.jpg"
}
#------------------------------------------------------------------------
# User Interface files ...
#
# Despite their ".cel" file extension, these are not CEL scripts, but
# rather data files that populate controls such as menus and dialog
# boxes.
#
# FavoritesFile
# -------------
# This is where Bookmarks data are stored. The file does not exist until
# you save a Bookmark from within Celestia. You can view this file with
# a plain text editor and if you write CEL scripts, it contains some
# useful information.
#
# DestinationFile
# ---------------
# This is the list of Destinations used in the Tour Guide dialog box,
# accessed via the Navigation Menu. You can edit this file with a plain
# text editor to add your own destinations to the dialog box. The order
# in which the items are listed in the file is the order in which they
# will be listed in the Tour Guide dialog.
#
# Cursor
# ------
# This parameter allows you to select from three cursors, but currently
# only in the Windows version of Celestia ...
# * White crosshair ("crosshair") --> default cursor
# * Inverting crosshair ("inverting crosshair")
# * Standard Windows arrow ("arrow")
#
# The inverting crosshair can be a better choice because it's more
# visible on bright backgrounds. However, should you decide to try this
# cursor, TEST IT CLOSELY. Not all graphics chipsets support an inverting
# cursor, which will cause Windows to fall back to software emulation.
# The emulated cursor interacts with OpenGL applications in unfortunate
# ways, forcing a lot of extra redrawing and cutting by half the frame
# rate on a GeForce2-equipped laptop. So, if you change this, check your
# FPS rates to make sure you haven't kicked Windows into software
# emulation mode.
#------------------------------------------------------------------------
FavoritesFile "favorites.cel"
DestinationFile "guide.cel"
Cursor "crosshair"
#------------------------------------------------------------------------
# Included CEL script files.
#
# The following CEL script files are included in the basic Celestia
# distribution. These script files may be viewed and edited with a
# plain text editor. They may both be modified or replaced to suit your
# specific needs.
#
# InitScript is the CEL script that is automatically run each time
# Celestia is started. The default script (start.cel) travels to Io, one
# of Jupiter's moons.
#
# DemoScript is the CEL script that is run when you press the "d" key
# on your keyboard from within Celestia. The default script (demo.cel)
# takes you on a short tour of some interesting places in our solar
# system.
#
# To learn more about how to use and write CEL scripts and Lua scripts
# in Celestia, please visit the Celestia Scripting forum at:
# http://www.shatters.net/forum/viewforum.php?f=9
#------------------------------------------------------------------------
InitScript "start.cel"
DemoScript "demo.cel"
#------------------------------------------------------------------------
# The 'extras' directory is located under the celestia root directory
# and is used for storing third-party add-ons to Celestia. To learn
# more about Add-Ons for Celestia, visit the Celestia Add-Ons forum at:
# http://www.shatters.net/forum/viewforum.php?f=6
#
# You may specify additional add-on directories by adding additional
# entries, such as the following example shows:
# ExtrasDirectories [ "extras" "myextras1" "myextras2" ]
#
# To specify absolute paths on windows, you either have to use "/" or
# double backslashes to seperate path components. Example:
# ExtrasDirectories [ "D:/celestia-extras" ]
# or
# ExtrasDirectories [ "D:\\celestia-extras" ]
#------------------------------------------------------------------------
ExtrasDirectories [ "extras-standard" "extras" ]
#------------------------------------------------------------------------
# Font definitions.
#
# The following entries define the fonts Celestia will use to display
# text on the display screen. To view the list of fonts available with
# your distribution of Celestia, look in the fonts directory located
# under the Celestia root directory. The default fonts are UTF-8
# compatible in order to display non-English characters.
#
# Font: Used to display all informational text.
# Default: "sans12.txf"
#
# LabelFont: Used to display all label text (objects, locations, etc.).
# Default "sans12.txf"
#
# TitleFont: Used to display object names, messages, and script text.
# Default "sansbold20.txf"
#------------------------------------------------------------------------
Font "sans12.txf"
LabelFont "sans12.txf"
TitleFont "sansbold20.txf"
#------------------------------------------------------------------------
# LogoTexture defines the graphic file to be displayed when Celestia is
# started. The default filename is "logo.png"
#------------------------------------------------------------------------
LogoTexture "logo.png"
#------------------------------------------------------------------------
# FaintestVisibleMagnitude defines the lowest magnitude at which a star
# will be displayed in Celestia. This setting may be adjusted real-time
# via the '[' and ']' keys in Celestia. The default value is 6.0.
#------------------------------------------------------------------------
FaintestVisibleMagnitude 6.0
#------------------------------------------------------------------------
# RotateAcceleration defines the speed at which an object will be
# rotated in Celestia, when using a keypress, such as the left and right
# arrow keys. A higher value will rotate the object quicker, while a
# lower value will cause a slower rotation. The default value is 120.0.
#------------------------------------------------------------------------
RotateAcceleration 120.0
#------------------------------------------------------------------------
# MouseRotationSensitivity defines the speed at which an object will be
# rotated in Celestia, when using the mouse -- press both mouse-buttons
# or Ctrl+LeftMouseButton, and move the mouse left or right. A higher
# value will rotate the object quicker, while a lower value will cause
# a slower rotation. A value of 0.0 (zero) will disable this particluar
# feature. The default value is 1.0.
#------------------------------------------------------------------------
MouseRotationSensitivity 1.0
#------------------------------------------------------------------------
# ReverseMouseWheel performs a change of command rotates
# the mouse wheel on the opposite. The default value is false.
#------------------------------------------------------------------------
# ReverseMouseWheel true
#------------------------------------------------------------------------
# The following parameter is used in Lua (.celx) scripting.
#
# ScriptScreenshotDirectory defines the directory where screenshots
# are to be stored. The default value is "", i.e. Celestia's
# installation directory.
#------------------------------------------------------------------------
ScriptScreenshotDirectory ""
#------------------------------------------------------------------------
# CELX-scripts can request permission to perform dangerous operations,
# such as reading, writing and deleting files or executing external
# programs. If granted, a malicious script could use this to destroy
# data or compromise system security.
# The following parameter determines what Celestia does upon such
# requests:
# "ask": ask the user if he want's to allow access (default)
# "allow": always allow such requests
# "deny": always deny such requests
#------------------------------------------------------------------------
ScriptSystemAccessPolicy "ask"
#------------------------------------------------------------------------
# The following lines are render detail settings. Assigning higher
# values will produce better quality images, but may cause some older
# systems to run slower.
#
# OrbitPathSamplePoints defines how many sample points to use when
# rendering orbit paths. The default value is 100.
#
# RingSystemSections defines the number of segments in which ring
# systems are rendered. The default value is 100.
#
# ShadowTextureSize defines the size* of shadow texture to be used.
# The default value is 256. Maximum useful value is 2048.
#
# EclipseTextureSize defines the size* of eclipse texture to be used.
# The default value is 128. Maximum useful value is 1024.
#
# * The ShadowTextureSize and EclipseTextureSize values should both be
# powers of two (128, 256, 512, etc.). Using larger values will
# reduce the jagged edges of eclipse shadows and shadows on planet
# rings, but it will decrease the amount of memory available for
# planet textures.
#------------------------------------------------------------------------
OrbitPathSamplePoints 100
RingSystemSections 100
ShadowTextureSize 256
EclipseTextureSize 128
#------------------------------------------------------------------------
# Orbit rendering parameters
#------------------------------------------------------------------------
# OrbitWindowEnd ->
# End of the orbit window relative to the current simulation time.
# Units are orbital periods. The default value is 0.5.
# The range of values 0.0 - 1.0.
#
# OrbitPeriodsShown ->
# Number of orbit periods shown.
# The default value is 1.0.
#
# LinearFadeFraction ->
# Fraction of the window over which the orbit fades from opaque
# to transparent. Fading is disabled when this value is zero.
# The default value is 0.0. The range of values 0.0 - 1.0.
#------------------------------------------------------------------------
OrbitWindowEnd 0.0
# OrbitPeriodsShown 1.0
LinearFadeFraction 0.8
#-----------------------------------------------------------------------
# Set the level of multisample antialiasing. Not all 3D graphics
# hardware supports antialiasing, though most newer graphics chipsets
# do. Larger values will result in smoother edges with a cost in
# rendering speed. 4 is a sensible setting for recent, higher-end
# graphics hardware; 2 is probably better mid-range graphics. The
# default value is 1, which disables antialiasing.
# AntialiasingSamples 4
#------------------------------------------------------------------------
# The following line is commented out by default.
#
# Celestia enables and disables certain rendering features based on
# the set of extensions supported by the installed OpenGL driver and 3D
# graphics hardware. With IgnoreGLExtensions, you may specify a list of
# extensions that Celestia will treat as unsupported. This is useful
# primarily for the developers of Celestia.
#------------------------------------------------------------------------
# IgnoreGLExtensions [ "GL_ARB_vertex_program" ]
#------------------------------------------------------------------------
# The number of rows in the debug log (displayable onscreen by pressing
# the ~ (tilde). The default log size is 200.
#------------------------------------------------------------------------
# LogSize 1000
}

View File

@ -1,58 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCspice
# --------
#
# Find the NAIF toolkit cspice headers and libraries.
#
# This module reports information about the Gettext cspice
# installation in several variables. General variables::
#
# CSPICE_FOUND - true if the cspice headers and libraries were found
# CSPICE_INCLUDE_DIRS - the directory containing the cspice headers
# CSPICE_LIBRARIES - cspice libraries to be linked
#
# The following cache variables may also be set::
#
# CSPICE_INCLUDE_DIR - the directory containing the cspice headers
# CSPICE_LIBRARY - the cspice library (if any)
# Find include directory
find_path(CSPICE_INCLUDE_DIR
NAMES "SpiceUsr.h"
HINTS CSPICE_DIR
PATH_SUFFIXES "include" "include/cspice"
DOC "cspice include directory")
mark_as_advanced(CSPICE_INCLUDE_DIR)
# Find CSPICE library
find_library(CSPICE_LIBRARY
NAMES "cspice" "libcspice" "cspice.a"
HINTS CSPICE_DIR
DOC "cspice libraries")
mark_as_advanced(CSPICE_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CSPICE
FOUND_VAR CSPICE_FOUND
REQUIRED_VARS CSPICE_INCLUDE_DIR CSPICE_LIBRARY
FAIL_MESSAGE "Failed to find cspice")
if(CSPICE_FOUND)
set(CSPICE_INCLUDE_DIRS "${CSPICE_INCLUDE_DIR}")
if(CSPICE_LIBRARY)
set(CSPICE_LIBRARIES "${CSPICE_LIBRARY}")
else()
unset(CSPICE_LIBRARIES)
endif()
if(NOT TARGET CSPICE::CSPICE)
add_library(CSPICE::CSPICE UNKNOWN IMPORTED)
set_target_properties(CSPICE::CSPICE PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CSPICE_INCLUDE_DIRS}")
set_target_properties(CSPICE::CSPICE PROPERTIES
IMPORTED_LOCATION "${CSPICE_LIBRARY}")
endif()
endif()

View File

@ -1,72 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindIntl
# --------
#
# Find the Gettext libintl headers and libraries.
#
# This module reports information about the Gettext libintl
# installation in several variables. General variables::
#
# Intl_FOUND - true if the libintl headers and libraries were found
# Intl_INCLUDE_DIRS - the directory containing the libintl headers
# Intl_LIBRARIES - libintl libraries to be linked
#
# The following cache variables may also be set::
#
# Intl_INCLUDE_DIR - the directory containing the libintl headers
# Intl_LIBRARY - the libintl library (if any)
#
# .. note::
# On some platforms, such as Linux with GNU libc, the gettext
# functions are present in the C standard library and libintl
# is not required. ``Intl_LIBRARIES`` will be empty in this
# case.
#
# .. note::
# If you wish to use the Gettext tools (``msgmerge``,
# ``msgfmt``, etc.), use :module:`FindGettext`.
# Written by Roger Leigh <rleigh@codelibre.net>
# brew support is by Alexis Hildebrandt <https://github.com/afh>
# Append custom gettext path to CMAKE_PREFIX_PATH
# if installed via Mac Hombrew
if(APPLE)
find_program(HOMEBREW_PROG brew)
if(EXISTS ${HOMEBREW_PROG})
execute_process(COMMAND ${HOMEBREW_PROG} --prefix gettext
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE HOMEBREW_GETTEXT_PREFIX)
list(APPEND CMAKE_PREFIX_PATH "${HOMEBREW_GETTEXT_PREFIX}")
endif()
endif()
# Find include directory
find_path(Intl_INCLUDE_DIR
NAMES "libintl.h"
DOC "libintl include directory")
mark_as_advanced(Intl_INCLUDE_DIR)
# Find all Intl libraries
find_library(Intl_LIBRARY
NAMES "intl" "libintl"
DOC "libintl libraries (if not in the C library)")
mark_as_advanced(Intl_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl
FOUND_VAR Intl_FOUND
REQUIRED_VARS Intl_INCLUDE_DIR
FAIL_MESSAGE "Failed to find Gettext libintl")
if(Intl_FOUND)
set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}")
if(Intl_LIBRARY)
set(Intl_LIBRARIES "${Intl_LIBRARY}")
else()
unset(Intl_LIBRARIES)
endif()
endif()

View File

@ -1,107 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLuaJIT
# ---------
#
#
#
# Locate Lua library This module defines
#
# ::
#
# LUAJIT_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
# LUA_VERSION_MAJOR - the major version of Lua
# LUA_VERSION_MINOR - the minor version of Lua
# LUA_VERSION_PATCH - the patch version of Lua
# LUAJIT_VERSION_STRING, the version of LuaJIT found (since CMake 2.8.8)
# LUAJIT_VERSION_MAJOR - the major version of LuaJIT
# LUAJIT_VERSION_MINOR - the minor version of LuaJIT
# LUAJIT_VERSION_PATCH - the patch version of LuaJIT
#
#
#
# Note that the expected include convention is
#
# ::
#
# #include "lua.h"
#
# and not
#
# ::
#
# #include <lua/lua.h>
#
# This is because, the lua location is not standardized and may exist in
# locations other than lua/
find_path(LUA_INCLUDE_DIR luajit.h
HINTS
ENV LUA_DIR
PATH_SUFFIXES include/luajit-2.0 include/luajit-2.1 include/luajit
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
find_library(LUA_LIBRARY
NAMES luajit-5.1 lua51
HINTS
ENV LUA_DIR
PATH_SUFFIXES lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
if(LUA_LIBRARY)
# include the math library for Unix
if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
find_library(LUA_MATH_LIBRARY m)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY};${CMAKE_DL_LIBS}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
else()
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
endif()
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/luajit.h")
file(STRINGS "${LUA_INCLUDE_DIR}/luajit.h" lua_version_str REGEX "^#define[ \t]+LUAJIT_VERSION[ \t]+\".+\"")
string(REGEX REPLACE "^#define[ \t]+LUAJIT_VERSION[ \t]+\"LuaJIT ([0-9.]+).*\"" "\\1" LUAJIT_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUAJIT_VERSION_MAJOR "${LUAJIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUAJIT_VERSION_MINOR "${LUAJIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUAJIT_VERSION_PATCH "${LUAJIT_VERSION_STRING}")
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
# all listed variables are TRUE
find_package_handle_standard_args(LuaJIT
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
VERSION_VAR LUAJIT_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)

View File

@ -1,49 +0,0 @@
macro(GETTEXT_CREATE_TRANSLATIONS2 _potFile _firstPoFileArg)
# make it a real variable, so we can modify it here
set(_firstPoFile "${_firstPoFileArg}")
set(_gmoFiles)
get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
set(_addToAll)
if(${_firstPoFile} STREQUAL "ALL")
set(_addToAll "ALL")
set(_firstPoFile)
endif()
foreach (_currentPoFile ${_firstPoFile} ${ARGN})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_abs_PATH ${_absFile} PATH)
get_filename_component(_lang ${_absFile} NAME_WE)
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
set(_poFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po)
add_custom_command(
OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --output-file=${_poFile} --lang=${_lang} --sort-output ${_absFile} ${_absPotFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile}
DEPENDS ${_absPotFile} ${_absFile}
)
if(NATIVE_OSX_APP)
install(FILES ${_gmoFile} DESTINATION Resources/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
else()
install(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
endif()
set(_gmoFiles ${_gmoFiles} ${_gmoFile})
endforeach ()
if(NOT TARGET translations)
add_custom_target(translations)
endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName)
add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles})
add_dependencies(translations ${uniqueTargetName})
endmacro()

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +0,0 @@
macro(install_to_extras_subdir)
if(${ARGC} LESS 3)
message(FATAL_ERROR "install_to_extras_subdir requires at least 3 arguments")
endif()
set(__datadir ${ARGV0})
set(__subsubdir ${ARGV1})
set(__sources ${ARGV})
list(REMOVE_AT __sources 0 1)
foreach(file ${__sources})
get_filename_component(dir ${file} DIRECTORY)
install(FILES ${file} DESTINATION "${__datadir}/extras-standard/${__subsubdir}/${dir}" )
endforeach()
endmacro()

View File

@ -1,5 +0,0 @@
# the RPATH to be used when installing, but only if it's not a system directory
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_FULL_LIBDIR} isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
endif()

View File

@ -1,403 +0,0 @@
<html>
<head><title>Celestia Coding Standards</title>
<style type="text/css">
<!--
* {
font-size: 12;
font-family: Tahoma, Arial, Helvetica, Sans-serif;
color: black;
}
.documenttitle {
font-size: 24;
font-weight: bold;
}
.sectiontitle {
font-size: 16;
font-weight: bold;
}
.subsectiontitle {
font-weight: bold;
}
.mailaddr {
font-size: 12;
font-style: italic;
}
.newsdate {
font-style: italic;
color: #909090
}
.newsheadline {
font-weight: bold;
color: #d09040;
}
A:link { color: #5050cc }
A:hover { color: #a0a0ff }
A:active { color: #ffffff }
A:visited { color: #4040bb }
PRE
{
background-color: #dddddd;
font-family: Courier;
}
BODY
{
background-color: white;
}
-->
</style>
</head>
<body>
<p>
<span class="documenttitle">Celestia Coding Standards</span><br>
I'm not religious about any particular indentation style or naming
conventions for code, but I do believe that it is very important that
whatever standards are chosen are used consistently throughout a project.
This document describes the coding style already in use throughout the
Celestia code base. As Celestia grows, there will undoubtedly be
clarifications, additions, and edits made to this document, and I encourage
suggestions. However, recommendations that require
reformatting or renaming huge chunks of the existing code will be ignored.
No stylistic convention is so inherently superior that it's worth all that
hassle.
</p>
<div>
<span class="sectiontitle">Files</span><br>
<p>
The names of Celestia source files and data files are always lower case.
Unix is a case-sensitive OS, but Windows is not; using strictly lower case
filenames reduces confusion. The extension .cpp should be used for all C++
sources files. A process is set up to run nightly and cull all .C, .c++,
and .cc files from the CVS tree.
</p>
<p>
You should "guard defines" around include files to prevent multiple
inclusion of headers. Take care to assure that the guard macros will
be unique. The scheme for naming them in Celestia is
_&lt;subdirectory&gt;_&lt;filename&gt;_H_ Here's an example:
<blockquote>
<pre style="code">
// This header file is star.h in the celengine subdirectory.
#ifndef _CELENGINE_STAR_H_
#define _CELENGINE_STAR_H_
class Star
{
...
};
#endif // _CELENGINE_STAR_H_
</pre>
</blockquote>
Since celengine is a library, it is important include the subdirectory in the
guard macro name in order to make macro name collisions less likely.
</pre>
</blockquote>
</p>
</div>
<br><br>
<div>
<span class="sectiontitle">Language</span><br>
Celestia is unrepentantly a C++ project. C++ has many language features
which replace unsafe or awkward constructions in C; use the C++ features
wherever possible (which should be everywhere except in some cases where
you need to call functions from external libraries.)
<p><span class="subsectiontitle">STL</span><br>
Celestia makes heavy use of the Standard Template Library. Resist the urge
to write your own dynamic array or tree classes--you can almost certainly
use STL's vector or map. Don't do this in a header:
<blockquote>
<pre style="code">
#include &lt;string&gt;
using namespace std;
extern string foo;
</pre>
</blockquote>
Instead, when referring to an STL class or function in a header,
prefix it with std. Implementation modules shouldn't be forced to import
the entire std namespace just because they include a particular header.
The right way:
<blockquote>
<pre style="code">
#include &lt;string&gt;
extern std::string foo;
</pre>
</blockquote>
</p>
<p><span class="subsectiontitle">Strings</span><br>
Use C++'s string class rather than C-style zero terminated strings. The
string class is safer, more convenient, and in many cases, more efficient
than C strings. You can always call string::c_str() for a pointer to a
zero terminated string to pass to external API functions that require one,
but it's important to keep in mind that c_str() does not allocate a new
string. Methods which are declared to accept C++ string parameters can
also accept C strings, because the string class's string(char*) constructor
is automatically applied.
<blockquote>
<pre style="code">
void foo(const string& s)
{
...
}
void bar()
{
string text("Test");
// This will work properly:
foo(text);
// . . . and so will this:
foo("Test");
}
</pre>
</blockquote>
<p><span class="subsectiontitle">Casts</span><br>
Type casting should be avoided as much as possible. However, it is still
occasionally necessary to use it, particularly when calling external API
functions. When you do have to cast, favor C++ style casts
(reinterpret_cast, static_cast, and const_cast) over C casts. While
they're a pain to type, they're much easier to notice when browsing the code
(since casts are the source of so many bugs, it's important that they're
as obvious as possible.)<br><br>
<blockquote>
<pre style="code">
UINT CALLBACK DialogProc(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
HWND hwnd;
// Bad cast
hwnd = (HWND) lParam;
// Better cast
hwnd = reinterpret_cast&lt;HWND&gt;(lParam);
}
</pre>
</blockquote>
<br>
You do not need to bother with C++ style casts when casting between
numeric types.
</p>
<p><span class="subsectiontitle">Const</span><br>
Use const liberally. Properly const'd programs are safer. Const
declarations act as documentation for developers and hints for the compiler
to help it produce more efficient code. All reference parameters to a
function should be declared const unless they are intended to be modified
by the function. Make a point of declaring const any method which does not
modify class members. When iterating through the members of a container,
use const_iterator instead of iterator unless you intend to modify the
elements of the container.
</p>
<p><span class="subsectiontitle">Reference Parameters</span><br>
Favor passing parameters as references to passing them as pointers. If it is
not expected that the value of the parameter will ever be NULL, you should
certainly use a reference instead of a pointer. The current Celestia code
isn't as consistent about pointers vs. references as it should be.
</p>
<p><span class="subsectiontitle">I/O</span><br>
While C++ I/O is usually preferred, C style I/O with printf/scanf is also
also acceptable. In many cases, printf is simply more convenient and
produces much more readable code than C++'s operator overloading based I/O.
The gets function from the C standard library should never, ever be used.
It's unsafe, and gets related buffer overflows have been the source of
many security holes.
</p>
</div>
<br>
<div>
<span class="sectiontitle">Indentation and Spacing</span><br>
<ul>
<li>Always set your editor to use spaces for indentation. Text editors
interpret tabs in various incompatible ways, but a space is always a space.
<li>The bodies of functions, compound statements, and class definitions
should be indented four spaces.
<li>The braces around a function or compound statement should be on lines
by themselves but not indented with the body of the statement:
<pre style="code">
if (x)
{
cout << "The value of x is: " << x;
}
</pre>
<li>Labels of switch statements are not indented, but the body is:
<pre style="code">
switch (foo)
{
case 1:
x = 1;
break;
case 2:
x = 4;
break;
default:
x = 0;
break;
}
</pre>
<li>Access control labels are indented one space:
<pre style="code">
class Foo
{
public:
Foo();
private:
int x;
};
</pre>
</ul>
<ul>
<li>Put one space on either side of all binary operators except
for -&gt;
<pre style="code">
// Celestia style
x = y + z;
x = y || z;
a = b->c;
// Not Celestia style
x=y;
x = y+z;
a = b -> c;
</pre>
<li>There should be no space between a unary operator and its operand.
<li>Wherever a pointer type appears, there should be no space between the
base type and the asterisk. For pointer variable declarations, a space should
separate the type name from the variable name.
<pre style="code">
// Celestia style
char* str;
str = reinterpret_cast&lt;char*&gt;(p);
// Not Celestia style
char *str;
str = reinterpret_cast&lt;char *&gt;(p);
</pre>
<li>In function calls or definitions, there should be no space
between the parentheses and either the arguments or the function name.
When there are multiple arguments, a single space should follow each comma
separating arguments.
<pre>
// Celestia style
y = square(x);
y = atan2(x, z);
// Not Celestia style
y = square( x );
y = square (x);
y = atan2(x,z);
y = atan2(x , z);
</pre>
</ul>
</div>
<br>
<div>
<span class="sectiontitle">Naming</span>
<ul>
<li>Use capitalization not underscores to separate words in class and
variable names.
<li>Class names should start with a capital letter. The first letter of each
word within the class name should also be capitalized. Class names should
not be prefixed with a C.
<pre style="code">
// Celestia class names
class Renderer;
class UniversalCoord;
// Not Celestia class names:
class RENDERER;
class renderer;
class Universal_Coord;
class CUniversalCoord;
</pre>
<li>Method names are written using the class name conventions except with
the first letter in lower case.
<pre style="code">
// Celestia method names
void render();
int getValue();
void setAbsoluteMagnitude(float);
// Not Celestia method names:
void Render();
int get_value();
void Set_Absolute_Magnitude(float);
</pre>
<li>Functions both static and global use the class name conventions.
<li>Enum values also use the class name conventions.
<li>Macros should be all caps, with words separated by underscores.
<pre style="code">
// Celestia macros
#define INFINITE_MOUSE
#define BROKEN_SSTREAM
// Not Celestia macros
#define InfiniteMouse
#define INFINITEMOUSE
#define broken_sstream
</pre>
<li>Variable names do not contain type information, i.e. Hungarian and other
type-based naming conventions are not used. There are a few important
exceptions. Convenience typedefs for class templates in Celestia's vector
math library do contain type informations. For example,
Vector3&lt;float&gt; is Vec3f and Matrix4&lt;double&gt; is Mat4d.
</ul>
<br>
<div>
<span class="sectiontitle">Portability</span><br>
Celestia is a cross-platform project, and this requires working around the
quirks of several different compilers. Here are a few to watch out for.
<br>
<p><span class="subsectiontitle">The Scope of for</span><br>
The ANSI C++ standard states that the scope of a variable declared in
the initialization part of a for statement is just the for loop. Microsoft
Visual C 6.0 disagrees and lets the definition "leak" out of the loop. Other
compilers (like the GNU C++ compiler) conform to the C++ standard.
Avoid writing code that relies on either behavior. The simplest
rule is to never declare variables in the initialization spection of a for loop.
If you do declare a variable there, make sure that it is not referenced outside
of the for loop.
<blockquote>
<pre style="code">
// This won't compile with Visual C++ (because it's broken)
int sum = 0;
for (int i = 0; i &lt; 5; i++)
sum += i;
for (int i = 0; i &lt; 5; i++)
sum += i * i;
// This version won't compile with g++ (because it conforms to the standard)
int sum = 0;
for (int i = 0; i &lt; 5; i++)
sum += i;
for (i = 0; i &lt; 5; i++)
sum += i * i;
// This version works on any compiler
int sum = 0;
int i;
for (i = 0; i &lt; 5; i++)
sum += i;
for (i = 0; i &lt; 5; i++)
sum += i * i;
</pre>
</blockquote>
</div>
</body>
</html>

View File

@ -1,4 +0,0 @@
#cmakedefine HAVE_BYTESWAP_H
#cmakedefine HAVE_FILESYSTEM
#cmakedefine HAVE_EXPERIMENTAL_FILESYSTEM
#cmakedefine HAVE_WORDEXP

View File

@ -1,191 +0,0 @@
Celestia Mouse, Keyboard and Joystick Controls
------------------------------------------
MOUSE CONTROLS
------------------------------------------
Left Drag ................................. Orient camera
Right drag ............................... Orbit selected object [Shift+Arrow keys]
Left+Right Drag left/right ........ Roll view left/right [Left/Right arrows]
Left+Right Drag up/down ....... Adjust distance to selection [Home/End]
Wheel ..................................... Adjust distance to selection [Home/End]
Ctrl+Left Drag up/down .......... Adjust distance to selection [Home/End]
Shift+Left Drag ....................... Change Field of View (FOV) [. / ,]
Middle Button ......................... Toggle FOV between 45 degrees and previous setting
Left Click (on object) .............. Select object [Enter key -- by object name]
Left Click (on no object) ......... Cancel selection
Left Double Click (on object) ...Select and Center object
Right Click .............................. Bring up context menu
------------------------------------------------
KEYBOARD CONTROLS
------------------------------------------------
--- Navigation ---
1 - 9 .................................. Select planet around the nearest star
0 (zero) ............................. Select parent star of current planet or system
H ...................................... Select Sol (Home system)
C ....................................... Center on selected object
G ...................................... Goto selected object
F ....................................... Follow selected object
T ....................................... Track selected object
Y ....................................... Sync Orbit selected object at a rate synced to its rotation
: ........................................ Lock on selected object
" ........................................ Chase selected object
Shift+C .............................. Center/orbit --center the selected object without changing
the position of the reference object
Ctrl+G ............................... Goto surface of selected object
Ctrl+F ................................ Toggle Alt-azimuth mode
Home ................................ Move closer to object
End ................................... Move further away from object
* ........................................ Look back
Backspace ....................... Select parent of current object or clear the selection
Esc ................................... Cancel motion or script
--- Time Control ---
Spacebar .......................... Pause/Resume the flow of time and scripts (toggle)
J ....................................... Reverse/Forward time (toggle)
\ ....................................... Set time rate: 1x forward (norm), cancels faster/slower x factors
L ....................................... Change time rate: 10x faster
K ....................................... Change time rate: 10x slower
Shift+L .............................. Change time rate: 2x faster
Shift+K .............................. Change time rate: 2x slower
! ........................................ Set time to current system date and time
? ....................................... Display light-travel delay between observer / selected object
- (hyphen).......................... Subtract light-travel delay from current simulation time
--- Labels (on/off Toggles) ---
E ...................................... Galaxies
Shift+E ............................. Globulars
B ...................................... Stars
P ...................................... Planets
Shift+P ............................. Dwarf Planets
M ...................................... Moons
Shift+M ............................. Minor Moons
W ..................................... Asteroids
Shift+W ............................ Comets
N ...................................... Spacecraft
= ....................................... Constellations
& ....................................... Locations
--- Render/Display (on/off Toggles) --
U ..................................... Galaxies
Shift+U ............................ Globulars
^ ...................................... Nebulae
Ctrl+A .............................. Atmospheres
I ....................................... Clouds
Ctrl+L ............................... Night side maps
Ctrl+T ............................... Comet tails
Ctrl+E ............................... Eclipse shadows
Ctrl+B ............................... Constellation boundaries
/ ....................................... Constellation diagrams
; ........................................ Earth-based equatorial coordinate sphere
Ctrl+K ............................... Markers (placed on objects)
O ...................................... Orbits (toggle ALL selected orbits)
--- Render Options ---
{ ....................................... Decrease Ambient Light
} ....................................... Increase Ambient Light
( ....................................... Decrease Galaxy Light Gain
) ....................................... Increase Galaxy Light Gain
[ ....................................... Decrease Magnitude Limit :
- If AutoMag OFF: Decrease limiting magnitude (fewer stars)
- If AutoMag ON : Decrease limiting magnitude at 45 deg FOV
] ....................................... Increase Magnitude :
- If AutoMag OFF: Increase limiting magnitude (more stars)
- If AutoMag ON : Increase limiting magnitude at 45 deg FOV
Ctrl+Y ............................... Toggle Auto Magnitude (auto adaptation of star visibility to FOV
, ....................................... Narrow Field Of View [Shift+Left Drag]
. ....................................... Widen Field Of View [Shift+Left Drag]
Ctrl+X ............................... Toggle Antialias lines
Alt+Enter .......................... Toggle Display mode (Full-Screen / Windowed)
Ctrl+P ............................... Mark selected object
Ctrl+V ............................... Cycle among supported OpenGL render paths
+ ...................................... Toggle Planet Texture type (Artistic / Limit of Knowledge)
% ..................................... Star color table toggle
Ctrl+S ............................... Cycle the Star Style (points / fuzzy discs / scaled discs)
V ...................................... Cycle the Info text verbosity (None / Terse / Verbose)
Ctrl+W .............................. Toggle Wireframe mode
--- Multiview Options ---
Ctrl+U ................................ Split view horizontally
Ctrl+R ................................ Split view vertically
Tab ................................... Cycle through all active views
Del .................................... Delete active view
Ctrl+D ................................ Delete all views except active one (reset to Single view)
--- Navigation via Arrow Keys ---
Up/Down Arrow ................. Pitch down/up
Left/Right Arrow ................. Roll left/right
Shift+Left/Right Arrow ........ Orbit object: right/left
Shift+Up/Down Arrow ........ Orbit object: down/up
--- Navigation via number Pad Keys (with NumLock active) ---
8 ...................................... Pitch down [Down arrow]
2 ...................................... Pitch up [Up arrow]
7 ...................................... Roll left [Left arrow]
9 ...................................... Roll right [Right arrow]
5 ...................................... Stop rotation
4 ...................................... Yaw left
6 ...................................... Yaw right
--- Motion (Spaceflight) ---
Z ...................................... Decrease velocity
A ...................................... Increase velocity
Q ...................................... Reverse direction
X ...................................... Set movement direction toward center of screen
F2 .................................... Set velocity to 1 km/second
F3 .................................... Set velocity to 1,000 km/second
F4 .................................... Set velocity to speed of light (1 c)
F5 .................................... Set velocity to 10x the speed of light (10 c)
F6 .................................... Set velocity to 1 AU/second
F7 .................................... Set velocity to 1 light year/second
F1 .................................... Stop motion
S ...................................... Stop motion
--- Other Functions ---
Ctrl+C .............................. Copy location URL to clipboard (Cel:// URL)
Ctrl+Insert ........................ Copy location URL to clipboard (Cel:// URL)
F10 .................................. Capture Image to file (screenshot)
Shift+F10 ......................... Capture Movie to file (video)
F11 .................................. While in Movie Capture: Start / Pause capture
F12 .................................. While in Movie Capture: Stop capture
~ ..................................... Toggle debug console (use Up/Down arrow keys to scroll list)
` ...................................... Toggle display of "frames per second" (FPS) being rendered
Ctrl+O .............................. Display "Select Object" dialog box
@ .................................... Edit Mode toggle (to assist in the placement of objects)
D ..................................... Run demo script (/celestia/demo.cel)
Enter ............................... Toggle Name entry Mode (use Tab / Shift+Tab to highlight
an item, Esc to exit)
--------------------------------------------
JOYSTICK CONTROLS
--------------------------------------------
F8 .................................... Toggle Joystick control
X axis ............................... Yaw Left/Right
Y axis ............................... Pitch Up/Down
L trigger ............................ Roll Left
R trigger ........................... Roll Right
Button 1 ........................... Move slower
Button 2 ........................... Move faster

View File

@ -1,7 +0,0 @@
Modify "ISS" "Sol/Earth"
{
Category [ "Spacecrafts" "NASA" "Space Stations" "LEO objects" ]
}

View File

@ -1,10 +0,0 @@
Modify 71683 # ALF Cen A
{
Category [ "Nearby stars" "Centaur group" ]
}
Modify 71681 # ALF cen B
{
Category "Nearby stars"
}

View File

@ -1,2 +0,0 @@
usr/share/doc/celestia-common
etc

View File

@ -1,3 +0,0 @@
README
AUTHORS
TRANSLATORS

View File

@ -1,11 +0,0 @@
usr/share/celestia/fonts
usr/share/celestia/images
usr/share/celestia/locale
usr/share/celestia/scripts
usr/share/celestia/shaders
usr/share/celestia/splash
usr/share/celestia/celestia.cfg
usr/share/celestia/celestia-logo.png
usr/share/celestia/controls.txt
usr/share/celestia/*.cel
usr/share/locale

195
debian/celestia-glut.1 vendored
View File

@ -1,195 +0,0 @@
.\" Please adjust this date whenever revising the manpage.
.TH CELESTIA 1 "May 23, 2001"
.SH NAME
celestia \- A real-time visual space simulation
.SH SYNOPSIS
.B celestia
.RI [ options ]
.SH DESCRIPTION
This manual page documents briefly \fBcelestia\fP, a 3D space simulator.
Celestia is a real-time visual simulation of space in our local region of the
universe. Choose a point within about 1000 light years of Earth, and Celestia
will show you an approximation of how it would appear to your eyes were you
actually there. Some of what Celestia shows is necessarily hypothetical--the
farther away from Earth you get, the less real data there is and the more
guesswork is involved. Thus Celestia supplements observational data with good
guesses based on models of stellar and planetary processes.
.PP
Celestia is unique in its ability to allow you to navigate at an immense range
of scales. Orbit a couple kilometers above the surface of a tiny, irregular
asteroid, then head off toward Jupiter, watching it grow from a bright point of
light into a looming sphere filling your field of vision. Leave our solar
system entirely and observe the sun as it fades from a brilliant disk to a
bright star, disappearing almost entirely as you head off toward the Upsilon
Andromeda system to orbit around its innermost giant planet.
.SH OVERVIEW
Celestia will start up in a window, display a welcome message and some
information about your target (top left corner), your speed, and the
current time (Universal Time, so it'll probably be a few hours off from
your computer's clock.) In Celestia, you'll generally have an object
selected; currently, it's Eros, but it could also be a star, planet,
spacecraft, or galaxy. The simplest way to select an object is to click
on it. Try clicking on a star to select it. Right drag the mouse to
orbit arround the selected target. Left dragging the mouse changes your
orientation too, but the camera rotates about its center instead of
rotating around the target. Rolling the mouse wheel will change your
distance to the space station--you can move light years away, then roll
the wheel in the opposite direction to get back to your starting
location. If your mouse lacks a wheel, you can use the Home and End
keys instead.
.PP
Press G and you'll zoom through space toward the selected star. If you
press G again, you'll approach the star even closer. Press H to select
our Sun, and then G to go back to our solar system. You'll find
yourself half a light year away from the Sun, which looks merely like a
bright star at this range. Press G three more times to get within about
30 AU of the Sun and you will be to see a few planets become visible
near the Sun.
.\" Right click on the sun to bring up a menu of planets and
.\" other objects in the solar system. After selecting a planet from the
.\" menu, hit G again to travel toward it. Once there, hold down the right
.\" mouse button and drag to orbit the planet.
.SH USAGE
Mouse functions:
.PP
.TS
tab (@);
l l.
Left drag@orient camera
Right drag@orbit the selected object
Mouse wheel,@
Middle drag@adjust distance to selection
left click@select target, double click to center
.TE
.PP
Keyboard commands:
.PP
Navigation
.PP
.TS
tab (@);
l l.
H@Select the sun (Home)
C@Center on selected object
G@Goto selected object
F@Follow selected object
Y@Orbit the selected object at a rate synced to its rotation
ESC@Cancel motion
.TE
.PP
Free movement
.PP
.TS
tab (@);
l l.
HOME@Move closer to object
END@Move farther from object
F1@Stop
F2@Set velocity to 1 km/s
F3@Set velocity to 1,000 km/s
F4@Set velocity to 1,000,000 km/s
F5@Set velocity to 1 AU/s
F6@Set velocity to 1 ly/s
A@Increase velocity by 10x
Z@Decrease velocity by 10x
Q@Reverse direction
X@Set movement direction toward center of screen
.TE
.PP
Time
.PP
.TS
tab (@);
l l.
Space@stop time
L@Time 10x faster
K@Time 10x slower
J@Reverse time
.TE
.PP
Options
.PP
.TS
tab (@);
l l.
U@Toggle galaxy rendering
N@Toggle planet and moon labels
O@Toggle planet orbits
V@Toggle HUD Text
I@Toggle planet atmospheres (cloud textures)
W@Toggle wireframe mode
/@Toggle constellation diagrams
= @Toggle constellation labels
;@Toggle earth-based equatorial coordinate sphere
B@Toggle star labels
P@Toggle per-pixel lighting (if supported)
[@Decrease limiting magnitude (fewer stars visible)
]@Increase limiting magnitude (more stars visible)
{@Decrease ambient illumination
}@Increase ambient illumination
,@Narrow field of view
\.@Widen field of view
.TE
.PP
Other
.PP
.TS
tab (@);
l l.
D@Run demo
`@Show frames rendered per second
.TE
.PP
It's possible to choose a star or planet by name: press Enter and type in the
name, and pressing Enter again. You can use common names, or Bayer
designations and HD catalog numbers for stars. Bayer and Flamsteed
designations need to be entered like "Upsilon And" and "51 Peg". The
constellation must be given as a three letter abbreviation and the full Greek
letter name spelled out. HD catalog numbers must be entered with a space
between HD and the number.
.SH OPTIONS
The \fIglut\fP based version accepts the usual X Window System specific
options, namely:
.TP 8
.B \-display \fIDISPLAY\fP
Specify the X server to connect to. If not specified, the value of the
DISPLAY environment variable is used.
.TP 8
.B \-geometry \fIWxH+X+Y\fP
Determines where window's should be created on the screen. The
parameter following -geometry should be formatted as a
standard X geometry specification. The effect of using this option
is to change the GLUT initial size and initial position the same as
if glutInitWindowSize or glutInitWindowPosition were
called directly.
.TP 8
.B \-iconic
Requests all top-level windows be created in an iconic state.
.TP 8
.B \-indirect
Force the use of indirect OpenGL rendering contexts.
.TP 8
.B \-direct
Force the use of direct OpenGL rendering contexts (not all GLX
implementations support direct rendering contexts). A fatal error
is generated if direct rendering is not supported by the OpenGL
implementation.
If neither -indirect or -direct are used to force a particular
behavior, GLUT will attempt to use direct rendering if possible
and otherwise fallback to indirect rendering.
.TP 8
.B \-gldebug
After processing callbacks and/or events, check if there are any
OpenGL errors by calling glGetError. If an error is reported,
print out a warning by looking up the error code with
gluErrorString. Using this option is helpful in detecting
OpenGL run-time errors.
.TP 8
.B \-sync
Enable synchronous X protocol transactions. This option makes it
easier to track down potential X protocol errors.
.SH AUTHOR
Celestia has been written by Chris Laurel <claurel@www.shatters.net> and
it's available under the terms and conditions of the GNU General Public
License from http://celestia.sf.net/

View File

@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Celestia (GLUT)
GenericName=Space Simulator
Comment=Explore the Universe in this detailed space simulation
Type=Application
Categories=Astronomy;Education;Science;
Icon=celestia
Exec=celestia-glut %f
Terminal=false
MimeType=application/x-celestia-script;

View File

@ -1 +0,0 @@
usr/bin/celestia-glut

View File

@ -1 +0,0 @@
debian/celestia-glut.1

View File

@ -1,6 +0,0 @@
?package(celestia-glut):\
needs="X11"\
section="Applications/Science/Astronomy"\
hints="OpenGL"\
title="Celestia (GLUT)"\
command="/usr/bin/celestia-glut"

View File

@ -1,6 +0,0 @@
#!/bin/sh -e
update-alternatives --install /usr/bin/celestia celestia /usr/bin/celestia-glut 100 \
--slave /usr/share/man/man1/celestia.1.gz celestia.1.gz /usr/share/man/man1/celestia-glut.1.gz
#DEBHELPER#

View File

@ -1,7 +0,0 @@
#!/bin/sh -e
if [ "$1" = remove ] || [ "$1" = deconfigure ]; then
update-alternatives --remove celestia /usr/bin/celestia-glut
fi
#DEBHELPER#

195
debian/celestia-gtk.1 vendored
View File

@ -1,195 +0,0 @@
.\" Please adjust this date whenever revising the manpage.
.TH CELESTIA 1 "May 23, 2001"
.SH NAME
celestia \- A real-time visual space simulation
.SH SYNOPSIS
.B celestia
.RI [ options ]
.SH DESCRIPTION
This manual page documents briefly \fBcelestia\fP, a 3D space simulator.
Celestia is a real-time visual simulation of space in our local region of the
universe. Choose a point within about 1000 light years of Earth, and Celestia
will show you an approximation of how it would appear to your eyes were you
actually there. Some of what Celestia shows is necessarily hypothetical--the
farther away from Earth you get, the less real data there is and the more
guesswork is involved. Thus Celestia supplements observational data with good
guesses based on models of stellar and planetary processes.
.PP
Celestia is unique in its ability to allow you to navigate at an immense range
of scales. Orbit a couple kilometers above the surface of a tiny, irregular
asteroid, then head off toward Jupiter, watching it grow from a bright point of
light into a looming sphere filling your field of vision. Leave our solar
system entirely and observe the sun as it fades from a brilliant disk to a
bright star, disappearing almost entirely as you head off toward the Upsilon
Andromeda system to orbit around its innermost giant planet.
.SH OVERVIEW
Celestia will start up in a window, display a welcome message and some
information about your target (top left corner), your speed, and the
current time (Universal Time, so it'll probably be a few hours off from
your computer's clock.) In Celestia, you'll generally have an object
selected; currently, it's Eros, but it could also be a star, planet,
spacecraft, or galaxy. The simplest way to select an object is to click
on it. Try clicking on a star to select it. Right drag the mouse to
orbit arround the selected target. Left dragging the mouse changes your
orientation too, but the camera rotates about its center instead of
rotating around the target. Rolling the mouse wheel will change your
distance to the space station--you can move light years away, then roll
the wheel in the opposite direction to get back to your starting
location. If your mouse lacks a wheel, you can use the Home and End
keys instead.
.PP
Press G and you'll zoom through space toward the selected star. If you
press G again, you'll approach the star even closer. Press H to select
our Sun, and then G to go back to our solar system. You'll find
yourself half a light year away from the Sun, which looks merely like a
bright star at this range. Press G three more times to get within about
30 AU of the Sun and you will be to see a few planets become visible
near the Sun.
.\" Right click on the sun to bring up a menu of planets and
.\" other objects in the solar system. After selecting a planet from the
.\" menu, hit G again to travel toward it. Once there, hold down the right
.\" mouse button and drag to orbit the planet.
.SH USAGE
Mouse functions:
.PP
.TS
tab (@);
l l.
Left drag@orient camera
Right drag@orbit the selected object
Mouse wheel,@
Middle drag@adjust distance to selection
left click@select target, double click to center
.TE
.PP
Keyboard commands:
.PP
Navigation
.PP
.TS
tab (@);
l l.
H@Select the sun (Home)
C@Center on selected object
G@Goto selected object
F@Follow selected object
Y@Orbit the selected object at a rate synced to its rotation
ESC@Cancel motion
.TE
.PP
Free movement
.PP
.TS
tab (@);
l l.
HOME@Move closer to object
END@Move farther from object
F1@Stop
F2@Set velocity to 1 km/s
F3@Set velocity to 1,000 km/s
F4@Set velocity to 1,000,000 km/s
F5@Set velocity to 1 AU/s
F6@Set velocity to 1 ly/s
A@Increase velocity by 10x
Z@Decrease velocity by 10x
Q@Reverse direction
X@Set movement direction toward center of screen
.TE
.PP
Time
.PP
.TS
tab (@);
l l.
Space@stop time
L@Time 10x faster
K@Time 10x slower
J@Reverse time
.TE
.PP
Options
.PP
.TS
tab (@);
l l.
U@Toggle galaxy rendering
N@Toggle planet and moon labels
O@Toggle planet orbits
V@Toggle HUD Text
I@Toggle planet atmospheres (cloud textures)
W@Toggle wireframe mode
/@Toggle constellation diagrams
= @Toggle constellation labels
;@Toggle earth-based equatorial coordinate sphere
B@Toggle star labels
P@Toggle per-pixel lighting (if supported)
[@Decrease limiting magnitude (fewer stars visible)
]@Increase limiting magnitude (more stars visible)
{@Decrease ambient illumination
}@Increase ambient illumination
,@Narrow field of view
\.@Widen field of view
.TE
.PP
Other
.PP
.TS
tab (@);
l l.
D@Run demo
`@Show frames rendered per second
.TE
.PP
It's possible to choose a star or planet by name: press Enter and type in the
name, and pressing Enter again. You can use common names, or Bayer
designations and HD catalog numbers for stars. Bayer and Flamsteed
designations need to be entered like "Upsilon And" and "51 Peg". The
constellation must be given as a three letter abbreviation and the full Greek
letter name spelled out. HD catalog numbers must be entered with a space
between HD and the number.
.SH OPTIONS
The \fIglut\fP based version accepts the usual X Window System specific
options, namely:
.TP 8
.B \-display \fIDISPLAY\fP
Specify the X server to connect to. If not specified, the value of the
DISPLAY environment variable is used.
.TP 8
.B \-geometry \fIWxH+X+Y\fP
Determines where window's should be created on the screen. The
parameter following -geometry should be formatted as a
standard X geometry specification. The effect of using this option
is to change the GLUT initial size and initial position the same as
if glutInitWindowSize or glutInitWindowPosition were
called directly.
.TP 8
.B \-iconic
Requests all top-level windows be created in an iconic state.
.TP 8
.B \-indirect
Force the use of indirect OpenGL rendering contexts.
.TP 8
.B \-direct
Force the use of direct OpenGL rendering contexts (not all GLX
implementations support direct rendering contexts). A fatal error
is generated if direct rendering is not supported by the OpenGL
implementation.
If neither -indirect or -direct are used to force a particular
behavior, GLUT will attempt to use direct rendering if possible
and otherwise fallback to indirect rendering.
.TP 8
.B \-gldebug
After processing callbacks and/or events, check if there are any
OpenGL errors by calling glGetError. If an error is reported,
print out a warning by looking up the error code with
gluErrorString. Using this option is helpful in detecting
OpenGL run-time errors.
.TP 8
.B \-sync
Enable synchronous X protocol transactions. This option makes it
easier to track down potential X protocol errors.
.SH AUTHOR
Celestia has been written by Chris Laurel <claurel@www.shatters.net> and
it's available under the terms and conditions of the GNU General Public
License from http://celestia.sf.net/

View File

@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Celestia (Gtk)
GenericName=Space Simulator
Comment=Explore the Universe in this detailed space simulation
Type=Application
Categories=Astronomy;Education;Science;
Icon=celestia
Exec=celestia-gtk %f
Terminal=false
MimeType=application/x-celestia-script;

View File

@ -1,2 +0,0 @@
usr/bin/celestia-gtk
usr/share/celestia/celestiaui.xml

View File

@ -1 +0,0 @@
debian/celestia-gtk.1

View File

@ -1,6 +0,0 @@
?package(celestia-gtk):\
needs="X11"\
section="Applications/Science/Astronomy"\
hints="OpenGL,Gnome"\
title="Celestia (Gtk)"\
command="/usr/bin/celestia-gtk"

View File

@ -1,6 +0,0 @@
#!/bin/sh -e
update-alternatives --install /usr/bin/celestia celestia /usr/bin/celestia-gtk 100 \
--slave /usr/share/man/man1/celestia.1.gz celestia.1.gz /usr/share/man/man1/celestia-gtk.1.gz
#DEBHELPER#

View File

@ -1,7 +0,0 @@
#!/bin/sh -e
if [ "$1" = remove ] || [ "$1" = deconfigure ]; then
update-alternatives --remove celestia /usr/bin/celestia-gtk
fi
#DEBHELPER#

195
debian/celestia-qt.1 vendored
View File

@ -1,195 +0,0 @@
.\" Please adjust this date whenever revising the manpage.
.TH CELESTIA 1 "May 23, 2001"
.SH NAME
celestia \- A real-time visual space simulation
.SH SYNOPSIS
.B celestia
.RI [ options ]
.SH DESCRIPTION
This manual page documents briefly \fBcelestia\fP, a 3D space simulator.
Celestia is a real-time visual simulation of space in our local region of the
universe. Choose a point within about 1000 light years of Earth, and Celestia
will show you an approximation of how it would appear to your eyes were you
actually there. Some of what Celestia shows is necessarily hypothetical--the
farther away from Earth you get, the less real data there is and the more
guesswork is involved. Thus Celestia supplements observational data with good
guesses based on models of stellar and planetary processes.
.PP
Celestia is unique in its ability to allow you to navigate at an immense range
of scales. Orbit a couple kilometers above the surface of a tiny, irregular
asteroid, then head off toward Jupiter, watching it grow from a bright point of
light into a looming sphere filling your field of vision. Leave our solar
system entirely and observe the sun as it fades from a brilliant disk to a
bright star, disappearing almost entirely as you head off toward the Upsilon
Andromeda system to orbit around its innermost giant planet.
.SH OVERVIEW
Celestia will start up in a window, display a welcome message and some
information about your target (top left corner), your speed, and the
current time (Universal Time, so it'll probably be a few hours off from
your computer's clock.) In Celestia, you'll generally have an object
selected; currently, it's Eros, but it could also be a star, planet,
spacecraft, or galaxy. The simplest way to select an object is to click
on it. Try clicking on a star to select it. Right drag the mouse to
orbit arround the selected target. Left dragging the mouse changes your
orientation too, but the camera rotates about its center instead of
rotating around the target. Rolling the mouse wheel will change your
distance to the space station--you can move light years away, then roll
the wheel in the opposite direction to get back to your starting
location. If your mouse lacks a wheel, you can use the Home and End
keys instead.
.PP
Press G and you'll zoom through space toward the selected star. If you
press G again, you'll approach the star even closer. Press H to select
our Sun, and then G to go back to our solar system. You'll find
yourself half a light year away from the Sun, which looks merely like a
bright star at this range. Press G three more times to get within about
30 AU of the Sun and you will be to see a few planets become visible
near the Sun.
.\" Right click on the sun to bring up a menu of planets and
.\" other objects in the solar system. After selecting a planet from the
.\" menu, hit G again to travel toward it. Once there, hold down the right
.\" mouse button and drag to orbit the planet.
.SH USAGE
Mouse functions:
.PP
.TS
tab (@);
l l.
Left drag@orient camera
Right drag@orbit the selected object
Mouse wheel,@
Middle drag@adjust distance to selection
left click@select target, double click to center
.TE
.PP
Keyboard commands:
.PP
Navigation
.PP
.TS
tab (@);
l l.
H@Select the sun (Home)
C@Center on selected object
G@Goto selected object
F@Follow selected object
Y@Orbit the selected object at a rate synced to its rotation
ESC@Cancel motion
.TE
.PP
Free movement
.PP
.TS
tab (@);
l l.
HOME@Move closer to object
END@Move farther from object
F1@Stop
F2@Set velocity to 1 km/s
F3@Set velocity to 1,000 km/s
F4@Set velocity to 1,000,000 km/s
F5@Set velocity to 1 AU/s
F6@Set velocity to 1 ly/s
A@Increase velocity by 10x
Z@Decrease velocity by 10x
Q@Reverse direction
X@Set movement direction toward center of screen
.TE
.PP
Time
.PP
.TS
tab (@);
l l.
Space@stop time
L@Time 10x faster
K@Time 10x slower
J@Reverse time
.TE
.PP
Options
.PP
.TS
tab (@);
l l.
U@Toggle galaxy rendering
N@Toggle planet and moon labels
O@Toggle planet orbits
V@Toggle HUD Text
I@Toggle planet atmospheres (cloud textures)
W@Toggle wireframe mode
/@Toggle constellation diagrams
= @Toggle constellation labels
;@Toggle earth-based equatorial coordinate sphere
B@Toggle star labels
P@Toggle per-pixel lighting (if supported)
[@Decrease limiting magnitude (fewer stars visible)
]@Increase limiting magnitude (more stars visible)
{@Decrease ambient illumination
}@Increase ambient illumination
,@Narrow field of view
\.@Widen field of view
.TE
.PP
Other
.PP
.TS
tab (@);
l l.
D@Run demo
`@Show frames rendered per second
.TE
.PP
It's possible to choose a star or planet by name: press Enter and type in the
name, and pressing Enter again. You can use common names, or Bayer
designations and HD catalog numbers for stars. Bayer and Flamsteed
designations need to be entered like "Upsilon And" and "51 Peg". The
constellation must be given as a three letter abbreviation and the full Greek
letter name spelled out. HD catalog numbers must be entered with a space
between HD and the number.
.SH OPTIONS
The \fIglut\fP based version accepts the usual X Window System specific
options, namely:
.TP 8
.B \-display \fIDISPLAY\fP
Specify the X server to connect to. If not specified, the value of the
DISPLAY environment variable is used.
.TP 8
.B \-geometry \fIWxH+X+Y\fP
Determines where window's should be created on the screen. The
parameter following -geometry should be formatted as a
standard X geometry specification. The effect of using this option
is to change the GLUT initial size and initial position the same as
if glutInitWindowSize or glutInitWindowPosition were
called directly.
.TP 8
.B \-iconic
Requests all top-level windows be created in an iconic state.
.TP 8
.B \-indirect
Force the use of indirect OpenGL rendering contexts.
.TP 8
.B \-direct
Force the use of direct OpenGL rendering contexts (not all GLX
implementations support direct rendering contexts). A fatal error
is generated if direct rendering is not supported by the OpenGL
implementation.
If neither -indirect or -direct are used to force a particular
behavior, GLUT will attempt to use direct rendering if possible
and otherwise fallback to indirect rendering.
.TP 8
.B \-gldebug
After processing callbacks and/or events, check if there are any
OpenGL errors by calling glGetError. If an error is reported,
print out a warning by looking up the error code with
gluErrorString. Using this option is helpful in detecting
OpenGL run-time errors.
.TP 8
.B \-sync
Enable synchronous X protocol transactions. This option makes it
easier to track down potential X protocol errors.
.SH AUTHOR
Celestia has been written by Chris Laurel <claurel@www.shatters.net> and
it's available under the terms and conditions of the GNU General Public
License from http://celestia.sf.net/

View File

@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Celestia (Qt)
GenericName=Space Simulator
Comment=Explore the Universe in this detailed space simulation
Type=Application
Categories=Astronomy;Education;Science;
Icon=celestia
Exec=celestia-qt %f
Terminal=false
MimeType=application/x-celestia-script;

View File

@ -1 +0,0 @@
usr/bin/celestia-qt

View File

@ -1 +0,0 @@
debian/celestia-qt.1

View File

@ -1,6 +0,0 @@
?package(celestia-qt):\
needs="X11"\
section="Applications/Science/Astronomy"\
hints="OpenGL,KDE"\
title="Celestia (Qt)"\
command="/usr/bin/celestia-qt"

View File

@ -1,6 +0,0 @@
#!/bin/sh -e
update-alternatives --install /usr/bin/celestia celestia /usr/bin/celestia-qt 200 \
--slave /usr/share/man/man1/celestia.1.gz celestia.1.gz /usr/share/man/man1/celestia-qt.1.gz
#DEBHELPER#

View File

@ -1,7 +0,0 @@
#!/bin/sh -e
if [ "$1" = remove ] || [ "$1" = deconfigure ]; then
update-alternatives --remove celestia /usr/bin/celestia-qt
fi
#DEBHELPER#

View File

@ -1,25 +0,0 @@
usr/bin/spectbins.pl
usr/bin/visualbins.pl
usr/bin/charm2.pl
usr/bin/charm2simbatch.pl
usr/bin/deepsky.pl
usr/bin/globulars.pl
usr/bin/buildstardb.pl
usr/bin/buildxindices.pl
usr/bin/xyzv2bin.pl
usr/bin/cmodview
usr/bin/3dstocmod
usr/bin/cmodfix
usr/bin/txt2cmod
usr/bin/cmodsphere
usr/bin/qttxf
#usr/bin/spice2xyzv
usr/bin/vsoptrunc-rect
usr/bin/vsoptrunc-sph
usr/bin/xyzv2bin
usr/bin/bin2xyzv
usr/bin/makestardb
usr/bin/startextdump
usr/bin/makexindex
usr/bin/scattersim
usr/bin/scattertable

150
demo.cel
View File

@ -1,150 +0,0 @@
{
timerate { rate 0 }
labels { clear "planets|minorplanets|stars|constellations" }
renderflags { set "stars|planets"
clear "constellations|orbits|cloudmaps" }
print { text "Beginning demo . . .\nPress ESC to end." origin "center" duration 2 }
wait { duration 2.0 }
print { text "Let's start near home . . ." row -3 }
select { object "Sol/Earth" }
cancel {}
# goto { time 0 distance 3 upframe "ecliptical" }
# gotolonglat { time 0 distance 3 longitude -122 latitude 47 }
synchronous {}
gotoloc { time 0.0 position [ 0 0 20000 ] }
wait { duration 0.1 }
center { time 0.1 }
wait { duration 1.0 }
follow {}
print { text "We're now orbiting about 12,500km above the Earth" row -3 duration 5 }
orbit { axis [ 0 1 0 ] rate 30 duration 10 }
print { text "Earth looks much more familiar with clouds." row -3}
wait { duration 0.1 }
renderflags { set "cloudmaps" }
orbit { axis [ 0 1 0 ] rate 30 duration 6 }
print { text "Next stop: the Moon." row -3 }
select { object "Moon" }
goto { time 5 distance 4 upframe "equatorial" }
wait { duration 5.5 }
print { text "Watch for the Earth and Sun as we orbit the Moon" row -3}
orbit { axis [ 0 1 0 ] rate 30 duration 10 }
print { text "Off toward the Sun." row -3}
select { object "Sol" }
goto { time 8 distance 12 upframe "equatorial" up [ 0 1 0 ] }
wait { duration 8.5 }
print { text "At this distance, dark sunspots are visible on the Sun's surface." row -3}
orbit { axis [ 0 1 0 ] rate 20 duration 10 }
print { text "Let's zoom out for an overview of the inner solar system." row -3}
orbit { axis [ 1 0 0 ] rate 45 duration 2 }
renderflags { set "orbits" }
changedistance { duration 4.0 rate 1.0 }
print { text "Turning on planet labels . . ." row -3}
labels { set "planets" }
wait { duration 1.0 }
print { text "We can speed up time to watch the planets orbit the sun." row -3}
timerate { rate 2592000 }
wait { duration 3.0 }
print { text "For each second, a month of time elapses in the simulation." row -3}
wait { duration 12.0 }
timerate { rate 1 }
print { text "Now, time has been stopped completely." row -3}
wait { duration 1.0 }
print { text "Our next destination is Saturn." row -3}
select { object "Saturn" }
center { time 2 }
wait { duration 2 }
goto { time 8 distance 6 up [ 0 1 0 ] upframe "equatorial" }
wait { duration 6.5 }
renderflags { clear "orbits" }
labels { clear "planets" }
print { text "Several of the moons of Saturn are visible as bright dots" row -3 duration 3}
orbit { axis [ 0 1 0 ] rate 30 duration 12 }
select { object "Mimas" }
goto { time 5 distance 4 upframe "equatorial" }
print { text "The most prominent feature on Saturn's moon Mimas is the huge impact crater Herschel." row -3 duration 9 }
orbit { axis [ 0 1 0 ] rate 30 duration 12 }
changedistance { duration 6.0 rate 0.5 }
select { object "Sol" }
center { time 2 }
print { text "Note how faint the Sun appears at this distance." row -3 }
wait { duration 2 }
print { text "Let's look around at the stars in the sky." row -3 duration 2 }
wait { duration 2 }
select { object "Alpha UMa" }
center { time 2 }
print { text "Northern Hemisphere residents should recognize the Big Dipper in the constellation Ursa Major." row -3 duration 3 }
wait { duration 4 }
select { object "Polaris" }
center { time 2 }
wait { duration 2 }
print { text "We're now centered on Polaris, the North Star." row -3}
wait { duration 1 }
labels { set "stars" }
wait { duration 2 }
print { text "Polaris is part of the asterism commonly called the Little Dipper." row -3}
wait { duration 2 }
print { text "To help us get oriented in the sky, Celestia can draw constellation diagrams for us . . ." row -3}
renderflags { set "constellations" }
wait { duration 2 }
print { text ". . . and constellation names" row -3}
labels { set "constellations" }
wait { duration 2 }
select { object "Alnilam" }
center { time 4 }
wait { duration 2 }
print { text "Orion is the sky's most prominent constellation." row -3 duration 3 }
wait { duration 4 }
select { object "Beta Cru" }
center { time 4 }
wait { duration 2 }
print { text "The Southern Cross is a familiar sight in Southern Hemisphere skies." row -3 duration 4 }
wait { duration 4 }
rotate { axis [ 0.707 0.707 0 ] rate 20 duration 7 }
print { text "Let's enable galaxy rendering so that we can see the Milky Way" row -3 duration 4 }
renderflags { set "galaxies" }
rotate { axis [ 0.707 0.707 0 ] rate 20 duration 14 }
rotate { axis [ 0.707 0.707 0 ] rate 20 duration 10 }
select { object "Antares" }
center { time 5 }
wait { duration 3 }
print { text "We'll now travel to Antares, a red giant star in Scorpius." row -3 duration 5 }
wait { duration 2 }
renderflags { clear "constellations" }
labels { clear "constellations|stars" }
wait { duration 1 }
goto { time 8 distance 200 }
wait { duration 8.5 }
goto { time 5 distance 10 }
wait { duration 5.0 }
print { text "Even though we are now 10 times farther from Antares than\nEarth is from the Sun, the massive red giant star still looms huge in the sky." row -3}
wait { duration 4.0 }
print { text "Let's zoom out and get the big picture . . ." row -3}
changedistance { duration 10.0 rate 2.0 }
select { object "Milky Way" }
print { text "We're viewing the entire Milky Way galaxy." row -3 duration 6 }
orbit { axis [ 1 0 0 ] rate 30 duration 16.0 }
print { text "Time to go home . . ." row -3}
select { object "Sol/Earth" }
goto { time 20 distance 10 upframe "equatorial" }
wait { duration 20.0 }
print { text "Demo completed." row -3}
wait { duration 3.0 }
}

View File

@ -1,209 +0,0 @@
File Overview
-------------
* winmain.cpp
Windows front-end. There's a lot of initialization code that should be
moved to a module that's not platform-specific.
* simulation.cpp
The heart of Celestia . . . handles tracking an observer moving through
the universe.
* render.cpp
The Renderer class. Everything on the screen is put there by an instance
of Renderer.
* bigfix.cpp
High precision (128-bit) fixed point numbers.
* univcoord.cpp
UnivseralCoord class--a 3-vector with BigFix components. Represents
positions over a range of billions of light years to about
millimeter resolution.
* observer.cpp
This class is a package for position, orientation, and velocity. The
position of the observer is a UniversalCoord.
* octree.cpp
Octree is a class used to determine which stars from are visible to an
Observer
* stellarclass.cpp
* starname.cpp
* star.cpp
* stardb.cpp
Everything to do with stars. StarDatabase contains a list of Stars and a
list of StarNames.
* constellation.cpp
Just a bunch of static data giving the names and official abbreviations of
the 88 recognized constellations.
* orbit.cpp
The Orbit base class has a single method to compute the barycentric position
of an object at a given Julian Date. Currently, the only subclass of Orbit
is EllipticalOrbit, which calculates the position of an object along an
orbit specified by the standard six orbital elements.
* body.cpp
A planet, moon, probe, etc. Pretty much anything in space other than
a star is a Body. A PlanetarySystem is a list of bodies.
* solarsys.cpp
SolarSystem and SolarSystemCatalog classes.
* mesh.cpp
* spheremesh.cpp
* 3dsmesh.cpp
* vertexlist.cpp
These files are all related to internal geometry representation.
Mesh is an abstract class from which SphereMesh and Mesh3DS are derived.
VertexList is basically an easy to use wrapper for OpenGL 1.1 vertex arrays.
Eventually, VertexList will be made a subclass of mesh (SimpleMesh) and
Mesh3DS will be replaced by a more general class, CompositeMesh, which is
just a container for multiple Meshes.
* surface.h
An aggregation of surface properties that may be applied to a mesh.
* texture.cpp
An OpenGL texture class.
* tokenizer.cpp
* parser.cpp
The tokenizer and parser for Celestia text files (including the config file,
the solar system catalogs, and Celestia procedural meshes)
* resmanager.cpp
* texmanager.cpp
* meshmanager.cpp
Resource management. Resource manager is an abstract class from which
TextureManager and MeshManager are derived. Right now, there isn't much
in the way of actual management done, but having these classes around
makes it much easier to implement a more sophisticated texture manager
in the future.
* 3dschunk.h
* 3dsread.cpp
* 3dsmodel.cpp
3DS mesh reading stuff. Slurp a file and spits out a Mesh3DS.
* console.cpp
GL text console class that supports both printf and C++ << style output.
* perlin.cpp
Noise functions used for procedural geometry and textures.
* regcombine.cpp
A few functions that make it easy to use nVidia's REGISTER_COMBINERS
extension.
* color.cpp
Simple RGBA color class.
* astro.cpp
Astronomical conversions and a Date class for converting from dd/mm/yyyy
to Julian date.
* vecmath.h
Templatized classes for Points, Vectors, and Matrices
* quaternion.h
Templatized quaternion class
* vecgl.h
A handful of template functions which make it easy to use types from
vecmath.h with OpenGL
* aabox.h
Axis-aligned bounding box class.
* glext.h
* glext.cpp
GL extension declarations
* filetype.cpp
A function for determining the type of a file based on its extension.
* dispmap.cpp
Some silly code for applying displacement maps to SphereMeshes.
* texfont.cpp
Mark J. Kilgard's texture font package
* buildstardb.cpp
The program used to munge the HIPPARCOS data set into the star database.
If you wish to munge your own database, you will need to download a copy
of the HIPPARCOS database, it may be found at the URL:
ftp://cdsarc.u-strasbg.fr/cats/I/239
You will need the files hip_main.dat h_dm_com.dat hip_dm_o.da & tyc_main.dat
The Star Database
-----------------
The main star database is data/stars.dat. This contains about 112,000 stars,
including most of the HIPPARCOS catalog, plus one addition: Sol, our
sun. The file starnames.dat contains proper names and Bayer and Flamsteed
designations for about 1000 stars. Every star in stars.dat has a unique
identifier called its catalog number, and the name entries are linked with
stars from the database via this number.
The readStars function in celestiacore.cpp is responsible for loading the star
database for Celestia. Once initialized, the StarDatabase may be queried in
one of three ways: by star index, by catalog number, or by star name. The
star index is just the order of the star within the database, so lookup by
index is a constant time operation. Looking up a star by catalog number
requires a search of the star database; since the database entries are sorted
by catalog number, this is a log N operation. All three query types return
a pointer to a star from the database.
Stars
-----
Since there are so many stars in a star database, it's important that the
size of the Star class be kept to a minimum. Thus, in order to avoid the
4 byte vtable overhead Star is not a derived class, even though it might
be somewhat useful to have a common base class for stars and planets. All
stars have a unique catalog number, a position, a stellar class, and a
luminosity. The radius, temperature, and color of a star are not stored,
but are instead derived from stellar class and luminosity. The position
of a star is its cartesian ecliptical position in units of
light years. The catalog number of a star is generally it's HD number. In
cases where the star doesn't have an HD number, the lower 28 bits are the
HIPPARCOS catalog number and the high 4 bits are 0x1.
Celestia Overview
-----------------
The basic skeleton of Celestia looks like this:
StarDatabase* stardb = ReadStars("data/stars.dat", "data/starnames.dat");
SolarSystemCatalog* solarSystems = ReadSolarSystems("data/solarsys.ssc");
Simulation* sim = new Simulation();
sim->setStarDatabase(stardb);
sim->setTime(now);
Renderer renderer = new Renderer();
renderer->init();
for (;;)
{
sim->update(tick);
sim->render(*renderer);
}
The platform specific stuff to create a GL window and update it has been
omitted, as has any UI.
Tracking Visible Stars
----------------------
The VisibleStarSet class exists to limit the amount of computation spent
determining which stars from a StarDatabase are visible to an Observer. The
fairly simple trick used to help alleviate the problem involves only checking a
portion of the database for visibility at each update.
UNIX
----
To develop under Unix, you will probably need some of the following packages:
autoconf, automake, and of course the usual array of c++ compilers/linkers.

View File

@ -1,3 +0,0 @@
file(GLOB FONTS_SOURCES *.txf)
install(FILES ${FONTS_SOURCES} DESTINATION "${DATADIR}/fonts")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,76 +0,0 @@
{
Name "Jupiter"
Target "Sol/Jupiter"
Description "Jupiter is the largest planet in our solar system and the fifth from the sun. Like the other large outer planets, Jupiter is a gas giant, with no solid surface. The Great Red Spot is the biggest and longest-lived of the many storms in Jupiter's turbulent atmosphere; this Earth-sized tempest has been around for at least 300 years."
}
{
Name "Pluto and Charon"
Target "Sol/Pluto"
Distance 40000
DistanceUnits "km"
Description "Pluto orbits our sun at a average distance of nearly six billion kilometers. Its moon Charon is so large that the two are often referred to as a 'double planet'."
}
{
Name "Eros"
Target "Sol/Eros"
Description "Eros is a potato-shaped near-Earth asteroid about 33 km long. Thanks to the NEAR Shoemaker spacecraft, more is known about Eros than any other Asteroid. On Feb 14, 2001 NEAR descended on Eros and became the first spacecraft ever to land on an asteroid."
}
{
Name "Alpha Centauri"
Target "Alpha Centauri"
Distance 90
DistanceUnits "au"
Description "Alpha Centauri A and B are together with Proxima Centauri, the nearest star system to us. Alpha Cen A is very similar to our own Sun, though slightly older and brighter. B is dimmer and redder, and Proxima is so dim that it is can't be seen by the naked eye even though it is the star nearest to the Sun."
}
{
Name "Pleiades"
Target "Alcyone"
Distance 35
DistanceUnits "ly"
Description "The Pleiades star cluster is a group of bright recently-formed stars. The Pleiades are named for the seven sisters from Greek mythology, though telescopes have revealed that there are considerable more than seven stars in the cluster."
}
{
Name "Hyades"
Target "63 Tau"
Distance 25
DistanceUnits "ly"
Description "Named for the five daughters of Atlas and Aethra, the Hyades is one of the most prominent open star clusters in the sky. It is estimated that the stars of the Hyades are approximately 660 million years old--over six times older than the hotter, bluer Pleiades stars which appear nearby in our night sky."
}
{
Name "Gliese 876 b"
Target "Gliese 876/b"
Description "Gliese 876 b is a giant planet orbiting a red dwarf star. It is in a 2:1 orbital resonance with another planet in the system."
}
{
Name "Ida and Dactyl"
Target "Sol/Ida"
Distance 200
DistanceUnits "km"
Description "The Galileo spacecraft photographed the asteroid 243 Ida in 1993 on its way to Jupiter. These pictures revealed that Ida had a tiny satellite that was later named Dactyl. Several other asteroids have since been discovered also to have satellites."
}
{
Name "51 Peg b"
Target "51 Peg/b"
Description "51 Pegasi b was the first planet discovered orbiting a normal star other than our Sun. It is a gas giant planet and orbits extremely close to its parent star--less than one fifth the distance between Mercury and our sun. That a gas giant could exist so close to a star has forced astronomers to seriously revise their theories of solar system formation."
}
{
Name "Albireo"
Target "Albireo"
Distance 0.6
Description "Because of the contrasting orange and blue-white colors of its component stars, the Albireo double star system is considered one of the most beautiful pairs in the sky. The orange star is a Type K giant, and its companion is a B dwarf."
}
{
Name "Comet Borrelly"
Target "Sol/Borrelly"
Description "One September 22, 2001, Comet Borrelly became the second comet to be imaged at close range by a spacecraft. Despite not being designed for a comet flyby, Deep Space 1 approached within 2200 kilometers of the Borrelly's nucleus to return the highest resolution pictures we have of a cometary core."
}

View File

@ -1,3 +0,0 @@
file(GLOB IMAGES_SOURCES INFO.txt "*.jpg" "*.png" "*.dds")
install(FILES ${IMAGES_SOURCES} DESTINATION "${DATADIR}/images")

View File

@ -1,2 +0,0 @@
This folder for placing images that will be used by the overlay / celestia:overlay command in the CEL / CELX scripts.
If necessary, you can create subfolders to organize and classify audio files for various needs.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Some files were not shown because too many files have changed in this diff Show More