00001
00013 #include <cmath>
00014 #include <string>
00015
00016 #include "popassert.h"
00017 #include "CVector3f.h"
00018 #include "CColor.h"
00019 #include "CCommand.h"
00020
00021
00022 const std::string CCommand::s_CommandString[CCommand::COMMAND_END] =
00023 {
00024 "help",
00025 "run",
00026 "set",
00027 "print",
00028 "quit",
00029 };
00030
00031 const std::string CCommand::s_ParameterString[CCommand::PARAMETER_END] =
00032 {
00033 "FormulaString",
00034 "SignIncrement",
00035 "NoSignIncrement",
00036 "NoSignPrecision",
00037 "Zoom",
00038 "MinVector",
00039 "MaxVector",
00040 "ViewerPos",
00041 "LightDirection",
00042 "SurfaceAmbientColor",
00043 "SurfaceDiffuseColor",
00044 "SurfaceSpecularColor",
00045 "SurfaceSpecularExponent",
00046 "BoxAmbientColor",
00047 "BoxDiffuseColor",
00048 "BoxSpecularColor",
00049 "BoxSpecularExponent",
00050 "BackgroundColor",
00051 "Width",
00052 "Height",
00053
00054
00055 "Perspective",
00056 "BoundingBox",
00057 "Sign",
00058 "OpenGLSpecular"
00059 };
00060
00061
00062 CCommand::TYPE_PARAMETERTYPE CCommand::GetParameterType() const
00063 {
00064 if (m_CommandID == COMMAND_END)
00065 {
00066 return PARAMETERTYPE_END;
00067 }
00068 else
00069 {
00070 switch (m_ParameterID)
00071 {
00072 case PARAMETER_FORMULASTRING:
00073 case PARAMETER_PERSPECTIVE:
00074 case PARAMETER_BOUNDINGBOX:
00075 case PARAMETER_SIGN:
00076 case PARAMETER_OPENGLSPECULAR:
00077 return PARAMETERTYPE_STRING;
00078
00079 case PARAMETER_SIGNINCREMENT:
00080 case PARAMETER_NOSIGNINCREMENT:
00081 case PARAMETER_NOSIGNPRECISION:
00082 case PARAMETER_ZOOM:
00083 case PARAMETER_SURFACESPECULAREXPONENT:
00084 case PARAMETER_BOXSPECULAREXPONENT:
00085 return PARAMETERTYPE_FLOAT;
00086
00087 case PARAMETER_MINVECTOR:
00088 case PARAMETER_MAXVECTOR:
00089 case PARAMETER_VIEWERPOS:
00090 case PARAMETER_LIGHTDIRECTION:
00091 return PARAMETERTYPE_VECTOR;
00092
00093 case PARAMETER_SURFACEAMBIENTCOLOR:
00094 case PARAMETER_SURFACEDIFFUSECOLOR:
00095 case PARAMETER_SURFACESPECULARCOLOR:
00096 case PARAMETER_BOXAMBIENTCOLOR:
00097 case PARAMETER_BOXDIFFUSECOLOR:
00098 case PARAMETER_BOXSPECULARCOLOR:
00099 case PARAMETER_BACKGROUNDCOLOR:
00100 return PARAMETERTYPE_COLOR;
00101
00102 case PARAMETER_WIDTH:
00103 case PARAMETER_HEIGHT:
00104 return PARAMETERTYPE_INT;
00105
00106 default:
00107 return PARAMETERTYPE_END;
00108 }
00109 }
00110 }
00111
00112