00001
00002
00003 #ifndef __POINT_EMITTANCE_H
00004 #define __POINT_EMITTANCE_H
00005
00006 #include <esg/emittance/Emittance.h>
00007 #include <esg/geometry/Sphere.h>
00008
00009
00010
00011
00012
00013 namespace esg {
00014
00015 class PointEmittance : public Emittance {
00016 protected:
00017 static Sphere _stochasticEmitter;
00018
00019 protected:
00020 virtual void _duplicate_attributes (const Emittance& src) {
00021 Emittance::_duplicate_attributes(src);
00022 }
00023
00024 PointEmittance () {}
00025
00026 public:
00027 PointEmittance (const Vector3& loc,
00028 const Color3f& inten = Color3f(1,1,1),
00029 double fadeDist = .0,
00030 double fadePower = .0)
00031 : Emittance(loc,true,Vector3(0,0,0),false,inten,fadeDist,fadePower) {}
00032
00033 virtual Emittance* clone () const;
00034
00035 virtual bool intensity (const Vector3& ,
00036 Color3f& ) const;
00037
00038 virtual bool intensity (const Vector3& ,
00039 float ,
00040 Color3f& ) const;
00041
00042 virtual bool stochasticEmission (Vector3& d);
00043 };
00044
00045 };
00046
00047 #endif // __POINT_EMITTANCE_H