Blue Brain BioExplorer
core::AbstractManipulator Class Referenceabstract

#include <AbstractManipulator.h>

Inheritance diagram for core::AbstractManipulator:
Collaboration diagram for core::AbstractManipulator:

Public Types

enum class  AxisMode { globalY = 0 , localY }
 

Public Member Functions

 AbstractManipulator (Camera &camera, KeyboardHandler &keyboardHandler)
 
virtual ~AbstractManipulator ()=default
 
virtual void adjust (const Boxd &boundingBox)
 
virtual void dragLeft (const Vector2i &to, const Vector2i &from)=0
 
virtual void dragRight (const Vector2i &to, const Vector2i &from)=0
 
virtual void dragMiddle (const Vector2i &to, const Vector2i &from)=0
 
virtual void wheel (const Vector2i &position, float delta)=0
 
float getMotionSpeed () const
 
void updateMotionSpeed (float speed)
 
float getRotationSpeed () const
 
float getWheelSpeed () const
 
void rotate (const Vector3d &pivot, double du, double dv, AxisMode axisMode)
 

Protected Member Functions

void translate (const Vector3d &v)
 

Protected Attributes

Camera_camera
 
KeyboardHandler_keyboardHandler
 
double _motionSpeed
 
double _rotationSpeed
 

Detailed Description

Base class for camera manipulators.

Definition at line 34 of file AbstractManipulator.h.

Member Enumeration Documentation

◆ AxisMode

Enumerator
globalY 
localY 

Definition at line 37 of file AbstractManipulator.h.

Constructor & Destructor Documentation

◆ AbstractManipulator()

core::AbstractManipulator::AbstractManipulator ( Camera camera,
KeyboardHandler keyboardHandler 
)

Definition at line 39 of file AbstractManipulator.cpp.

◆ ~AbstractManipulator()

virtual core::AbstractManipulator::~AbstractManipulator ( )
virtualdefault

Member Function Documentation

◆ adjust()

void core::AbstractManipulator::adjust ( const Boxd boundingBox)
virtual

Adjust manipulator behaviour to the given scene

Definition at line 47 of file AbstractManipulator.cpp.

◆ dragLeft()

virtual void core::AbstractManipulator::dragLeft ( const Vector2i to,
const Vector2i from 
)
pure virtual

◆ dragMiddle()

virtual void core::AbstractManipulator::dragMiddle ( const Vector2i to,
const Vector2i from 
)
pure virtual

◆ dragRight()

virtual void core::AbstractManipulator::dragRight ( const Vector2i to,
const Vector2i from 
)
pure virtual

◆ getMotionSpeed()

float core::AbstractManipulator::getMotionSpeed ( ) const

Definition at line 75 of file AbstractManipulator.cpp.

◆ getRotationSpeed()

float core::AbstractManipulator::getRotationSpeed ( ) const

Definition at line 65 of file AbstractManipulator.cpp.

◆ getWheelSpeed()

float core::AbstractManipulator::getWheelSpeed ( ) const

Definition at line 70 of file AbstractManipulator.cpp.

◆ rotate()

void core::AbstractManipulator::rotate ( const Vector3d pivot,
double  du,
double  dv,
AxisMode  axisMode 
)

Definition at line 93 of file AbstractManipulator.cpp.

◆ translate()

void core::AbstractManipulator::translate ( const Vector3d v)
protected

Definition at line 85 of file AbstractManipulator.cpp.

◆ updateMotionSpeed()

void core::AbstractManipulator::updateMotionSpeed ( float  speed)

Definition at line 80 of file AbstractManipulator.cpp.

◆ wheel()

virtual void core::AbstractManipulator::wheel ( const Vector2i position,
float  delta 
)
pure virtual

Member Data Documentation

◆ _camera

Camera& core::AbstractManipulator::_camera
protected

target camera

Definition at line 62 of file AbstractManipulator.h.

◆ _keyboardHandler

KeyboardHandler& core::AbstractManipulator::_keyboardHandler
protected

keyboard handler to register/deregister keyboard events

Definition at line 65 of file AbstractManipulator.h.

◆ _motionSpeed

double core::AbstractManipulator::_motionSpeed
protected

camera speed modifier - affects how many units the camera moves with each unit on the screen

Definition at line 69 of file AbstractManipulator.h.

◆ _rotationSpeed

double core::AbstractManipulator::_rotationSpeed
protected

camera rotation speed modifier - affects how many units the camera rotates with each unit on the screen

Definition at line 73 of file AbstractManipulator.h.


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