#ifndef _HAIR_VRAY_NODE_H_ #define _HAIR_VRAY_NODE_H_ // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 /********************************************************************** *< FILE: shaveVrayNode.h DESCRIPTION: Maya node HISTORY: created 29-03-2010 *> **********************************************************************/ // Get MAYA_API_VERSION. // #include #define USE_VRAY // Check for 64-bit OS and define the Bits64_ macro required by Maya headers #ifdef X64 #ifndef Bits64_ #define Bits64_ #endif #endif // Maya headers #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef USE_VRAY struct shaveVrayIntListParam; struct shaveVrayIntParam; class shaveVrayExporter; class shaveVrayNode: public MPxNode { public: static MTypeId typeId; static MString typeName; static MString apiType; static MString classification; static MString attr_vrayGeomInfo; static MString attr_vgi; static MString attr_vrayGeomResult; static MString attr_vgr; static MString attr_outApiType; static MString attr_oat; static MString attr_outApiClassification; static MString attr_oac; static MString attr_output; static MString attr_out; static MString attr_stackIndex; static MString attr_sti; static MString attr_isInstanced; static MString attr_isi; static MString attr_instanceMesh; static MString attr_ime; static MString attr_tipfade; static MString attr_tf; static MString attr_specTint; static MString attr_st; static MString attr_specTint2; static MString attr_st2; static MString attr_squirrel; static MString attr_sq; static MString attr_ownshader; static MString attr_osh; static MString attr_selfshadow; static MString attr_ss; static MString attr_castshadow; static MString attr_cs; static MString attr_recvshadow; static MString attr_rs; static MString attr_primaryvis; static MString attr_pv; static MString attr_refrvis; static MString attr_rr; static MString attr_reflvis; static MString attr_rl; shaveVrayNode(); virtual ~shaveVrayNode(); virtual MStatus compute(const MPlug&, MDataBlock&); #if MAYA_API_VERSION >= 201600 virtual SchedulingType schedulingType() const { return kUntrusted; } #endif bool readDraToParam(const char *draFilename); //virtual MStatus setDependentsDirty ( const MPlug &plugBeingDirtied, // MPlugArray &affectedPlugs ); static void* creator() {return new shaveVrayNode();} static MStatus initialize(); private: shaveVrayExporter *m_vrayExporter; MString m_vrayVersion; static MObject m_vrayGeomInfo; // This attribute is necessary for V-Ray to recognize the object as V-Ray geometry static MObject m_vrayGeomResult; // This attribute is necessary for V-Ray to recognize the object as V-Ray geometry static MObject m_outApiType; static MObject m_outApiClassification; static MObject m_iconSize; static MObject m_outMesh; static MObject m_stackIndex; static MObject m_isInstanced; static MObject m_instanceMesh; static MObject m_tipfade; static MObject m_squirrel; static MObject m_spectint; static MObject m_spectint2; static MObject m_ownshader; static MObject m_selfshadow; static MObject m_castshadow; static MObject m_recvshadow; static MObject m_primaryvis; static MObject m_reflvis; static MObject m_refrvis; }; #endif //USE_VRAY #endif