double CalculateAreaExposed(ModularFI.ModularFlightIntegrator fi, Part part, FARAeroPartModule aeroModule)
        {
            if ((object)aeroModule != null)
            {
                double exposedArea = aeroModule.ProjectedAreaLocal(-part.dragVectorDirLocal);

                if (exposedArea > 0)
                {
                    return(exposedArea);
                }
                else
                {
                    return(fi.BaseFICalculateAreaExposed(part));
                }
            }
            else
            {
                return(fi.BaseFICalculateAreaExposed(part));
            }

            /*else
             * {
             *  if (stockRadArea > 0)
             *      return aeroModule.ProjectedAreas.totalArea * dragCubeExposed / stockRadArea;
             *  else
             *      return aeroModule.ProjectedAreas.totalArea;
             * }*/
        }
        double CalculateAreaExposed(ModularFI.ModularFlightIntegrator fi, Part part, FARAeroPartModule aeroModule)
        {
            double dragCubeExposed = fi.BaseFICalculateAreaExposed(part);

            if (aeroModule == null)
            {
                return(dragCubeExposed);
            }
            else
            {
                double cubeRadiative = fi.BaseFICalculateAreaRadiative(part);
                if (cubeRadiative > 0)
                {
                    return(aeroModule.ProjectedAreas.totalArea * dragCubeExposed / cubeRadiative);
                }
                else
                {
                    return(aeroModule.ProjectedAreas.totalArea);
                }
            }
        }