#ifndef _atomNodeNameReplacer
#define _atomNodeNameReplacer
#include <vector>
#include <maya/MString.h>
#include <maya/MStringArray.h>
#include <maya/MSelectionList.h>
#include <iosfwd>
class streamIO
{
public:
streamIO();
virtual ~streamIO(){};
double asDouble(std::ifstream &);
char * asString(std::ifstream &);
char * asWord(std::ifstream &, bool = false);
char asChar(std::ifstream &);
int asInt(std::ifstream &);
short asShort(std::ifstream &);
bool isNextNumeric(std::ifstream &);
void advance(std::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