|
Katana Plug-in APIs 0.1
|
00001 // Copyright (c) 2016 The Foundry Visionmongers Ltd. All Rights Reserved. 00002 00003 #ifndef FNVIEWER_FNVIEWPORTLAYERSUITE_H 00004 #define FNVIEWER_FNVIEWPORTLAYERSUITE_H 00005 00006 extern "C" 00007 { 00008 typedef struct FnViewportLayerPluginStruct* FnViewportLayerPluginHandle; 00009 typedef struct FnViewportLayerHostStruct* FnViewportLayerHostHandle; 00010 00011 struct FnViewportPluginSuite_v2; // Forward declaration 00012 00013 #include <FnAttribute/suite/FnAttributeSuite.h> 00014 #include <FnGeolib/suite/FnGeolibRuntimeSuite.h> 00015 00016 #include "FnViewportSuite.h" 00017 00018 #define FnViewportLayerPluginSuite_version 2 00019 #define FnViewportLayerHostSuite_version 2 00020 00021 struct FnViewportLayerPluginSuite_v2 00022 { 00023 FnViewportLayerPluginHandle (*create)( 00024 FnViewportLayerHostHandle hostHandle); 00025 00026 void (*destroy)(FnViewportLayerPluginHandle handle); 00027 00028 void (*setup)(FnViewportLayerPluginHandle handle); 00029 00030 void (*cleanup)(FnViewportLayerPluginHandle handle); 00031 00032 int (*event)(FnViewportLayerPluginHandle handle, 00033 FnAttributeHandle eventAttrHandle); 00034 00035 void (*draw)(FnViewportLayerPluginHandle handle); 00036 00037 void (*resize)( FnViewportLayerPluginHandle handle, 00038 unsigned int width, unsigned int height); 00039 00040 void (*hover)( FnViewportLayerPluginHandle handle, uint8_t isHovering, 00041 int x, int y); 00042 00043 void (*freeze)(FnViewportLayerPluginHandle handle); 00044 00045 void (*thaw)(FnViewportLayerPluginHandle handle); 00046 00047 void (*setOption)( FnViewportLayerPluginHandle handle, 00048 uint64_t optionId, FnAttributeHandle attr); 00049 00050 FnAttributeHandle (*getOption)( FnViewportLayerPluginHandle handle, 00051 uint64_t optionId); 00052 00053 void (*pickerDraw)(FnViewportLayerPluginHandle handle, 00054 unsigned int x, unsigned int y, 00055 unsigned int w, unsigned int h, 00056 FnAttributeHandle ignoreAttrHandle); 00057 00058 int (*usesPickingOnHover)(FnViewportLayerPluginHandle handle); 00059 00060 int (*customPick)(FnViewportLayerPluginHandle handle, 00061 unsigned int x, unsigned int y, 00062 unsigned int w, unsigned int h, 00063 int deepPicking, 00064 FnAttributeHandle& pickedObjectsAttrHandle, 00065 float* singlePointDepth); 00066 }; 00067 00068 struct FnViewportLayerHostSuite_v2 00069 { 00070 void (*getViewport)( 00071 FnViewportLayerHostHandle handle, 00072 FnViewportHostHandle* viewportHostHandle, 00073 FnViewportPluginHandle* viewportPluginHandle, 00074 FnViewportPluginSuite_v2** viewportPluginSuite); 00075 00076 int (*event)(FnViewportLayerHostHandle handle, 00077 FnAttributeHandle eventAttrHandle); 00078 00079 void (*draw)(FnViewportLayerHostHandle handle); 00080 00081 void (*hover)( FnViewportLayerHostHandle handle, uint8_t isHovering, 00082 int x, int y); 00083 00084 uint64_t (*addPickableObject)(FnViewportLayerHostHandle handle, 00085 FnAttributeHandle attrHandle); 00086 00087 FnAttributeHandle (*pick)(FnViewportLayerHostHandle handle, 00088 unsigned int x, unsigned int y, 00089 unsigned int w, unsigned int h, 00090 int deepPicking, 00091 float* singlePointDepth); 00092 }; 00093 } 00094 00095 #endif //FNVIEWER_FNVIEWPORTLAYERSUITE_H
1.7.3