Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

shadowable.H

Go to the documentation of this file.
00001 #ifndef __SHADOWABLE_H__
00002 #define __SHADOWABLE_H__
00003 #include "mlib/points.H"
00004 #include "geom/geom.H"
00005 #ifndef SHADOW_PTR_DEFINED
00006 #define SHADOW_PTR_DEFINED
00007 MAKE_PTR_SUBC(Shadow, GEOM);
00008 #endif
00009 
00010 class Shadowable {
00011  public:
00012    //**** PUBLIC INTERFACE ****
00013    void init_shadow(const mlib::Wplane &pln);
00014    void show_shadow(); 
00015    void hide_shadow(); 
00016  protected:
00017    virtual ~Shadowable() {}
00018 
00019    //**** OVERRIDES ****
00020    virtual Shadowptr      create_shadow(const mlib::Wplane &pln) = 0;
00021    virtual void           cast_shadow() = 0;
00022    virtual GEOMptr        get_geom() = 0;
00023    
00024    //**** MEMBER VARIABLES ****
00025    REFptr<Shadow> _shadow;
00026 };
00027 #endif

Generated on Mon Sep 18 11:39:33 2006 for jot by  doxygen 1.4.4