namespace JSBSim {
-static const char *IdSrc = "$Id: FGMassBalance.cpp,v 1.31 2010/02/19 00:30:00 jberndt Exp $";
+static const char *IdSrc = "$Id: FGMassBalance.cpp,v 1.34 2010/11/18 12:38:06 jberndt Exp $";
static const char *IdHdr = ID_MASSBALANCE;
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (FDMExec->GetChildFDM(fdm)->mated) ChildFDMWeight += FDMExec->GetChildFDM(fdm)->exec->GetMassBalance()->GetWeight();
}
- Weight = EmptyWeight + Propulsion->GetTanksWeight() + GetTotalPointMassWeight()
- + BuoyantForces->GetGasMass()*slugtolb + ChildFDMWeight;
+ Weight = EmptyWeight + FDMExec->GetPropulsion()->GetTanksWeight() + GetTotalPointMassWeight()
+ + FDMExec->GetBuoyantForces()->GetGasMass()*slugtolb + ChildFDMWeight;
Mass = lbtoslug*Weight;
- FGModel::PostLoad(el);
+ PostLoad(el, PropertyManager);
Debug(2);
return true;
if (FDMExec->GetChildFDM(fdm)->mated) ChildFDMWeight += FDMExec->GetChildFDM(fdm)->exec->GetMassBalance()->GetWeight();
}
- Weight = EmptyWeight + Propulsion->GetTanksWeight() + GetTotalPointMassWeight()
- + BuoyantForces->GetGasMass()*slugtolb + ChildFDMWeight;
+ Weight = EmptyWeight + FDMExec->GetPropulsion()->GetTanksWeight() + GetTotalPointMassWeight()
+ + FDMExec->GetBuoyantForces()->GetGasMass()*slugtolb + ChildFDMWeight;
Mass = lbtoslug*Weight;
// Calculate new CG
- vXYZcg = (Propulsion->GetTanksMoment() + EmptyWeight*vbaseXYZcg
+ vXYZcg = (FDMExec->GetPropulsion()->GetTanksMoment() + EmptyWeight*vbaseXYZcg
+ GetPointMassMoment()
- + BuoyantForces->GetGasMassMoment()) / Weight;
+ + FDMExec->GetBuoyantForces()->GetGasMassMoment()) / Weight;
// Track frame-by-frame delta CG, and move the EOM-tracked location
// by this amount.
vDeltaXYZcg = vXYZcg - vLastXYZcg;
vDeltaXYZcgBody = StructuralToBody(vLastXYZcg) - StructuralToBody(vXYZcg);
vLastXYZcg = vXYZcg;
- Propagate->NudgeBodyLocation(vDeltaXYZcgBody);
+ FDMExec->GetPropagate()->NudgeBodyLocation(vDeltaXYZcgBody);
// Calculate new total moments of inertia
mJ += GetPointmassInertia( lbtoslug * EmptyWeight, vbaseXYZcg );
// Then add the contributions from the additional pointmasses.
mJ += CalculatePMInertias();
- mJ += Propulsion->CalculateTankInertias();
- mJ += BuoyantForces->GetGasMassInertia();
+ mJ += FDMExec->GetPropulsion()->CalculateTankInertias();
+ mJ += FDMExec->GetBuoyantForces()->GetGasMassInertia();
Ixx = mJ(1,1);
Iyy = mJ(2,2);
pm->SetPointMassShapeType(PointMass::esSphere);
pm->SetRadius(radius);
pm->CalculateShapeInertia();
+ } else if (shape == "ball") {
+ pm->SetPointMassShapeType(PointMass::esBall);
+ pm->SetRadius(radius);
+ pm->CalculateShapeInertia();
} else {
}
}
<< setw(12) << pm->GetPointMassMoI(3,3) << endl;
}
- for (unsigned int i=0;i<Propulsion->GetNumTanks() ;i++) {
- FGTank* tank = Propulsion->GetTank(i);
+ for (unsigned int i=0;i<FDMExec->GetPropulsion()->GetNumTanks() ;i++) {
+ FGTank* tank = FDMExec->GetPropulsion()->GetTank(i);
string tankname="";
if (tank->GetType() == FGTank::ttFUEL && tank->GetGrainType() != FGTank::gtUNKNOWN) {
tankname = "Solid Fuel";