#ifndef _HAIR_API_VRAY_H_ #define _HAIR_API_VRAY_H_ // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 #include "utils.h" #include "box.h" #include "rayserver.h" #include "vrayplugins.h" #include "rayserver.h" #include "geometryclasses.h" #include "brdfs.h" #include "brdfpool.h" #include "vray3_compat.h" // The following ifdef block is the standard way of creating macros which make exporting // from a DLL simpler. All files within this DLL are compiled with the SHAVEVRAYSH_EXPORTS // symbol defined on the command line. this symbol should not be defined on any project // that uses this DLL. This way any other project whose source files include this file see // SHAVEVRAYSH_API functions as being imported from a DLL, whereas this DLL sees symbols // defined with this macro as being exported. #ifdef WIN32 #ifdef SHAVEVRAYSH_EXPORTS #define SHAVEVRAYSH_API __declspec(dllexport) #else #define SHAVEVRAYSH_API __declspec(dllimport) #endif #else #define SHAVEVRAYSH_API #endif // Define APIENTRY per platform #ifndef APIENTRY # define APIENTRY #endif class IShaveVrayBSDF : public VR::BRDFSampler, public VR::BSDFSampler{ public: // Initialization virtual void init( const VR::VRayContext &rc, const VR::Color &reflectionColor, const VR::Color &diffuseColor, const VR::Color &ambientColor, const VR::Color &specularTint, const VR::Color &specularTint2, float ambDiff, float specularLevel, float reflectionGlossiness, int subdivs, const VR::Color &transp, const VR::ShadeVec &hairDir, float requiredTransparency, bool cameraVisibility, bool reflVisibility, bool refrVisibility, bool lightVisibility, bool giVisibility, float selfShadowing, bool recvShadow) = 0; }; class IShaveBSDFPool { public: virtual void init(VR::VRayCore *vray) = 0; virtual void freeMem() = 0; virtual IShaveVrayBSDF* newBRDF(const VR::VRayContext &rc) = 0; virtual void deleteBRDF(const VR::VRayContext &rc, IShaveVrayBSDF* bsdf) = 0; }; #ifdef LINUX #ifdef __cplusplus extern "C" { #endif #endif typedef IShaveBSDFPool* (APIENTRY * PFNCREATEBSDFPOOL)(); #ifdef LINUX #ifdef __cplusplus } #endif #endif #endif //end of _HAIR_API_VRAY_H_