1
0
Fork 0

Fix issues exposed by PLIB-free SimGear.

This commit is contained in:
James Turner 2010-07-23 09:41:37 +01:00
parent bf52c378a4
commit 900fce6374
4 changed files with 17 additions and 37 deletions

View file

@ -175,20 +175,12 @@ FGAIFlightPlan::FGAIFlightPlan(FGAIAircraft *ac,
if (wpt->name == "END") wpt->finished = true;
else wpt->finished = false;
waypoints.push_back(wpt);
}
}
catch (const sg_exception &) {
SG_LOG(SG_GENERAL, SG_WARN,
"Error reading AI flight plan: ");
cerr << "Errno = " << errno << endl;
if (errno == ENOENT)
{
SG_LOG(SG_GENERAL, SG_WARN, "Reason: No such file or directory");
}
}
} // of node loop
} catch (const sg_exception &e) {
SG_LOG(SG_GENERAL, SG_WARN, "Error reading AI flight plan: " <<
e.getMessage() << " from " << e.getOrigin());
}
else
{
} else {
// cout << path.str() << endl;
// cout << "Trying to create this plan dynamically" << endl;
// cout << "Route from " << dep->id << " to " << arr->id << endl;

View file

@ -38,7 +38,6 @@
#include "AIAircraft.hxx"
#include "performancedata.hxx"
using std::iostream;
void FGAIFlightPlan::evaluateRoutePart(double deplat,
@ -55,28 +54,18 @@ void FGAIFlightPlan::evaluateRoutePart(double deplat,
SGGeoc arr(SGGeoc::fromDegM(arrlon, arrlat, 100.0));
SGVec3d a = SGVec3d::fromGeoc(dep);
SGVec3d b = SGVec3d::fromGeoc(arr);
SGVec3d _cross = cross(b, a);
SGVec3d nb = normalize(SGVec3d::fromGeoc(arr));
SGVec3d na = normalize(a);
SGVec3d _cross = cross(nb, na);
double angle = sgACos(dot(a, b));
double angle = acos(dot(na, nb));
const double angleStep = 0.05 * SG_DEGREES_TO_RADIANS;
tmpNode = 0;
for (double ang = 0.0; ang < angle; ang += 0.05)
{
sgdVec3 newPos;
sgdMat4 matrix;
//cerr << "Angle = " << ang << endl;
sgdMakeRotMat4(matrix, ang, _cross.data());
for(int j = 0; j < 3; j++)
{
newPos[j] =0.0;
for (int k = 0; k<3; k++)
{
newPos[j] += matrix[j][k]*a[k];
}
}
//cerr << "1"<< endl;
SGGeod geod = SGGeod::fromCart(SGVec3d(newPos[0], newPos[1], newPos[2]));
for (double ang = 0.0; ang < angle; ang += angleStep)
{
SGQuatd q = SGQuatd::fromAngleAxis(ang, _cross);
SGGeod geod = SGGeod::fromCart(q.transform(a));
prevNode = tmpNode;
tmpNode = globals->get_airwaynet()->findNearestNode(geod);

View file

@ -100,8 +100,7 @@ double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_
double y = sg_random() * SGCloudField::fieldSize - (SGCloudField::fieldSize / 2.0);
double z = grid_z_rand * (sg_random() - 0.5);
sgVec3 pos={x,y,z};
SGVec3f pos(x,y,z);
for(int i = 0; i < box_def->nChildren() ; i++) {
SGPropertyNode *abox = box_def->getChild(i);

View file

@ -190,7 +190,7 @@ FGViewMgr::bind ()
fgTie("/sim/current-view/view-number", this,
&FGViewMgr::getView, &FGViewMgr::setView);
fgSetArchivable("/sim/current-view/view-number", FALSE);
fgSetArchivable("/sim/current-view/view-number", false);
fgTie("/sim/current-view/axes/long", this,
(double_getter)0, &FGViewMgr::setViewAxisLong);