#include <components/ComponentModels/LimbDarkenedDiskShape.h>
#include <casa/Arrays/Matrix.h>
#include <casa/Arrays/Vector.h>
#include <casa/Arrays/VectorIter.h>
#include <casa/Arrays/ArrayMath.h>
#include <casa/Arrays/Array.h>
#include <casa/Exceptions/Error.h>
#include <casa/Logging/LogIO.h>
#include <casa/Logging/LogOrigin.h>
#include <casa/BasicSL/Constants.h>
#include <casa/BasicMath/Math.h>
#include <measures/Measures/MCDirection.h>
#include <measures/Measures/MDirection.h>
#include <measures/Measures/MeasConvert.h>
#include <measures/Measures/MeasRef.h>
#include <casa/Quanta/MVAngle.h>
#include <casa/Quanta/MVDirection.h>
#include <casa/Quanta/Quantum.h>
#include <casa/Utilities/Assert.h>
#include <casa/BasicSL/String.h>
#include <gsl/gsl_sf_bessel.h>
using namespace casacore;
LimbDarkenedDiskShape::LimbDarkenedDiskShape()
itsMajValue(Quantity(1,"'").getValue("rad")),
itsMinValue(Quantity(1,"'").getValue("rad")),
itsPaValue(Quantity(0,"deg").getValue("rad")),
itsHeight(1.0/(C::pi*itsMajValue*itsMinValue)),
DebugAssert(ok(), AipsError);
LimbDarkenedDiskShape::LimbDarkenedDiskShape(const MDirection& direction,
const Quantum<Double>& majorAxis,
const Quantum<Double>& minorAxis,
const Quantum<Double>& positionAngle,
:TwoSidedShape(direction, majorAxis.getFullUnit(), minorAxis.getFullUnit(), positionAngle.getFullUnit()),
itsMajValue(majorAxis.getValue("rad")),
itsMinValue(minorAxis.getValue("rad")),
itsPaValue(positionAngle.getValue("rad")),
itsHeight(1.0/(C::pi*itsMajValue*itsMinValue)),
DebugAssert(ok(), AipsError);
LimbDarkenedDiskShape::LimbDarkenedDiskShape(const MDirection& direction,
const Quantum<Double>& width,
const Quantum<Double>& positionAngle,
:TwoSidedShape(direction, width.getFullUnit(),
width.getFullUnit(), positionAngle.getFullUnit()),
itsMajValue(width.getValue("rad")),
itsMinValue(itsMajValue*axialRatio),
itsPaValue(positionAngle.getValue("rad")),
itsHeight(1.0/(C::pi*itsMajValue*itsMinValue)),