Katana Plug-in APIs 0.1

RenderMethod.h

00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef FNRENDERERINFO_RENDERMETHOD_H
00004 #define FNRENDERERINFO_RENDERMETHOD_H
00005 
00006 #include <FnAttribute/FnGroupBuilder.h>
00007 #include <FnAttribute/FnAttribute.h>
00008 #include <FnRendererInfo/FnRendererInfoAPI.h>
00009 
00010 namespace Foundry
00011 {
00012 namespace Katana
00013 {
00014 namespace RendererInfo
00015 {
00022     class FNRENDERERINFO_API RenderMethod
00023     {
00024     public:
00025         RenderMethod(const std::string& name, const std::string& label);
00026         virtual ~RenderMethod() {}
00027 
00028         virtual std::string getType() const = 0;
00029         virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const = 0;
00030 
00031         virtual void setName(const std::string& name);
00032         virtual std::string getName() const;
00033         virtual void setLabel(const std::string& label);
00034         virtual std::string getLabel() const;
00035         virtual void setCreateCatalogItem(bool createCatalogItem);
00036         virtual bool isCreateCatalogItem() const;
00037         virtual void setReportRenderMessages(bool reportRenderMessages);
00038         virtual bool isReportRenderMessages() const;
00039         virtual void setRegisterRender(bool registerRender);
00040         virtual bool isRegisterRender() const;
00041         virtual void setDebugOutputSupported(bool debugOutputSupported);
00042         virtual bool isDebugOutputSupported() const;
00043         virtual void setSceneGraphDebugOutputSupported(bool sceneGraphDebugOutputSupported);
00044         virtual bool isSceneGraphDebugOutputSupported() const;
00045         virtual void setDebugOutputFileType(const std::string& debugOutputFileType);
00046         virtual std::string getDebugOutputFileType() const;
00047         virtual void setVisible(bool visible);
00048         virtual bool isVisible() const;
00049 
00050     protected:
00051         std::string     _name;
00052         std::string     _label;
00053         std::string     _debugOutputFileType;
00054         bool            _createCatalogItem;
00055         bool            _reportRenderMessages;
00056         bool            _registerRender;
00057         bool            _debugOutputSupported;
00058         bool            _sceneGraphDebugOutputSupported;
00059         bool            _visible;
00060     };
00071     class FNRENDERERINFO_API DiskRenderMethod : public RenderMethod
00072     {
00073     public:
00074         DiskRenderMethod();
00075         DiskRenderMethod(const std::string& name, const std::string& label);
00076         virtual ~DiskRenderMethod() {}
00077 
00078         virtual std::string getType() const { return kType; }
00079         virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const;
00080 
00081         void setAllowWaitingForRenderCompletion(bool allowWaitingForRenderCompletion);
00082         bool isAllowWaitingForRenderCompletion() const;
00083 
00084         static const char* kType;
00085         static const char* kDefaultLabel;
00086         static const char* kDefaultName;
00087         static const char* kBatchName;
00088 
00089     protected:
00090 
00091         bool _allowWaitingForRenderCompletion;
00092     };
00093 
00100     class FNRENDERERINFO_API PreviewRenderMethod : public RenderMethod
00101     {
00102     public:
00103 
00104         PreviewRenderMethod();
00105         PreviewRenderMethod(const std::string& name, const std::string& label);
00106         virtual ~PreviewRenderMethod() {}
00107 
00108         virtual std::string getType() const { return kType; }
00109         virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const;
00110 
00111         static const char* kType;
00112         static const char* kDefaultLabel;
00113         static const char* kDefaultName;
00114     };
00125     class FNRENDERERINFO_API LiveRenderMethod : public RenderMethod
00126     {
00127     public:
00128         LiveRenderMethod();
00129         LiveRenderMethod(const std::string& name, const std::string& label);
00130         virtual ~LiveRenderMethod() {}
00131 
00132         virtual std::string getType() const { return kType; }
00133         virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const;
00134 
00135         static const char* kType;
00136         static const char* kDefaultLabel;
00137         static const char* kDefaultName;
00138     };
00142 }
00143 }
00144 }
00145 
00146 namespace FnKat = Foundry::Katana;
00147 
00148 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator