1
0
Fork 0

Detect zero length fuselage in YASim/Airplane.cpp. Also, initialized _failureMsg member in the constructor and added another check for failure.

This commit is contained in:
Csaba Halasz 2009-10-25 16:38:31 +01:00 committed by Tim Moore
parent 41752bab57
commit 54691c0086

View file

@ -51,6 +51,8 @@ Airplane::Airplane()
_liftRatio = 1;
_cruiseAoA = 0;
_tailIncidence = 0;
_failureMsg = 0;
}
Airplane::~Airplane()
@ -507,6 +509,10 @@ float Airplane::compileFuselage(Fuselage* f)
float fwd[3];
Math::sub3(f->front, f->back, fwd);
float len = Math::mag3(fwd);
if (len == 0) {
_failureMsg = "Zero length fuselage";
return 0;
}
float wid = f->width;
int segs = (int)Math::ceil(len/wid);
float segWgt = len*wid/segs;
@ -688,6 +694,10 @@ void Airplane::compile()
_model.setGroundEffect(gepos, gespan, 0.15f);
}
// solve function below resets failure message
// so check if we have any problems and abort here
if (_failureMsg) return;
solveGear();
if(_wing && _tail) solve();
else