70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
|
#ifndef MESH_CUBE_H
|
|||
|
#define MESH_CUBE_H
|
|||
|
|
|||
|
#include "Engine3DType.h"
|
|||
|
#include "lvgl.h"
|
|||
|
|
|||
|
|
|||
|
#define NODECOUNT 8
|
|||
|
#define TRICOUNT 12
|
|||
|
#define CUBE_LINECOUNT 12
|
|||
|
|
|||
|
#define NODE(a, b) (long)((nodes[a][b]))
|
|||
|
#define EDGE(a, b) (long)((&faces[a][b]))
|
|||
|
|
|||
|
const long nodes[NODECOUNT][3] = {
|
|||
|
{(long) ( 50.0 * PRES), (long) ( 50.0 * PRES), (long) (-50.0 * PRES)},
|
|||
|
{(long) ( 50.0 * PRES), (long) (-50.0 * PRES), (long) (-50.0 * PRES)},
|
|||
|
{(long) (-50.0 * PRES), (long) (-50.0 * PRES), (long) (-50.0 * PRES)},
|
|||
|
{(long) (-50.0 * PRES), (long) ( 50.0 * PRES), (long) (-50.0 * PRES)},
|
|||
|
{(long) ( 50.0 * PRES), (long) ( 50.0 * PRES), (long) ( 50.0 * PRES)},
|
|||
|
{(long) (-50.0 * PRES), (long) ( 50.0 * PRES), (long) ( 50.0 * PRES)},
|
|||
|
{(long) (-50.0 * PRES), (long) (-50.0 * PRES), (long) ( 50.0 * PRES)},
|
|||
|
{(long) ( 50.0 * PRES), (long) (-50.0 * PRES), (long) (50.0 * PRES)},
|
|||
|
};
|
|||
|
|
|||
|
const unsigned char CubeLines[CUBE_LINECOUNT][2] = {
|
|||
|
{6, 7},
|
|||
|
{7, 4},
|
|||
|
{4, 5},
|
|||
|
{5, 6},
|
|||
|
{2, 1},
|
|||
|
{1, 0},
|
|||
|
{0, 3},
|
|||
|
{3, 2},
|
|||
|
{6, 2},
|
|||
|
{7, 1},
|
|||
|
{5, 3},
|
|||
|
{4, 0},
|
|||
|
};
|
|||
|
|
|||
|
class Cube3D {
|
|||
|
public:
|
|||
|
/* Scene 3d. */
|
|||
|
Line3i lines[CUBE_LINECOUNT];
|
|||
|
Line2i Proj2DLine[CUBE_LINECOUNT];
|
|||
|
uint8_t lineCount;
|
|||
|
uint16_t rotateX;
|
|||
|
uint16_t rotateY;
|
|||
|
int16_t OffsetX;
|
|||
|
int16_t OffsetY;
|
|||
|
int16_t OffsetZ;
|
|||
|
|
|||
|
/* lvgl render. */
|
|||
|
lv_obj_t* lineList[CUBE_LINECOUNT];
|
|||
|
lv_obj_t* root;
|
|||
|
lv_style_t style_line;
|
|||
|
|
|||
|
/* Roate Matrix. */
|
|||
|
float rm[3][3];
|
|||
|
|
|||
|
Cube3D(lv_obj_t* root);
|
|||
|
void CreateRoateMatrix(void);
|
|||
|
void Line3DProj2D(Line3i vec, Line2i* vec2);
|
|||
|
void Cube3DProj2D(void);
|
|||
|
void Cube3DLVGLRender(void);
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
#endif // MESH_H
|