Graphite  Version 3
An experimental 3D geometry processing program
OGF::ArcBall Class Reference

Enables to interactively define a rotation. More...

#include <OGF/scene_graph_gfx/transforms/arc_ball.h>

Inheritance diagram for OGF::ArcBall:
OGF::Object GEO::Counted

Public Member Functions

 ArcBall ()
 ArcBall constructor.
 
 ~ArcBall () override
 ArcBall destructor.
 
void set_value (const mat4 &value)
 Sets the value of the rotation. More...
 
bool get_x_constraint () const
 Tests whether the X axis is constrained. More...
 
void set_x_constraint (bool value)
 Specifies whether the X axis is constrained. More...
 
bool get_y_constraint () const
 Tests whether the Y axis is constrained. More...
 
void set_y_constraint (bool value)
 Specifies whether the Y axis is constrained. More...
 
bool get_grabbed () const
 Tests whether this ArcBall is grabbed. More...
 
void drag (const vec2 &value)
 Callback called when the mouse is moved. More...
 
void release (const vec2 &value)
 Callback called when the mouse button is released. More...
 
- Public Member Functions inherited from OGF::Object
 Object (bool transient=false)
 Object constructor. More...
 
virtual ~Object ()
 Object destructor.
 
virtual MetaClassmeta_class () const
 Gets the meta class. More...
 
virtual void set_meta_class (MetaClass *mclass)
 Sets the meta class. More...
 
unsigned int id () const
 Gets the identifier of this object. More...
 
std::string string_id () const
 Gets the unique string identifier. More...
 
bool has_method (const std::string &method_name) const
 Tests whether a method is defined. More...
 
virtual bool invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val)
 Invokes a method by method name and argument list, and gets the return value. More...
 
bool invoke_method (const std::string &method_name, const ArgList &args)
 Invokes a method by method name and argument list. More...
 
bool invoke_method (const std::string &method_name)
 Invokes a method by method name. More...
 
bool has_property (const std::string &prop_name) const
 Tests whether a property is defined. More...
 
virtual bool get_property (const std::string &prop_name, std::string &prop_value) const
 Gets a property. More...
 
virtual Connectionconnect_signal_to_slot (const std::string &signal_name, Object *to, const std::string &slot_name)
 Connects a signal with a slot of another object. More...
 
virtual void add_connection (Connection *connection)
 Adds a connection to this object. More...
 
virtual void remove_connection (Connection *connection)
 Removes a connection to this object. More...
 
virtual void get_element (index_t i, Any &value) const
 Gets an element by index. More...
 
virtual void set_element (index_t i, const Any &value)
 Sets an element by index. More...
 
virtual void search (const std::string &needle, const std::string &path="")
 Displays the names of all objects that contain a substring. More...
 
bool get_signals_enabled () const
 Tests wheter signals are enabled. More...
 
void set_signals_enabled (bool value)
 Enables or disables signals. More...
 
bool get_slots_enabled () const
 Tests wheter slots are enabled. More...
 
void set_slots_enabled (bool value)
 Enables or disables slots. More...
 
MetaClassget_meta_class () const
 Gets the meta class. More...
 
std::string get_string_id () const
 Gets the unique string identifier. More...
 
virtual std::string get_doc () const
 Gets the documentation. More...
 
virtual Sign compare (const Object *other) const
 Compares this object with another one. More...
 
virtual bool is_a (const MetaType *type) const
 Tests whether this object inherits a given type. More...
 
void disconnect ()
 Removes all connections from signals of this objects. More...
 
void enable_signals ()
 Enables signals.
 
void disable_signals ()
 Disables signals.
 
void enable_slots ()
 Enables slots.
 
void disable_slots ()
 Disables slots.
 
void set_properties (const ArgList &args)
 Sets several properties in a single call. More...
 
virtual bool set_property (const std::string &name, const std::string &value)
 Sets an individual property. More...
 
void help () const
 Displays some help about this object. More...
 
virtual bool set_property (const std::string &name, const Any &value)
 Sets an individual property. More...
 
virtual bool get_property (const std::string &prop_name, Any &prop_value) const
 Gets a property. More...
 
- Public Member Functions inherited from GEO::Counted
void ref () const
 Increments the reference count. More...
 
void unref () const
 Decrements the reference count. More...
 
bool is_shared () const
 Check if the object is shared. More...
 
int nb_refs () const
 Gets the number of references that point to this object. More...
 

Public Attributes

 __pad0__: const mat4& get_value() const { return impl_.get_value()
 
 __pad1__: void grab(const vec2& value)
 
gom_signals __pad2__: void value_changed(const mat4& value)
 
- Public Attributes inherited from OGF::Object
 __pad0__: virtual index_t get_nb_elements() const
 
 __pad1__: bool equals(const Object* other) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OGF::Object
static Objectid_to_object (unsigned int id)
 Gets an object from a unique object id. More...
 
- Static Public Member Functions inherited from GEO::Counted
static void ref (const Counted *counted)
 Increments the reference count. More...
 
static void unref (const Counted *counted)
 Decrements the reference count. More...
 
- Protected Member Functions inherited from OGF::Object
virtual bool emit_signal (const std::string &signal_name, const ArgList &args, bool called_from_slot=false)
 Emits a signal and calls the slots it is connected to. More...
 
- Protected Member Functions inherited from GEO::Counted
 Counted ()
 Creates a reference counted object. More...
 
virtual ~Counted ()
 Destroys a reference counted object. More...
 

Detailed Description

Enables to interactively define a rotation.

This class is inspired by an implementation written by Paul Rademacher, in his glui library. Initial documentation by Paul Rademacher: A C++ class that implements the Arcball, as described by Ken Shoemake in Graphics Gems IV. This class takes as input mouse events (mouse down, mouse drag, mouse up), and creates the appropriate quaternions and 4x4 matrices to represent the rotation given by the mouse.

Definition at line 67 of file arc_ball.h.

Member Function Documentation

◆ drag()

void OGF::ArcBall::drag ( const vec2 value)

Callback called when the mouse is moved.

Parameters
[in]valuethe point under the mouse pointer, in normalized device coordinates (x and y both in [-1.0, 1.0]).

◆ get_grabbed()

bool OGF::ArcBall::get_grabbed ( ) const
inline

Tests whether this ArcBall is grabbed.

Return values
trueif this ArcBall is grabbed.
falseotherwise.

Definition at line 141 of file arc_ball.h.

◆ get_x_constraint()

bool OGF::ArcBall::get_x_constraint ( ) const
inline

Tests whether the X axis is constrained.

Return values
trueif the X axis is constrained
falseotherwise

Definition at line 105 of file arc_ball.h.

◆ get_y_constraint()

bool OGF::ArcBall::get_y_constraint ( ) const
inline

Tests whether the Y axis is constrained.

Return values
trueif the Y axis is constrained
falseotherwise

Definition at line 123 of file arc_ball.h.

◆ release()

void OGF::ArcBall::release ( const vec2 value)

Callback called when the mouse button is released.

Parameters
[in]valuethe point under the mouse pointer, in normalized device coordinates (x and y both in [-1.0, 1.0]).

◆ set_value()

void OGF::ArcBall::set_value ( const mat4 value)
inline

Sets the value of the rotation.

Parameters
[in]valuethe rotation, as a 4x4 matrix (with a zero translational component).

Definition at line 95 of file arc_ball.h.

◆ set_x_constraint()

void OGF::ArcBall::set_x_constraint ( bool  value)
inline

Specifies whether the X axis is constrained.

Parameters
[in]valuetrue if the X axis should be constrained, false otherwise

Definition at line 114 of file arc_ball.h.

◆ set_y_constraint()

void OGF::ArcBall::set_y_constraint ( bool  value)
inline

Specifies whether the Y axis is constrained.

Parameters
[in]valuetrue if the Y axis should be constrained, false otherwise

Definition at line 132 of file arc_ball.h.


The documentation for this class was generated from the following file: