25 #include "ZoneData.hpp"
32 typedef short int Int16;
33 typedef unsigned short int Uint16;
45 static inline float IndexToBV(
unsigned char bV)
47 return (
float)bV*(4.f/127.f)-0.5f;
101 enum {MaxPosVal=0x7FFFFFFF};
103 void getJ2000Pos(
const ZoneData *z,
float movementFactor,
Vec3f& pos)
const
106 pos*=((float)(getX0())+movementFactor*getDx0());
107 pos+=((float)(getX1())+movementFactor*getDx1())*z->axis1;
110 inline int getBVIndex()
const {
return d[12];}
111 inline int getMag()
const {
return d[13];}
112 inline int getSpInt()
const {
return ((Uint16*)d)[7];}
113 inline int getX0()
const {
return qFromLittleEndian(((qint32*)d)[1]); }
114 inline int getX1()
const {
return qFromLittleEndian(((qint32*)d)[2]); }
115 inline int getDx0()
const {
return qFromLittleEndian(((qint32*)d)[4]);}
116 inline int getDx1()
const {
return qFromLittleEndian(((qint32*)d)[5]);}
117 inline int getPlx()
const {
return qFromLittleEndian(((qint32*)d)[6]);}
119 inline int getHip()
const
121 quint32 v = d[0] | d[1] << 8 | d[2] << 16;
122 return ((qint32)v) << 8 >> 8;
125 inline int getComponentIds()
const
130 float getBV(
void)
const {
return IndexToBV(getBVIndex());}
131 bool hasName()
const {
return getHip();}
132 QString getNameI18n(
void)
const;
133 int hasComponentID(
void)
const;
165 inline int getX0()
const
167 quint32 v = d[0] | d[1] << 8 | (d[2] & 0xF) << 16;
168 return ((qint32)v) << 12 >> 12;
171 inline int getX1()
const
173 quint32 v = d[2] >> 4 | d[3] << 4 | d[4] << 12;
174 return ((qint32)v) << 12 >> 12;
177 inline int getDx0()
const
179 Uint16 v = d[5] | (d[6] & 0x3F) << 8;
180 return ((Int16)(v << 2)) >> 2;
183 inline int getDx1()
const
185 Uint16 v = d[6] >> 6 | d[7] << 2 | (d[8] & 0xF) << 10;
186 return ((Int16)(v << 2)) >> 2;
189 inline int getBVIndex()
const
191 return d[8] >> 4 | (d[9] & 0x7) << 4;
194 inline int getMag()
const
199 enum {MaxPosVal=((1<<19)-1)};
201 void getJ2000Pos(
const ZoneData *z,
float movementFactor,
Vec3f& pos)
const
204 pos*=((float)(getX0())+movementFactor*getDx0());
205 pos+=((float)(getX1())+movementFactor*getDx1())*z->axis1;
208 float getBV(
void)
const {
return IndexToBV(getBVIndex());}
209 QString getNameI18n(
void)
const {
return QString();}
210 int hasComponentID(
void)
const {
return 0;}
211 bool hasName()
const {
return false;}
235 inline int getX0()
const
237 quint32 v = d[0] | d[1] << 8 | (d[2] & 0x3) << 16;
238 return ((qint32)v) << 14 >> 14;
241 inline int getX1()
const
243 quint32 v = d[2] >> 2 | d[3] << 6 | (d[4] & 0xF) << 14;
244 return ((qint32)v) << 14 >> 14;
247 inline int getBVIndex()
const
249 return d[4] >> 4 | (d[5] & 0x7) << 4;
252 inline int getMag()
const
257 enum {MaxPosVal=((1<<17)-1)};
262 pos*=(float)(getX0());
264 pos+=(float)(getX1())*z->axis1;
266 float getBV()
const {
return IndexToBV(getBVIndex());}
267 QString getNameI18n()
const {
return QString();}
268 int hasComponentID()
const {
return 0;}
269 bool hasName()
const {
return false;}
Wrapper struct around ZoneData.
The base abstract class for sky objects used in Stellarium like Stars, Planets, Constellations etc...
Define the StelObjectP type.
Implements all the virtual methods in ZoneArray.