#ifndef _cgfxShaderCmd_h_
#define _cgfxShaderCmd_h_
#include "cgfxShaderCommon.h"
#include <maya/MPxCommand.h>
#include <maya/MSyntax.h>
#include <maya/MArgList.h>
#include <maya/MSelectionList.h>
#include <maya/MString.h>
#include <maya/MStringArray.h>
#include <maya/MDGModifier.h>
#include "cgfxRCPtr.h"
#include "cgfxAttrDef.h"
#include "cgfxEffectDef.h"
#include "cgfxShaderNode.h"
#include <Cg/cg.h>
#include <Cg/cgGL.h>
{
public:
cgfxShaderCmd();
virtual ~cgfxShaderCmd();
static void* creator();
private:
cgfxShaderNode* pNode );
void getNodesToUpdate(const cgfxRCPtr<const cgfxEffect>& effect, cgfxShaderNode* currNode, cgfxShaderNode::NodeList& nodes) const;
bool fIsEdit;
bool fIsQuery;
bool fFxFile;
bool fFxPath;
bool fTechnique;
bool fProfile;
bool fMaxTexCoords;
bool fPluginPath;
bool fEmptyUV;
bool fEmptyUVShapes;
bool fListParameters;
bool fListTechniques;
bool fListProfiles;
bool fTexCoordSource;
#if MAYA_API_VERSION >= 700
bool fColorSource;
#endif
bool fCaseInsensitive;
bool fDescription;
typedef std::map<cgfxShaderNode*, MStringArray > NodeAttributeList;
typedef std::map<cgfxShaderNode*, cgfxRCPtr<cgfxAttrDefList> > NodeAttrDefList;
NodeAttributeList fOldAttributeList;
cgfxRCPtr<const cgfxEffect> fOldEffect;
NodeAttrDefList fOldAttrDefList;
NodeAttributeList fNewAttributeList;
cgfxRCPtr<const cgfxEffect> fNewEffect;
NodeAttrDefList fNewAttrDefList;
void reportInternalError( const char* function, size_t errcode );
};
#endif