PointEmittance.h

Go to the documentation of this file.
00001 /* $Id:$ */
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  * Omnidirectional emittance from single point.
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& /* view point */,
00036                             Color3f&       /* intensity  */) const;
00037 
00038     virtual bool intensity (const Vector3& /* emittance direction */,
00039                             float          /* emittance distance  */,
00040                             Color3f&       /* intensity           */) const;
00041 
00042     virtual bool stochasticEmission (Vector3& d);
00043 };
00044     
00045 }; // namespace
00046 
00047 #endif // __POINT_EMITTANCE_H

Generated on Wed Jun 28 12:24:28 2006 for esg by  doxygen 1.4.6