aboutsummaryrefslogtreecommitdiff
path: root/mayaPlug/shaveVrayExporter.h
blob: a5d12bfdccb391b9195fd6cda7648502fa518587 (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
#ifndef _HAIR_VRAY_EXPORTER_H_
#define _HAIR_VRAY_EXPORTER_H_

// Shave and a Haircut
// (c) 2019 Epic Games
// US Patent 6720962

#ifdef SHAVEVRAYEXPORTER_EXPORTS
#   ifdef __GNUC__
#		define SHAVEVRAYEXPORTER_EXPORT __attribute__((__visibility__("default")))
#   else
#       define SHAVEVRAYEXPORTER_EXPORT __declspec(dllexport)
#   endif
#else
#   ifdef __GNUC__
#       define SHAVEVRAYEXPORTER_EXPORT
#   else
#       define SHAVEVRAYEXPORTER_EXPORT __declspec(dllimport)
#   endif
#endif

#include <maya/MColor.h>
#include <maya/MObject.h>

// Implemented in supplemental library
// See usage in shaveVrayNode.cpp
class shaveVrayExporter {
public:
	/// Create V-Ray plugin from passed parameters
	virtual void createVRayPlugin(
			void *voidGeomInfo,
			const MString &libPath,
			int stackIdx,
			bool ownshader,
			bool isInstanced,
			const MObject &instance,
			bool tipfade,
			bool squirrel,
			const MColor &spec_tint,
			const MColor &spec_tint2,
			bool camVis,
			bool lightVis,
			bool giVis,
			bool reflVis,
			bool refrVis,
			float selfShadow,
			bool recvShadow
			)=0;

	/// Read DRA to the V-Ray plugin's dra param
	virtual bool readDraToParam(const char *draFilename)=0;

	virtual ~shaveVrayExporter() {}
};

#endif // _HAIR_VRAY_EXPORTER_H_