00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if defined(_MSC_VER)
00025 #pragma once
00026 #endif
00027
00028 #ifndef PBRT_CORE_FILM_H
00029 #define PBRT_CORE_FILM_H
00030
00031
00032 #include "pbrt.h"
00033
00034
00035 class Film {
00036 public:
00037
00038 Film(int xres, int yres)
00039 : xResolution(xres), yResolution(yres) { }
00040 virtual ~Film();
00041 virtual void AddSample(const CameraSample &sample,
00042 const Spectrum &L) = 0;
00043 virtual void Splat(const CameraSample &sample, const Spectrum &L) = 0;
00044 virtual void GetSampleExtent(int *xstart, int *xend,
00045 int *ystart, int *yend) const = 0;
00046 virtual void GetPixelExtent(int *xstart, int *xend,
00047 int *ystart, int *yend) const = 0;
00048 virtual void UpdateDisplay(int x0, int y0, int x1, int y1, float splatScale = 1.f);
00049 virtual void WriteImage(float splatScale = 1.f) = 0;
00050
00051
00052 const int xResolution, yResolution;
00053 };
00054
00055
00056
00057 #endif // PBRT_CORE_FILM_H