Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

PainterStencil.h

00001 
00002 #ifndef __PAINTERSTENCIL_H
00003 #define __PAINTERSTENCIL_H
00004 
00005 #include "Vector.h"
00006 
00007 #include "Mesh.h"
00008 #include "Triangle.h"
00009 
00010 #include "Painter.h"
00011 
00012 class PainterStencil: public Painter {
00013 public:
00018     enum StencilTest { Z_FAIL, Z_PASS };
00019 
00020 private:
00021     int m_lightHandle;
00022     StencilTest m_stencilTest;
00023 
00024     bool m_showShadowVolume;
00025     float m_extrusionFactor;
00026 
00036     void paintShadowVolumeCaps(const Model& model, const Vector& light) const;
00037 
00056     void paintShadowVolumeSides(const Model& model, const Vector& light) const;
00057 
00122     void paintShadowVolume(const Model& model, const Vector& light) const;
00123 
00124 public:
00125     PainterStencil(int lightHandle, StencilTest test = Z_PASS, bool show = false);
00126 
00127     virtual void paintModel(const Model& model, const Vector& eye, const Vector& light) const;
00128 };
00129 
00130 #endif // __PAINTERSTENCIL_H

Generated on Mon Aug 25 23:40:57 2003 for Shadow by doxygen 1.3.2