Katana Plug-in APIs 0.1

FnScenegraphIterator.h

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_
 All Classes Functions Variables Typedefs Enumerations Enumerator