PtexExtractor/PtexPaintExporter.h

//**************************************************************************/
// Copyright (c) 2010 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.
//
//**************************************************************************/
// DESCRIPTION:
// CREATED: August 2010
//**************************************************************************/

#if defined(JAMBUILD)
#include <Mudbox/mudbox.h>
#include <MapExtractor/MapExtractorInterface.h>
#include <UVlessPainting/UVGeneratorInterface.h>
#else
#include "../../include/Mudbox/mudbox.h"
#include "../../include/MapExtractor/MapExtractorInterface.h"
#include "../../include/UVlessPainting/UVGeneratorInterface.h"
#endif

using namespace mudbox;
using namespace mapextractionmodules;

class PtexPaintExporter : public PaintLayerExporter
{
    DECLARE_CLASS;

    PtexPaintExporter();

    // This function returns the supported file types by this class.
    virtual QVector<FileExtension> SupportedExtensions( void ) const;
    // This function does the exporting.
    virtual void Export( const QString &sFileName, int iFileTypeIndex, const Mesh *pSourceSurface, TexturePool *pSource );
    // This function performs a fast export, without doing a map extraction internally. This is faster, and preserves texture queality.
    template < typename tType, int iMultiplier >
    void FastExport( const QString &sFileName, int iFileTypeIndex, const Mesh *pSourceSurface, TexturePool *pSource, const UVGeneratorNode *pUVGenerator );

    abool m_bUseBaseLevel;
};