#include <casa/Quanta/QMath.h>
#include <coordinates/Coordinates/DirectionCoordinate.h>
#include <components/ComponentModels/SkyComponent.h>
#include <components/ComponentModels/ComponentShape.h>
#include <components/ComponentModels/Flux.h>
#include <components/ComponentModels/SkyCompRep.h>
#include <components/ComponentModels/SpectralModel.h>
#include <coordinates/Coordinates/DirectionCoordinate.h>
#include <casa/Arrays/Vector.h>
#include <casa/Containers/RecordInterface.h>
#include <casa/Exceptions/Error.h>
#include <casa/iomanip.h>
#include <casa/Logging/LogIO.h>
#include <casa/Logging/LogOrigin.h>
#include <casa/Quanta/MVTime.h>
#include <casa/Utilities/Precision.h>
#include <measures/Measures/MDirection.h>
#include <measures/Measures/MFrequency.h>
#include <casa/Quanta/MVAngle.h>
#include <casa/Utilities/Assert.h>
#include <casa/BasicSL/String.h>
using namespace casacore;
SkyComponent::SkyComponent()
:itsCompPtr(new SkyCompRep)
SkyComponent::SkyComponent(const ComponentType::Shape& shape)
:itsCompPtr(new SkyCompRep(shape))
SkyComponent::SkyComponent(const ComponentType::Shape& shape,
const ComponentType::SpectralShape& spectralModel)
:itsCompPtr(new SkyCompRep(shape, spectralModel))
SkyComponent::SkyComponent(const Flux<Double>& flux,
const ComponentShape& shape,
const SpectralModel& spectrum)
:itsCompPtr(new SkyCompRep(flux, shape, spectrum))
SkyComponent::SkyComponent(const SkyComponent& other)
itsCompPtr (other.itsCompPtr)
SkyComponent::~SkyComponent() {}
SkyComponent& SkyComponent::operator=(const SkyComponent& other) {
itsCompPtr = other.itsCompPtr;
Flux<Double>& SkyComponent::flux() {
return itsCompPtr->flux();