138 lines
4.1 KiB
C++
Executable File
138 lines
4.1 KiB
C++
Executable File
#ifndef _MSwatchRenderBase
|
|
#define _MSwatchRenderBase
|
|
|
|
//
|
|
//-
|
|
// ==========================================================================
|
|
// Copyright (C) Alias Systems Corp., and/or its licensors ("Alias").
|
|
// All rights reserved. These coded instructions, statements, computer
|
|
// programs, and/or related material (collectively, the "Material")
|
|
// contain unpublished information proprietary to Alias, which is
|
|
// protected by Canadian and US federal copyright law and by international
|
|
// treaties. This Material may not be disclosed to third parties, or be copied
|
|
// or duplicated, in whole or in part, without the prior written consent of
|
|
// Alias. ALIAS HEREBY DISCLAIMS ALL WARRANTIES RELATING TO THE MATERIAL,
|
|
// INCLUDING, WITHOUT LIMITATION, ANY AND ALL EXPRESS OR IMPLIED WARRANTIES OF
|
|
// NON-INFRINGEMENT, MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
// IN NO EVENT SHALL ALIAS BE LIABLE FOR ANY DAMAGES WHATSOEVER, WHETHER DIRECT,
|
|
// INDIRECT, SPECIAL, OR PUNITIVE, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
// OR OTHER TORTIOUS ACTION, OR IN EQUITY, ARISING OUT OF OR RELATED TO THE
|
|
// ACCESS TO, USE OF, OR RELIANCE UPON THE MATERIAL.
|
|
// ==========================================================================
|
|
//+
|
|
//
|
|
// CLASS: MSwatchRenderBase
|
|
//
|
|
// ****************************************************************************
|
|
//
|
|
// CLASS DESCRIPTION (MSwatchRenderBase)
|
|
//
|
|
// ****************************************************************************
|
|
|
|
#if defined __cplusplus
|
|
|
|
#ifdef _WIN32
|
|
#pragma warning(disable: 4522)
|
|
#endif // _WIN32
|
|
|
|
// INCLUDED HEADER FILES
|
|
|
|
|
|
#include <maya/MImage.h>
|
|
|
|
// DECLARATIONS
|
|
|
|
class MObject ;
|
|
|
|
/// Swatch Render Base class
|
|
/**
|
|
A class providing an interface through which a plugin can implement a
|
|
class to provide custom rendered images for swatches which are
|
|
displayed in hypershade and the Attribute Editor.
|
|
|
|
By deriving from this class and implementing the doIteration function,
|
|
swatches for nodes (having the required classification) can be custom
|
|
rendered by the plugin.
|
|
|
|
The derived class needs to be registered with Maya using the interface
|
|
provided by MSwatchRenderRegister. Please refer to documentation of
|
|
MSwatchRenderRegister for more details.
|
|
|
|
To indicate that swatch for a certain node type will be generated by
|
|
the plugin the classfication string of the node needs to contain the
|
|
following string : "swatch/<swatch generator name>" The swatch
|
|
generator name string should match the name used to register the
|
|
swatch generator class.
|
|
*/
|
|
class OPENMAYARENDER_EXPORT MSwatchRenderBase {
|
|
public:
|
|
/// constructor
|
|
MSwatchRenderBase(MObject obj, MObject renderObj, int res);
|
|
|
|
/// destructor
|
|
virtual ~MSwatchRenderBase();
|
|
|
|
/// Method called to do swatch image generation, derived classes
|
|
/// needs to implement this.
|
|
virtual bool doIteration() ;
|
|
|
|
/// returns the node for which the swatch is required to be generated
|
|
MObject swatchNode() const ;
|
|
/// returns the node used to compute the swatch
|
|
MObject node() const ;
|
|
|
|
/// returns the expected resolution of the swatch image
|
|
int resolution() const ;
|
|
|
|
/// returns the swatch image
|
|
MImage& image() ;
|
|
// this has to be a reference otherwise the internal image gets deleted !
|
|
|
|
protected :
|
|
// node for which the swatch is required
|
|
MObject fObjToSwatch ;
|
|
MObject fObjToRender ;
|
|
|
|
// object in which the swatch image should be stored
|
|
MImage fImage ;
|
|
|
|
// resolution at which the swatch image is to be generated
|
|
int fRes ;
|
|
|
|
private:
|
|
// No private members
|
|
};
|
|
|
|
inline
|
|
MObject MSwatchRenderBase::swatchNode() const
|
|
{
|
|
return fObjToSwatch ;
|
|
}
|
|
|
|
inline
|
|
MObject MSwatchRenderBase::node() const
|
|
{
|
|
return fObjToRender ;
|
|
}
|
|
|
|
inline int
|
|
MSwatchRenderBase::resolution() const
|
|
{
|
|
return fRes ;
|
|
}
|
|
|
|
inline MImage&
|
|
MSwatchRenderBase::image()
|
|
{
|
|
return fImage ;
|
|
}
|
|
|
|
#ifdef _WIN32
|
|
#pragma warning(default: 4522)
|
|
#endif // _WIN32
|
|
|
|
// ****************************************************************************
|
|
|
|
#endif /* __cplusplus */
|
|
#endif /* _MSwatchRenderBase */
|