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