26 #ifndef GRALE_CIRCULARSOURCE_H
28 #define GRALE_CIRCULARSOURCE_H
30 #include "graleconfig.h"
31 #include "sourceimage.h"
36 class GRALE_IMPORTEXPORT CircularSource :
public SourceImage
39 CircularSource(Vector2D<double> angularpos,
double angularradius,
double brightnessScale);
41 SourceImage *createCopy()
const;
42 bool isSerializable()
const {
return true; }
43 double getAngularRadius()
const {
return radius; }
44 void setAngularRadius(
double r) { radius = r; radius2 = r*r; }
45 void setFade(
bool f) { fade = f; }
49 bool writeInternal(serut::SerializationInterface &si)
const;
50 bool readInternal(serut::SerializationInterface &si);
51 double getIntensityInternal(Vector2D<double> diff)
const;
52 double getMaxRadius()
const {
return radius; }
54 double radius,radius2;
57 friend class SourceImage;
60 inline double CircularSource::getIntensityInternal(Vector2D<double> diff)
const
62 if (diff.getLengthSquared() <= radius2)
67 val *= (1.0-(diff.getLengthSquared()/radius2));
76 #endif // GRALE_CIRCULARSOURCE_H