summaryrefslogtreecommitdiff
path: root/src/engine/model.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/model.h')
-rw-r--r--src/engine/model.h53
1 files changed, 18 insertions, 35 deletions
diff --git a/src/engine/model.h b/src/engine/model.h
index 82aea40..16f1629 100644
--- a/src/engine/model.h
+++ b/src/engine/model.h
@@ -1,7 +1,6 @@
-enum { MDL_MD3, MDL_MD5, MDL_IQM, NUMMODELTYPES };
+enum { MDL_MD5, MDL_IQM, NUMMODELTYPES };
-struct model
-{
+struct model {
char *name;
float spinyaw, spinpitch, offsetyaw, offsetpitch;
bool collide, ellipsecollide, shadow, alphadepth, depthoffset;
@@ -11,7 +10,6 @@ struct model
vec bbcenter, bbradius, bbextend, collidecenter, collideradius;
float rejectradius, eyeheight, collidexyradius, collideheight;
int batch;
-
model(const char *name) : name(name ? newstring(name) : NULL), spinyaw(0), spinpitch(0), offsetyaw(0), offsetpitch(0), collide(true), ellipsecollide(false), shadow(true), alphadepth(true), depthoffset(false), scale(1.0f), translate(0, 0, 0), bih(0), bbcenter(0, 0, 0), bbradius(-1, -1, -1), bbextend(0, 0, 0), collidecenter(0, 0, 0), collideradius(-1, -1, -1), rejectradius(-1), eyeheight(0.9f), collidexyradius(0), collideheight(0), batch(-1) {}
virtual ~model() { DELETEA(name); DELETEP(bih); }
virtual void calcbb(vec &center, vec &radius) = 0;
@@ -20,46 +18,35 @@ struct model
virtual int type() const = 0;
virtual BIH *setBIH() { return 0; }
virtual bool skeletal() const { return false; }
-
- virtual void setshader(Shader *shader) {}
- virtual void setspec(float spec) {}
- virtual void setambient(float ambient) {}
- virtual void setalphatest(float alpha) {}
- virtual void setalphablend(bool blend) {}
- virtual void setfullbright(float fullbright) {}
- virtual void setcullface(bool cullface) {}
-
+ virtual void setshader(Shader *) {}
+ virtual void setspec(float) {}
+ virtual void setambient(float) {}
+ virtual void setalphatest(float) {}
+ virtual void setalphablend(bool) {}
+ virtual void setfullbright(float) {}
+ virtual void setcullface(bool) {}
virtual void preloadBIH() { if(!bih) setBIH(); }
- virtual void preloadshaders(bool force = false) {}
+ virtual void preloadshaders() {}
virtual void preloadmeshes() {}
virtual void cleanup() {}
-
virtual void startrender() {}
virtual void endrender() {}
-
- void boundbox(vec &center, vec &radius)
- {
- if(bbradius.x < 0)
- {
+ void boundbox(vec &center, vec &radius) {
+ if(bbradius.x < 0) {
calcbb(bbcenter, bbradius);
bbradius.add(bbextend);
}
center = bbcenter;
radius = bbradius;
}
-
- float collisionbox(vec &center, vec &radius)
- {
- if(collideradius.x < 0)
- {
+ float collisionbox(vec &center, vec &radius) {
+ if(collideradius.x < 0) {
boundbox(collidecenter, collideradius);
- if(collidexyradius)
- {
+ if(collidexyradius) {
collidecenter.x = collidecenter.y = 0;
collideradius.x = collideradius.y = collidexyradius;
}
- if(collideheight)
- {
+ if(collideheight) {
collidecenter.z = collideradius.z = collideheight/2;
}
rejectradius = vec(collidecenter).abs().add(collideradius).magnitude();
@@ -68,16 +55,12 @@ struct model
radius = collideradius;
return rejectradius;
}
-
- float boundsphere(vec &center)
- {
+ float boundsphere(vec &center) {
vec radius;
boundbox(center, radius);
return radius.magnitude();
}
-
- float above()
- {
+ float above() {
vec center, radius;
boundbox(center, radius);
return center.z+radius.z;