polyX3DExporter/polyX3DWriter.h

polyX3DExporter/polyX3DWriter.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 __POLYX3DWRITER_H
#define __POLYX3DWRITER_H
// polyX3DWriter.h
//
// *****************************************************************************
//
// CLASS: polyX3DWriter
//
// *****************************************************************************
//
// CLASS DESCRIPTION (polyX3DWriter)
//
// polyX3DWriter is a class derived from polyWriter. It currently outputs, in
// X3D compliant 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)
//
// *****************************************************************************
#include "polyWriter.h"
class polyX3DWriter:public polyWriter {
public:
polyX3DWriter (const MDagPath& dagPath, MStatus& status);
virtual ~polyX3DWriter ();
MStatus extractGeometry ();
MStatus writeToFile (ostream& os);
private:
//Methods
//
MStatus outputSingleSet (ostream& os,
MString setName,
MIntArray faces,
MString textureName);
MStatus outputX3DShapeTag (ostream& os,
const MString shapeName,
const MIntArray& faces,
const MString textureName,
const unsigned int tabCount);
MStatus outputX3DAppearanceTag (ostream& os,
const MString textureName,
const unsigned int tabCount);
MStatus outputX3DIndexedFaceSetTag (ostream& os,
const MIntArray& faces,
const MString textureName,
unsigned int tabCount);
MStatus outputX3DCoordinateTag (ostream& os, const unsigned int tabCount);
MStatus outputX3DTextureCoordinateTag (ostream& os, const unsigned int tabCount);
MStatus outputX3DNormalTag (ostream& os, const unsigned int tabCount);
MStatus outputX3DColorTag (ostream& os, const unsigned int tabCount);
//Data Members
//for keeping track of already outputted X3D tags
//
short int fTagFlags;
//for formatting purposes - this changes depending on whether or not
//a group node is being outputted
//
short int fInitialTabCount;
//for storing UV information
//
MFloatArray fUArray;
MFloatArray fVArray;
};
#endif /*__POLYX3DWRITER_H*/