#ifndef shaveShadowFilter_h #define shaveShadowFilter_h // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 #include #include #include class shaveShadowFilter : public MPxNode { //****************************************************** // // Creation & Initialization Methods // //****************************************************** public: shaveShadowFilter(); virtual ~shaveShadowFilter(); static void * creator(); static MStatus initialize(); //****************************************************** // // Overloaded MPxNode Methods // //****************************************************** public: virtual MStatus compute(const MPlug&, MDataBlock&); virtual void postConstructor(); //****************************************************** // // Member Variables // //****************************************************** public: static MTypeId id; static const MString nodeTypeName; //****************************************************** // // Attributes // //****************************************************** public: static MObject aLightDataArray; static MObject aLightDirection; static MObject aLightIntensity; static MObject aLightAmbient; static MObject aLightDiffuse; static MObject aLightSpecular; static MObject aLightShadowFraction; static MObject aPreShadowIntensity; static MObject aLightBlindData; static MObject aLightDataArrayOut; static MObject aLightDirectionOut; static MObject aLightIntensityOut; static MObject aLightAmbientOut; static MObject aLightDiffuseOut; static MObject aLightSpecularOut; static MObject aLightShadowFractionOut; static MObject aPreShadowIntensityOut; static MObject aLightBlindDataOut; static MObject aMatrixEyeToWorld; static MObject aNormalCamera; static MObject aObjectId; static MObject aPointWorld; static MObject aRayDepth; static MObject aRayDirection; static MObject aRayOrigin; }; #endif