org.stellarium.astro
Class SolarSystem

java.lang.Object
  extended by org.stellarium.astro.SolarSystem

public class SolarSystem
extends java.lang.Object

Version:
0.8.2
Author:
Fred Simon

Nested Class Summary
(package private) static class SolarSystem.BiggerDistanceComparator
           
 
Field Summary
private  SFontIfc _planetNameFontIfc
           
private  Planet earth
           
private  java.util.List<EllipticalOrbit> ellOrbits
          Pointers on created elliptical orbits
(package private)  boolean flag_light_travel_time
           
(package private)  boolean flagMoonScale
           
(package private)  boolean flagOrbits
           
private  Planet moon
           
(package private)  float moonScale
          Moon scale value
(package private)  float object_scale
          should be kept synchronized with star scale...
private  StelObject selected
          he currently selected planet
private  Planet sun
           
private  java.util.List<Planet> systemPlanets
          Vector containing all the bodies of the system
private  STexture texEarthShadow
          for lunar eclipses
 
Constructor Summary
SolarSystem()
           
 
Method Summary
 void computePositions(double date, Planet homePlanet)
          Compute the position for every elements of the solar system.
 void computeTransMatrices(double date, Planet homePlanet)
          Compute the transformation matrix for every elements of the solar system.
 double draw(DefaultProjector prj, Navigator nav, ToneReproductor eye, boolean flagPoint)
          Draw all the elements of the solar system We are supposed to be in heliocentric coordinate
(package private)  void drawEarthShadow(Navigator nav, DefaultProjector prj)
          draws earth shadow overlapping the moon using stencil buffer umbra and penumbra are sized separately for accuracy
 Planet getEarth()
           
 boolean getFlagHints()
           
 boolean getFlagLightTravelTime()
           
 boolean getFlagMoonScale()
           
 boolean getFlagOrbits()
           
 boolean getFlagPlanets()
           
 boolean getFlagTrails()
           
 SColor getLabelColor()
           
 Planet getMoon()
           
 float getMoonScale()
           
(package private)  java.util.List<java.lang.String> getNamesI18()
           
 SColor getOrbitColor()
           
 java.lang.String getPlanetHashString()
           
 double getScale()
          Set/Get base planets display scaling factor
 StelObject getSelected()
           
(package private)  Planet getSun()
           
 SColor getTrailColor()
           
 java.util.List<java.lang.String> listMatchingObjectsI18n(java.lang.String objPrefix, int maxNbItem)
           
 void load()
          Init and load the solar system data
(package private)  boolean nearLunarEclipse(Navigator nav, DefaultProjector prj)
           
 Planet search(javax.vecmath.Vector3d pos, Navigator nav, DefaultProjector prj)
          Search if any planet is close to position given in earth equatorial position and return the distance
 java.util.List<StelObject> searchAround(javax.vecmath.Tuple3d p, double limFOV, Navigator nav, DefaultProjector prj)
          Return a stl vector containing the planets located inside the limFOV circle around position v
 Planet searchByEnglishName(java.lang.String planetEnglishName)
           
 Planet searchByNamesI18(java.lang.String planetNameI18n)
           
 void setFlagHints(boolean b)
           
 void setFlagLightTravelTime(boolean b)
           
 void setFlagMoonScale(boolean b)
           
 void setFlagOrbits(boolean b)
           
 void setFlagPlanets(boolean b)
           
 void setFlagTrails(boolean b)
           
 void setFont(float font_size, java.lang.String font_name)
           
 void setLabelColor(SColor c)
           
 void setMoonScale(float f)
           
 void setOrbitColor(SColor c)
           
 void setScale(double scale)
          Set/Get base planets display scaling factor
 void setSelected(StelObject obj)
           
 void setSelected(java.lang.String englishName)
          Set selected planet by english name or "" to select none
 void setTrailColor(SColor c)
           
 void startTrails(boolean b)
           
 void translateNames(Translator trans)
           
 void update(int delta_time, Navigator nav)
           
 void updateTrails(Navigator nav)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sun

private Planet sun

moon

private Planet moon

earth

private Planet earth

selected

private StelObject selected
he currently selected planet


object_scale

float object_scale
should be kept synchronized with star scale...


flagMoonScale

boolean flagMoonScale

moonScale

float moonScale
Moon scale value


_planetNameFontIfc

private SFontIfc _planetNameFontIfc

systemPlanets

private java.util.List<Planet> systemPlanets
Vector containing all the bodies of the system


ellOrbits

private java.util.List<EllipticalOrbit> ellOrbits
Pointers on created elliptical orbits


texEarthShadow

private STexture texEarthShadow
for lunar eclipses


flagOrbits

boolean flagOrbits

flag_light_travel_time

boolean flag_light_travel_time
Constructor Detail

SolarSystem

public SolarSystem()
            throws StellariumException
Throws:
StellariumException
Method Detail

setFont

public void setFont(float font_size,
                    java.lang.String font_name)
             throws StellariumException
Throws:
StellariumException

setLabelColor

public void setLabelColor(SColor c)

getLabelColor

public SColor getLabelColor()

setOrbitColor

public void setOrbitColor(SColor c)

getOrbitColor

public SColor getOrbitColor()

setTrailColor

public void setTrailColor(SColor c)

getTrailColor

public SColor getTrailColor()

load

public void load()
Init and load the solar system data

Throws:
StellariumException - If the planet data cannot be interpreted

computePositions

public void computePositions(double date,
                             Planet homePlanet)
Compute the position for every elements of the solar system. The order is not important since the position is computed relatively to the mother body

Parameters:
date - the julian day to compute position

computeTransMatrices

public void computeTransMatrices(double date,
                                 Planet homePlanet)
Compute the transformation matrix for every elements of the solar system. The elements have to be ordered hierarchically, eg. it's important to compute earth before moon.

Parameters:
date - the julian day to compute position

draw

public double draw(DefaultProjector prj,
                   Navigator nav,
                   ToneReproductor eye,
                   boolean flagPoint)
Draw all the elements of the solar system We are supposed to be in heliocentric coordinate


searchByEnglishName

public Planet searchByEnglishName(java.lang.String planetEnglishName)

searchByNamesI18

public Planet searchByNamesI18(java.lang.String planetNameI18n)

search

public Planet search(javax.vecmath.Vector3d pos,
                     Navigator nav,
                     DefaultProjector prj)
Search if any planet is close to position given in earth equatorial position and return the distance

Parameters:
pos -
nav -
prj -
Returns:

searchAround

public java.util.List<StelObject> searchAround(javax.vecmath.Tuple3d p,
                                               double limFOV,
                                               Navigator nav,
                                               DefaultProjector prj)
Return a stl vector containing the planets located inside the limFOV circle around position v

Parameters:
limFOV -
p -
nav -
prj -
Returns:

translateNames

public void translateNames(Translator trans)

getNamesI18

java.util.List<java.lang.String> getNamesI18()

getPlanetHashString

public java.lang.String getPlanetHashString()

updateTrails

public void updateTrails(Navigator nav)

startTrails

public void startTrails(boolean b)

setFlagPlanets

public void setFlagPlanets(boolean b)

getFlagPlanets

public boolean getFlagPlanets()

setFlagTrails

public void setFlagTrails(boolean b)

getFlagTrails

public boolean getFlagTrails()

setFlagHints

public void setFlagHints(boolean b)

getFlagHints

public boolean getFlagHints()

setFlagOrbits

public void setFlagOrbits(boolean b)

getFlagOrbits

public boolean getFlagOrbits()

setFlagLightTravelTime

public void setFlagLightTravelTime(boolean b)

getFlagLightTravelTime

public boolean getFlagLightTravelTime()

setSelected

public void setSelected(java.lang.String englishName)
Set selected planet by english name or "" to select none


setSelected

public void setSelected(StelObject obj)

drawEarthShadow

void drawEarthShadow(Navigator nav,
                     DefaultProjector prj)
draws earth shadow overlapping the moon using stencil buffer umbra and penumbra are sized separately for accuracy

Parameters:
nav -
prj -

update

public void update(int delta_time,
                   Navigator nav)

nearLunarEclipse

boolean nearLunarEclipse(Navigator nav,
                         DefaultProjector prj)

listMatchingObjectsI18n

public java.util.List<java.lang.String> listMatchingObjectsI18n(java.lang.String objPrefix,
                                                                int maxNbItem)

setScale

public void setScale(double scale)
Set/Get base planets display scaling factor


getScale

public double getScale()
Set/Get base planets display scaling factor


setFlagMoonScale

public void setFlagMoonScale(boolean b)

getFlagMoonScale

public boolean getFlagMoonScale()

setMoonScale

public void setMoonScale(float f)

getMoonScale

public float getMoonScale()

getSun

Planet getSun()

getEarth

public Planet getEarth()

getMoon

public Planet getMoon()

getSelected

public StelObject getSelected()