#include "UserMaterialVariableRuntime.h" #include "Resources/UserMaterialVariable.h" //============================================================================== // ConstructVisitor::operator() > = //============================================================================== template <> void UserMaterialVariableRuntime::ConstructVisitor:: operator() >(const RsrcPtr& x) const { udvr.data = &x; } //============================================================================== // Constructor = //============================================================================== UserMaterialVariableRuntime::UserMaterialVariableRuntime( const UserMaterialVariable& umv_) : umv(umv_) { // Initialize the data using a visitor boost::apply_visitor(ConstructVisitor(*this), umv.getDataVariant()); } //============================================================================== // Destructor = //============================================================================== UserMaterialVariableRuntime::~UserMaterialVariableRuntime() {} //============================================================================== // Specialized Accessors = //============================================================================== template<> UserMaterialVariableRuntime::ConstPtrRsrcPtrTexture& UserMaterialVariableRuntime::getValue< UserMaterialVariableRuntime::ConstPtrRsrcPtrTexture>() { throw EXCEPTION("You shouldn't call this getter"); return boost::get(data); } template<> void UserMaterialVariableRuntime::setValue< UserMaterialVariableRuntime::ConstPtrRsrcPtrTexture>( const ConstPtrRsrcPtrTexture& v) { throw EXCEPTION("You shouldn't call this setter"); boost::get(data) = v; }