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.
-
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)()