22#ifndef TWINE_HOLOMAPV2_H
23#define TWINE_HOLOMAPV2_H
25#include "twine/holomap.h"
26#include "twine/shared.h"
30#define HOLO_MAX_OBJECTIF 50
31#define HOLO_MAX_CUBE 255
32#define HOLO_MAX_ARROW (HOLO_MAX_OBJECTIF + HOLO_MAX_CUBE)
35#define HOLO_STEP_ANGLE 128
36#define HOLO_GLOBE_ALPHA_STEPS ((LBAAngles::ANGLE_360 / HOLO_STEP_ANGLE) + 1)
37#define HOLO_GLOBE_BETA_STEPS ((LBAAngles::ANGLE_180 / HOLO_STEP_ANGLE) + 1)
39#define HOLO_GLOBE_COLS 33
40#define HOLO_GLOBE_ROWS 17
41#define HOLO_GLOBE_VERTICES (HOLO_GLOBE_COLS * HOLO_GLOBE_ROWS)
42#define HOLO_GLOBE_QUADS ((HOLO_GLOBE_COLS - 1) * (HOLO_GLOBE_ROWS - 1))
44#define HOLO_RAYON_PLANET 1000
45#define HOLO_ZOOM_PLANET 8000
46#define HOLO_ZOOM_INIT_PLANET 3000
66 static_assert(
sizeof(
Location) == 32,
"Invalid Location size");
72 IVec3 _holomapSurface[HOLO_GLOBE_VERTICES];
74 struct HolomapProjectedPos {
80 HolomapProjectedPos _projectedSurfacePositions[HOLO_GLOBE_VERTICES];
84 uint16 projectedPosIdx = 0;
86 HolomapSort _holomapSort[HOLO_GLOBE_QUADS];
92 int32 _zoomPlanet = HOLO_ZOOM_INIT_PLANET;
93 int32 _zoomPlanetDest = HOLO_ZOOM_PLANET;
99 bool _automove =
false;
102 int32 _numObjectif = -1;
103 int32 _oldObjectif = -1;
106 bool _flagRedraw =
true;
107 bool _flagPal =
true;
108 bool _flagHoloEnd =
false;
111 uint8 *_holomapImagePtr =
nullptr;
112 int32 _holomapImageSize = 0;
114 void computeCoorMapping();
116 void computeGlobeProj();
118 void drawListHoloGlobe(
bool frontFace);
122 int32 distance(
float dist)
const;
123 int32 scale(
float val)
const;
126 HolomapV2(TwinEEngine *engine) :
Super(engine) {}
127 virtual ~HolomapV2() =
default;
130 bool loadLocations()
override;
131 const char *getLocationName(
int index)
const override;
133 void holoTraj(int32 trajectoryIndex)
override;
Definition: holomap_v2.h:48
void clrHoloPos(int32 locationIdx) override
bool setHoloPos(int32 locationIdx) override
void initHoloDatas() override
Definition: holomap_v2.h:53