Katana Plug-in APIs 0.1
Public Member Functions

Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase Class Reference

Interface for a Viewer Manipulator Handle. More...

#include <FnManipulatorHandle.h>

Inheritance diagram for Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase:
Foundry::Katana::ViewerAPI::ManipulatorHandle Foundry::Katana::ViewerAPI::ManipulatorHandleWrapper Foundry::Katana::ViewerUtils::GLManipulatorHandle Foundry::Katana::ViewerUtils::GLTransformManipulatorHandle GLCoiHandle GLRotateAxisHandle GLRotateBallHandle GLScaleAxisHandle GLScalePlaneHandle GLScaleUniformHandle GLTranslateAxisHandle GLTranslatePlaneHandle GLTranslateScreenPlaneHandle

List of all members.

Public Member Functions

 ManipulatorHandlePluginBase ()
 Constructor.
virtual ~ManipulatorHandlePluginBase ()
 Destructor.
ManipulatorWrapperPtr getManipulator ()
 Gets the Manipulator.
Matrix44d getXform ()
 Gets the world transform of the handle.
void setLocalXform (const Matrix44d &xform)
 Sets the local transform of the handle.
Matrix44d getLocalXform ()
 Gets the local transform of the handle.
bool isActive ()
 Tells if the Handle is currently being manipulated.
bool isHovered ()
 Tells if the Handle is currently being hovered by the mouse.

Detailed Description

Interface for a Viewer Manipulator Handle.

A ManipulatorHandle is a reusable component that can be used by different Manipulators. It is a scene interaction pattern that can appear in different Manipulators to perform different tasks. An example of a ManipulatorHandle: an Arrow handle that draws an arrow that can be clicked and dragged, this can be used, for example, as the axis handle for a translate manipulator and as a light's image projection positioning handle.

This is a virtual base class to be extended in your plug-in. In addition to implementing all the pure virtual functions in this class, you must also implement this static method in your derived class:

 // Returns a new instance of your derived class.
 static ManipulatorHandle* create();

To indicate an error to the caller, your implementation may throw an exception derived from std::exception.

ViewerDelegate is the class that plugins should extend and implement.

ViewerDelegateWrapper is the class that allows other plugin types to access the ViewerDelegate plugin.

ViewerDelegatePluginBase is the base class that provides the common methods between ViewerDelegate and ViewerDelegateWrapper.


Member Function Documentation

Matrix44d Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase::getLocalXform ( )

Gets the local transform of the handle.

Returns:
A 4x4 matrix previously set by setLocalXform().
ManipulatorWrapperPtr Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase::getManipulator ( )

Gets the Manipulator.

Gets the Manipulator that created and manages this instance of ManipulatorHandle. This can be used to access the Manipulator's functionality and also to access the Viewport and ViewerDelegate associated with it, via:

getManipulator()->getViewport()->getViewerDelegate()

Returns:
The Manipulator that created and manages this handle.
Matrix44d Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase::getXform ( )

Gets the world transform of the handle.

Returns:
A 4x4 matrix that is calculated by multiplying the local transfrom (see setLocalXform() / getLocalXform()) with the Manipulator's transform (accessible by Manipulator::getXform().
void Foundry::Katana::ViewerAPI::ManipulatorHandlePluginBase::setLocalXform ( const Matrix44d xform)

Sets the local transform of the handle.

Parameters:
xformA 4x4 matrix that defines the handle's local transform in relation to the Manipulator's transform.

The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Enumerations Enumerator