#ifndef _HAIR_VRAY_INSTANCE_instanced_H_ #define _HAIR_VRAY_INSTANCE_instanced_H_ // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 /********************************************************************** *< FILE: shaveVrayInstanceI.h DESCRIPTION: VRay instance for instnaced hair CREATED BY: Vladimir Dubovoy HISTORY: created 11-05-2010 *> **********************************************************************/ // V-Ray headers #include "vraybase.h" #include "vraymayageom.h" #include "vrayplugins.h" #include "geometryclasses.h" //own headers #include "hairAPIvrayutil.h" #include "shaveVrayPlugin.h" #include "shaveVrayVoxelPrim.h" #include "shaveVrayInstanceBase.h" class shaveVrayInstanceI : #if defined VRAY30 public VR::BaseMeshInstance, #elif defined(VRAY40) public VR::BaseInstance, #endif public shaveVrayInstanceBase{ public: //shaveVrayPlugin *plugin; //goes to base shaveVrayInstanceI(shaveVrayPlugin *plugin, VR::MaterialInterface *mtl, VR::BSDFInterface *bsdf, int renderID, VR::VolumetricInterface *volume, VR::LightList *lightList, #if defined(VRAY30) const VR::TraceTransform &baseTM, #elif defined(VRAY40) const VR::Transform &baseTM, #endif int objectID, const tchar *userAttributes, int primaryVisibility); void compileGeometry(VR::VRayRenderer *vray, #if defined(VRAY30) VR::TraceTransform *tm, #elif defined(VRAY40) const VR::Transform *tm, #endif double *times, int tmCount) VRAY_OVERRIDE; void clearGeometry(VR::VRayRenderer *vray) VRAY_OVERRIDE; //void freeMem(); //VR::Transform GetItm0() const {return itm[0];} bool GetSquirrel() const {return false;} protected: ////const member access //inline const std::vector& voxprims() const {return m_voxprims;} //inline shaveVrayVoxelPrim* voxprim(unsigned int i) const {return m_voxprims[i];} //inline int stackid() const {return m_stackid;} //inline IHairNode* hair() const {return m_hair;} ////member access //inline std::vector& _voxprims() {return m_voxprims;} //inline shaveVrayVoxelPrim*& _voxprim(unsigned int i){return m_voxprims[i];} //inline int& _stackid() {return m_stackid;} //inline IHairNode*& _hair() {return m_hair;} private: ////moving or static primiteves //std::vector m_voxprims; //int m_stackid; //IHairNode* m_hair; }; #endif //end of_HAIR_VRAY_INSTANCE_instanced_H_