le3d - LightEngine 3D
A straightforward C++ 3D software engine for real-time graphics
trilist.h
Go to the documentation of this file.
1 
33 #ifndef LE_TRILIST_H
34 #define LE_TRILIST_H
35 
36 #include "global.h"
37 #include "config.h"
38 
39 #include "color.h"
40 
41 /*****************************************************************************/
46 struct LeFog {
47  LeFog() :
48  color(),
50  far(-100.0f)
51  {}
52 
54  float near;
55  float far;
56 };
57 
58 /*****************************************************************************/
63 typedef enum {
70 
75 typedef struct {
76  float xs[4];
77  float ys[4];
78  float zs[4];
79  float us[4];
80  float vs[4];
81  float vd;
85  int flags;
86 } LeTriangle;
87 
88 /*****************************************************************************/
93 class LeTriList
94 {
95 public:
96  LeTriList();
97  LeTriList(int noTrangles);
98  ~LeTriList();
99 
100  void allocate(int noTriangles);
101  void zSort();
102 
105 public:
106  int * srcIndices;
107  int * dstIndices;
111  int noUsed;
112  int noValid;
114 private:
115  void zMergeSort(int indices[], int tmp[], int nb);
116 };
117 
118 #endif // LE_TRILIST_H
LeColor color
Definition: trilist.h:53
LeColor solidColor
Definition: trilist.h:83
int diffuseTexture
Definition: trilist.h:84
int noUsed
Definition: trilist.h:111
Represent a quadratic fog.
Definition: trilist.h:46
Definition: trilist.h:66
Represent a rasterizable triangle.
Definition: trilist.h:75
LightEngine 3D: General engine configuration file.
LeTriList()
Definition: trilist.cpp:39
int noValid
Definition: trilist.h:112
Definition: trilist.h:68
LightEngine 3D: Global helpers and definitions.
#define LE_RENDERER_NEAR_DEFAULT
Definition: config.h:59
int * dstIndices
Definition: trilist.h:107
LeTriangle * triangles
Definition: trilist.h:108
float vd
Definition: trilist.h:81
Contain and manage triangle lists.
Definition: trilist.h:93
int * srcIndices
Definition: trilist.h:106
LeFog()
Definition: trilist.h:47
Represent an RGBA color.
Definition: color.h:42
void zSort()
Sort triangles according to their view distance (descending order)
Definition: trilist.cpp:79
Definition: trilist.h:64
float near
Definition: trilist.h:54
LeFog fog
Definition: trilist.h:103
int flags
Definition: trilist.h:85
LightEngine 3D: Color implementation.
Definition: trilist.h:67
void allocate(int noTriangles)
Allocate memory to hold triangles.
Definition: trilist.cpp:67
~LeTriList()
Definition: trilist.cpp:54
float far
Definition: trilist.h:55
LE_TRIANGLE_FLAGS
Rendering flags per triangle.
Definition: trilist.h:63
int noAllocated
Definition: trilist.h:110
Definition: trilist.h:65