-
Notifications
You must be signed in to change notification settings - Fork 0
/
cmundo3d.h
75 lines (62 loc) · 1.67 KB
/
cmundo3d.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef MUNDO3D_H
#define MUNDO3D_H
#include <qwidget.h>
#include <qpixmap.h>
#include <qfont.h>
#include "clienzo.h"
#include "centidad3d.h"
#include "cframebuffer.h"
#include "czbuffer.h"
#include "cinterfaz.h"
#include "csuperficierevolucion.h"
#include "ctriangulo.h"
#include "cvertice3d.h"
#include "mate.h"
#include "ccamara.h"
#define MAX_ENTIDADES 20
#define MIN_ANCHO_PANTALLA 640
#define MIN_ALTO_PANTALLA 480
typedef struct {
int x;
double z, n;
double zsum, nsum;
} TExtremoLineaBarrido;
class CMundo3d : public QWidget
{
Q_OBJECT
public:
CMundo3d (QFont *fuente, QWidget *padre = 0, const char *nombre = 0);
~CMundo3d () {delete framebuffer;delete zbuffer;}
CInterfaz *interfaz;
CEntidad3d *entidades[MAX_ENTIDADES];
CEntidad3d *entidadactiva;
CCamara *camaraactiva;
int nentidades;
CLienzo *pantalla;
CFrameBuffer *framebuffer;
CZBuffer *zbuffer;
CSuperficieRevolucion superficierevolucion;
int revolucionando;
void DibujarMundo3d();
CVertice3d CambioCoordenadasCamaraAMundo(double x, double y, double z);
inline void PintarPixel(int x, int y, double z);
public slots:
void RatonMovido(int x, int y);
void RatonMovidoIzq(int x, int y);
void RatonMovidoDer(int x, int y);
void RatonMovidoCen(int x, int y);
void RatonMovidoIzqCtrl(int z);
void RatonMovidoDerCtrl(int z);
void RatonMovidoCenCtrl(int z);
void RatonPulsadoIzq(int x, int y);
void RatonPulsadoDer(int x, int y);
void CambiarEntidadActiva(int i);
void IniciarSuperficieRevolucion();
void CambiarColor();
void CrearCamara();
void OcultarEntidad(bool estado);
void OcultarCaras(bool estado);
void CambiarModoPintar(int modopintar);
void CambiarModoSombreado(int modosombreado);
};
#endif