#ifndef _MPxImagePlane #define _MPxImagePlane // //- // ========================================================================== // Copyright (C) 1995 - 2006 Autodesk, Inc., and/or its licensors. All // rights reserved. // // The coded instructions, statements, computer programs, and/or related // material (collectively the "Data") in these files contain unpublished // information proprietary to Autodesk, Inc. ("Autodesk") and/or its // licensors, which is protected by U.S. and Canadian federal copyright law // and by international treaties. // // The Data may not be disclosed or distributed to third parties or be // copied or duplicated, in whole or in part, without the prior written // consent of Autodesk. // // The copyright notices in the Software and this entire statement, // including the above license grant, this restriction and the following // disclaimer, must be included in all copies of the Software, in whole // or in part, and all derivative works of the Software, unless such copies // or derivative works are solely in the form of machine-executable object // code generated by a source language processor. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. // AUTODESK DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED // WARRANTIES INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF // NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, // OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO // EVENT WILL AUTODESK AND/OR ITS LICENSORS BE LIABLE FOR ANY LOST // REVENUES, DATA, OR PROFITS, OR SPECIAL, DIRECT, INDIRECT, OR // CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK AND/OR ITS LICENSORS HAS // BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES. // ========================================================================== //+ // // CLASS: MPxImagePlane // // ***************************************************************************** // // CLASS DESCRIPTION (MPxImagePlane) // // MPxImagePlane provides you with the ability to write your own image // plane classes. This allows you to support non-standard image data // in an image plane or change the standard behaviour of the image // plane. // // ***************************************************************************** #if defined __cplusplus // ***************************************************************************** // INCLUDED HEADER FILES #include // ***************************************************************************** // DECLARATIONS // ***************************************************************************** class MImage; // ***************************************************************************** // CLASS DECLARATION (MPxImagePlane) // ***************************************************************************** /// Base class for user defined imagePlane nodes. (OpenMaya) (OpenMayaMPx.py) class OPENMAYA_EXPORT MPxImagePlane : public MPxNode { public: /// MPxImagePlane(); /// virtual ~MPxImagePlane(); virtual MPxNode::Type type() const; /// virtual MStatus loadImageMap( const MString &fileName, int frame, MImage &image ); BEGIN_NO_SCRIPT_SUPPORT: /// bool getExactImageFile( const MString &refFileName, MString &actualName ); END_NO_SCRIPT_SUPPORT: /// MString exactImageFile( const MString &refFileName ); /// void refreshImage( ); /// void setImageDirty(); // // Inherited attributes // /// controls the source of the image on the Image plane. static MObject imageType; /// The file name of the image to be used /// in the image plane. Only used if Type is set to Image File. static MObject imageName; /// When this is on, the system will substitute the frame number /// in the Image Name with the number from the Frame Extension attribute (see below). static MObject useFrameExtension; /// The frame extension in Image Name is replaced by the number here. static MObject frameExtension; static MObject frameOffset; /// Controls the amount of the image that will be used in the image plane. static MObject coverage; /// The width in pixels of the area on the source image to be used. static MObject coverageX; /// The height in pixels of the area on the source image to be used. static MObject coverageY; /// Controls the lower-left-corner of the area of the input image /// that will be used on the image plane. static MObject coverageOrigin; /// The pixel position of the left edge of the area of the source image to be used. static MObject coverageOriginX; /// The pixel position of the bottom edge of the area of the source image to be used. static MObject coverageOriginY; /// If the Type attribute is set to Texture, then this attribute is connected to /// the texture node used by the image plane. static MObject sourceTexture; /// Controls how the image file will be fit into the image plane. static MObject fit; /// Controls how the image plane will be displayed both in the 3d view, /// and when rendered. static MObject displayMode; /// If enabled, you will only see the image plane when you are looking /// through the camera that the plane is attached to. static MObject displayOnlyIfCurrent; /// A multiplier applied to the colors in the image plane. static MObject colorGain; /// The red component of Color Gain static MObject colorGainR; /// The green component of Color Gain static MObject colorGainG; /// The blue component of Color Gain static MObject colorGainB; /// An additive value applied to the colors in the image plane. static MObject colorOffset; /// The red component of Color Offset static MObject colorOffsetR; /// The green component of Color Offset static MObject colorOffsetG; /// The blue component of Color Offset static MObject colorOffsetB; /// A multiplier that is applied to the alpha value. static MObject alphaGain; /// The flag to control if this surface should override global shading sample settings. static MObject shadingSamplesOverride; /// Specifies the minimum number of shading samples should be taken for this surface during rendering. static MObject shadingSamples; /// Specifies the max number of shading samples can be taken for this surface during rendering. static MObject maxShadingSamples; /// If enabled, the image plane is locked to the camera's position. static MObject lockedToCamera; /// Controls the distance of the plane from the camera. static MObject depth; /// Applies a horizontal scaling to an image. static MObject squeezeCorrection; /// Controls the width and height of the image plane. static MObject size; /// Image plane width static MObject sizeX; /// Image plane height. static MObject sizeY; /// Controls how much the center of the image plane is offset /// from the centre of the viewing frustum of the camera. static MObject offset; /// Horizontal component of Offset static MObject offsetX; /// Vertical component of Offset static MObject offsetY; /// Controls the world-space position of the center /// of the image plane. static MObject center; /// X component of Center static MObject centerX; /// Y component of Center static MObject centerY; /// Z component of Center static MObject centerZ; /// Controls the width of the image plane in world space. static MObject width; /// Controls the height of the image plane in world space. static MObject height; /// When ray tracing, controls whether the image plane /// will sppear in reflected surfaces. static MObject visibleInReflections; /// When ray tracing, controls whether the image plane will /// appear when seen through a transparent, refractive surface. static MObject visibleInRefractions; /// Rotation of the image plane around the view vector. static MObject rotate; /// Indicates if the image plane has already been pre-multiplied by its /// alpha. static MObject alreadyPremult; /// Indicates that the image plane has depth information. static MObject useDepthMap; /// Indicates whether or not the image plane's color should be /// composited into the final image. static MObject composite; /// Indicates if the depth information is at a higher resolution /// than the image resolution. static MObject depthOversample; /// Users can specify a depth buffer that is larger than the /// image buffer using the 'depthFile' attribute. static MObject separateDepth; /// Separate file that contains depth information. static MObject depthFile; /// Depth offset value -- centered at the center of the view frustum. static MObject depthBias; /// Scale the depth -- centered at the center of the view frustum. static MObject depthScale; private: static void initialSetup(); static const char* className(); }; #endif /* __cplusplus */ #endif /* _MPxImagePlane */