1
0
Fork 0

Now use plib in native install mode.

Preparations for unstable development version 0.7.0
Some reorganizational changes.
Beginning to test the use of ssg (part of plib)
This commit is contained in:
curt 1999-06-18 03:42:54 +00:00
parent 90655cf54b
commit c8501f9b29
10 changed files with 166 additions and 84 deletions

View file

@ -25,7 +25,7 @@
#ifndef _GUI_H_ #ifndef _GUI_H_
#define _GUI_H_ #define _GUI_H_
#include <plib/pu.h> #include <pu.h> // plib include
extern void guiInit(); extern void guiInit();
extern void guiMotionFunc ( int x, int y ); extern void guiMotionFunc ( int x, int y );

View file

@ -2,7 +2,7 @@
// //
// Written by Curtis Olson, started October 1998. // Written by Curtis Olson, started October 1998.
// //
// Copyright (C) 1998 Curtis L. Olson - curt@me.umn.edu // Copyright (C) 1998 - 1999 Curtis L. Olson - curt@flightgear.org
// //
// This program is free software; you can redistribute it and/or // This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as // modify it under the terms of the GNU General Public License as
@ -33,7 +33,7 @@
#include <Debug/logstream.hxx> #include <Debug/logstream.hxx>
#if defined( ENABLE_PLIB_JOYSTICK ) #if defined( ENABLE_PLIB_JOYSTICK )
# include <plib/js.h> # include <js.h> // plib include
#elif defined( ENABLE_GLUT_JOYSTICK ) #elif defined( ENABLE_GLUT_JOYSTICK )
# include <GL/glut.h> # include <GL/glut.h>
# include <XGL/xgl.h> # include <XGL/xgl.h>

View file

@ -36,9 +36,10 @@ bin_PROGRAMS = fgfs
bin_SCRIPTS = runfgfs runfgfs.bat bin_SCRIPTS = runfgfs runfgfs.bat
fgfs_SOURCES = \ fgfs_SOURCES = \
GLUTkey.cxx GLUTkey.hxx GLUTmain.cxx \
fg_init.cxx fg_init.hxx \ fg_init.cxx fg_init.hxx \
fg_serial.cxx fg_serial.hxx \ fg_serial.cxx fg_serial.hxx \
keyboard.cxx keyboard.hxx \
main.cxx \
options.cxx options.hxx \ options.cxx options.hxx \
splash.cxx splash.hxx \ splash.cxx splash.hxx \
views.cxx views.hxx views.cxx views.hxx
@ -66,7 +67,7 @@ fgfs_LDADD = \
$(top_builddir)/Lib/Math/libMath.a \ $(top_builddir)/Lib/Math/libMath.a \
$(top_builddir)/Lib/Bucket/libBucket.a \ $(top_builddir)/Lib/Bucket/libBucket.a \
$(top_builddir)/Lib/Debug/libDebug.a \ $(top_builddir)/Lib/Debug/libDebug.a \
-lpu -lfnt \ -lpu -lfnt -lssg -lsg \
$(top_builddir)/Lib/Misc/libMisc.a \ $(top_builddir)/Lib/Misc/libMisc.a \
$(top_builddir)/Lib/zlib/libz.a \ $(top_builddir)/Lib/zlib/libz.a \
$(opengl_LIBS) $(opengl_LIBS)

View file

@ -62,6 +62,7 @@
#include <Math/fg_geodesy.hxx> #include <Math/fg_geodesy.hxx>
#include <Math/point3d.hxx> #include <Math/point3d.hxx>
#include <Math/polar3d.hxx> #include <Math/polar3d.hxx>
#include <Misc/fgpath.hxx>
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#include <Time/event.hxx> #include <Time/event.hxx>
@ -85,8 +86,40 @@ FG_USING_STD(string);
extern const char *default_root; extern const char *default_root;
// Read in configuration (file and command line)
bool fgInitConfig ( int argc, char **argv ) {
// Attempt to locate and parse a config file
// First check fg_root
FGPath config( current_options.get_fg_root() );
config.append( "system.fgfsrc" );
current_options.parse_config_file( config.str() );
// Next check home directory
char* envp = ::getenv( "HOME" );
if ( envp != NULL ) {
config.set( envp );
config.append( ".fgfsrc" );
current_options.parse_config_file( config.str() );
}
// Parse remaining command line options
// These will override anything specified in a config file
if ( current_options.parse_command_line(argc, argv) !=
fgOPTIONS::FG_OPTIONS_OK )
{
// Something must have gone horribly wrong with the command
// line parsing or maybe the user just requested help ... :-)
current_options.usage();
FG_LOG( FG_GENERAL, FG_ALERT, "\nExiting ...");
return false;
}
return true;
}
// Set initial position and orientation // Set initial position and orientation
int fgInitPosition( void ) { bool fgInitPosition( void ) {
string id; string id;
FGInterface *f; FGInterface *f;
@ -132,12 +165,12 @@ int fgInitPosition( void ) {
<< (f->get_Latitude() * RAD_TO_DEG) << ", " << (f->get_Latitude() * RAD_TO_DEG) << ", "
<< (f->get_Altitude() * FEET_TO_METER) << ")" ); << (f->get_Altitude() * FEET_TO_METER) << ")" );
return(1); return true;
} }
// General house keeping initializations // General house keeping initializations
int fgInitGeneral( void ) { bool fgInitGeneral( void ) {
string root; string root;
char *mesa_win_state; char *mesa_win_state;
@ -169,7 +202,7 @@ int fgInitGeneral( void ) {
} }
#endif #endif
return 1; return true;
} }
@ -177,8 +210,7 @@ int fgInitGeneral( void ) {
// initialization routines. If you are adding a subsystem to flight // initialization routines. If you are adding a subsystem to flight
// gear, its initialization call should located in this routine. // gear, its initialization call should located in this routine.
// Returns non-zero if a problem encountered. // Returns non-zero if a problem encountered.
int fgInitSubsystems( void ) bool fgInitSubsystems( void ) {
{
FGTime::cur_time_params = new FGTime(); FGTime::cur_time_params = new FGTime();
FGInterface *f; // assigned later FGInterface *f; // assigned later
@ -422,7 +454,7 @@ int fgInitSubsystems( void )
FG_LOG( FG_GENERAL, FG_INFO, endl); FG_LOG( FG_GENERAL, FG_INFO, endl);
return(1); return true;
} }

View file

@ -31,14 +31,18 @@
#endif #endif
// Read in configuration (file and command line)
bool fgInitConfig ( int argc, char **argv );
// General house keeping initializations // General house keeping initializations
int fgInitGeneral ( void ); bool fgInitGeneral ( void );
// This is the top level init routine which calls all the other // This is the top level init routine which calls all the other
// initialization routines. If you are adding a subsystem to flight // initialization routines. If you are adding a subsystem to flight
// gear, its initialization call should located in this routine. // gear, its initialization call should located in this routine.
int fgInitSubsystems( void ); bool fgInitSubsystems( void );
// Reset // Reset

View file

@ -1,8 +1,8 @@
// GLUTkey.cxx -- handle GLUT keyboard events // keyboard.cxx -- handle GLUT keyboard events
// //
// Written by Curtis Olson, started May 1997. // Written by Curtis Olson, started May 1997.
// //
// Copyright (C) 1997 Curtis L. Olson - curt@me.umn.edu // Copyright (C) 1997 - 1999 Curtis L. Olson - curt@flightgear.org
// //
// This program is free software; you can redistribute it and/or // This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as // modify it under the terms of the GNU General Public License as
@ -39,6 +39,8 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <pu.h> // plib include
#include <Debug/logstream.hxx> #include <Debug/logstream.hxx>
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>
#include <Astro/solarsystem.hxx> #include <Astro/solarsystem.hxx>
@ -49,12 +51,11 @@
#include <Include/fg_constants.h> #include <Include/fg_constants.h>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#include <Objects/materialmgr.hxx> #include <Objects/materialmgr.hxx>
#include <plib/pu.h>
#include <Time/fg_time.hxx> #include <Time/fg_time.hxx>
#include <Time/light.hxx> #include <Time/light.hxx>
#include <Weather/weather.hxx> #include <Weather/weather.hxx>
#include "GLUTkey.hxx" #include "keyboard.hxx"
#include "options.hxx" #include "options.hxx"
#include "views.hxx" #include "views.hxx"

View file

@ -1,8 +1,8 @@
// GLUTkey.hxx -- handle GLUT keyboard events // keyboard.hxx -- handle GLUT keyboard events
// //
// Written by Curtis Olson, started May 1997. // Written by Curtis Olson, started May 1997.
// //
// Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com // Copyright (C) 1997 - 1999 Curtis L. Olson - curt@flightgear.org
// //
// This program is free software; you can redistribute it and/or // This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as // modify it under the terms of the GNU General Public License as
@ -21,8 +21,8 @@
// $Id$ // $Id$
#ifndef _GLUTKEY_HXX #ifndef _KEYBOARD_HXX
#define _GLUTKEY_HXX #define _KEYBOARD_HXX
#ifndef __cplusplus #ifndef __cplusplus
@ -47,6 +47,6 @@ void GLUTkey(unsigned char k, int x, int y);
void GLUTspecialkey(int k, int x, int y); void GLUTspecialkey(int k, int x, int y);
#endif // _GLUTKEY_HXX #endif // _KEYBOARD_HXX

View file

@ -1,8 +1,8 @@
// GLUTmain.cxx -- top level sim routines // main.cxx -- top level sim routines
// //
// Written by Curtis Olson for OpenGL, started May 1997. // Written by Curtis Olson for OpenGL, started May 1997.
// //
// Copyright (C) 1997 Curtis L. Olson - curt@me.umn.edu // Copyright (C) 1997 - 1999 Curtis L. Olson - curt@flightgear.org
// //
// This program is free software; you can redistribute it and/or // This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as // modify it under the terms of the GNU General Public License as
@ -20,8 +20,10 @@
// //
// $Id$ // $Id$
#define MICHAEL_JOHNSON_EXPERIMENTAL_ENGINE_AUDIO #define MICHAEL_JOHNSON_EXPERIMENTAL_ENGINE_AUDIO
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
# include <config.h> # include <config.h>
#endif #endif
@ -53,6 +55,14 @@
# include <unistd.h> /* for stat() */ # include <unistd.h> /* for stat() */
#endif #endif
#include <pu.h> // plib include
#include <ssg.h> // plib include
#ifdef ENABLE_AUDIO_SUPPORT
# include <sl.h> // plib include
# include <sm.h> // plib include
#endif
#include <Include/fg_constants.h> // for VERSION #include <Include/fg_constants.h> // for VERSION
#include <Include/general.hxx> #include <Include/general.hxx>
@ -62,11 +72,6 @@
#include <Astro/stars.hxx> #include <Astro/stars.hxx>
#include <Astro/solarsystem.hxx> #include <Astro/solarsystem.hxx>
#ifdef ENABLE_AUDIO_SUPPORT
# include <plib/sl.h>
# include <plib/sm.h>
#endif
#include <Autopilot/autopilot.hxx> #include <Autopilot/autopilot.hxx>
#include <Cockpit/cockpit.hxx> #include <Cockpit/cockpit.hxx>
#include <GUI/gui.h> #include <GUI/gui.h>
@ -76,7 +81,6 @@
#include <Math/polar3d.hxx> #include <Math/polar3d.hxx>
#include <Math/fg_random.h> #include <Math/fg_random.h>
#include <Misc/fgpath.hxx> #include <Misc/fgpath.hxx>
#include <plib/pu.h>
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#include <Time/event.hxx> #include <Time/event.hxx>
@ -85,8 +89,8 @@
#include <Time/sunpos.hxx> #include <Time/sunpos.hxx>
#include <Weather/weather.hxx> #include <Weather/weather.hxx>
#include "GLUTkey.hxx"
#include "fg_init.hxx" #include "fg_init.hxx"
#include "keyboard.hxx"
#include "options.hxx" #include "options.hxx"
#include "splash.hxx" #include "splash.hxx"
#include "views.hxx" #include "views.hxx"
@ -124,6 +128,11 @@ slSample *s2;
#endif #endif
// ssg variables
ssgRoot *scene = NULL;
ssgTransform *penguin = NULL;
// The following defines flight gear options. Because glutlib will also // The following defines flight gear options. Because glutlib will also
// want to parse its own options, those options must not be included here // want to parse its own options, those options must not be included here
// or they will get parsed by the main program option parser. Hence case // or they will get parsed by the main program option parser. Hence case
@ -166,6 +175,10 @@ static void fgInitVisuals( void ) {
xglEnable( GL_LIGHT0 ); xglEnable( GL_LIGHT0 );
xglLightfv( GL_LIGHT0, GL_POSITION, l->sun_vec ); xglLightfv( GL_LIGHT0, GL_POSITION, l->sun_vec );
sgVec3 sunpos;
sgSetVec3( sunpos, l->sun_vec[0], l->sun_vec[1], l->sun_vec[2] );
ssgGetLight( 0 ) -> setPosition( sunpos );
// xglFogi (GL_FOG_MODE, GL_LINEAR); // xglFogi (GL_FOG_MODE, GL_LINEAR);
xglFogi (GL_FOG_MODE, GL_EXP2); xglFogi (GL_FOG_MODE, GL_EXP2);
// Fog density is now set when the weather system is initialized // Fog density is now set when the weather system is initialized
@ -274,6 +287,10 @@ static void fgRenderFrame( void ) {
// set the sun position // set the sun position
xglLightfv( GL_LIGHT0, GL_POSITION, l->sun_vec ); xglLightfv( GL_LIGHT0, GL_POSITION, l->sun_vec );
sgVec3 sunpos;
sgSetVec3( sunpos, l->sun_vec[0], l->sun_vec[1], l->sun_vec[2] );
ssgGetLight( 0 ) -> setPosition( sunpos );
clear_mask = GL_DEPTH_BUFFER_BIT; clear_mask = GL_DEPTH_BUFFER_BIT;
if ( current_options.get_wireframe() ) { if ( current_options.get_wireframe() ) {
clear_mask |= GL_COLOR_BUFFER_BIT; clear_mask |= GL_COLOR_BUFFER_BIT;
@ -376,6 +393,34 @@ static void fgRenderFrame( void ) {
puDisplay(); puDisplay();
xglDisable ( GL_BLEND ) ; xglDisable ( GL_BLEND ) ;
xglEnable( GL_FOG ); xglEnable( GL_FOG );
// ssg test
cout << "trying to draw ssg scene" << endl;
xglMatrixMode(GL_PROJECTION);
xglLoadIdentity();
ssgSetFOV(60.0f, 0.0f);
ssgSetNearFar(1.0f, 700.0f);
sgCoord tuxpos;
sgSetCoord( &tuxpos,
current_view.view_pos.x() + current_view.view_forward[0]
* 20,
current_view.view_pos.y() + current_view.view_forward[1]
* 20,
current_view.view_pos.z() + current_view.view_forward[2]
* 20,
0.0, 0.0, 0.0 );
penguin->setTransform( &tuxpos );
sgCoord campos;
sgSetCoord( &campos,
current_view.view_pos.x(),
current_view.view_pos.y(),
current_view.view_pos.z(),
0, 0, 0 );
ssgSetCamera( &campos );
ssgCullAndDraw( scene );
} }
xglutSwapBuffers(); xglutSwapBuffers();
@ -817,23 +862,20 @@ static void fgIdleFunction ( void ) {
// options.cxx needs to see this for toggle_panel() // options.cxx needs to see this for toggle_panel()
// Handle new window size or exposure // Handle new window size or exposure
void fgReshape( int width, int height ) { void fgReshape( int width, int height ) {
// Do this so we can call fgReshape(0,0) ourselves without having if ( ! current_options.get_panel_status() ) {
// to know what the values of width & height are. current_view.set_win_ratio( (GLfloat) width / (GLfloat) height );
if ( (height > 0) && (width > 0) ) { xglViewport(0, 0 , (GLint)(width), (GLint)(height) );
if ( ! current_options.get_panel_status() ) { } else {
current_view.set_win_ratio( (GLfloat) width / (GLfloat) height ); current_view.set_win_ratio( (GLfloat) width /
} else { ((GLfloat) (height)*0.4232) );
current_view.set_win_ratio( (GLfloat) width / xglViewport(0, (GLint)((height)*0.5768), (GLint)(width),
((GLfloat) (height)*0.4232) ); (GLint)((height)*0.4232) );
}
} }
current_view.set_winWidth( width ); current_view.set_winWidth( width );
current_view.set_winHeight( height ); current_view.set_winHeight( height );
current_view.force_update_fov_math(); current_view.force_update_fov_math();
// Inform gl of our view window size (now handled elsewhere)
// xglViewport(0, 0, (GLint)width, (GLint)height);
if ( idle_state == 1000 ) { if ( idle_state == 1000 ) {
// yes we've finished all our initializations and are running // yes we've finished all our initializations and are running
// the main loop, so this will now work without seg faulting // the main loop, so this will now work without seg faulting
@ -965,10 +1007,6 @@ int main( int argc, char **argv ) {
argc = ccommand( &argv ); argc = ccommand( &argv );
#endif #endif
FGInterface *f;
f = current_aircraft.fdm_state;
#ifdef HAVE_BC5PLUS #ifdef HAVE_BC5PLUS
_control87(MCW_EM, MCW_EM); /* defined in float.h */ _control87(MCW_EM, MCW_EM); /* defined in float.h */
#endif #endif
@ -978,40 +1016,15 @@ int main( int argc, char **argv ) {
FG_LOG( FG_GENERAL, FG_INFO, "Flight Gear: Version " << VERSION << endl ); FG_LOG( FG_GENERAL, FG_INFO, "Flight Gear: Version " << VERSION << endl );
string root;
FG_LOG( FG_GENERAL, FG_INFO, "General Initialization" );
FG_LOG( FG_GENERAL, FG_INFO, "======= ==============" );
// seed the random number generater // seed the random number generater
fg_srandom(); fg_srandom();
// Attempt to locate and parse a config file // Load the configuration parameters
// First check fg_root if ( !fgInitConfig(argc, argv) ) {
FGPath config( current_options.get_fg_root() ); FG_LOG( FG_GENERAL, FG_ALERT, "Config option parsing failed ..." );
config.append( "system.fgfsrc" );
current_options.parse_config_file( config.str() );
// Next check home directory
char* envp = ::getenv( "HOME" );
if ( envp != NULL ) {
config.set( envp );
config.append( ".fgfsrc" );
current_options.parse_config_file( config.str() );
}
// Parse remaining command line options
// These will override anything specified in a config file
if ( current_options.parse_command_line(argc, argv) !=
fgOPTIONS::FG_OPTIONS_OK )
{
// Something must have gone horribly wrong with the command
// line parsing or maybe the user just requested help ... :-)
current_options.usage();
FG_LOG( FG_GENERAL, FG_ALERT, "\nExiting ...");
exit(-1); exit(-1);
} }
// Initialize the Window/Graphics environment. // Initialize the Window/Graphics environment.
if( !fgGlutInit(&argc, argv) ) { if( !fgGlutInit(&argc, argv) ) {
FG_LOG( FG_GENERAL, FG_ALERT, "GLUT initialization failed ..." ); FG_LOG( FG_GENERAL, FG_ALERT, "GLUT initialization failed ..." );
@ -1025,20 +1038,45 @@ int main( int argc, char **argv ) {
exit(-1); exit(-1);
} }
// Init the user interface (we need to do this before passing off // Initialize ssg (from plib)
// control to glut and before fgInitGeneral to get our fonts !!! ssgInit();
// Initialize the user interface (we need to do this before
// passing off control to glut and before fgInitGeneral to get our
// fonts !!!
guiInit(); guiInit();
// First do some quick general initializations // Do some quick general initializations
if( !fgInitGeneral()) { if( !fgInitGeneral()) {
FG_LOG( FG_GENERAL, FG_ALERT, FG_LOG( FG_GENERAL, FG_ALERT,
"General initializations failed ..." ); "General initializations failed ..." );
exit(-1); exit(-1);
} }
//
// some ssg test stuff (requires data from the plib source
// distribution) specifically from the ssg tux example
//
ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
scene = new ssgRoot;
penguin = new ssgTransform;
ssgEntity *tux_obj = ssgLoadAC( "tuxedo.ac" );
penguin->addKid( tux_obj );
ssgFlatten( tux_obj );
ssgStripify( penguin );
scene->addKid( penguin );
cout << "loaded ssg scene so it should be ready to go" << endl;
// pass control off to the master GLUT event handler // pass control off to the master GLUT event handler
glutMainLoop(); glutMainLoop();
// we never actually get here ... but just in case ... :-) // we never actually get here ... but to avoid compiler warnings,
return(0); // etc.
return 0;
} }

View file

@ -26,6 +26,8 @@
# include <config.h> # include <config.h>
#endif #endif
#include <ssg.h> // plib include
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>
#include <Cockpit/panel.hxx> #include <Cockpit/panel.hxx>
#include <Debug/logstream.hxx> #include <Debug/logstream.hxx>
@ -93,6 +95,8 @@ void FGView::Init( void ) {
// Update the field of view coefficients // Update the field of view coefficients
void FGView::UpdateFOV( const fgOPTIONS& o ) { void FGView::UpdateFOV( const fgOPTIONS& o ) {
ssgSetFOV( o.get_fov(), 0.0 );
double fov, theta_x, theta_y; double fov, theta_x, theta_y;
fov = o.get_fov(); fov = o.get_fov();
@ -228,15 +232,17 @@ void FGView::UpdateViewParams( void ) {
xglViewport(0, 0 , (GLint)(winWidth), (GLint)(winHeight) ); xglViewport(0, 0 , (GLint)(winWidth), (GLint)(winHeight) );
} else { } else {
xglViewport(0, (GLint)((winHeight)*0.5768), (GLint)(winWidth), xglViewport(0, (GLint)((winHeight)*0.5768), (GLint)(winWidth),
(GLint)((winHeight)*0.4232) ); (GLint)((winHeight)*0.4232) );
} }
// Tell GL we are about to modify the projection parameters // Tell GL we are about to modify the projection parameters
xglMatrixMode(GL_PROJECTION); xglMatrixMode(GL_PROJECTION);
xglLoadIdentity(); xglLoadIdentity();
if ( f->get_Altitude() * FEET_TO_METER - scenery.cur_elev > 10.0 ) { if ( f->get_Altitude() * FEET_TO_METER - scenery.cur_elev > 10.0 ) {
ssgSetNearFar( 10.0, 100000.0 );
gluPerspective(current_options.get_fov(), win_ratio, 10.0, 100000.0); gluPerspective(current_options.get_fov(), win_ratio, 10.0, 100000.0);
} else { } else {
ssgSetNearFar( 0.5, 100000.0 );
gluPerspective(current_options.get_fov(), win_ratio, 0.5, 100000.0); gluPerspective(current_options.get_fov(), win_ratio, 0.5, 100000.0);
// printf("Near ground, minimizing near clip plane\n"); // printf("Near ground, minimizing near clip plane\n");
} }
@ -244,7 +250,7 @@ void FGView::UpdateViewParams( void ) {
xglMatrixMode(GL_MODELVIEW); xglMatrixMode(GL_MODELVIEW);
xglLoadIdentity(); xglLoadIdentity();
// set up our view volume (default) // set up our view volume (default)
#if !defined(FG_VIEW_INLINE_OPTIMIZATIONS) #if !defined(FG_VIEW_INLINE_OPTIMIZATIONS)
LookAt(view_pos.x(), view_pos.y(), view_pos.z(), LookAt(view_pos.x(), view_pos.y(), view_pos.z(),

View file

@ -45,7 +45,7 @@
#include <vector> #include <vector>
#include STL_STRING #include STL_STRING
#include <plib/sg.h> #include <sg.h> // plib includes
#include <Bucket/newbucket.hxx> #include <Bucket/newbucket.hxx>
#include <Math/mat3.h> #include <Math/mat3.h>