Katana Plug-in APIs 0.1

FnArbitraryOutputAttr.h

00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef FnGeolibServicesArbitraryOutputAttr_H
00004 #define FnGeolibServicesArbitraryOutputAttr_H
00005 
00006 #include <stdint.h>
00007 #include <string>
00008 
00009 #include <FnAttribute/FnAttribute.h>
00010 
00011 #include <FnGeolibServices/FnGeolibServicesAPI.h>
00012 #include <FnGeolibServices/ns.h>
00013 #include <FnGeolibServices/suite/FnArbitraryOutputAttrSuite.h>
00014 
00015 #include <FnPluginSystem/FnPluginSystem.h>
00016 
00017 FNGEOLIBSERVICES_NAMESPACE_ENTER
00018 {
00019     class FNGEOLIBSERVICES_API ArbitraryOutputAttr
00020     {
00021     public:
00022         ArbitraryOutputAttr(
00023             const std::string &arbitraryOutputName,
00024             const FnAttribute::GroupAttribute & arbitraryOutputAttr,
00025             const std::string &geometryType,
00026             const FnAttribute::GroupAttribute & geometryAttr);
00027         ~ArbitraryOutputAttr();
00028 
00029         std::string getName() const;
00030 
00031         std::string getScope() const;
00032 
00033         std::string getInputBaseType() const;
00034 
00035         int getElementSize() const;
00036 
00037         std::string getInputType() const;
00038 
00039         std::string getOutputType() const;
00040 
00041         std::string getInterpolationType() const;
00042 
00043         bool hasIndexedValueAttr() const;
00044 
00045         FnAttribute::IntAttribute getIndexAttr(bool validateIndices) const;
00046 
00047         FnAttribute::Attribute getIndexedValueAttr(const std::string & baseOutputType=std::string()) const;
00048 
00049         FnAttribute::Attribute getValueAttr(const std::string & baseOutputType=std::string()) const;
00050 
00051         bool isValid() const;
00052 
00053         std::string getError() const;
00054 
00055         bool isArray() const;
00056 
00057     private:
00058         FnArbitraryOutputAttrHandle _handle;
00059         static const FnArbitraryOutputAttrHostSuite_v1 * _getSuite();
00060 
00061         // no copy/assign
00062         ArbitraryOutputAttr(const ArbitraryOutputAttr& rhs);
00063         ArbitraryOutputAttr& operator=(const ArbitraryOutputAttr& rhs);
00064     };
00065 
00066 }
00067 FNGEOLIBSERVICES_NAMESPACE_EXIT
00068 
00069 
00070 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator