Added F8 to toggle fog and F9 to toggle texturing.
This commit is contained in:
parent
9e9fbd3185
commit
6438a27244
3 changed files with 110 additions and 4 deletions
|
@ -47,6 +47,7 @@
|
||||||
#include <Debug/fg_debug.h>
|
#include <Debug/fg_debug.h>
|
||||||
#include <GUI/gui.h>
|
#include <GUI/gui.h>
|
||||||
#include <Include/fg_constants.h>
|
#include <Include/fg_constants.h>
|
||||||
|
#include <Objects/material.hxx>
|
||||||
#include <PUI/pu.h>
|
#include <PUI/pu.h>
|
||||||
#include <Time/light.hxx>
|
#include <Time/light.hxx>
|
||||||
#include <Weather/weather.h>
|
#include <Weather/weather.h>
|
||||||
|
@ -78,7 +79,6 @@ void GLUTkey(unsigned char k, int x, int y) {
|
||||||
fgVIEW *v;
|
fgVIEW *v;
|
||||||
struct fgWEATHER *w;
|
struct fgWEATHER *w;
|
||||||
float fov, tmp;
|
float fov, tmp;
|
||||||
int status;
|
|
||||||
|
|
||||||
c = current_aircraft.controls;
|
c = current_aircraft.controls;
|
||||||
f = current_aircraft.flight;
|
f = current_aircraft.flight;
|
||||||
|
@ -299,8 +299,37 @@ void GLUTspecialkey(int k, int x, int y) {
|
||||||
} else {
|
} else {
|
||||||
fgPrintf( FG_INPUT, FG_DEBUG, "\n");
|
fgPrintf( FG_INPUT, FG_DEBUG, "\n");
|
||||||
switch (k) {
|
switch (k) {
|
||||||
|
case GLUT_KEY_F8: /* F8 toggles fog ... off fastest nicest... */
|
||||||
|
current_options.cycle_fog();
|
||||||
|
|
||||||
|
if ( current_options.get_fog() == fgOPTIONS::FG_FOG_DISABLED ) {
|
||||||
|
fgPrintf( FG_INPUT, FG_INFO, "Fog disabled\n" );
|
||||||
|
} else if ( current_options.get_fog() ==
|
||||||
|
fgOPTIONS::FG_FOG_FASTEST )
|
||||||
|
{
|
||||||
|
fgPrintf( FG_INPUT, FG_INFO,
|
||||||
|
"Fog enabled, hint set to fastest\n" );
|
||||||
|
} else if ( current_options.get_fog() ==
|
||||||
|
fgOPTIONS::FG_FOG_NICEST )
|
||||||
|
{
|
||||||
|
fgPrintf( FG_INPUT, FG_INFO,
|
||||||
|
"Fog enabled, hint set to nicest\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
case GLUT_KEY_F9: /* F9 toggles textures on and off... */
|
||||||
|
if ( material_mgr.get_textures_loaded() ) {
|
||||||
|
current_options.get_textures() ?
|
||||||
|
current_options.set_textures(false) :
|
||||||
|
current_options.set_textures(true);
|
||||||
|
fgPrintf( FG_INPUT, FG_INFO, "Toggling texture\n" );
|
||||||
|
} else {
|
||||||
|
fgPrintf( FG_INPUT, FG_INFO,
|
||||||
|
"No textures loaded, cannot toggle\n" );
|
||||||
|
}
|
||||||
|
return;
|
||||||
case GLUT_KEY_F10: /* F10 toggles menu on and off... */
|
case GLUT_KEY_F10: /* F10 toggles menu on and off... */
|
||||||
printf("Invoking call back function");
|
fgPrintf(FG_INPUT, FG_INFO, "Invoking call back function");
|
||||||
hideMenuButton ->
|
hideMenuButton ->
|
||||||
setValue ((int) !(hideMenuButton -> getValue() ) );
|
setValue ((int) !(hideMenuButton -> getValue() ) );
|
||||||
hideMenuButton -> invokeCallback();
|
hideMenuButton -> invokeCallback();
|
||||||
|
@ -347,9 +376,12 @@ void GLUTspecialkey(int k, int x, int y) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.22 1998/09/15 04:27:27 curt
|
/* Revision 1.23 1998/09/17 18:35:30 curt
|
||||||
/* Changes for new Astro code.
|
/* Added F8 to toggle fog and F9 to toggle texturing.
|
||||||
/*
|
/*
|
||||||
|
* Revision 1.22 1998/09/15 04:27:27 curt
|
||||||
|
* Changes for new Astro code.
|
||||||
|
*
|
||||||
* Revision 1.21 1998/08/29 13:09:25 curt
|
* Revision 1.21 1998/08/29 13:09:25 curt
|
||||||
* Changes to event manager from Bernie Bright.
|
* Changes to event manager from Bernie Bright.
|
||||||
*
|
*
|
||||||
|
|
|
@ -35,6 +35,13 @@
|
||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_WINDOWS_H
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <XGL/xgl.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#ifdef NEEDNAMESPACESTD
|
#ifdef NEEDNAMESPACESTD
|
||||||
|
@ -163,6 +170,18 @@ public:
|
||||||
// Update functions
|
// Update functions
|
||||||
void set_hud_status( bool status ) { hud_status = status; }
|
void set_hud_status( bool status ) { hud_status = status; }
|
||||||
void set_fov( double amount ) { fov = amount; }
|
void set_fov( double amount ) { fov = amount; }
|
||||||
|
void set_textures( bool status ) { textures = status; }
|
||||||
|
void cycle_fog( void ) {
|
||||||
|
if ( fog == FG_FOG_DISABLED ) {
|
||||||
|
fog = FG_FOG_FASTEST;
|
||||||
|
} else if ( fog == FG_FOG_FASTEST ) {
|
||||||
|
fog = FG_FOG_NICEST;
|
||||||
|
xglHint ( GL_FOG_HINT, GL_NICEST );
|
||||||
|
} else if ( fog == FG_FOG_NICEST ) {
|
||||||
|
fog = FG_FOG_DISABLED;
|
||||||
|
xglHint ( GL_FOG_HINT, GL_FASTEST );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -182,6 +201,9 @@ extern fgOPTIONS current_options;
|
||||||
|
|
||||||
|
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.18 1998/09/17 18:35:31 curt
|
||||||
|
// Added F8 to toggle fog and F9 to toggle texturing.
|
||||||
|
//
|
||||||
// Revision 1.17 1998/09/08 21:40:10 curt
|
// Revision 1.17 1998/09/08 21:40:10 curt
|
||||||
// Fixes by Charlie Hotchkiss.
|
// Fixes by Charlie Hotchkiss.
|
||||||
//
|
//
|
||||||
|
|
|
@ -538,12 +538,64 @@ void fgVIEW::UpdateWorldToEye( fgFLIGHT *f ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// Reject non viewable spheres from current View Frustrum by Curt
|
||||||
|
// Olson curt@me.umn.edu and Norman Vine nhv@yahoo.com with 'gentle
|
||||||
|
// guidance' from Steve Baker sbaker@link.com
|
||||||
|
int
|
||||||
|
fgVIEW::SphereClip( const fgPoint3d *cp,
|
||||||
|
const double radius )
|
||||||
|
{
|
||||||
|
double x1, y1;
|
||||||
|
|
||||||
|
MAT3vec eye;
|
||||||
|
double *mat;
|
||||||
|
double x, y, z;
|
||||||
|
|
||||||
|
x = cp->x;
|
||||||
|
y = cp->y;
|
||||||
|
z = cp->z;
|
||||||
|
|
||||||
|
mat = (double *)(WORLD_TO_EYE);
|
||||||
|
|
||||||
|
eye[2] = x*mat[2] + y*mat[6] + z*mat[10] + mat[14];
|
||||||
|
|
||||||
|
// Check near and far clip plane
|
||||||
|
if( ( eye[2] > radius ) ||
|
||||||
|
( eye[2] + radius + current_weather.visibility < 0) )
|
||||||
|
// ( eye[2] + radius + far_plane < 0) )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check right and left clip plane (from eye perspective)
|
||||||
|
x1 = radius * fov_x_clip;
|
||||||
|
eye[0] = (x*mat[0] + y*mat[4] + z*mat[8] + mat[12]) * slope_x;
|
||||||
|
if( (eye[2] > -(eye[0]+x1)) || (eye[2] > (eye[0]-x1)) ) {
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check bottom and top clip plane (from eye perspective)
|
||||||
|
y1 = radius * fov_y_clip;
|
||||||
|
eye[1] = (x*mat[1] + y*mat[5] + z*mat[9] + mat[13]) * slope_y;
|
||||||
|
if( (eye[2] > -(eye[1]+y1)) || (eye[2] > (eye[1]-y1)) ) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
fgVIEW::~fgVIEW( void ) {
|
fgVIEW::~fgVIEW( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.21 1998/09/17 18:35:33 curt
|
||||||
|
// Added F8 to toggle fog and F9 to toggle texturing.
|
||||||
|
//
|
||||||
// Revision 1.20 1998/09/08 15:04:35 curt
|
// Revision 1.20 1998/09/08 15:04:35 curt
|
||||||
// Optimizations by Norman Vine.
|
// Optimizations by Norman Vine.
|
||||||
//
|
//
|
||||||
|
|
Loading…
Add table
Reference in a new issue