Locators¶
- group FnBaseLocator
 Typedefs
- 
typedef FnBaseLocator *(*LocatorCreateCallback)()¶
 A callback function pointer type for
FnBaseLocator::create()with the following signature:FnBaseLocator* (*LocatorCreateCallback)().
- 
typedef bool (*LocatorMatchesCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent &event)¶
 A callback function pointer type for
FnBaseLocator::matches()with the following signature:bool (*LocatorMatchesCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent& event).
- 
typedef FnAttribute::DoubleAttribute (*LocatorGetBoundsCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent &event)¶
 A callback function pointer type for
FnBaseLocator::getBounds()with the following signature:FnAttribute::DoubleAttribute (*LocatorGetBoundsCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent& event).
- 
typedef FnAttribute::DoubleAttribute (*LocatorComputeExtentCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent &event)¶
 A callback function pointer type for
FnBaseLocator::computeExtent()with the following signature:FnAttribute::DoubleAttribute (*LocatorComputeExtentCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent& event).
- 
typedef bool (*OverridesBaseGeometryCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent &event)¶
 A callback function pointer type for
FnBaseLocator::overridesBaseGeometry()with the following signature:bool (*OverridesBaseGeometryCallback)(const Foundry::Katana::ViewerAPI::ViewerLocationEvent& event).
- 
class FnBaseLocator¶
 - #include <FnBaseLocator.h>
Base class implementing a locator plug-in that is used to customize how an object that’s represented by a scene graph location is drawn. Each locator plug-in will be instantiated once per viewport, and is used to draw the geometry for multiple matching locations.
Public Types
- 
typedef std::shared_ptr<FnBaseLocator> Ptr¶
 Shared pointer type.
- 
typedef std::weak_ptr<FnBaseLocator> WeakPtr¶
 Weak pointer type.
Public Functions
- 
FnBaseLocator()¶
 
- 
virtual ~FnBaseLocator()¶
 
- 
virtual void setup() = 0¶
 Called after the object has been created to initialize resources (called with a valid OpenGL context).
- 
virtual void cleanup() = 0¶
 Allows the object to clean up resources (called with a valid OpenGL context).
- 
virtual void locationSetup(const std::string &locationPath, bool isPicking)¶
 Called immediately before a location is drawn.
- 
virtual void locationCleanup(const std::string &locationPath, bool isPicking)¶
 Called immediately after a location is drawn.
- 
virtual void draw(const std::string &locationPath) = 0¶
 Draws the object that’s represented by the scene graph location with the given path using the given shader program.
- 
virtual void pickerDraw(const std::string &locationPath) = 0¶
 Draws the object that’s represented by the scene graph location with the given path using the given shader program as part of a picking pass.
- 
virtual void onFrameBegin(bool isPicking)¶
 Called at the beginning of each frame to allow batching of draws.
- 
virtual void onFrameEnd(bool isPicking)¶
 Called at the end of each frame to allow batching of draws.
- 
FnBaseLocatorVDC *getViewerDelegateComponent() const¶
 Returns the ViewerDelegateComponent for querying scene data.
- 
void setViewerDelegateComponent(FnBaseLocatorVDC *vdc)¶
 Sets the ViewerDelegateComponent for querying scene data.
- 
FnBaseLocatorViewportLayer *getViewportLayer() const¶
 Returns the ViewportLayer that owns this object.
- 
void setViewportLayer(FnBaseLocatorViewportLayer *vdc)¶
 Sets the ViewportLayer that owns this object.
- 
FnAttribute::Attribute getAttribute(const std::string &locationPath, const std::string &attrName = "")¶
 Returns the named attribute of the scene graph location with the given path, or all attributes if an attribute name is not specified.
- 
bool isLocationSelected(const std::string &locationPath)¶
 Returns true if the scene graph location with the given path is currently selected.
- 
GLShaderProgram *getDefaultShaderProgram() const¶
 Returns the default shading shader program.
- 
void setDefaultShaderProgram(GLShaderProgram *shaderProgram)¶
 Sets the default shading shader program.
 - 
typedef std::shared_ptr<FnBaseLocator> Ptr¶
 
- 
class FnBaseLocatorVDC : public FnKat::ViewerAPI::ViewerDelegateComponent¶
 - #include <FnBaseLocator.h>
A base implementation of a ViewerDelegateComponent which tracks/maintains a tree of SceneNode objects and locator plug-ins associated with each location represented by a SceneNode.
Public Functions
- 
FnBaseLocatorVDC()¶
 
- 
virtual ~FnBaseLocatorVDC()¶
 
- 
inline virtual void setup()¶
 Initializes this ViewerDelegateComponent.
- 
inline virtual void cleanup()¶
 Cleans up this ViewerDelegateComponent.
- 
virtual bool locationEvent(const Foundry::Katana::ViewerAPI::ViewerLocationEvent &event, bool locationHandled)¶
 Handles viewer location events and maintains the SceneNode tree.
- 
virtual void locationsSelected(const std::vector<std::string> &locationPaths)¶
 Tracks the selection state of the scene graph.
- 
virtual void *getPrivateData(void *inputData)¶
 Returns private data.
- 
virtual FnAttribute::DoubleAttribute getBounds(const std::string &locationPath)¶
 Gets the bounds of the given location.
- 
virtual FnAttribute::DoubleAttribute computeExtent(const std::string &locationPath)¶
 Computes the extent of the given location.
- 
void removeLocation(const std::string &locationPath)¶
 Handles the removal of scene nodes from the selected path.
- 
virtual SceneNode::Ptr createSceneNode(const FnKat::ViewerAPI::ViewerLocationEvent &event)¶
 Creates a new SceneNode instance based on the given viewer location event. Can be overridden if a custom SceneNode type is desired.
- 
void dirtyAllViewports()¶
 Marks all viewports attached to the ViewerDelegate as dirty.
- 
inline SceneNode::Ptr getRootSceneNode() const¶
 Returns the top-level SceneNode.
- 
std::weak_ptr<LocatorLocationsMap> getLocatorLocations()¶
 Returns a map of locator plug-ins and the scene graph locations associated with them.
- 
bool isLocationSelected(const std::string &locationPath)¶
 Returns true if the scene graph location with the given path is currently selected.
- 
bool isLocationHidden(const std::string &locationPath)¶
 Returns true if the passed location is hidden.
Public Static Functions
- 
static void flush()¶
 
- 
static inline FnKat::ViewerAPI::ViewerDelegateComponent *create()¶
 
- 
static void registerLocator(const std::string &name, LocatorCreateCallback create, LocatorMatchesCallback matches, OverridesBaseGeometryCallback overridesBaseGeometry, LocatorGetBoundsCallback getBounds, LocatorComputeExtentCallback computeExtent)¶
 Registers a locator class and its callbacks with this VDC.
- 
static LocatorContainerVector getRegisteredLocators()¶
 Returns the list of registered locator plug-in classes.
 - 
FnBaseLocatorVDC()¶
 
- 
class FnBaseLocatorViewportLayer : public FnKat::ViewerAPI::ViewportLayer¶
 - #include <FnBaseLocator.h>
Class implementing a ViewportLayer that owns instances of locator plug-ins and is responsible for drawing them.
Public Functions
- 
FnBaseLocatorViewportLayer()¶
 
- 
virtual ~FnBaseLocatorViewportLayer()¶
 
- 
inline virtual void freeze()¶
 
- 
inline virtual void thaw()¶
 
- 
virtual void setup()¶
 Initializes the GL components of the ViewportLayer.
- 
virtual void cleanup()¶
 Cleans up the ViewportLayer resources.
- 
virtual void draw()¶
 Draws the viewport layer’s contents.
- 
virtual void pickerDraw(unsigned int x, unsigned int y, unsigned int w, unsigned int h, const Foundry::Katana::ViewerAPI::PickedAttrsMap &ignoreAttrs)¶
 Draws the viewport layer’s contents for a selection picker pass.
- 
inline virtual bool usesPickingOnHover()¶
 Returns true if the viewport layer picks objects when the pointer is hovering over them.
- 
virtual void resize(unsigned int width, unsigned int height)¶
 Processes viewport resizing.
- 
virtual void setOption(Foundry::Katana::ViewerAPI::OptionIdGenerator::value_type optionId, FnAttribute::Attribute attr)¶
 Sets a generic option.
- 
virtual void initializeLocators()¶
 Creates all needed local instances of locator plug-ins.
- 
virtual void drawLocators(bool isPicking, std::set<std::string> &ignoreLocations)¶
 Draws locator plug-ins for their associated locations, optionally ignoring locations with the given scene graph location paths.
Public Static Functions
- 
static inline Foundry::Katana::ViewerAPI::ViewportLayer *create()¶
 
 - 
FnBaseLocatorViewportLayer()¶
 
- 
typedef FnBaseLocator *(*LocatorCreateCallback)()¶