moab
|
00001 #ifndef GFXSMF_STATE_INCLUDED // -*- C++ -*- 00002 #define GFXSMF_STATE_INCLUDED 00003 00004 #include "AffineXform.hpp" 00005 #include <string> 00006 #include <vector> 00007 00008 namespace moab { 00009 00010 struct SMF_ivars 00011 { 00012 int next_vertex; 00013 int next_face; 00014 }; 00015 00016 class SMF_State 00017 { 00018 private: 00019 // 00020 // Standard state variables 00021 int first_vertex; 00022 int vertex_correction; 00023 AffineXform xform; 00024 00025 public: 00026 SMF_State(const SMF_ivars& ivar,SMF_State *next = 0); 00027 00028 void set_vertex_correction(int i); 00029 void inc(const char *var, int delta=1); 00030 void dec(const char *var, int delta=1); 00031 00032 void mmult(const AffineXform&); 00033 void mload(const AffineXform&); 00034 00035 void vertex(double v[3]); 00036 void normal(double n[3]); 00037 void face(int *, const SMF_ivars& ivar); 00038 }; 00039 00040 } // namespace moab 00041 00042 // GFXSMF_STATE_INCLUDED 00043 #endif