Katana Plug-in APIs 0.1

FnScenegraphIteratorSuite.h

00001 // Copyright (c) 2012 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 
00004 #ifndef FnScenegraphIteratorSuite_H
00005 #define FnScenegraphIteratorSuite_H
00006 
00007 extern "C" {
00008 
00009 #include <FnAttribute/suite/FnAttributeSuite.h>
00010 
00011 typedef struct FnSgIteratorStruct * FnSgIteratorHandle;
00012 
00013 #define FnSgIteratorHostSuite_version 3
00014 
00015 struct FnSgIteratorHostSuite_v3
00016 {
00017     void (*retainSgIterator)(FnSgIteratorHandle handle);
00018     void (*releaseSgIterator)(FnSgIteratorHandle handle);
00019 
00020     // Loads a serialized Op tree into a Group Attribute
00021     FnAttributeHandle (*getOpTreeDescriptionFromFile)(
00022             const char* filePath);
00023 
00024     // Creates an iterator from a serialized Op tree
00025     FnSgIteratorHandle (*getIteratorFromFile)(const char *filePath);
00026 
00027     // Creates an iterator from a Group Attribute representing an Op tree
00028     FnSgIteratorHandle (*getIteratorFromOpTreeDescription)(
00029             FnAttributeHandle opTreeDescription);
00030 
00031     // Iteration functions
00032     FnSgIteratorHandle (*getFirstChild)(
00033             FnSgIteratorHandle handle, uint8_t evict);
00034     FnSgIteratorHandle (*getNextSibling)(
00035             FnSgIteratorHandle handle, uint8_t evict);
00036     FnSgIteratorHandle (*getParent)(FnSgIteratorHandle handle);
00037     FnSgIteratorHandle (*getRoot)(FnSgIteratorHandle handle);
00038     FnSgIteratorHandle (*getChildByName)(
00039             FnSgIteratorHandle handle, const char *name, uint8_t evict);
00040     FnSgIteratorHandle (*getByPath)(
00041         FnSgIteratorHandle handle, const char *path, uint8_t evict);
00042 
00043     // Location / Producer info
00044     FnAttributeHandle (*getName)(FnSgIteratorHandle handle);
00045     FnAttributeHandle (*getFullName)(FnSgIteratorHandle handle);
00046 
00047     // Attributes
00048     FnAttributeHandle (*getAttribute)(
00049             FnSgIteratorHandle handle, const char * name);
00050     FnAttributeHandle (*getGlobalAttribute)(
00051             FnSgIteratorHandle handle, const char * name);
00052     FnAttributeHandle (*getAttributeNames)(FnSgIteratorHandle handle);
00053     FnAttributeHandle (*getGlobalXFormGroup)(FnSgIteratorHandle handle);
00054 
00055     FnAttributeHandle (*getPotentialChildren)(FnSgIteratorHandle handle);
00056 
00057     void (*finalizeRuntime)(FnSgIteratorHandle handle);
00058 };
00059 
00060 
00061 struct FnSgIteratorHostSuite_v2
00062 {
00063     void (*retainSgIterator)(FnSgIteratorHandle handle);
00064     void (*releaseSgIterator)(FnSgIteratorHandle handle);
00065 
00066     // Iterators creation from a Producers tree definition (currently in Python or geolib3 op serialization)
00067     FnSgIteratorHandle (*getIteratorFromFile)(const char *filePath);
00068 
00069     // Iteration functions
00070     FnSgIteratorHandle (*getFirstChild)(FnSgIteratorHandle handle, uint8_t evict);
00071     FnSgIteratorHandle (*getNextSibling)(FnSgIteratorHandle handle, uint8_t evict);
00072     FnSgIteratorHandle (*getParent)(FnSgIteratorHandle handle);
00073     FnSgIteratorHandle (*getRoot)(FnSgIteratorHandle handle);
00074     FnSgIteratorHandle (*getChildByName)(FnSgIteratorHandle handle, const char *name, uint8_t evict);
00075     FnSgIteratorHandle (*getByPath)(FnSgIteratorHandle handle, const char *path, uint8_t evict);
00076 
00077     // Location / Producer info
00078     FnAttributeHandle (*getName)(FnSgIteratorHandle handle);
00079     FnAttributeHandle (*getFullName)(FnSgIteratorHandle handle);
00080 
00081     // Attributes
00082     FnAttributeHandle (*getAttribute)(FnSgIteratorHandle handle, const char * name);
00083     FnAttributeHandle (*getGlobalAttribute)(FnSgIteratorHandle handle, const char * name);
00084     FnAttributeHandle (*getAttributeNames)(FnSgIteratorHandle handle);
00085     FnAttributeHandle (*getGlobalXFormGroup)(FnSgIteratorHandle handle);
00086 
00087     FnAttributeHandle (*getPotentialChildren)(FnSgIteratorHandle handle);
00088 };
00089 
00090 }
00091 #endif // FnScenegraphIteratorSuite_H
 All Classes Functions Variables Typedefs Enumerations Enumerator