polyRawExporter.cpp

//-
// ==========================================================================
// Copyright 1995,2006,2008 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk
// license agreement provided at the time of installation or download,
// or which otherwise accompanies this software in either electronic
// or hard copy form.
// ==========================================================================
//+

//
//

//polyRawExporter.cpp
#include <maya/MFnPlugin.h>
#include <maya/MDagPath.h>
#include <maya/MIOStream.h>
#include <maya/MFStream.h>

#include "polyRawExporter.h"
#include "polyRawWriter.h"

polyRawExporter::~polyRawExporter() 
{ 
//Summary:  destructor method; does nothing
//
}

     
void* polyRawExporter::creator() 
//Summary:  allows Maya to allocate an instance of this object
{
        return new polyRawExporter();
}


MString polyRawExporter::defaultExtension () const 
//Summary:      called when Maya needs to know the preferred extension of this file
//                      format.  For example, if the user tries to save a file called 
//                      "test" using the Save As dialog, Maya will call this method and 
//                      actually save it as "test.x3d". Note that the period should *not* 
//                      be included in the extension.
//Returns:  "raw"
{
        return MString("raw");
}


MStatus initializePlugin(MObject obj)
//Summary:      registers the commands, tools, devices, and so on, defined by the 
//                      plug-in with Maya
//Returns:      MStatus::kSuccess if the registration was successful;
//                      MStatus::kFailure otherwise
{
        MStatus status;
        MFnPlugin plugin(obj, PLUGIN_COMPANY, "4.5", "Any");

        // Register the translator with the system
        //
        status =  plugin.registerFileTranslator("RawText",
                                                                                        "",
                                                                                        polyRawExporter::creator,
                                                                                        "",
                                                                                        "option1=1",
                                                                                        true);
        if (!status) {
                status.perror("registerFileTranslator");
                return status;
        }

        return status;
}


MStatus uninitializePlugin(MObject obj) 
//Summary:      deregisters the commands, tools, devices, and so on, defined by the 
//                      plug-in
//Returns:      MStatus::kSuccess if the deregistration was successful;
//                      MStatus::kFailure otherwise
{
        MStatus   status;
        MFnPlugin plugin( obj );

        status =  plugin.deregisterFileTranslator("RawText");
        if (!status) {
                status.perror("deregisterFileTranslator");
                return status;
        }

        return status;
}


void polyRawExporter::writeHeader(ostream& os) 
//Summary:      outputs legend information before the main data
//Args   :      os - an output stream to write to
{
        os << "Legend:\n"
           << "Delimiter = TAB\n"
           << "() = coordinates\n"
           << "[] = vector\n"
           << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";
}


polyWriter* polyRawExporter::createPolyWriter(const MDagPath dagPath, MStatus& status) 
//Summary:      creates a polyWriter for the raw export file type
//Args   :      dagPath - the current polygon dag path
//                      status - will be set to MStatus::kSuccess if the polyWriter was 
//                                       created successfully;  MStatus::kFailure otherwise
//Returns:      pointer to the new polyWriter object
{
        return new polyRawWriter(dagPath, status);
}

Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6