aboutsummaryrefslogtreecommitdiff
path: root/mayaPlug/shaveShadowFilter.h
blob: 0b5f53e57f5d968c89b9c71b6d4fb606d71d7eb4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef shaveShadowFilter_h
#define shaveShadowFilter_h
// Shave and a Haircut
// (c) 2019 Epic Games
// US Patent 6720962

#include <maya/MPxNode.h>
#include <maya/MString.h>
#include <maya/MTypeId.h>


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