UFO: Alien Invasion
Toggle main menu visibility
Loading...
Searching...
No Matches
r_model_alias.h
Go to the documentation of this file.
1
5
6
/*
7
Copyright (C) 1997-2001 Id Software, Inc.
8
9
This program is free software; you can redistribute it and/or
10
modify it under the terms of the GNU General Public License
11
as published by the Free Software Foundation; either version 2
12
of the License, or (at your option) any later version.
13
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17
18
See the GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24
*/
25
26
#pragma once
27
28
#define MODEL_MAX_PATH 64
29
#define MAX_ALIAS_TRIS 4096
30
#define MAX_ALIAS_VERTS 8192
31
32
#define mAliasCoord_t vec2_t
33
34
typedef
struct
mAliasVertex_s {
35
vec3_t
point
;
36
vec3_t
normal
;
37
}
mAliasVertex_t
;
38
39
typedef
struct
mAliasComplexVertex_s {
40
vec3_t
point
;
41
vec3_t
normal
;
42
vec4_t
tangent
;
43
}
mAliasComplexVertex_t
;
44
45
typedef
struct
mAliasBoneMatrix_s {
46
vec4_t
matrix
[3];
47
}
mAliasBoneMatrix_t
;
48
49
typedef
struct
mAliasBoneVertex_s {
50
vec3_t
origin
;
51
float
influence
;
52
vec3_t
normal
;
53
unsigned
int
bonenum
;
54
}
mAliasBoneVertex_t
;
55
56
typedef
struct
mAliasFrame_s {
57
AABB
fBox
;
58
vec3_t
translate
;
59
vec3_t
scale
;
60
float
radius
;
61
mAliasBoneMatrix_t
*
boneMatrix
;
62
}
mAliasFrame_t
;
63
67
typedef
struct
mAliasTagOrientation_s {
69
vec3_t
origin
;
71
vec3_t
axis
[3];
72
}
mAliasTagOrientation_t
;
73
82
typedef
struct
mAliasTag_s {
84
char
name
[
MODEL_MAX_PATH
];
86
mAliasTagOrientation_t
*
orient
;
87
}
mAliasTag_t
;
88
89
typedef
struct
mAliasSkin_s {
90
char
name
[
MODEL_MAX_PATH
];
91
int
shader
;
92
image_t
*
skin
;
93
}
mAliasSkin_t
;
94
95
typedef
struct
mIndexList_s {
96
int
length
;
97
int32_t*
list
;
98
}
mIndexList_t
;
99
100
typedef
struct
mAliasMesh_s {
101
int32_t
num_verts
;
102
char
name
[
MODEL_MAX_PATH
];
103
mAliasVertex_t
*
vertexes
;
104
mAliasCoord_t
*
stcoords
;
105
106
/* static meshes have vertex arrays */
107
vec_t
*
verts
;
108
vec_t
*
texcoords
;
109
vec_t
*
normals
;
110
vec_t
*
tangents
;
111
vec_t
*
next_verts
;
112
vec_t
*
next_normals
;
113
vec_t
*
next_tangents
;
114
115
int
num_tris
;
116
int32_t*
indexes
;
117
int32_t
num_indexes
;
118
mIndexList_t
*
revIndexes
;
119
120
int
num_bones
;
121
mAliasBoneVertex_t
*
bonesVertexes
;
122
123
int
num_skins
;
124
int
skinHeight
;
125
int
skinWidth
;
126
mAliasSkin_t
*
skins
;
127
}
mAliasMesh_t
;
128
129
#define MAX_ANIMS 128
130
#define MAX_ANIMNAME 16
131
132
typedef
struct
mAliasAnim_s {
133
char
name
[
MAX_ANIMNAME
];
134
int
from
;
135
int
to
;
136
int
time
;
137
}
mAliasAnim_t
;
138
139
typedef
struct
mAliasBone_s {
140
char
name
[
MAX_VAR
];
141
int
flags
;
142
int
parent
;
/* -1 for no parent */
143
}
mAliasBone_t
;
144
145
typedef
struct
mAliasModel_s {
146
int
num_frames
;
147
mAliasFrame_t
*
frames
;
148
int
curFrame
;
149
int
oldFrame
;
150
152
int
num_tags
;
154
mAliasTag_t
*
tags
;
155
156
int
num_meshes
;
157
mAliasMesh_t
*
meshes
;
158
159
int
num_bones
;
160
mAliasBone_t
*
bones
;
161
163
int
num_anims
;
164
mAliasAnim_t
*
animdata
;
165
int
curAnim
;
166
}
mAliasModel_t
;
167
168
void
R_ModLoadAnims
(
mAliasModel_t
* mod,
const
char
* animname);
169
bool
R_ModLoadMDX
(
struct
model_s* mod);
170
void
R_ModCalcUniqueNormalsAndTangents
(
mAliasMesh_t
* mesh,
int
nFrames,
float
smoothness);
171
void
R_FillArrayData
(
mAliasModel_t
* mod,
mAliasMesh_t
* mesh,
float
backlerp,
int
framenum,
int
oldframenum,
bool
prerender);
172
void
R_ModLoadArrayData
(
mAliasModel_t
* mod,
mAliasMesh_t
* mesh,
bool
loadNormals);
AABB
Definition
aabb.h:42
MODEL_MAX_PATH
#define MODEL_MAX_PATH
Definition
r_model_alias.h:28
mAliasCoord_t
#define mAliasCoord_t
Definition
r_model_alias.h:32
R_ModCalcUniqueNormalsAndTangents
void R_ModCalcUniqueNormalsAndTangents(mAliasMesh_t *mesh, int nFrames, float smoothness)
Calculates normals and tangents for all frames and does vertex merging based on smoothness.
Definition
r_model_alias.cpp:313
R_FillArrayData
void R_FillArrayData(mAliasModel_t *mod, mAliasMesh_t *mesh, float backlerp, int framenum, int oldframenum, bool prerender)
Converts the model data into the opengl arrays.
Definition
r_model_alias.cpp:576
R_ModLoadAnims
void R_ModLoadAnims(mAliasModel_t *mod, const char *animname)
Definition
r_model_alias.cpp:36
R_ModLoadMDX
bool R_ModLoadMDX(struct model_s *mod)
MAX_ANIMNAME
#define MAX_ANIMNAME
Definition
r_model_alias.h:130
R_ModLoadArrayData
void R_ModLoadArrayData(mAliasModel_t *mod, mAliasMesh_t *mesh, bool loadNormals)
Allocates data arrays for animated models. Only called once at loading time.
Definition
r_model_alias.cpp:665
MAX_VAR
#define MAX_VAR
Definition
shared.h:36
image_t
Definition
r_image.h:61
mAliasAnim_t
Definition
r_model_alias.h:132
mAliasAnim_t::name
char name[MAX_ANIMNAME]
Definition
r_model_alias.h:133
mAliasAnim_t::from
int from
Definition
r_model_alias.h:134
mAliasAnim_t::to
int to
Definition
r_model_alias.h:135
mAliasAnim_t::time
int time
Definition
r_model_alias.h:136
mAliasBone_t
Definition
r_model_alias.h:139
mAliasBone_t::parent
int parent
Definition
r_model_alias.h:142
mAliasBone_t::name
char name[MAX_VAR]
Definition
r_model_alias.h:140
mAliasBone_t::flags
int flags
Definition
r_model_alias.h:141
mAliasBoneMatrix_t
Definition
r_model_alias.h:45
mAliasBoneMatrix_t::matrix
vec4_t matrix[3]
Definition
r_model_alias.h:46
mAliasBoneVertex_t
Definition
r_model_alias.h:49
mAliasBoneVertex_t::bonenum
unsigned int bonenum
Definition
r_model_alias.h:53
mAliasBoneVertex_t::influence
float influence
Definition
r_model_alias.h:51
mAliasBoneVertex_t::origin
vec3_t origin
Definition
r_model_alias.h:50
mAliasBoneVertex_t::normal
vec3_t normal
Definition
r_model_alias.h:52
mAliasComplexVertex_t
Definition
r_model_alias.h:39
mAliasComplexVertex_t::normal
vec3_t normal
Definition
r_model_alias.h:41
mAliasComplexVertex_t::point
vec3_t point
Definition
r_model_alias.h:40
mAliasComplexVertex_t::tangent
vec4_t tangent
Definition
r_model_alias.h:42
mAliasFrame_t
Definition
r_model_alias.h:56
mAliasFrame_t::fBox
AABB fBox
Definition
r_model_alias.h:57
mAliasFrame_t::radius
float radius
Definition
r_model_alias.h:60
mAliasFrame_t::scale
vec3_t scale
Definition
r_model_alias.h:59
mAliasFrame_t::boneMatrix
mAliasBoneMatrix_t * boneMatrix
Definition
r_model_alias.h:61
mAliasFrame_t::translate
vec3_t translate
Definition
r_model_alias.h:58
mAliasMesh_t
Definition
r_model_alias.h:100
mAliasMesh_t::skinWidth
int skinWidth
Definition
r_model_alias.h:125
mAliasMesh_t::vertexes
mAliasVertex_t * vertexes
Definition
r_model_alias.h:103
mAliasMesh_t::indexes
int32_t * indexes
Definition
r_model_alias.h:116
mAliasMesh_t::num_bones
int num_bones
Definition
r_model_alias.h:120
mAliasMesh_t::next_normals
vec_t * next_normals
Definition
r_model_alias.h:112
mAliasMesh_t::bonesVertexes
mAliasBoneVertex_t * bonesVertexes
Definition
r_model_alias.h:121
mAliasMesh_t::num_tris
int num_tris
Definition
r_model_alias.h:115
mAliasMesh_t::num_skins
int num_skins
Definition
r_model_alias.h:123
mAliasMesh_t::skins
mAliasSkin_t * skins
Definition
r_model_alias.h:126
mAliasMesh_t::stcoords
mAliasCoord_t * stcoords
Definition
r_model_alias.h:104
mAliasMesh_t::revIndexes
mIndexList_t * revIndexes
Definition
r_model_alias.h:118
mAliasMesh_t::texcoords
vec_t * texcoords
Definition
r_model_alias.h:108
mAliasMesh_t::next_tangents
vec_t * next_tangents
Definition
r_model_alias.h:113
mAliasMesh_t::tangents
vec_t * tangents
Definition
r_model_alias.h:110
mAliasMesh_t::name
char name[MODEL_MAX_PATH]
Definition
r_model_alias.h:102
mAliasMesh_t::skinHeight
int skinHeight
Definition
r_model_alias.h:124
mAliasMesh_t::verts
vec_t * verts
Definition
r_model_alias.h:107
mAliasMesh_t::num_indexes
int32_t num_indexes
Definition
r_model_alias.h:117
mAliasMesh_t::normals
vec_t * normals
Definition
r_model_alias.h:109
mAliasMesh_t::next_verts
vec_t * next_verts
Definition
r_model_alias.h:111
mAliasMesh_t::num_verts
int32_t num_verts
Definition
r_model_alias.h:101
mAliasModel_t
Definition
r_model_alias.h:145
mAliasModel_t::curFrame
int curFrame
Definition
r_model_alias.h:148
mAliasModel_t::oldFrame
int oldFrame
Definition
r_model_alias.h:149
mAliasModel_t::num_bones
int num_bones
Definition
r_model_alias.h:159
mAliasModel_t::curAnim
int curAnim
Definition
r_model_alias.h:165
mAliasModel_t::tags
mAliasTag_t * tags
Definition
r_model_alias.h:154
mAliasModel_t::num_tags
int num_tags
Definition
r_model_alias.h:152
mAliasModel_t::animdata
mAliasAnim_t * animdata
Definition
r_model_alias.h:164
mAliasModel_t::num_frames
int num_frames
Definition
r_model_alias.h:146
mAliasModel_t::bones
mAliasBone_t * bones
Definition
r_model_alias.h:160
mAliasModel_t::frames
mAliasFrame_t * frames
Definition
r_model_alias.h:147
mAliasModel_t::meshes
mAliasMesh_t * meshes
Definition
r_model_alias.h:157
mAliasModel_t::num_anims
int num_anims
Definition
r_model_alias.h:163
mAliasModel_t::num_meshes
int num_meshes
Definition
r_model_alias.h:156
mAliasSkin_t
Definition
r_model_alias.h:89
mAliasSkin_t::name
char name[MODEL_MAX_PATH]
Definition
r_model_alias.h:90
mAliasSkin_t::shader
int shader
Definition
r_model_alias.h:91
mAliasSkin_t::skin
image_t * skin
Definition
r_model_alias.h:92
mAliasTag_t
Definition
r_model_alias.h:82
mAliasTag_t::name
char name[MODEL_MAX_PATH]
Definition
r_model_alias.h:84
mAliasTag_t::orient
mAliasTagOrientation_t * orient
Definition
r_model_alias.h:86
mAliasTagOrientation_t
Definition
r_model_alias.h:67
mAliasTagOrientation_t::origin
vec3_t origin
Definition
r_model_alias.h:69
mAliasTagOrientation_t::axis
vec3_t axis[3]
Definition
r_model_alias.h:71
mAliasVertex_t
Definition
r_model_alias.h:34
mAliasVertex_t::point
vec3_t point
Definition
r_model_alias.h:35
mAliasVertex_t::normal
vec3_t normal
Definition
r_model_alias.h:36
mIndexList_t
Definition
r_model_alias.h:95
mIndexList_t::length
int length
Definition
r_model_alias.h:96
mIndexList_t::list
int32_t * list
Definition
r_model_alias.h:97
vec_t
float vec_t
Definition
ufotypes.h:37
vec3_t
vec_t vec3_t[3]
Definition
ufotypes.h:39
vec4_t
vec_t vec4_t[4]
Definition
ufotypes.h:40
src
client
renderer
r_model_alias.h
Generated on __DATE__ __TIME__ for UFO: Alien Invasion by
1.17.0