moab
SMF_State.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines