85 lines
2.5 KiB
C++
85 lines
2.5 KiB
C++
/**
|
|
* PANDA 3D SOFTWARE
|
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
*
|
|
* All use of this software is subject to the terms of the revised BSD
|
|
* license. You should have received a copy of this license along
|
|
* with this source code in a file named "LICENSE."
|
|
*
|
|
* @file mayaSavePview.h
|
|
* @author drose
|
|
* @date 2003-10-27
|
|
*/
|
|
|
|
#ifndef MAYASAVEPVIEW_H
|
|
#define MAYASAVEPVIEW_H
|
|
|
|
// We don't want to include pre_maya_include.h here, since that would
|
|
// necessitate linking with Pandatool's libmaya.dll, which would in turn bring
|
|
// in a lot of stuff from panda that we don't really need. Instead, we'll
|
|
// just define the Maya symbols we require here.
|
|
|
|
// Maya will try to typedef bool unless this symbol is defined.
|
|
#ifndef _BOOL
|
|
#define _BOOL 1
|
|
#endif
|
|
|
|
#ifdef __MACH__
|
|
#define OSMac_ 1
|
|
// This defines MAYA_API_VERSION
|
|
#include <maya/MTypes.h>
|
|
#if MAYA_API_VERSION < 201600
|
|
#include <maya/OpenMayaMac.h>
|
|
#endif
|
|
#endif
|
|
|
|
// Even though we don't include any Panda headers, it's safe to include this
|
|
// one, since it only defines some macros that we need to make this program
|
|
// platform-independent.
|
|
#include "dtool_config.h"
|
|
|
|
#ifdef PHAVE_IOSTREAM
|
|
// This will ask Maya 5.0 or better to use the new <iostream> library instead
|
|
// of the old <iostream.h> library.
|
|
#define REQUIRE_IOSTREAM
|
|
#endif // PHAVE_IOSTREAM
|
|
|
|
#include <maya/MArgList.h>
|
|
#include <maya/MPxCommand.h>
|
|
#include <maya/MObject.h>
|
|
|
|
/**
|
|
* This class serves as a plug-in to Maya to save the scene and view it using
|
|
* the external pview program, rather than linking in any part of Panda to a
|
|
* Maya plugin.
|
|
*
|
|
* Since it does not link with any Panda code, and hence is a very lean
|
|
* plugin, it is less likely than MayaPview to cause interoperability problems
|
|
* within Maya. However, it does force a save-to-disk and a spawning of a
|
|
* separate executable, including a complete reloading of all of the Maya
|
|
* libraries, so it is quite a bit slower to execute. And the potential for
|
|
* interactive control is substantially reduced.
|
|
*/
|
|
class MayaSavePview : public MPxCommand {
|
|
public:
|
|
MayaSavePview();
|
|
virtual MStatus doIt(const MArgList &args);
|
|
|
|
static void *creator();
|
|
};
|
|
|
|
// Since we don't include any of the Panda headers (other than
|
|
// dtool_config.h), we have to define this macro ourselves, to tell Windows to
|
|
// export the following functions from the DLL.
|
|
#ifdef WIN32_VC
|
|
#define EXPCL_MISC __declspec(dllexport)
|
|
#else
|
|
#define EXPCL_MISC
|
|
#endif
|
|
|
|
EXPCL_MISC MStatus initializePlugin(MObject obj);
|
|
EXPCL_MISC MStatus uninitializePlugin(MObject obj);
|
|
|
|
|
|
#endif
|