#ifndef _atomNodeNameReplacer
#define _atomNodeNameReplacer
#include <vector>
#include <maya/MString.h>
#include <maya/MFStream.h>
#include <maya/MStringArray.h>
#include <maya/MSelectionList.h>
class streamIO
{
public:
streamIO();
virtual ~streamIO(){};
double asDouble(ifstream &);
char * asString(ifstream &);
char * asWord(ifstream &, bool = false);
char asChar(ifstream &);
int asInt(ifstream &);
short asShort(ifstream &);
bool isNextNumeric(ifstream &);
void advance(ifstream &);
bool doesFileExist(
const MString &fName);
};
class atomNodeNameReplacer : public streamIO
{
public:
enum NodeType {eDag = 0, eShape, eDepend, eAnimLayer};
enum ReplaceType {eHierarchy = 0, eSearchReplace, eMapFile};
~atomNodeNameReplacer() override{};
bool findNode(atomNodeNameReplacer::NodeType nodeType,
MString &nodeName,
unsigned int depth,
unsigned int childCount);
void setAddMainPlaceholderNamespace(bool);
void turnOffHierarchy() {if(fReplaceType == eHierarchy) fReplaceType = eSearchReplace;};
private:
std::vector<unsigned int> fDepths;
ReplaceType fReplaceType;
bool fAddMainPlaceholderNamespace;
protected:
bool matchByName();
};
#endif