OpenFrames
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
OpenFrames::SkySphere Class Reference

Extends OpenFrames::Sphere. More...

#include <SkySphere.hpp>

Inheritance diagram for OpenFrames::SkySphere:
OpenFrames::Sphere OpenFrames::ReferenceFrame

Classes

struct  Star
 

Public Types

enum  DrawMode { NONE = 0, TEXTURE = 1, STARFIELD = 2 }
 
- Public Types inherited from OpenFrames::ReferenceFrame
enum  AxesType { NO_AXES = 0, X_AXIS = 1, Y_AXIS = 2, Z_AXIS = 4 }
 
typedef std::vector< ReferenceFrame * > ParentList
 
typedef std::vector< osg::ref_ptr< ReferenceFrame > > ChildList
 
typedef std::vector< FrameTracker * > TrackerList
 

Public Member Functions

 SkySphere (const std::string &name)
 
void setDrawMode (unsigned int drawMode)
 
Specify which elements to draw by combining elements of DrawMode
 
unsigned int getDrawMode ()
 
bool setStarData (const std::string &catalogName, float minMag, float maxMag, unsigned int maxNumStars, float minPixSize, float maxPixSize, float minDimRatio)
 
- Public Member Functions inherited from OpenFrames::Sphere
 Sphere (const std::string &name)
 
 Sphere (const std::string &name, const osg::Vec3 &color)
 
 Sphere (const std::string &name, const osg::Vec4 &color)
 
 Sphere (const std::string &name, float r, float g, float b, float a=1.0)
 
virtual void showContents (bool showContents)
 
virtual bool getContentsShown () const
 
void restoreTexCoords ()
 
void setRadius (const double &radius)
 
double getRadius () const
 
void setSpherePosition (const double &x, const double &y, const double &z)
 
void setSpherePosition (const osg::Vec3d &pos)
 
void getSpherePosition (double &x, double &y, double &z) const
 
void getSpherePosition (osg::Vec3d &pos) const
 
void setSphereAttitude (const osg::Quat &att)
 
void getSphereAttitude (osg::Quat &att) const
 
void setSphereScale (const double &sx, const double &sy, const double &sz)
 
void getSphereScale (double &sx, double &sy, double &sz) const
 
bool setTextureMap (const std::string &fname, unsigned int unit=0, bool force_reload=false)
 
bool setTexEnv (osg::StateAttribute *texenv, unsigned int unit)
 
bool setNightTextureMap (const std::string &fname, unsigned int unit=1, bool force_reload=false)
 
void setAutoLOD (bool lod)
 
virtual void setColor (const osg::Vec4 &color)
 
void setMaterial (osg::Material *mat)
 
osg::Material * getMaterial () const
 
virtual const osg::BoundingSphere & getBound () const
 
virtual void setColor (const osg::Vec4 &color)
 
virtual void setColor (float r, float g, float b, float a=1.0)
 
- Public Member Functions inherited from OpenFrames::ReferenceFrame
 ReferenceFrame (const std::string &name)
 
 ReferenceFrame (const std::string &name, const osg::Vec3 &color)
 
 ReferenceFrame (const std::string &name, const osg::Vec4 &color)
 
 ReferenceFrame (const std::string &name, float r, float g, float b, float a=1.0)
 
void setName (const std::string &name)
 
const std::string & getName () const
 
virtual void setColor (float r, float g, float b, float a=1.0)
 
virtual const osg::Vec4 & getColor () const
 
virtual void getColor (float &r, float &g, float &b, float &a) const
 
FrameTransformgetTransform () const
 
virtual osg::Group * getGroup () const
 
void setPosition (const double &x, const double &y, const double &z)
 
void setPosition (const osg::Vec3d &pos)
 
void getPosition (double &x, double &y, double &z) const
 
void getPosition (osg::Vec3d &pos) const
 
void setAttitude (const double &rx, const double &ry, const double &rz, const double &angle)
 
void setAttitude (const osg::Quat &att)
 
void getAttitude (double &rx, double &ry, double &rz, double &angle) const
 
void getAttitude (osg::Quat &att) const
 
virtual void showAxes (unsigned int axes)
 
virtual void showAxesLabels (unsigned int labels)
 
virtual void showNameLabel (bool namelabel)
 
void moveXAxis (osg::Vec3d base, double len, double headRatio=0.3, double bodyRadius=0.0, double headRadius=0.0) const
 
void moveYAxis (osg::Vec3d base, double len, double headRatio=0.3, double bodyRadius=0.0, double headRadius=0.0) const
 
void moveZAxis (osg::Vec3d base, double len, double headRatio=0.3, double bodyRadius=0.0, double headRadius=0.0) const
 
void setXLabel (const std::string &str)
 
void setYLabel (const std::string &str)
 
void setZLabel (const std::string &str)
 
bool addChild (ReferenceFrame *frame)
 
bool removeChild (ReferenceFrame *frame)
 
void setLightSourceEnabled (bool enable)
 
bool getLightSourceEnabled () const
 
osg::LightSource * getLightSource () const
 
int getNumChildren ()
 
ReferenceFramegetChild (int i)
 
void createFrameString (std::string &str, std::string prefix=" ") const
 
virtual std::string frameInfo () const
 
void addParent (ReferenceFrame *frame)
 
void removeParent (ReferenceFrame *frame)
 
int getNumParents () const
 
ReferenceFramegetParent (int i)
 
void addTracker (FrameTracker *t)
 
void removeTracker (FrameTracker *t)
 
int getNumTrackers () const
 
FrameTrackergetTracker (int i)
 
int getChildIndex (const ReferenceFrame *frame) const
 
int getParentIndex (const ReferenceFrame *frame) const
 
int getTrackerIndex (const FrameTracker *t) const
 

Static Public Member Functions

static void StarToPoint (const Star &star, osg::Vec3 &pos, osg::Vec4 &color)
 
Convert a Star to a XYZ position, RGB color, and size (in color[3])
 
static unsigned int getStarBin (const osg::Vec3 &p)
 

Protected Types

typedef std::array< osg::ref_ptr< osg::Geometry >, _starBinCount > StarBins
 

Protected Member Functions

bool processStars ()
 
void clearStars ()
 
- Protected Member Functions inherited from OpenFrames::Sphere
void repositionAxes ()
 

Protected Attributes

std::string _starCatalogFile
 
float _minMag
 
float _maxMag
 
unsigned int _maxNumStars
 
float _minPixSize
 
float _maxPixSize
 
float _minDimRatio
 
StarBins _starBinGeoms
 
osg::ref_ptr< osg::Geode > _starGeode
 
- Protected Attributes inherited from OpenFrames::Sphere
osg::ref_ptr< FrameTransform_sphereXform
 
osg::ref_ptr< osg::Geode > _geode
 
osg::ref_ptr< osg::ShapeDrawable > _sphereSD
 
- Protected Attributes inherited from OpenFrames::ReferenceFrame
std::string _name
 Name of reference frame.
 
osg::ref_ptr< Vector_xAxis
 Vector of frame's x-axis.
 
osg::ref_ptr< Vector_yAxis
 Vector of frame's y-axis.
 
osg::ref_ptr< Vector_zAxis
 Vector of frame's z-axis.
 
osg::ref_ptr< osgText::Text > _xLabel
 X-Axes label.
 
osg::ref_ptr< osgText::Text > _yLabel
 Y-Axes label.
 
osg::ref_ptr< osgText::Text > _zLabel
 Z-Axes label.
 
osg::ref_ptr< osgText::Text > _nameLabel
 Name of reference frame that is displayed.
 
osg::ref_ptr< osg::Geode > _axes
 x,y,z axes together
 
osg::ref_ptr< osg::Geode > _labels
 axes and name labels
 
osg::BoundingSphere _bound
 Frame's bounding sphere.
 
osg::ref_ptr< FrameTransform_xform
 The transform that all contained objects will undergo.
 

Static Protected Attributes

static const unsigned int _starBinSpacing = 2
 
static const unsigned int _starBinCount = _starBinSpacing*_starBinSpacing*6
 

Detailed Description

Extends OpenFrames::Sphere.

Extends OpenFrames::Sphere by adding ability to show a texture and/or stars from a star catalog. Textures are widely available online. Star Catalogs must be text files with the following format: (TBD).

Member Enumeration Documentation

◆ DrawMode

Indicates what elements to draw

Member Function Documentation

◆ setStarData()

bool OpenFrames::SkySphere::setStarData ( const std::string &  catalogName,
float  minMag,
float  maxMag,
unsigned int  maxNumStars,
float  minPixSize,
float  maxPixSize,
float  minDimRatio 
)

Set the star catalog drawn as the starfield Note that magnitude and brightness are inverse, e.g. mag = -1 is brighter than mag = 1 Note that stars are drawn according to their position in the catalog, so sorting the catalog allows drawing brightest/dimmest stars first. Limits: minMag < maxMag AND numStars >= 1


The documentation for this class was generated from the following file: