// Geometric Tools, Inc.
// http://www.geometrictools.com
// Copyright (c) 1998-2005.  All Rights Reserved
//
// The Wild Magic Library (WM3) source code is supplied under the terms of
// the license agreement
//     http://www.geometrictools.com/License/WildMagic3License.pdf
// and may not be copied or disclosed except in accordance with the terms
// of that agreement.

#include "Exporter.h"

// This information was built from the enum in <maya/MFn.h>.
//----------------------------------------------------------------------------
// string names for converters
//----------------------------------------------------------------------------
const char* Exporter::TYPE_STRING[MFn::kLast] =
{
	"Invalid",
	"Base",
	"NamedObject",
	"Model",
	"DependencyNode",
	"AddDoubleLinear",
	"Affect",
	"AnimCurve",
	"AnimCurveTimeToAngular",
	"AnimCurveTimeToDistance",
	"AnimCurveTimeToTime",
	"AnimCurveTimeToUnitless",
	"AnimCurveUnitlessToAngular",
	"AnimCurveUnitlessToDistance",
	"AnimCurveUnitlessToTime",
	"AnimCurveUnitlessToUnitless",
	"ResultCurve",
	"ResultCurveTimeToAngular",
	"ResultCurveTimeToDistance",
	"ResultCurveTimeToTime",
	"ResultCurveTimeToUnitless",
	"AngleBetween",
	"Audio", 
	"Background",
	"ColorBackground",
	"FileBackground",
	"RampBackground",
	"Blend",
	"BlendTwoAttr",
	"BlendWeighted",
	"BlendDevice",
	"BlendColors",
	"Bump",
	"Bump3d",
	"CameraView",
	"ChainToSpline",
	"Choice", 
	"Condition",
	"Contrast",
	"ClampColor",
	"Create",
	"AlignCurve",
	"AlignSurface",
	"AttachCurve",
	"AttachSurface",
	"AvgCurves",
	"AvgSurfacePoints",
	"AvgNurbsSurfacePoints",
	"Bevel",
	"BirailSrf",
	"DPbirailSrf",
	"MPbirailSrf",
	"SPbirailSrf",
	"Boundary",
	"Circle",
	"CloseCurve",
	"ClosestPointOnSurface",
	"CloseSurface",
	"CurveFromSurface",
	"CurveFromSurfaceBnd",
	"CurveFromSurfaceCoS",
	"CurveFromSurfaceIso",
	"CurveInfo",
	"DetachCurve",
	"DetachSurface",
	"ExtendCurve",
	"ExtendSurface",
	"Extrude",
	"FFblendSrf",
	"FFfilletSrf",
	"FilletCurve",
	"FitBspline",
	"Flow",
	"HardenPointCurve",
	"InsertKnotCrv",
	"InsertKnotSrf",
	"IntersectSurface",
	"NurbsTesselate",
	"NurbsPlane",
	"NurbsCube",
	"OffsetCos",
	"OffsetCurve",
	"PlanarTrimSrf",
	"PointOnCurveInfo",
	"PointOnSurfaceInfo",
	"Primitive",
	"ProjectCurve",
	"ProjectTangent",
	"RBFsurface",
	"RebuildCurve",
	"RebuildSurface",
	"ReverseCurve",
	"ReverseSurface",
	"Revolve",
	"RevolvedPrimitive",
	"Cone",
	"RenderCone",
	"Cylinder",
	"Sphere",
	"Skin",
	"StitchSrf",
	"SubCurve",
	"SurfaceInfo",
	"TextCurves",
	"Trim",
	"Untrim",
	"DagNode",
	"Proxy",
	"UnderWorld",
	"Transform",
	"AimConstraint",
	"LookAt",
	"GeometryConstraint",
	"GeometryVarGroup",
	"AnyGeometryVarGroup",
	"CurveVarGroup",
	"MeshVarGroup",
	"SurfaceVarGroup",
	"IkEffector",
	"IkHandle",
	"Joint",
	"Manipulator3D",
	"ArrowManip",
	"AxesActionManip",
	"BallProjectionManip",
	"CircleManip",
	"ScreenAlignedCircleManip",
	"CircleSweepManip",
	"ConcentricProjectionManip",
	"CubicProjectionManip",
	"CylindricalProjectionManip",
	"DiscManip",
	"FreePointManip",
	"CenterManip",
	"LimitManip",
	"EnableManip",
	"FreePointTriadManip",
	"PropMoveTriadManip",
	"TowPointManip",
	"PolyCreateToolManip",
	"PolySplitToolManip",
	"GeometryOnLineManip",
	"CameraPlaneManip",
	"ToggleOnLineManip",
	"StateManip",
	"IsoparmManip",
	"LineManip",
	"ManipContainer",
	"AverageCurveManip",
	"BarnDoorManip",
	"BevelManip",
	"BlendManip",
	"ButtonManip",
	"CameraManip",
	"CoiManip",
	"CpManip",
	"CreateCVManip",
	"CreateEPManip",
	"CurveEdManip",
	"CurveSegmentManip",
	"DirectionManip",
	"DofManip",
	"DropoffManip",
	"ExtendCurveDistanceManip",
	"ExtrudeManip",
	"IkSplineManip",
	"IkRPManip",
	"JointClusterManip",
	"LightManip",
	"MotionPathManip",
	"OffsetCosManip",
	"OffsetCurveManip",
	"ProjectionManip",
	"PolyProjectionManip",
	"ProjectionUVManip",
	"ProjectionMultiManip",
	"ProjectTangentManip",
	"PropModManip",
	"QuadPtOnLineManip",
	"RbfSrfManip",
	"ReverseCurveManip",
	"ReverseCrvManip",
	"ReverseSurfaceManip",
	"RevolveManip",
	"RevolvedPrimitiveManip",
	"SpotManip", 
	"SpotCylinderManip",
	"TriplanarProjectionManip",  
	"TrsManip",
	"DblTrsManip",
	"PivotManip2D",
	"Manip2DContainer",
	"PolyMoveUVManip",
	"PolyMappingManip",
	"PolyModifierManip",
	"PolyMoveVertexManip",
	"PolyVertexNormalManip",
	"TrsTransManip",
	"TrsInsertManip",
	"TrsXformManip",
	"Manipulator2D",
	"TranslateManip2D",
	"PlanarProjectionManip",
	"PointOnCurveManip",
	"TowPointOnCurveManip",
	"MarkerManip",
	"PointOnLineManip",
	"PointOnSurfaceManip",
	"TranslateUVManip",
	"RotateBoxManip",
	"RotateManip",
	"HandleRotateManip",
	"RotateLimitsManip",
	"ScaleLimitsManip",
	"ScaleManip",
	"ScalingBoxManip",
	"ScriptManip",
	"SphericalProjectionManip",
	"TextureManip3D",
	"ToggleManip",
	"TranslateBoxManip",
	"TranslateLimitsManip",
	"TranslateManip",
	"TrimManip",
	"JointTranslateManip",
	"Manipulator", 
	"CirclePointManip",
	"DimensionManip",
	"FixedLineManip",
	"LightProjectionGeometry",
	"LineArrowManip",
	"PointManip",
	"TriadManip",
	"NormalConstraint",
	"OrientConstraint",
	"PointConstraint",
	"ParentConstraint",
	"PoleVectorConstraint",
	"ScaleConstraint",
	"TangentConstraint",
	"UnknownTransform", 
	"World",
	"Shape",
	"BaseLattice",
	"Camera",
	"Cluster",
	"SoftMod",
	"Collision",
	"Dummy",
	"Emitter",
	"Field",
	"Air",
	"Drag",
	"Gravity",
	"Newton",
	"Radial",    
	"Turbulence",
	"Uniform",
	"Vortex",
	"Geometric",
	"Curve",
	"NurbsCurve",
	"NurbsCurveGeom",
	"Dimension",
	"Angle",
	"Annotation",
	"Distance",
	"ArcLength",
	"Radius",
	"ParamDimension",
	"DirectedDisc",
	"RenderRect",
	"EnvFogShape",
	"Lattice",
	"LatticeGeom",
	"Locator",
	"DropoffLocator",
	"Marker",
	"OrientationMarker",
	"PositionMarker",
	"OrientationLocator",
	"TrimLocator",
	"Plane",
	"SketchPlane",
	"GroundPlane",
	"OrthoGrid",
	"Sprite",
	"Surface",
	"NurbsSurface",
	"NurbsSurfaceGeom",
	"Mesh",
	"MeshGeom",
	"RenderSphere",
	"Flexor",
	"ClusterFlexor",
	"GuideLine",
	"Light",
	"AmbientLight",
	"NonAmbientLight",
	"AreaLight",
	"LinearLight",
	"NonExtendedLight",
	"DirectionalLight",
	"PointLight",
	"SpotLight",
	"Particle",
	"PolyToolFeedbackShape",
	"RigidConstraint",
	"Rigid",
	"Spring",
	"UnknownDag",
	"DefaultLightList",
	"DeleteComponent",
	"DispatchCompute",
	"ShadingEngine",
	"DisplacementShader",
	"DistanceBetween",
	"DOF",
	"DummyConnectable",
	"DynamicsController",
	"GeoConnectable", 
	"Expression",
	"Extract", 
	"Filter",
	"FilterClosestSample",
	"FilterEuler",
	"FilterSimplify",
	"GammaCorrect",
	"GeometryFilt",
	"BendLattice",
	"BlendShape",
	"BulgeLattice",
	"FFD",
	"FfdDualBase",
	"RigidDeform",
	"Sculpt",
	"Tweak",
	"WeightGeometryFilt",
	"ClusterFilter",
	"SoftModFilter",
	"JointCluster",
	"Wire",
	"GroupId",
	"GroupParts",
	"Guide",
	"HsvToRgb",
	"HyperGraphInfo",
	"HyperLayout",
	"HyperView",
	"IkSolver",
	"MCsolver",
	"PASolver",
	"SCsolver",
	"RPsolver",
	"SplineSolver",
	"IkSystem",
	"ImagePlane",
	"Lambert",
	"Reflect",
	"Blinn",
	"Phong",
	"PhongExplorer",
	"LayeredShader",
	"LightInfo",
	"LeastSquares",
	"LightFogMaterial",
	"EnvFogMaterial",
	"LightList",
	"LightSource",
	"Luminance",
	"MakeGroup",
	"Material",
	"DiffuseMaterial",
	"LambertMaterial",
	"BlinnMaterial",
	"PhongMaterial",
	"LightSourceMaterial",
	"MaterialInfo",
	"MatrixAdd",
	"MatrixHold",
	"MatrixMult",
	"MatrixPass",
	"MatrixWtAdd",
	"MidModifier",
	"MidModifierWithMatrix",
	"PolyBevel",
	"PolyTweak",
	"PolyAppend",
	"PolyChipOff",
	"PolyCloseBorder",
	"PolyCollapseEdge",
	"PolyCollapseF",
	"PolyCylProj",
	"PolyDelEdge",
	"PolyDelFacet",
	"PolyDelVertex",
	"PolyExtrudeFacet",
	"PolyMapCut",
	"PolyMapDel",
	"PolyMapSew",
	"PolyMergeEdge",
	"PolyMergeFacet",
	"PolyMoveEdge",
	"PolyMoveFacet",
	"PolyMoveFacetUV",
	"PolyMoveUV",
	"PolyMoveVertex",
	"PolyMoveVertexUV",
	"PolyNormal",
	"PolyPlanProj",
	"PolyProj",
	"PolyQuad",
	"PolySmooth", 
	"PolySoftEdge",
	"PolySphProj",
	"PolySplit",
	"PolySubdEdge",
	"PolySubdFacet",
	"PolyTriangulate",
	"PolyCreator",
	"PolyPrimitive",
	"PolyCone",
	"PolyCube",
	"PolyCylinder",
	"PolyMesh",
	"PolySphere",
	"PolyTorus",
	"PolyCreateFacet",
	"PolyUnite",
	"MotionPath",
	"MultilisterLight",
	"MultiplyDivide",
	"OldGeometryConstraint",
	"OpticalFX",
	"ParticleAgeMapper",
	"ParticleCloud",
	"ParticleColorMapper",
	"ParticleIncandecenceMapper",
	"ParticleTransparencyMapper",
	"Partition", 
	"Place2dTexture",
	"Place3dTexture",
	"PluginDependNode",
	"PluginLocatorNode",
	"PlusMinusAverage",
	"PointMatrixMult",
	"PolySeparate",
	"PostProcessList",
	"Projection",
	"Record",
	"RenderUtilityList",
	"Reverse",
	"RgbToHsv",  
	"RigidSolver",  
	"Set",
	"TextureBakeSet",
	"VertexBakeSet",
	"SetRange",
	"ShaderGlow",
	"ShaderList",
	"ShadingMap",
	"SamplerInfo",
	"ShapeFragment",
	"SimpleVolumeShader",
	"Sl60",
	"Snapshot",
	"StoryBoard",
	"SummaryObject",
	"Super",
	"Control",
	"SurfaceLuminance",
	"SurfaceShader",
	"TextureList",
	"TextureEnv",
	"EnvBall",
	"EnvCube",
	"EnvChrome",
	"EnvSky",
	"EnvSphere",
	"Texture2d",
	"Bulge",
	"Checker",
	"Cloth",
	"FileTexture",
	"Fractal",
	"Grid",
	"Mountain",
	"Ramp",
	"Stencil",
	"Water",
	"Texture3d",
	"Brownian",
	"Cloud",
	"Crater", 
	"Granite",
	"Leather",
	"Marble",
	"Rock",
	"Snow",
	"SolidFractal",
	"Stucco",
	"TxSl",
	"Wood",
	"Time",
	"TimeToUnitConversion",
	"RenderSetup",
	"RenderGlobals",
	"RenderGlobalsList",
	"RenderQuality",
	"Resolution",  
	"HardwareRenderGlobals",
	"ArrayMapper",
	"UnitConversion",
	"UnitToTimeConversion",
	"UseBackground",
	"Unknown",
	"VectorProduct",
	"VolumeShader",
	"Component",
	"CurveCVComponent",
	"CurveEPComponent",
	"CurveKnotComponent",
	"CurveParamComponent",
	"IsoparmComponent",
	"PivotComponent",
	"SurfaceCVComponent",
	"SurfaceEPComponent",
	"SurfaceKnotComponent",
	"EdgeComponent",
	"LatticeComponent",
	"SurfaceRangeComponent",
	"DecayRegionCapComponent",
	"DecayRegionComponent",
	"MeshComponent",
	"MeshEdgeComponent",
	"MeshPolygonComponent",
	"MeshFrEdgeComponent",
	"MeshVertComponent",
	"OrientationComponent",
	"SubVertexComponent",
	"MultiSubVertexComponent",
	"SetGroupComponent",
	"DynParticleSetComponent",
	"SelectionItem",
	"DagSelectionItem",
	"NonDagSelectionItem",
	"ItemList",
	"Attribute",
	"NumericAttribute",
	"DoubleAngleAttribute",
	"FloatAngleAttribute",
	"DoubleLinearAttribute",
	"FloatLinearAttribute",
	"TimeAttribute",
	"EnumAttribute",
	"UnitAttribute",
	"TypedAttribute",
	"CompoundAttribute",
	"GenericAttribute",
	"LightDataAttribute",
	"MatrixAttribute",
	"FloatMatrixAttribute",
	"MessageAttribute",
	"Plugin",
	"Data",
	"ComponentListData",
	"DoubleArrayData",
	"IntArrayData",
	"LatticeData",
	"MatrixData",
	"MeshData",
	"NurbsSurfaceData",
	"NurbsCurveData",
	"NumericData",
	"Data2Double",
	"Data2Float",
	"Data2Int",
	"Data2Short",
	"Data3Double",
	"Data3Float",
	"Data3Int",
	"Data3Short",
	"PluginData",
	"PointArrayData",
	"SphereData",
	"StringData",
	"StringArrayData",
	"VectorArrayData",
	"SelectionList",
	"TransformGeometry",
	"CommEdgePtManip",
	"CommEdgeOperManip",
	"CommEdgeSegmentManip",
	"CommCornerManip",
	"CommCornerOperManip",
	"PluginDeformerNode",
	"Torus",
	"PolyBoolOp",
	"SingleShadingSwitch",
	"DoubleShadingSwitch",
	"TripleShadingSwitch",
	"NurbsSquare",
	"Anisotropy",
	"NonLinear",
	"DeformFunc",
	"DeformBend",
	"DeformTwist",
	"DeformSquash",
	"DeformFlare",
	"DeformSine",
	"DeformWave",
	"DeformBendManip",
	"DeformTwistManip",
	"DeformSquashManip",
	"DeformFlareManip",
	"DeformSineManip",
	"DeformWaveManip",
	"SoftModManip",
	"DistanceManip",
	"Script",
	"CurveFromMeshEdge",
	"CurveCurveIntersect",
	"NurbsCircular3PtArc",
	"NurbsCircular2PtArc",
	"OffsetSurface",
	"RoundConstantRadius",
	"RoundRadiusManip",
	"RoundRadiusCrvManip",
	"RoundConstantRadiusManip",
	"ThreePointArcManip",
	"TwoPointArcManip",
	"TextButtonManip",
	"OffsetSurfaceManip",
	"ImageData",
	"ImageLoad",
	"ImageSave",
	"ImageNetSrc",
	"ImageNetDest",
	"ImageRender",
	"ImageAdd",
	"ImageDiff",
	"ImageMultiply",
	"ImageOver",
	"ImageUnder",
	"ImageColorCorrect",
	"ImageBlur",
	"ImageFilter",
	"ImageDepth",
	"ImageDisplay",
	"ImageView",
	"ImageMotionBlur",
	"MatrixFloatData",
	"SkinShader",
	"ComponentManip",
	"SelectionListData",
	"ObjectFilter",
	"ObjectMultiFilter",
	"ObjectNameFilter",
	"ObjectTypeFilter",
	"ObjectAttrFilter",
	"ObjectRenderFilter",
	"ObjectScriptFilter",
	"SelectionListOperator",
	"Subdiv",
	"PolyToSubdiv",
	"SkinClusterFilter",
	"Character",
	"CharacterOffset",
	"DagPose",
	"StitchAsNurbsShell",
    "ExplodeNurbsShell",
    "NurbsBoolean",
    "StitchSrfManip",
	"ForceUpdateManip",
    "PluginManipContainer",
	"PolySewEdge",
	"PolyMergeVert",
	"PolySmoothFacet",
	"SmoothCurve",
	"GlobalStitch",
	"SubdivCVComponent",
	"SubdivEdgeComponent",
	"SubdivFaceComponent",
	"TranslateUVManip2D",
	"RotateUVManip2D",
	"ScaleUVManip2D",
	"PolyTweakUV",
	"PluginShape",
	"GeometryData",
	"SingleIndexedComponent",
	"DoubleIndexedComponent",
	"TripleIndexedComponent",
    "ExtendSurfaceDistanceManip",
	"SquareSrf",
	"SquareSrfManip",
	"SubdivToPoly",
    "DynBase",
    "DynEmitterManip",
    "DynFieldsManip",
    "DynBaseFieldManip",
    "DynAirManip",
    "DynNewtonManip",
    "DynTurbulenceManip",
    "DynSpreadManip",
    "DynAttenuationManip",
    "DynArrayAttrsData",
    "PluginFieldNode",
    "PluginEmitterNode",
    "PluginSpringNode",
	"DisplayLayer",
	"DisplayLayerManager",
    "PolyColorPerVertex",
	"CharacterMappingData",
	"DynSweptGeometryData",
	"WrapFilter",
	"MeshVtxFaceComponent",
	"BinaryData",
	"Attribute2Double",
	"Attribute2Float",
	"Attribute2Short",
	"Attribute2Int",
	"Attribute3Double",
	"Attribute3Float",
	"Attribute3Short",
	"Attribute3Int",
	"Reference",
	"BlindData",
	"BlindDataTemplate",
	"PolyBlindData",
	"PolyNormalPerVertex",
	"NurbsToSubdiv",
	"PluginIkSolver",
	"Instancer",
	"MoveVertexManip",
	"Stroke",
	"Brush",
	"StrokeGlobals",
	"PluginGeometryData",
	"LightLink",
	"DynGlobals",
	"PolyReduce",
	"LodThresholds",
	"Chooser",
	"LodGroup",
	"MultDoubleLinear",
	"FourByFourMatrix",
	"TowPointOnSurfaceManip",
	"SurfaceEdManip",
	"SurfaceFaceComponent",
	"ClipScheduler",
	"ClipLibrary",
	"SubSurface",
	"SmoothTangentSrf",
	"RenderLayer",
	"RenderLayerManager",
	"PolyFlipEdge",
	"PolyExtrudeEdge",
	"AnimBlend",
	"AnimBlendInOut",
	"PolyAppendVertex",
	"UvChooser",
	"SubdivCompId",
	"VolumeAxis",
	"DeleteUVSet",
	"SubdHierBlind",
	"SubdBlindData",
	"CharacterMap",
	"LayeredTexture",
	"SubdivCollapse",
	"ParticleSamplerInfo",
	"CopyUVSet",
	"CreateUVSet",
	"Clip",
	"PolySplitVert",
	"SubdivData",
	"SubdivGeom",
	"UInt64ArrayData",
	"PolySplitEdge",
	"SubdivReverseFaces",
	"MeshMapComponent",
	"SectionManip",
	"XsectionSubdivEdit",
	"SubdivToNurbs",
	"EditCurve",
	"EditCurveManip",
	"CrossSectionManager", 
	"CreateSectionManip",
	"CrossSectionEditManip",
	"DropOffFunction",
	"SubdBoolean",
	"SubdModifyEdge",
	"ModifyEdgeCrvManip",
	"ModifyEdgeManip",
	"ScalePointManip",
	"TransformBoxManip", 
	"SymmetryLocator",
	"SymmetryMapVector",
	"SymmetryMapCurve",
	"CurveFromSubdivEdge",
	"CreateBPManip", 
	"ModifyEdgeBaseManip",
	"SubdExtrudeFace",
	"SubdivSurfaceVarGroup",
	"SfRevolveManip",
	"CurveFromSubdivFace",
	"ModelFacade",
	"MaterialFacade",
	"EnvironmentFacade",
	"ModelFacadeDefault",
	"MaterialFacadeColor",
	"EnvironmentFacadeDefault",
	"PolyTransfer",
	"PolyAverageVertex",
	"PolyAutoProj", 
	"PolyLayoutUV",
	"PolyMapSewMove",
	"SubdModifier",
	"SubdMoveVertex",
	"SubdMoveEdge",
	"SubdMoveFace",
	"SubdDelFace",
	"SnapshotShape",
	"SubdivMapComponent",
	"JiggleDeformer",
	"GlobalCacheControls",
	"DiskCache",
	"SubdCloseBorder",
	"SubdMergeVert",
	"BoxData",
	"Box",
	"RenderBox",
	"SubdSplitFace",
	"PluginAnimBlendNode",
	"VolumeFog",
	"SubdTweakUV",
	"SubdMapCut",
	"SubdLayoutUV",
	"SubdMapSewMove",
	"Ocean",
	"VolumeNoise",
	"SubdAutoProj",
	"SubdSubdivideFace",
	"Noise",
	"Attribute4Double",
	"Data4Double",
	"SubdPlanProj",
	"SubdTweak",
	"SubdProjectionManip",
	"SubdMappingManip",
	"HardwareReflectionMap",
	"PolyNormalizeUV",
	"PolyFlipUV",
	"HwShaderNode",
	"PluginHwShaderNode",
	"SubdAddTopology",
	"SubdCleanTopology",
	"ImplicitCone",
	"ImplicitSphere",
	"RampShader",
	"VolumeLight",
	"OceanShader",
	"BevelPlus",
	"StyleCurve",
	"PolyCut",
	"PolyPoke",
	"PolyWedgeFace",
	"PolyCutManipContainer",
	"PolyCutManip",
	"PolyPokeManip",
	"FluidTexture3D",
	"FluidTexture2D",
	"PolyMergeUV",
	"PolyStraightenUVBorder",
	"AlignManip",
	"PluginTransformNode",
	"Fluid",
	"FluidGeom",
	"FluidData",
	"Smear",
	"StringShadingSwitch",
	"StudioClearCoat",
	"FluidEmitter",
	"HeightField",
	"GeoConnector", 
	"SnapshotPath", 
	"PluginObjectSet",
	"QuadShadingSwitch",
	"PolyExtrudeVertex",
	"PairBlend",
	"TextManip",
	"ViewManip",
	"XformManip",
	"Mute",
	"Constraint",
	"TrimWithBoundaries",
	"CurveFromMeshCoM",
	"Follicle",
	"HairSystem",
	"RemapValue",
	"RemapColor",
	"RemapHsv",
	"HairConstraint",
	"TimeFunction",
	"MentalRayTexture",
	"ObjectBinFilter",
	"PolySmoothProxy",
	"PfxGeometry",
	"PfxHair",
	"HairTubeShader",
	"PsdFileTexture"
};

//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
// converters
//----------------------------------------------------------------------------
Exporter::Converter Exporter::CONVERT[MFn::kLast] =
{
	CInvalid,
	CBase,
	CNamedObject,
	CModel,
	CDependencyNode,
	CAddDoubleLinear,
	CAffect,
	CAnimCurve,
	CAnimCurveTimeToAngular,
	CAnimCurveTimeToDistance,
	CAnimCurveTimeToTime,
	CAnimCurveTimeToUnitless,
	CAnimCurveUnitlessToAngular,
	CAnimCurveUnitlessToDistance,
	CAnimCurveUnitlessToTime,
	CAnimCurveUnitlessToUnitless,
	CResultCurve,
	CResultCurveTimeToAngular,
	CResultCurveTimeToDistance,
	CResultCurveTimeToTime,
	CResultCurveTimeToUnitless,
	CAngleBetween,
	CAudio, 
	CBackground,
	CColorBackground,
	CFileBackground,
	CRampBackground,
	CBlend,
	CBlendTwoAttr,
	CBlendWeighted,
	CBlendDevice,
	CBlendColors,
	CBump,
	CBump3d,
	CCameraView,
	CChainToSpline,
	CChoice, 
	CCondition,
	CContrast,
	CClampColor,
	CCreate,
	CAlignCurve,
	CAlignSurface,
	CAttachCurve,
	CAttachSurface,
	CAvgCurves,
	CAvgSurfacePoints,
	CAvgNurbsSurfacePoints,
	CBevel,
	CBirailSrf,
	CDPbirailSrf,
	CMPbirailSrf,
	CSPbirailSrf,
	CBoundary,
	CCircle,
	CCloseCurve,
	CClosestPointOnSurface,
	CCloseSurface,
	CCurveFromSurface,
	CCurveFromSurfaceBnd,
	CCurveFromSurfaceCoS,
	CCurveFromSurfaceIso,
	CCurveInfo,
	CDetachCurve,
	CDetachSurface,
	CExtendCurve,
	CExtendSurface,
	CExtrude,
	CFFblendSrf,
	CFFfilletSrf,
	CFilletCurve,
	CFitBspline,
	CFlow,
	CHardenPointCurve,
	CInsertKnotCrv,
	CInsertKnotSrf,
	CIntersectSurface,
	CNurbsTesselate,
	CNurbsPlane,
	CNurbsCube,
	COffsetCos,
	COffsetCurve,
	CPlanarTrimSrf,
	CPointOnCurveInfo,
	CPointOnSurfaceInfo,
	CPrimitive,
	CProjectCurve,
	CProjectTangent,
	CRBFsurface,
	CRebuildCurve,
	CRebuildSurface,
	CReverseCurve,
	CReverseSurface,
	CRevolve,
	CRevolvedPrimitive,
	CCone,
	CRenderCone,
	CCylinder,
	CSphere,
	CSkin,
	CStitchSrf,
	CSubCurve,
	CSurfaceInfo,
	CTextCurves,
	CTrim,
	CUntrim,
	CDagNode,
	CProxy,
	CUnderWorld,
	CTransform,
	CAimConstraint,
	CLookAt,
	CGeometryConstraint,
	CGeometryVarGroup,
	CAnyGeometryVarGroup,
	CCurveVarGroup,
	CMeshVarGroup,
	CSurfaceVarGroup,
	CIkEffector,
	CIkHandle,
	CJoint,
	CManipulator3D,
	CArrowManip,
	CAxesActionManip,
	CBallProjectionManip,
	CCircleManip,
	CScreenAlignedCircleManip,
	CCircleSweepManip,
	CConcentricProjectionManip,
	CCubicProjectionManip,
	CCylindricalProjectionManip,
	CDiscManip,
	CFreePointManip,
	CCenterManip,
	CLimitManip,
	CEnableManip,
	CFreePointTriadManip,
	CPropMoveTriadManip,
	CTowPointManip,
	CPolyCreateToolManip,
	CPolySplitToolManip,
	CGeometryOnLineManip,
	CCameraPlaneManip,
	CToggleOnLineManip,
	CStateManip,
	CIsoparmManip,
	CLineManip,
	CManipContainer,
	CAverageCurveManip,
	CBarnDoorManip,
	CBevelManip,
	CBlendManip,
	CButtonManip,
	CCameraManip,
	CCoiManip,
	CCpManip,
	CCreateCVManip,
	CCreateEPManip,
	CCurveEdManip,
	CCurveSegmentManip,
	CDirectionManip,
	CDofManip,
	CDropoffManip,
	CExtendCurveDistanceManip,
	CExtrudeManip,
	CIkSplineManip,
	CIkRPManip,
	CJointClusterManip,
	CLightManip,
	CMotionPathManip,
	COffsetCosManip,
	COffsetCurveManip,
	CProjectionManip,
	CPolyProjectionManip,
	CProjectionUVManip,
	CProjectionMultiManip,
	CProjectTangentManip,
	CPropModManip,
	CQuadPtOnLineManip,
	CRbfSrfManip,
	CReverseCurveManip,
	CReverseCrvManip,
	CReverseSurfaceManip,
	CRevolveManip,
	CRevolvedPrimitiveManip,
	CSpotManip, 
	CSpotCylinderManip,
	CTriplanarProjectionManip,  
	CTrsManip,
	CDblTrsManip,
	CPivotManip2D,
	CManip2DContainer,
	CPolyMoveUVManip,
	CPolyMappingManip,
	CPolyModifierManip,
	CPolyMoveVertexManip,
	CPolyVertexNormalManip,
	CTrsTransManip,
	CTrsInsertManip,
	CTrsXformManip,
	CManipulator2D,
	CTranslateManip2D,
	CPlanarProjectionManip,
	CPointOnCurveManip,
	CTowPointOnCurveManip,
	CMarkerManip,
	CPointOnLineManip,
	CPointOnSurfaceManip,
	CTranslateUVManip,
	CRotateBoxManip,
	CRotateManip,
	CHandleRotateManip,
	CRotateLimitsManip,
	CScaleLimitsManip,
	CScaleManip,
	CScalingBoxManip,
	CScriptManip,
	CSphericalProjectionManip,
	CTextureManip3D,
	CToggleManip,
	CTranslateBoxManip,
	CTranslateLimitsManip,
	CTranslateManip,
	CTrimManip,
	CJointTranslateManip,
	CManipulator, 
	CCirclePointManip,
	CDimensionManip,
	CFixedLineManip,
	CLightProjectionGeometry,
	CLineArrowManip,
	CPointManip,
	CTriadManip,
	CNormalConstraint,
	COrientConstraint,
	CPointConstraint,
	CParentConstraint,
	CPoleVectorConstraint,
	CScaleConstraint,
	CTangentConstraint,
	CUnknownTransform, 
	CWorld,
	CShape,
	CBaseLattice,
	CCamera,
	CCluster,
	CSoftMod,
	CCollision,
	CDummy,
	CEmitter,
	CField,
	CAir,
	CDrag,
	CGravity,
	CNewton,
	CRadial,    
	CTurbulence,
	CUniform,
	CVortex,
	CGeometric,
	CCurve,
	CNurbsCurve,
	CNurbsCurveGeom,
	CDimension,
	CAngle,
	CAnnotation,
	CDistance,
	CArcLength,
	CRadius,
	CParamDimension,
	CDirectedDisc,
	CRenderRect,
	CEnvFogShape,
	CLattice,
	CLatticeGeom,
	CLocator,
	CDropoffLocator,
	CMarker,
	COrientationMarker,
	CPositionMarker,
	COrientationLocator,
	CTrimLocator,
	CPlane,
	CSketchPlane,
	CGroundPlane,
	COrthoGrid,
	CSprite,
	CSurface,
	CNurbsSurface,
	CNurbsSurfaceGeom,
	CMesh,
	CMeshGeom,
	CRenderSphere,
	CFlexor,
	CClusterFlexor,
	CGuideLine,
	CLight,
	CAmbientLight,
	CNonAmbientLight,
	CAreaLight,
	CLinearLight,
	CNonExtendedLight,
	CDirectionalLight,
	CPointLight,
	CSpotLight,
	CParticle,
	CPolyToolFeedbackShape,
	CRigidConstraint,
	CRigid,
	CSpring,
	CUnknownDag,
	CDefaultLightList,
	CDeleteComponent,
	CDispatchCompute,
	CShadingEngine,
	CDisplacementShader,
	CDistanceBetween,
	CDOF,
	CDummyConnectable,
	CDynamicsController,
	CGeoConnectable, 
	CExpression,
	CExtract, 
	CFilter,
	CFilterClosestSample,
	CFilterEuler,
	CFilterSimplify,
	CGammaCorrect,
	CGeometryFilt,
	CBendLattice,
	CBlendShape,
	CBulgeLattice,
	CFFD,
	CFfdDualBase,
	CRigidDeform,
	CSculpt,
	CTweak,
	CWeightGeometryFilt,
	CClusterFilter,
	CSoftModFilter,
	CJointCluster,
	CWire,
	CGroupId,
	CGroupParts,
	CGuide,
	CHsvToRgb,
	CHyperGraphInfo,
	CHyperLayout,
	CHyperView,
	CIkSolver,
	CMCsolver,
	CPASolver,
	CSCsolver,
	CRPsolver,
	CSplineSolver,
	CIkSystem,
	CImagePlane,
	CLambert,
	CReflect,
	CBlinn,
	CPhong,
	CPhongExplorer,
	CLayeredShader,
	CLightInfo,
	CLeastSquares,
	CLightFogMaterial,
	CEnvFogMaterial,
	CLightList,
	CLightSource,
	CLuminance,
	CMakeGroup,
	CMaterial,
	CDiffuseMaterial,
	CLambertMaterial,
	CBlinnMaterial,
	CPhongMaterial,
	CLightSourceMaterial,
	CMaterialInfo,
	CMatrixAdd,
	CMatrixHold,
	CMatrixMult,
	CMatrixPass,
	CMatrixWtAdd,
	CMidModifier,
	CMidModifierWithMatrix,
	CPolyBevel,
	CPolyTweak,
	CPolyAppend,
	CPolyChipOff,
	CPolyCloseBorder,
	CPolyCollapseEdge,
	CPolyCollapseF,
	CPolyCylProj,
	CPolyDelEdge,
	CPolyDelFacet,
	CPolyDelVertex,
	CPolyExtrudeFacet,
	CPolyMapCut,
	CPolyMapDel,
	CPolyMapSew,
	CPolyMergeEdge,
	CPolyMergeFacet,
	CPolyMoveEdge,
	CPolyMoveFacet,
	CPolyMoveFacetUV,
	CPolyMoveUV,
	CPolyMoveVertex,
	CPolyMoveVertexUV,
	CPolyNormal,
	CPolyPlanProj,
	CPolyProj,
	CPolyQuad,
	CPolySmooth, 
	CPolySoftEdge,
	CPolySphProj,
	CPolySplit,
	CPolySubdEdge,
	CPolySubdFacet,
	CPolyTriangulate,
	CPolyCreator,
	CPolyPrimitive,
	CPolyCone,
	CPolyCube,
	CPolyCylinder,
	CPolyMesh,
	CPolySphere,
	CPolyTorus,
	CPolyCreateFacet,
	CPolyUnite,
	CMotionPath,
	CMultilisterLight,
	CMultiplyDivide,
	COldGeometryConstraint,
	COpticalFX,
	CParticleAgeMapper,
	CParticleCloud,
	CParticleColorMapper,
	CParticleIncandecenceMapper,
	CParticleTransparencyMapper,
	CPartition, 
	CPlace2dTexture,
	CPlace3dTexture,
	CPluginDependNode,
	CPluginLocatorNode,
	CPlusMinusAverage,
	CPointMatrixMult,
	CPolySeparate,
	CPostProcessList,
	CProjection,
	CRecord,
	CRenderUtilityList,
	CReverse,
	CRgbToHsv,  
	CRigidSolver,  
	CSet,
	CTextureBakeSet,
	CVertexBakeSet,
	CSetRange,
	CShaderGlow,
	CShaderList,
	CShadingMap,
	CSamplerInfo,
	CShapeFragment,
	CSimpleVolumeShader,
	CSl60,
	CSnapshot,
	CStoryBoard,
	CSummaryObject,
	CSuper,
	CControl,
	CSurfaceLuminance,
	CSurfaceShader,
	CTextureList,
	CTextureEnv,
	CEnvBall,
	CEnvCube,
	CEnvChrome,
	CEnvSky,
	CEnvSphere,
	CTexture2d,
	CBulge,
	CChecker,
	CCloth,
	CFileTexture,
	CFractal,
	CGrid,
	CMountain,
	CRamp,
	CStencil,
	CWater,
	CTexture3d,
	CBrownian,
	CCloud,
	CCrater, 
	CGranite,
	CLeather,
	CMarble,
	CRock,
	CSnow,
	CSolidFractal,
	CStucco,
	CTxSl,
	CWood,
	CTime,
	CTimeToUnitConversion,
	CRenderSetup,
	CRenderGlobals,
	CRenderGlobalsList,
	CRenderQuality,
	CResolution,  
	CHardwareRenderGlobals,
	CArrayMapper,
	CUnitConversion,
	CUnitToTimeConversion,
	CUseBackground,
	CUnknown,
	CVectorProduct,
	CVolumeShader,
	CComponent,
	CCurveCVComponent,
	CCurveEPComponent,
	CCurveKnotComponent,
	CCurveParamComponent,
	CIsoparmComponent,
	CPivotComponent,
	CSurfaceCVComponent,
	CSurfaceEPComponent,
	CSurfaceKnotComponent,
	CEdgeComponent,
	CLatticeComponent,
	CSurfaceRangeComponent,
	CDecayRegionCapComponent,
	CDecayRegionComponent,
	CMeshComponent,
	CMeshEdgeComponent,
	CMeshPolygonComponent,
	CMeshFrEdgeComponent,
	CMeshVertComponent,
	COrientationComponent,
	CSubVertexComponent,
	CMultiSubVertexComponent,
	CSetGroupComponent,
	CDynParticleSetComponent,
	CSelectionItem,
	CDagSelectionItem,
	CNonDagSelectionItem,
	CItemList,
	CAttribute,
	CNumericAttribute,
	CDoubleAngleAttribute,
	CFloatAngleAttribute,
	CDoubleLinearAttribute,
	CFloatLinearAttribute,
	CTimeAttribute,
	CEnumAttribute,
	CUnitAttribute,
	CTypedAttribute,
	CCompoundAttribute,
	CGenericAttribute,
	CLightDataAttribute,
	CMatrixAttribute,
	CFloatMatrixAttribute,
	CMessageAttribute,
	CPlugin,
	CData,
	CComponentListData,
	CDoubleArrayData,
	CIntArrayData,
	CLatticeData,
	CMatrixData,
	CMeshData,
	CNurbsSurfaceData,
	CNurbsCurveData,
	CNumericData,
	CData2Double,
	CData2Float,
	CData2Int,
	CData2Short,
	CData3Double,
	CData3Float,
	CData3Int,
	CData3Short,
	CPluginData,
	CPointArrayData,
	CSphereData,
	CStringData,
	CStringArrayData,
	CVectorArrayData,
	CSelectionList,
	CTransformGeometry,
	CCommEdgePtManip,
	CCommEdgeOperManip,
	CCommEdgeSegmentManip,
	CCommCornerManip,
	CCommCornerOperManip,
	CPluginDeformerNode,
	CTorus,
	CPolyBoolOp,
	CSingleShadingSwitch,
	CDoubleShadingSwitch,
	CTripleShadingSwitch,
	CNurbsSquare,
	CAnisotropy,
	CNonLinear,
	CDeformFunc,
	CDeformBend,
	CDeformTwist,
	CDeformSquash,
	CDeformFlare,
	CDeformSine,
	CDeformWave,
	CDeformBendManip,
	CDeformTwistManip,
	CDeformSquashManip,
	CDeformFlareManip,
	CDeformSineManip,
	CDeformWaveManip,
	CSoftModManip,
	CDistanceManip,
	CScript,
	CCurveFromMeshEdge,
	CCurveCurveIntersect,
	CNurbsCircular3PtArc,
	CNurbsCircular2PtArc,
	COffsetSurface,
	CRoundConstantRadius,
	CRoundRadiusManip,
	CRoundRadiusCrvManip,
	CRoundConstantRadiusManip,
	CThreePointArcManip,
	CTwoPointArcManip,
	CTextButtonManip,
	COffsetSurfaceManip,
	CImageData,
	CImageLoad,
	CImageSave,
	CImageNetSrc,
	CImageNetDest,
	CImageRender,
	CImageAdd,
	CImageDiff,
	CImageMultiply,
	CImageOver,
	CImageUnder,
	CImageColorCorrect,
	CImageBlur,
	CImageFilter,
	CImageDepth,
	CImageDisplay,
	CImageView,
	CImageMotionBlur,
	CMatrixFloatData,
	CSkinShader,
	CComponentManip,
	CSelectionListData,
	CObjectFilter,
	CObjectMultiFilter,
	CObjectNameFilter,
	CObjectTypeFilter,
	CObjectAttrFilter,
	CObjectRenderFilter,
	CObjectScriptFilter,
	CSelectionListOperator,
	CSubdiv,
	CPolyToSubdiv,
	CSkinClusterFilter,
	CCharacter,
	CCharacterOffset,
	CDagPose,
	CStitchAsNurbsShell,
    CExplodeNurbsShell,
    CNurbsBoolean,
    CStitchSrfManip,
	CForceUpdateManip,
    CPluginManipContainer,
	CPolySewEdge,
	CPolyMergeVert,
	CPolySmoothFacet,
	CSmoothCurve,
	CGlobalStitch,
	CSubdivCVComponent,
	CSubdivEdgeComponent,
	CSubdivFaceComponent,
	CTranslateUVManip2D,
	CRotateUVManip2D,
	CScaleUVManip2D,
	CPolyTweakUV,
	CPluginShape,
	CGeometryData,
	CSingleIndexedComponent,
	CDoubleIndexedComponent,
	CTripleIndexedComponent,
    CExtendSurfaceDistanceManip,
	CSquareSrf,
	CSquareSrfManip,
	CSubdivToPoly,
    CDynBase,
    CDynEmitterManip,
    CDynFieldsManip,
    CDynBaseFieldManip,
    CDynAirManip,
    CDynNewtonManip,
    CDynTurbulenceManip,
    CDynSpreadManip,
    CDynAttenuationManip,
    CDynArrayAttrsData,
    CPluginFieldNode,
    CPluginEmitterNode,
    CPluginSpringNode,
	CDisplayLayer,
	CDisplayLayerManager,
    CPolyColorPerVertex,
	CCharacterMappingData,
	CDynSweptGeometryData,
	CWrapFilter,
	CMeshVtxFaceComponent,
	CBinaryData,
	CAttribute2Double,
	CAttribute2Float,
	CAttribute2Short,
	CAttribute2Int,
	CAttribute3Double,
	CAttribute3Float,
	CAttribute3Short,
	CAttribute3Int,
	CReference,
	CBlindData,
	CBlindDataTemplate,
	CPolyBlindData,
	CPolyNormalPerVertex,
	CNurbsToSubdiv,
	CPluginIkSolver,
	CInstancer,
	CMoveVertexManip,
	CStroke,
	CBrush,
	CStrokeGlobals,
	CPluginGeometryData,
	CLightLink,
	CDynGlobals,
	CPolyReduce,
	CLodThresholds,
	CChooser,
	CLodGroup,
	CMultDoubleLinear,
	CFourByFourMatrix,
	CTowPointOnSurfaceManip,
	CSurfaceEdManip,
	CSurfaceFaceComponent,
	CClipScheduler,
	CClipLibrary,
	CSubSurface,
	CSmoothTangentSrf,
	CRenderLayer,
	CRenderLayerManager,
	CPolyFlipEdge,
	CPolyExtrudeEdge,
	CAnimBlend,
	CAnimBlendInOut,
	CPolyAppendVertex,
	CUvChooser,
	CSubdivCompId,
	CVolumeAxis,
	CDeleteUVSet,
	CSubdHierBlind,
	CSubdBlindData,
	CCharacterMap,
	CLayeredTexture,
	CSubdivCollapse,
	CParticleSamplerInfo,
	CCopyUVSet,
	CCreateUVSet,
	CClip,
	CPolySplitVert,
	CSubdivData,
	CSubdivGeom,
	CUInt64ArrayData,
	CPolySplitEdge,
	CSubdivReverseFaces,
	CMeshMapComponent,
	CSectionManip,
	CXsectionSubdivEdit,
	CSubdivToNurbs,
	CEditCurve,
	CEditCurveManip,
	CCrossSectionManager, 
	CCreateSectionManip,
	CCrossSectionEditManip,
	CDropOffFunction,
	CSubdBoolean,
	CSubdModifyEdge,
	CModifyEdgeCrvManip,
	CModifyEdgeManip,
	CScalePointManip,
	CTransformBoxManip, 
	CSymmetryLocator,
	CSymmetryMapVector,
	CSymmetryMapCurve,
	CCurveFromSubdivEdge,
	CCreateBPManip, 
	CModifyEdgeBaseManip,
	CSubdExtrudeFace,
	CSubdivSurfaceVarGroup,
	CSfRevolveManip,
	CCurveFromSubdivFace,
	CModelFacade,
	CMaterialFacade,
	CEnvironmentFacade,
	CModelFacadeDefault,
	CMaterialFacadeColor,
	CEnvironmentFacadeDefault,
	CPolyTransfer,
	CPolyAverageVertex,
	CPolyAutoProj, 
	CPolyLayoutUV,
	CPolyMapSewMove,
	CSubdModifier,
	CSubdMoveVertex,
	CSubdMoveEdge,
	CSubdMoveFace,
	CSubdDelFace,
	CSnapshotShape,
	CSubdivMapComponent,
	CJiggleDeformer,
	CGlobalCacheControls,
	CDiskCache,
	CSubdCloseBorder,
	CSubdMergeVert,
	CBoxData,
	CBox,
	CRenderBox,
	CSubdSplitFace,
	CPluginAnimBlendNode,
	CVolumeFog,
	CSubdTweakUV,
	CSubdMapCut,
	CSubdLayoutUV,
	CSubdMapSewMove,
	COcean,
	CVolumeNoise,
	CSubdAutoProj,
	CSubdSubdivideFace,
	CNoise,
	CAttribute4Double,
	CData4Double,
	CSubdPlanProj,
	CSubdTweak,
	CSubdProjectionManip,
	CSubdMappingManip,
	CHardwareReflectionMap,
	CPolyNormalizeUV,
	CPolyFlipUV,
	CHwShaderNode,
	CPluginHwShaderNode,
	CSubdAddTopology,
	CSubdCleanTopology,
	CImplicitCone,
	CImplicitSphere,
	CRampShader,
	CVolumeLight,
	COceanShader,
	CBevelPlus,
	CStyleCurve,
	CPolyCut,
	CPolyPoke,
	CPolyWedgeFace,
	CPolyCutManipContainer,
	CPolyCutManip,
	CPolyPokeManip,
	CFluidTexture3D,
	CFluidTexture2D,
	CPolyMergeUV,
	CPolyStraightenUVBorder,
	CAlignManip,
	CPluginTransformNode,
	CFluid,
	CFluidGeom,
	CFluidData,
	CSmear,
	CStringShadingSwitch,
	CStudioClearCoat,
	CFluidEmitter,
	CHeightField,
	CGeoConnector, 
	CSnapshotPath, 
	CPluginObjectSet,
	CQuadShadingSwitch,
	CPolyExtrudeVertex,
	CPairBlend,
	CTextManip,
	CViewManip,
	CXformManip,
	CMute,
	CConstraint,
	CTrimWithBoundaries,
	CCurveFromMeshCoM,
	CFollicle,
	CHairSystem,
	CRemapValue,
	CRemapColor,
	CRemapHsv,
	CHairConstraint,
	CTimeFunction,
	CMentalRayTexture,
	CObjectBinFilter,
	CPolySmoothProxy,
	CPfxGeometry,
	CPfxHair,
	CHairTubeShader,
	CPsdFileTexture
};
//----------------------------------------------------------------------------


