Katana Plug-in APIs 0.1

FnViewportLayerSuite.h

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