IPathGenerator.h

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002    @class  IPathGenerator
00003    @author Travis Fischer (fisch0920@gmail.com)
00004    @author Matthew Jacobs (jacobs.mh@gmail.com)
00005    @date   Fall 2008
00006    
00007    @brief
00008       Interface responsible for generating valid light-to-eye paths
00009    
00010    @see also PathTracer and BidirectionalPathTracer
00011    <!-------------------------------------------------------------------->**/
00012 
00013 #ifndef IPATH_GENERATOR_H_
00014 #define IPATH_GENERATOR_H_
00015 
00016 #include <renderers/utils/Path.h>
00017 
00018 class IPathGenerator {
00019    public:
00020       ///@name Main usage interface
00021       //@{-----------------------------------------------------------------
00022       
00023       /**
00024        * @brief
00025        *    Generates a complete, valid path from scratch
00026        * 
00027        * @note path generated is assumed to start at an emitter (light) and 
00028        *    end at a sensor (camera)
00029        * @returns true on success or false on failure (if an invalid path 
00030        *    was encountered)
00031        */
00032       virtual bool generate(Path &outPath) = 0;
00033       
00034       /**
00035        * @brief
00036        *    Generates a light subpath which is assumed to start at an emitter
00037        */
00038       virtual void generateL(Path &outPath) = 0;
00039       
00040       /**
00041        * @brief
00042        *    Generates an eye subpath which is assumed to end at a sensor
00043        */
00044       virtual void generateE(Path &outPath) = 0;
00045       
00046       //@}-----------------------------------------------------------------
00047 };
00048 
00049 #endif // IPATH_GENERATOR_H_
00050 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6