- Main Page
- Related Pages
- Modules
- Classes
- Examples

# polyRawWriter.h

    //-
    // ==========================================================================
    // 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.
    // ==========================================================================
    //+

    #ifndef __POLYRAWWRITER_H
    #define __POLYRAWWRITER_H

    // polyRawWriter.h

    //
    // *****************************************************************************
    //
    // CLASS:    polyRawWriter
    //
    // *****************************************************************************
    //
    // CLASS DESCRIPTION (polyRawWriter)
    //
    // polyRawWriter is a class derived from polyWriter.  It currently outputs in
    // raw text format the following polygonal mesh data:
    // - faces and their vertex components
    // - vertex coordinates
    // - colors per vertex
    // - normals per vertex
    // - current uv set and coordinates
    // - component sets
    // - file textures (for the current uv set)
    // - other uv sets and coordinates
    //
    // *****************************************************************************

    #include "polyWriter.h"

    //Used to store UV set information
    //
    struct UVSet {
        MFloatArray uArray;
        MFloatArray vArray;
        MString     name;
        UVSet*      next;
    };

    class polyRawWriter : public polyWriter {

        public:
                            polyRawWriter (const MDagPath& dagPath, MStatus& status);
            virtual         ~polyRawWriter ();
                    MStatus extractGeometry ();
                    MStatus writeToFile (ostream& os);

        private:
            //Functions
            //
                    MStatus outputSingleSet (ostream& os,
                                             MString setName,
                                             MIntArray faces,
                                             MString textureName);
                    MStatus outputFaces (ostream& os);
                    MStatus outputVertices (ostream& os);
                    MStatus outputVertexInfo (ostream& os);
                    MStatus outputNormals (ostream& os);
                    MStatus outputTangents (ostream& os);
                    MStatus outputBinormals (ostream& os);
                    MStatus outputColors (ostream& os);
                    MStatus outputUVs (ostream& os);

            //Data Member
            //for storing UV information
            //
            UVSet*  fHeadUVSet;
    };

    #endif /*__POLYRAWWRITER_H*/