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
00060 PARAMETER_PERSPECTIVE,
00061 PARAMETER_BOUNDINGBOX,
00062 PARAMETER_SIGN,
00063 PARAMETER_OPENGLSPECULAR,
00064
00065
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