|
Katana Plug-in APIs 0.1
|
00001 // Copyright (c) 2012 The Foundry Visionmongers Ltd. All Rights Reserved. 00002 00003 00004 #ifndef KATANA_PLUGINAPIS_FNSCENEGRAPHITERATOR_FNSCENEGRAPHITERATOR_H_ 00005 #define KATANA_PLUGINAPIS_FNSCENEGRAPHITERATOR_FNSCENEGRAPHITERATOR_H_ 00006 00007 #include <string> 00008 00009 #include "FnAttribute/FnAttribute.h" 00010 #include "FnPluginSystem/FnPluginSystem.h" 00011 00012 #include "FnScenegraphIterator/FnScenegraphIteratorAPI.h" 00013 #include "FnScenegraphIterator/ns.h" 00014 #include "FnScenegraphIterator/suite/FnScenegraphIteratorSuite.h" 00015 00016 FNSCENEGRAPHITERATOR_NAMESPACE_ENTER 00017 { 00018 00050 class FNSCENEGRAPHITERATOR_API FnScenegraphIterator 00051 { 00052 public: 00053 FnScenegraphIterator(FnSgIteratorHandle handle); 00054 FnScenegraphIterator(); 00055 00056 ~FnScenegraphIterator(); 00057 00058 FnScenegraphIterator(const FnScenegraphIterator& rhs); 00059 FnScenegraphIterator& operator=(const FnScenegraphIterator& rhs); 00060 00064 bool isValid() const {return _handle != 0x0;} 00065 00069 std::string getName() const; 00070 00074 std::string getFullName() const; 00075 00079 std::string getType() const; 00080 00084 FnScenegraphIterator getFirstChild(bool evict=false) const; 00085 00086 00090 FnScenegraphIterator getNextSibling(bool evict=false) const; 00091 00095 FnScenegraphIterator getParent() const; 00096 00101 FnScenegraphIterator getRoot() const; 00102 00107 FnAttribute::StringAttribute getPotentialChildren() const; 00108 00122 FnScenegraphIterator getChildByName(const std::string &name, bool evict=false) const; 00123 00138 FnScenegraphIterator getByPath(const std::string &path, bool evict=false) const; 00139 00140 00156 FnAttribute::Attribute getAttribute(const std::string &name, bool global=false) const; 00157 00164 FnAttribute::StringAttribute getAttributeNames() const; 00165 00170 FnAttribute::GroupAttribute getGlobalXFormGroup() const; 00171 00186 void finalizeRuntime() const; 00187 00189 00190 static FnPlugStatus setHost(FnPluginHost *host); 00191 00192 static FnSgIteratorHostSuite_v3 *_suite; 00193 00194 FnSgIteratorHandle getHandle() const 00195 { 00196 return _handle; 00197 } 00198 00203 static FnAttribute::GroupAttribute getOpTreeDescriptionFromFile( 00204 const std::string & opTreeFileName); 00205 00211 static FnScenegraphIterator getIteratorFromFile( 00212 const std::string & opTreeFileName); 00213 00219 static FnScenegraphIterator getIteratorFromOpTreeDescription( 00220 const FnAttribute::GroupAttribute & opTreeDescription); 00221 00222 protected: 00223 void acceptHandle(const FnScenegraphIterator &rhs); 00224 00225 private: 00226 00227 FnSgIteratorHandle _handle; 00228 00230 }; 00231 00232 00233 00235 00236 } 00237 FNSCENEGRAPHITERATOR_NAMESPACE_EXIT 00238 00239 #endif // KATANA_PLUGINAPIS_FNSCENEGRAPHITERATOR_FNSCENEGRAPHITERATOR_H_
1.7.3