#include <components/ComponentModels/GaussianShape.h>
#include <components/ComponentModels/Flux.h>
#include <casa/Arrays/Vector.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>
using namespace casacore;
GaussianShape::GaussianShape()
itsShape(1.0, 0.0, 0.0, Quantity(1,"'").getValue("rad"), 1.0, 0.0),
DebugAssert(ok(), AipsError);
GaussianShape::GaussianShape(const MDirection& direction,
const Quantum<Double>& majorAxis,
const Quantum<Double>& minorAxis,
const Quantum<Double>& positionAngle)
:TwoSidedShape(direction, majorAxis.getFullUnit(),
minorAxis.getFullUnit(), positionAngle.getFullUnit()),
itsShape(1.0, 0.0, 0.0, majorAxis.getValue("rad"),
minorAxis.getValue("rad")/majorAxis.getValue("rad"),
positionAngle.getValue("rad")),
DebugAssert(ok(), AipsError);
GaussianShape::GaussianShape(const MDirection& direction,
const Quantum<Double>& width,
const Quantum<Double>& positionAngle)
:TwoSidedShape(direction, width.getFullUnit(),
width.getFullUnit(), positionAngle.getFullUnit()),
itsShape(1.0, 0.0, 0.0, width.getValue("rad"), axialRatio,
positionAngle.getValue("rad")),
DebugAssert(ok(), AipsError);