|
Katana Plug-in APIs 0.1
|
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
1.7.3