# Path: dpAutoRigSystem/Modules/Library/dpControls.py
# class ControlClass(object):
#     def __init__(self, dpUIinst, presetDic, presetName, moduleGrp=None, *args):
#     def colorShape(self, objList, color, rgb=False, *args):
#     def renameShape(self, transformList, *args):
#     def directConnect(self, fromObj, toObj, attrList=['tx', 'ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'], f=True, *args):
#     def setLockHide(self, objList, attrList, l=True, k=False, *args):
#     def setNonKeyable(self, objList, attrList, *args):
#     def setNotRenderable(self, objList, *args):
#     def distanceBet(self, a, b, name="temp_DistBet", keep=False, *args):
#     def middlePoint(self, a, b, createLocator=False, *args):
#     def createSimpleRibbon(self, name='ribbon', totalJoints=6, jointLabelNumber=0, jointLabelName="SimpleRibbon", *args):
#     def getControlNodeById(self, ctrlType, *args):
#     def getControlModuleById(self, ctrlType, *args):
#     def getControlDegreeById(self, ctrlType, *args):
#     def getControlInstance(self, instanceName, *args):
#     def cvControl(self, ctrlType, ctrlName, r=1, d=1, dir='+Y', rot=(0, 0, 0), *args):
#     def cvLocator(self, ctrlName, r=1, d=1, guide=False, *args):
#     def cvJointLoc(self, ctrlName, r=0.3, d=1, rot=(0, 0, 0), guide=True, *args):
#     def cvCharacter(self, ctrlType, ctrlName, r=1, d=1, dir="+Y", rot=(0, 0, 0), *args):
#     def findHistory(self, objList, historyName, *args):
#     def cvBaseGuide(self, ctrlName, r=1, *args):
#     def setAndFreeze(nodeName="", tx=None, ty=None, tz=None, rx=None, ry=None, rz=None, sx=None, sy=None, sz=None, freeze=True):
#     def copyAttr(self, sourceItem=False, attrList=False, verbose=False, *args):
#     def pasteAttr(self, destinationList=False, verbose=False, *args):
#     def copyAndPasteAttr(self, verbose=False, *args):
#     def transferAttr(self, sourceItem, destinationList, attrList, *args):
#     def transferShape(self, deleteSource=False, clearDestinationShapes=True, sourceItem=None, destinationList=None, applyColor=True, *args):
#     def setSourceColorOverride(self, sourceItem, destinationList, *args):
#     def resetCurve(self, changeDegree=False, transformList=False, *args):
#     def dpCreatePreset(self, *args):
#     def dpCheckLinearUnit(self, origRadius, defaultUnit="centimeter", *args):
#     def shapeSizeSetup(self, transformNode, *args):
#     def connectShapeSize(self, clusterHandle, *args):
#     def addGuideAttrs(self, ctrlName, *args):
#     def createPinGuide(self, ctrlName, *args):
#     def setPinnedGuideColor(self, ctrlName, status, color, *args):
#     def jobPinGuide(self, ctrlName, *args):
#     def startPinGuide(self, guideBase, *args):
#     def unPinGuide(self, guideBase, *args):
#     def importCalibration(self, *args):
#     def mirrorCalibration(self, nodeName=False, fromPrefix=False, toPrefix=False, *args):
#     def transferCalibration(self, sourceItem=False, destinationList=False, attrList=False, verbose=True, *args):
#     def setCalibrationAttr(self, nodeName, attrList, *args):
#     def getCalibrationAttr(self, nodeName, *args):
# 
# Path: dpAutoRigSystem/Modules/Library/dpUtils.py
# def findEnv(key, path):
# def findPath(filename):
# def findAllFiles(path, dir, ext):
# def findAllModules(path, dir):
# def findAllModuleNames(path, dir):
# def findLastNumber(nameList, basename):
# def findModuleLastNumber(className, typeName):
# def normalizeText(enteredText="", prefixMax=4):
# def useDefaultRenderLayer():
# def zeroOut(transformList=[], offset=False):
# def originedFrom(objName="", attrString=""):
# def getOriginedFromDic():
# def addHook(objName="", hookType="staticHook"):
# def hook():
# def clearNodeGrp(nodeGrpName='dpAR_GuideMirror_Grp', attrFind='guideBaseMirror', unparent=False):
# def getGuideChildrenList(nodeName):
# def mirroredGuideFather(nodeName):
# def getParentsList(nodeName):
# def getModulesToBeRigged(instanceList):
# def getCtrlRadius(nodeName):
# def zeroOutJoints(jntList=None, displayBone=False):
# def clearDpArAttr(itemList):
# def deleteChildren(item):
# def setJointLabel(jointName, sideNumber, typeNumber, labelString):
# def deleteJointLabel(jointName):
# def extractSuffix(nodeName):
# def filterName(name, itemList, separator):
# def checkRawURLForUpdate(DPAR_VERSION, DPAR_RAWURL, *args):
# def visitWebSite(website, *args):
# def checkLoadedPlugin(pluginName, exceptName=None, message="Not loaded plugin", *args):
# def twistBoneMatrix(nodeA, nodeB, twistBoneName, twistBoneMD=None, axis='Z', inverse=True, *args):
# def validateName(nodeName, suffix=None, *args):
# def articulationJoint(fatherNode, brotherNode, corrNumber=0, dist=1, jarRadius=1.5, doScale=True, *args):
# def getNodeByMessage(grpAttrName, *args):
# def attachToMotionPath(nodeName, curveName, mopName, uValue):
# def profiler(func):
#     def runProfile(*args, **kwargs):
# def extract_world_scale_from_matrix(obj):
# DPAR_PROFILE_MODE = False


from maya import cmds
from maya import mel
from .Library import dpControls
from .Library import dpUtils
# importing libraries:


class RigType(object):
    biped = "biped"
    quadruped = "quadruped"
    default = "unknown" #Support old guide system


# Path: dpAutoRigSystem/Modules/Library/dpControls.py
# class ControlClass(object):
#     def __init__(self, dpUIinst, presetDic, presetName, moduleGrp=None, *args):
#     def colorShape(self, objList, color, rgb=False, *args):
#     def renameShape(self, transformList, *args):
#     def directConnect(self, fromObj, toObj, attrList=['tx', 'ty', 'tz', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'], f=True, *args):
#     def setLockHide(self, objList, attrList, l=True, k=False, *args):
#     def setNonKeyable(self, objList, attrList, *args):
#     def setNotRenderable(self, objList, *args):
#     def distanceBet(self, a, b, name="temp_DistBet", keep=False, *args):
#     def middlePoint(self, a, b, createLocator=False, *args):
#     def createSimpleRibbon(self, name='ribbon', totalJoints=6, jointLabelNumber=0, jointLabelName="SimpleRibbon", *args):
#     def getControlNodeById(self, ctrlType, *args):
#     def getControlModuleById(self, ctrlType, *args):
#     def getControlDegreeById(self, ctrlType, *args):
#     def getControlInstance(self, instanceName, *args):
#     def cvControl(self, ctrlType, ctrlName, r=1, d=1, dir='+Y', rot=(0, 0, 0), *args):
#     def cvLocator(self, ctrlName, r=1, d=1, guide=False, *args):
#     def cvJointLoc(self, ctrlName, r=0.3, d=1, rot=(0, 0, 0), guide=True, *args):
#     def cvCharacter(self, ctrlType, ctrlName, r=1, d=1, dir="+Y", rot=(0, 0, 0), *args):
#     def findHistory(self, objList, historyName, *args):
#     def cvBaseGuide(self, ctrlName, r=1, *args):
#     def setAndFreeze(nodeName="", tx=None, ty=None, tz=None, rx=None, ry=None, rz=None, sx=None, sy=None, sz=None, freeze=True):
#     def copyAttr(self, sourceItem=False, attrList=False, verbose=False, *args):
#     def pasteAttr(self, destinationList=False, verbose=False, *args):
#     def copyAndPasteAttr(self, verbose=False, *args):
#     def transferAttr(self, sourceItem, destinationList, attrList, *args):
#     def transferShape(self, deleteSource=False, clearDestinationShapes=True, sourceItem=None, destinationList=None, applyColor=True, *args):
#     def setSourceColorOverride(self, sourceItem, destinationList, *args):
#     def resetCurve(self, changeDegree=False, transformList=False, *args):
#     def dpCreatePreset(self, *args):
#     def dpCheckLinearUnit(self, origRadius, defaultUnit="centimeter", *args):
#     def shapeSizeSetup(self, transformNode, *args):
#     def connectShapeSize(self, clusterHandle, *args):
#     def addGuideAttrs(self, ctrlName, *args):
#     def createPinGuide(self, ctrlName, *args):
#     def setPinnedGuideColor(self, ctrlName, status, color, *args):
#     def jobPinGuide(self, ctrlName, *args):
#     def startPinGuide(self, guideBase, *args):
#     def unPinGuide(self, guideBase, *args):
#     def importCalibration(self, *args):
#     def mirrorCalibration(self, nodeName=False, fromPrefix=False, toPrefix=False, *args):
#     def transferCalibration(self, sourceItem=False, destinationList=False, attrList=False, verbose=True, *args):
#     def setCalibrationAttr(self, nodeName, attrList, *args):
#     def getCalibrationAttr(self, nodeName, *args):
# 
# Path: dpAutoRigSystem/Modules/Library/dpUtils.py
# def findEnv(key, path):
# def findPath(filename):
# def findAllFiles(path, dir, ext):
# def findAllModules(path, dir):
# def findAllModuleNames(path, dir):
# def findLastNumber(nameList, basename):
# def findModuleLastNumber(className, typeName):
# def normalizeText(enteredText="", prefixMax=4):
# def useDefaultRenderLayer():
# def zeroOut(transformList=[], offset=False):
# def originedFrom(objName="", attrString=""):
# def getOriginedFromDic():
# def addHook(objName="", hookType="staticHook"):
# def hook():
# def clearNodeGrp(nodeGrpName='dpAR_GuideMirror_Grp', attrFind='guideBaseMirror', unparent=False):
# def getGuideChildrenList(nodeName):
# def mirroredGuideFather(nodeName):
# def getParentsList(nodeName):
# def getModulesToBeRigged(instanceList):
# def getCtrlRadius(nodeName):
# def zeroOutJoints(jntList=None, displayBone=False):
# def clearDpArAttr(itemList):
# def deleteChildren(item):
# def setJointLabel(jointName, sideNumber, typeNumber, labelString):
# def deleteJointLabel(jointName):
# def extractSuffix(nodeName):
# def filterName(name, itemList, separator):
# def checkRawURLForUpdate(DPAR_VERSION, DPAR_RAWURL, *args):
# def visitWebSite(website, *args):
# def checkLoadedPlugin(pluginName, exceptName=None, message="Not loaded plugin", *args):
# def twistBoneMatrix(nodeA, nodeB, twistBoneName, twistBoneMD=None, axis='Z', inverse=True, *args):
# def validateName(nodeName, suffix=None, *args):
# def articulationJoint(fatherNode, brotherNode, corrNumber=0, dist=1, jarRadius=1.5, doScale=True, *args):
# def getNodeByMessage(grpAttrName, *args):
# def attachToMotionPath(nodeName, curveName, mopName, uValue):
# def profiler(func):
#     def runProfile(*args, **kwargs):
# def extract_world_scale_from_matrix(obj):
# DPAR_PROFILE_MODE = False


# Path: dpAutoRigSystem/Modules/dpBaseClass.py
from maya import cmds
from maya import mel
from .Library import dpControls
from .Library import dpUtils

# importing libraries:


class RigType(object):
    biped = "biped"
    quadruped = "quadruped"
    default = "unknown" #Support old guide system


class StartClass(object):