CCommand.h

Go to the documentation of this file.
00001 
00013 #ifndef CCOMMAND_H
00014 #define CCOMMAND_H
00015 
00016 
00021 class CCommand
00022 {
00023  public:
00027   enum TYPE_COMMAND { COMMAND_HELP,
00028                       COMMAND_RUN,
00029                       COMMAND_SET,
00030                       COMMAND_PRINT,
00031                       COMMAND_QUIT,
00032                       COMMAND_END };
00033 
00038   enum TYPE_PARAMETER { PARAMETER_FORMULASTRING,
00039                         PARAMETER_SIGNINCREMENT,
00040                         PARAMETER_NOSIGNINCREMENT,
00041                         PARAMETER_NOSIGNPRECISION,
00042                         PARAMETER_ZOOM,
00043                         PARAMETER_MINVECTOR,
00044                         PARAMETER_MAXVECTOR,
00045                         PARAMETER_VIEWERPOS,
00046                         PARAMETER_LIGHTDIRECTION,
00047                         PARAMETER_SURFACEAMBIENTCOLOR,
00048                         PARAMETER_SURFACEDIFFUSECOLOR,
00049                         PARAMETER_SURFACESPECULARCOLOR,
00050                         PARAMETER_SURFACESPECULAREXPONENT,
00051                         PARAMETER_BOXAMBIENTCOLOR,
00052                         PARAMETER_BOXDIFFUSECOLOR,
00053                         PARAMETER_BOXSPECULARCOLOR,
00054                         PARAMETER_BOXSPECULAREXPONENT,
00055                         PARAMETER_BACKGROUNDCOLOR,
00056                         PARAMETER_WIDTH,
00057                         PARAMETER_HEIGHT,
00058 
00059                         // On/Off options
00060                         PARAMETER_PERSPECTIVE,
00061                         PARAMETER_BOUNDINGBOX,
00062                         PARAMETER_SIGN,
00063                         PARAMETER_OPENGLSPECULAR,
00064 
00065                         // End
00066                         PARAMETER_END };
00067 
00071   enum TYPE_PARAMETERTYPE { PARAMETERTYPE_STRING,
00072                             PARAMETERTYPE_FLOAT,
00073                             PARAMETERTYPE_VECTOR,
00074                             PARAMETERTYPE_COLOR,
00075                             PARAMETERTYPE_INT,
00076                             PARAMETERTYPE_END };
00077 
00078   static const std::string
00079     s_CommandString[COMMAND_END]; 
00081   static const std::string
00082     s_ParameterString[PARAMETER_END]; 
00086   TYPE_COMMAND m_CommandID; 
00088   TYPE_PARAMETER m_ParameterID; 
00091   union DataUnion
00092   {
00093     std::string *String;  
00094     float       *Float;   
00095     CVector3f   *Vector;  
00096     CColor      *Color;   
00097     int         *Int;     
00098   } m_pData;  
00103   CCommand()
00104   {
00105     m_CommandID = COMMAND_END;
00106     m_ParameterID = PARAMETER_END;
00107     m_pData.Int = NULL;
00108   }
00109 
00113   TYPE_PARAMETERTYPE GetParameterType() const;
00114 };
00115 
00116 
00117 #endif // CCOMMAND_H
00118 

Generated on Fri Dec 5 03:20:33 2008 for Mathematical Ray-tracer by  doxygen 1.5.4