sgMat4 sgVIEW;
+ while ( current_view.follow.size() > 400 ) {
+ current_view.follow.pop_front();
+ }
+
if ( current_view.view_mode == FGView::FG_VIEW_FIRST_PERSON ) {
// select current view matrix
sgCopyMat4( sgVIEW, current_view.sgVIEW );
// select view matrix from front of view matrix queue
FGMat4Wrapper tmp = current_view.follow.front();
sgCopyMat4( sgVIEW, tmp.m );
- while ( current_view.follow.size() > 10 ) {
- current_view.follow.pop_front();
- }
// enable TuX and set up his position and orientation
penguin_sel->select(1);
current_view.view_pos.y(),
current_view.view_pos.z() );
- // sgMat4 sgTMP;
+ sgVec3 ownship_up;
+ sgSetVec3( ownship_up, 0.0, 0.0, 1.0);
+
+ sgMat4 sgROT;
+ sgMakeRotMat4( sgROT, -90.0, ownship_up );
+
+ sgMat4 sgTMP;
sgMat4 sgTUX;
- // sgMultMat4( sgTMP, current_view.sgUP, sgTRANS );
- // sgMultMat4( sgTUX, current_view.sgLARC_TO_SSG, sgTMP );
- sgMultMat4( sgTUX, current_view.sgVIEW_ROT, sgTRANS );
+ sgMultMat4( sgTMP, sgROT, current_view.sgVIEW_ROT );
+ sgMultMat4( sgTUX, sgTMP, sgTRANS );
sgCoord tuxpos;
sgSetCoord( &tuxpos, sgTUX );
// printf("updating flight model x %d\n", multi_loop);
fgFDMUpdate( current_options.get_flight_model(),
- cur_fdm_state, multi_loop, remainder );
+ cur_fdm_state, multi_loop * 1, remainder );
} else {
fgFDMUpdate( current_options.get_flight_model(),
cur_fdm_state, 0, remainder );
// distribution) specifically from the ssg tux example
//
- // ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
- // ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
- 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/" );
+ FGPath modelpath( current_options.get_fg_root() );
+ modelpath.append( "Models" );
+ modelpath.append( "Geometry" );
+
+ FGPath texturepath( current_options.get_fg_root() );
+ texturepath.append( "Models" );
+ texturepath.append( "Textures" );
+
+ ssgModelPath( (char *)modelpath.c_str() );
+ ssgTexturePath( (char *)texturepath.c_str() );
scene = new ssgRoot;
terrain = new ssgBranch;
penguin_sel = new ssgSelector;
penguin_pos = new ssgTransform;
- ssgEntity *tux_obj = ssgLoadAC( "tuxedo.ac" );
+ // ssgEntity *tux_obj = ssgLoadAC( "glider.ac" );
+ ssgEntity *tux_obj = ssgLoadAC( "Tower1x.ac" );
penguin_pos->addKid( tux_obj );
penguin_sel->addKid( penguin_pos );
ssgFlatten( tux_obj );