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