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

lvert_strip.H

Go to the documentation of this file.
00001 
00002 /**********************************************************************
00003  * lvert_strip.H:
00004  **********************************************************************/
00005 #ifndef LVERT_STRIP_H_IS_INCLUDED
00006 #define LVERT_STRIP_H_IS_INCLUDED
00007 
00008 #include "vert_strip.H"         // base class
00009 #include "lface.H"              // subdivision faces, edges, verts
00010 
00011 /**********************************************************************
00012  * LvertStrip:
00013  *
00014  *      Vertex strip class for LMESHs (subdivision meshes).
00015  *
00016  *      A vertex strip in the control mesh corresponds to a vertex
00017  *      strip with the same number of vertices in the next-level
00018  *      subdivision mesh.
00019  **********************************************************************/
00020 #define CLvertStrip const LvertStrip
00021 class LvertStrip : public VertStrip {
00022  public:
00023    //******** MANAGERS ********
00024    LvertStrip() : _substrip(0) {}
00025    virtual ~LvertStrip() { delete_substrip(); }
00026 
00027    void clear_subdivision(int level);
00028 
00029    Lvert* lv(int i) const { return (Lvert*)_verts[i]; }
00030 
00031    //******** BUILDING ********
00032    virtual void reset() { delete_substrip(); VertStrip::reset(); }
00033 
00034    //******** DRAWING ********
00035    virtual void draw(StripCB* cb) { draw(cur_level(), cb); }
00036 
00037  protected:
00038    //******** MEMBER DATA ********
00039    LvertStrip*  _substrip;  // corresponding finer-level vert strip
00040 
00041    //******** MANAGING SUBSTRIP ********
00042    void delete_substrip() { delete _substrip; _substrip = 0;}
00043    void generate_substrip();
00044    int  cur_level() const;
00045 
00046    //******** DRAWING (INTERNAL) ********
00047    void draw(int level, StripCB* cb);
00048 };
00049 
00050 #endif // LVERT_STRIP_H_IS_INCLUDED
00051 
00052 /* end of file lvert_strip.H */

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