25 #include "ZoneData.hpp" 32 extern const QString STAR_TYPE;
34 typedef short int Int16;
35 typedef unsigned short int Uint16;
47 static inline float IndexToBV(
unsigned char bV)
49 return (
float)bV*(4.f/127.f)-0.5f;
109 enum {MaxPosVal=0x7FFFFFFF};
111 void getJ2000Pos(
const ZoneData *z,
float movementFactor,
Vec3f& pos)
const 114 pos*=((float)(getX0())+movementFactor*getDx0());
115 pos+=((float)(getX1())+movementFactor*getDx1())*z->axis1;
118 inline int getBVIndex()
const {
return d.uint8[12];}
119 inline int getMag()
const {
return d.uint8[13];}
120 inline int getSpInt()
const {
return d.uint16[7];}
121 inline int getX0()
const {
return qFromLittleEndian(d.int32[1]);}
122 inline int getX1()
const {
return qFromLittleEndian(d.int32[2]);}
123 inline int getDx0()
const {
return qFromLittleEndian(d.int32[4]);}
124 inline int getDx1()
const {
return qFromLittleEndian(d.int32[5]);}
125 inline int getPlx()
const {
return qFromLittleEndian(d.int32[6]);}
127 inline int getHip()
const 129 quint32 v = d.uint8[0] | d.uint8[1] << 8 | d.uint8[2] << 16;
130 return ((qint32)v) << 8 >> 8;
133 inline int getComponentIds()
const 138 float getBV(
void)
const {
return IndexToBV(getBVIndex());}
139 bool hasName()
const {
return getHip();}
140 QString getNameI18n(
void)
const;
141 int hasComponentID(
void)
const;
142 void print(
void)
const;
173 inline int getX0()
const 175 quint32 v = d[0] | d[1] << 8 | (d[2] & 0xF) << 16;
176 return ((qint32)v) << 12 >> 12;
179 inline int getX1()
const 181 quint32 v = d[2] >> 4 | d[3] << 4 | d[4] << 12;
182 return ((qint32)v) << 12 >> 12;
185 inline int getDx0()
const 187 Uint16 v = d[5] | (d[6] & 0x3F) << 8;
188 return ((Int16)(v << 2)) >> 2;
191 inline int getDx1()
const 193 Uint16 v = d[6] >> 6 | d[7] << 2 | (d[8] & 0xF) << 10;
194 return ((Int16)(v << 2)) >> 2;
197 inline int getBVIndex()
const 199 return d[8] >> 4 | (d[9] & 0x7) << 4;
202 inline int getMag()
const 207 enum {MaxPosVal=((1<<19)-1)};
209 void getJ2000Pos(
const ZoneData *z,
float movementFactor,
Vec3f& pos)
const 212 pos*=((float)(getX0())+movementFactor*getDx0());
213 pos+=((float)(getX1())+movementFactor*getDx1())*z->axis1;
216 float getBV(
void)
const {
return IndexToBV(getBVIndex());}
217 QString getNameI18n(
void)
const {
return QString();}
218 int hasComponentID(
void)
const {
return 0;}
219 bool hasName()
const {
return false;}
220 void print(
void)
const;
243 inline int getX0()
const 245 quint32 v = d[0] | d[1] << 8 | (d[2] & 0x3) << 16;
246 return ((qint32)v) << 14 >> 14;
249 inline int getX1()
const 251 quint32 v = d[2] >> 2 | d[3] << 6 | (d[4] & 0xF) << 14;
252 return ((qint32)v) << 14 >> 14;
255 inline int getBVIndex()
const 257 return d[4] >> 4 | (d[5] & 0x7) << 4;
260 inline int getMag()
const 265 enum {MaxPosVal=((1<<17)-1)};
270 pos*=(float)(getX0());
272 pos+=(float)(getX1())*z->axis1;
274 float getBV()
const {
return IndexToBV(getBVIndex());}
275 QString getNameI18n()
const {
return QString();}
276 int hasComponentID()
const {
return 0;}
277 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.