TracktionEngine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
tracktion::engine::CurveEditor Class Referenceabstract

#include <tracktion_CurveEditor.h>

Inheritance diagram for tracktion::engine::CurveEditor:

Public Member Functions

 CurveEditor (Edit &, SelectionManager &)
 
 ~CurveEditor () override
 
void paint (juce::Graphics &) override
 
bool hitTest (int x, int y) override
 
void visibilityChanged () override
 
void mouseDown (const juce::MouseEvent &) override
 
void mouseUp (const juce::MouseEvent &) override
 
void mouseDrag (const juce::MouseEvent &) override
 
void mouseMove (const juce::MouseEvent &) override
 
void mouseEnter (const juce::MouseEvent &) override
 
void mouseExit (const juce::MouseEvent &) override
 
void mouseDoubleClick (const juce::MouseEvent &) override
 
void mouseHovered (int mouseX, int mouseY) override
 
void mouseMovedAfterHover () override
 
juce::MouseCursor getMouseCursor () override
 
void setTimes (TimePosition leftTime, TimePosition rightTime)
 
TimeRange getTimes () const
 
float timeToX (TimePosition) const
 
TimePosition xToTime (double x) const
 
float valueToY (float val) const
 
float yToValue (double y) const
 
juce::Point< float > getPosition (CurvePoint) const
 
juce::Point< float > getPosition (int index)
 
void selectableObjectChanged (Selectable *) override
 
void selectableObjectAboutToBeDeleted (Selectable *) override
 
void changeListenerCallback (juce::ChangeBroadcaster *) override
 
void updateLineThickness ()
 
EditgetEdit () const
 
virtual TrackgetTrack ()
 
virtual TimePosition snapTime (TimePosition, juce::ModifierKeys)
 
virtual float getValueAt (TimePosition)=0
 
virtual TimePosition getPointTime (int idx)=0
 
virtual float getPointValue (int idx)=0
 
virtual float getPointCurve (int idx)=0
 
virtual void removePoint (int index)=0
 
virtual int addPoint (TimePosition time, float value, float curve)=0
 
virtual int getNumPoints ()=0
 
virtual CurvePoint getBezierHandle (int idx)=0
 
virtual CurvePoint getBezierPoint (int idx)=0
 
virtual int nextIndexAfter (TimePosition)=0
 
virtual void getBezierEnds (int index, double &x1out, float &y1out, double &x2out, float &y2out)=0
 
virtual int movePoint (int index, TimePosition newTime, float newValue, bool removeInterveningPoints)=0
 
virtual void setValueWhenNoPoints (float value)=0
 
virtual CurveEditorPointcreatePoint (int idx)=0
 
virtual int curvePoint (int index, float newCurve)=0
 
virtual juce::String getCurveName ()=0
 
virtual int getCurveNameOffset ()=0
 
virtual SelectablegetItem ()=0
 
virtual bool isShowingCurve () const =0
 
virtual void updateFromTrack ()=0
 
virtual juce::Colour getCurrentLineColour ()=0
 
virtual juce::Colour getCurrentFillColour ()
 
virtual juce::Colour getDefaultLineColour () const =0
 
virtual juce::Colour getSelectedLineColour () const =0
 
virtual juce::Colour getBackgroundColour () const =0
 
virtual juce::Colour getCurveNameTextBackgroundColour () const =0
 
virtual juce::Colour getPointOutlineColour () const =0
 
void selectPoint (int pointIdx, bool addToSelection)
 
- Public Member Functions inherited from tracktion::engine::SelectableListener
virtual ~SelectableListener ()
 
- Public Member Functions inherited from tracktion::engine::MouseHoverDetector
 MouseHoverDetector (int hoverTimeMillisecs_=400)
 
virtual ~MouseHoverDetector ()
 
void setHoverTimeMillisecs (int newTimeInMillisecs)
 
void setHoverComponent (juce::Component *newSourceComponent, bool wantsEventsForAllNestedChildComponents)
 
void hoverTimerCallback ()
 
void checkJustHoveredCallback ()
 

Protected Member Functions

void updatePointUnderMouse (juce::Point< float >)
 
virtual void showBubbleForPointUnderMouse ()=0
 
virtual void hideBubble ()=0
 
virtual void nonRealTimeDragStart ()
 
virtual void nonRealTimeDragEnd ()
 
bool isPointSelected (int idx)
 
bool areAnyPointsSelected ()
 
CurveEditorPointgetSelectedPoint (int)
 

Protected Attributes

Editedit
 
juce::UndoManager & undoManager
 
SelectionManagerselectionManager
 
float parameterMinValue = 0
 
float parameterRange = 1.0f
 
TimePosition leftTime
 
TimePosition rightTime
 
int firstIndexOnScreen = 0
 
int pointUnderMouse = -1
 
int pointBeingMoved = -1
 
int curveUnderMouse = -1
 
int lineUnderMouse = -1
 
bool dragged = false
 
bool movingAllPoints = false
 
TimePosition mouseDownTime
 
float mouseDownValue = 0
 
bool isCurveSelected = false
 
float mouseDownCurve = 0
 
float point1 = 0
 
float point2 = 0
 
bool realTimeDrag = true
 
float defaultCurve = 0
 
float lineThickness = 1.0f
 

Static Protected Attributes

static constexpr const float pointRadius = 5.0f
 

Constructor & Destructor Documentation

◆ CurveEditor()

tracktion::engine::CurveEditor::CurveEditor ( Edit ,
SelectionManager  
)

◆ ~CurveEditor()

tracktion::engine::CurveEditor::~CurveEditor ( )
override

Member Function Documentation

◆ paint()

void tracktion::engine::CurveEditor::paint ( juce::Graphics &  )
override

◆ hitTest()

bool tracktion::engine::CurveEditor::hitTest ( int  x,
int  y 
)
override

◆ visibilityChanged()

void tracktion::engine::CurveEditor::visibilityChanged ( )
override

◆ mouseDown()

void tracktion::engine::CurveEditor::mouseDown ( const juce::MouseEvent &  )
override

◆ mouseUp()

void tracktion::engine::CurveEditor::mouseUp ( const juce::MouseEvent &  )
override

◆ mouseDrag()

void tracktion::engine::CurveEditor::mouseDrag ( const juce::MouseEvent &  )
override

◆ mouseMove()

void tracktion::engine::CurveEditor::mouseMove ( const juce::MouseEvent &  )
override

◆ mouseEnter()

void tracktion::engine::CurveEditor::mouseEnter ( const juce::MouseEvent &  )
override

◆ mouseExit()

void tracktion::engine::CurveEditor::mouseExit ( const juce::MouseEvent &  )
override

◆ mouseDoubleClick()

void tracktion::engine::CurveEditor::mouseDoubleClick ( const juce::MouseEvent &  )
override

◆ mouseHovered()

void tracktion::engine::CurveEditor::mouseHovered ( int  mouseX,
int  mouseY 
)
overridevirtual

◆ mouseMovedAfterHover()

void tracktion::engine::CurveEditor::mouseMovedAfterHover ( )
overridevirtual

◆ getMouseCursor()

juce::MouseCursor tracktion::engine::CurveEditor::getMouseCursor ( )
override

◆ setTimes()

void tracktion::engine::CurveEditor::setTimes ( TimePosition  leftTime,
TimePosition  rightTime 
)

◆ getTimes()

TimeRange tracktion::engine::CurveEditor::getTimes ( ) const

◆ timeToX()

float tracktion::engine::CurveEditor::timeToX ( TimePosition  ) const

◆ xToTime()

TimePosition tracktion::engine::CurveEditor::xToTime ( double  x) const

◆ valueToY()

float tracktion::engine::CurveEditor::valueToY ( float  val) const

◆ yToValue()

float tracktion::engine::CurveEditor::yToValue ( double  y) const

◆ getPosition() [1/2]

juce::Point< float > tracktion::engine::CurveEditor::getPosition ( CurvePoint  ) const

◆ getPosition() [2/2]

juce::Point< float > tracktion::engine::CurveEditor::getPosition ( int  index)

◆ selectableObjectChanged()

void tracktion::engine::CurveEditor::selectableObjectChanged ( Selectable )
overridevirtual

◆ selectableObjectAboutToBeDeleted()

void tracktion::engine::CurveEditor::selectableObjectAboutToBeDeleted ( Selectable )
overridevirtual

◆ changeListenerCallback()

void tracktion::engine::CurveEditor::changeListenerCallback ( juce::ChangeBroadcaster *  )
override

◆ updateLineThickness()

void tracktion::engine::CurveEditor::updateLineThickness ( )

◆ getEdit()

Edit & tracktion::engine::CurveEditor::getEdit ( ) const

◆ getTrack()

virtual Track * tracktion::engine::CurveEditor::getTrack ( )
virtual

◆ snapTime()

virtual TimePosition tracktion::engine::CurveEditor::snapTime ( TimePosition  ,
juce::ModifierKeys   
)
virtual

◆ getValueAt()

virtual float tracktion::engine::CurveEditor::getValueAt ( TimePosition  )
pure virtual

◆ getPointTime()

virtual TimePosition tracktion::engine::CurveEditor::getPointTime ( int  idx)
pure virtual

◆ getPointValue()

virtual float tracktion::engine::CurveEditor::getPointValue ( int  idx)
pure virtual

◆ getPointCurve()

virtual float tracktion::engine::CurveEditor::getPointCurve ( int  idx)
pure virtual

◆ removePoint()

virtual void tracktion::engine::CurveEditor::removePoint ( int  index)
pure virtual

◆ addPoint()

virtual int tracktion::engine::CurveEditor::addPoint ( TimePosition  time,
float  value,
float  curve 
)
pure virtual

◆ getNumPoints()

virtual int tracktion::engine::CurveEditor::getNumPoints ( )
pure virtual

◆ getBezierHandle()

virtual CurvePoint tracktion::engine::CurveEditor::getBezierHandle ( int  idx)
pure virtual

◆ getBezierPoint()

virtual CurvePoint tracktion::engine::CurveEditor::getBezierPoint ( int  idx)
pure virtual

◆ nextIndexAfter()

virtual int tracktion::engine::CurveEditor::nextIndexAfter ( TimePosition  )
pure virtual

◆ getBezierEnds()

virtual void tracktion::engine::CurveEditor::getBezierEnds ( int  index,
double &  x1out,
float &  y1out,
double &  x2out,
float &  y2out 
)
pure virtual

◆ movePoint()

virtual int tracktion::engine::CurveEditor::movePoint ( int  index,
TimePosition  newTime,
float  newValue,
bool  removeInterveningPoints 
)
pure virtual

◆ setValueWhenNoPoints()

virtual void tracktion::engine::CurveEditor::setValueWhenNoPoints ( float  value)
pure virtual

◆ createPoint()

virtual CurveEditorPoint * tracktion::engine::CurveEditor::createPoint ( int  idx)
pure virtual

◆ curvePoint()

virtual int tracktion::engine::CurveEditor::curvePoint ( int  index,
float  newCurve 
)
pure virtual

◆ getCurveName()

virtual juce::String tracktion::engine::CurveEditor::getCurveName ( )
pure virtual

◆ getCurveNameOffset()

virtual int tracktion::engine::CurveEditor::getCurveNameOffset ( )
pure virtual

◆ getItem()

virtual Selectable * tracktion::engine::CurveEditor::getItem ( )
pure virtual

◆ isShowingCurve()

virtual bool tracktion::engine::CurveEditor::isShowingCurve ( ) const
pure virtual

◆ updateFromTrack()

virtual void tracktion::engine::CurveEditor::updateFromTrack ( )
pure virtual

◆ getCurrentLineColour()

virtual juce::Colour tracktion::engine::CurveEditor::getCurrentLineColour ( )
pure virtual

◆ getCurrentFillColour()

virtual juce::Colour tracktion::engine::CurveEditor::getCurrentFillColour ( )
virtual

◆ getDefaultLineColour()

virtual juce::Colour tracktion::engine::CurveEditor::getDefaultLineColour ( ) const
pure virtual

◆ getSelectedLineColour()

virtual juce::Colour tracktion::engine::CurveEditor::getSelectedLineColour ( ) const
pure virtual

◆ getBackgroundColour()

virtual juce::Colour tracktion::engine::CurveEditor::getBackgroundColour ( ) const
pure virtual

◆ getCurveNameTextBackgroundColour()

virtual juce::Colour tracktion::engine::CurveEditor::getCurveNameTextBackgroundColour ( ) const
pure virtual

◆ getPointOutlineColour()

virtual juce::Colour tracktion::engine::CurveEditor::getPointOutlineColour ( ) const
pure virtual

◆ selectPoint()

void tracktion::engine::CurveEditor::selectPoint ( int  pointIdx,
bool  addToSelection 
)

◆ updatePointUnderMouse()

void tracktion::engine::CurveEditor::updatePointUnderMouse ( juce::Point< float >  )
protected

◆ showBubbleForPointUnderMouse()

virtual void tracktion::engine::CurveEditor::showBubbleForPointUnderMouse ( )
protectedpure virtual

◆ hideBubble()

virtual void tracktion::engine::CurveEditor::hideBubble ( )
protectedpure virtual

◆ nonRealTimeDragStart()

virtual void tracktion::engine::CurveEditor::nonRealTimeDragStart ( )
protectedvirtual

◆ nonRealTimeDragEnd()

virtual void tracktion::engine::CurveEditor::nonRealTimeDragEnd ( )
protectedvirtual

◆ isPointSelected()

bool tracktion::engine::CurveEditor::isPointSelected ( int  idx)
protected

◆ areAnyPointsSelected()

bool tracktion::engine::CurveEditor::areAnyPointsSelected ( )
protected

◆ getSelectedPoint()

CurveEditorPoint * tracktion::engine::CurveEditor::getSelectedPoint ( int  )
protected

Member Data Documentation

◆ pointRadius

constexpr const float tracktion::engine::CurveEditor::pointRadius = 5.0f
staticconstexprprotected

◆ edit

Edit& tracktion::engine::CurveEditor::edit
protected

◆ undoManager

juce::UndoManager& tracktion::engine::CurveEditor::undoManager
protected

◆ selectionManager

SelectionManager& tracktion::engine::CurveEditor::selectionManager
protected

◆ parameterMinValue

float tracktion::engine::CurveEditor::parameterMinValue = 0
protected

◆ parameterRange

float tracktion::engine::CurveEditor::parameterRange = 1.0f
protected

◆ leftTime

TimePosition tracktion::engine::CurveEditor::leftTime
protected

◆ rightTime

TimePosition tracktion::engine::CurveEditor::rightTime
protected

◆ firstIndexOnScreen

int tracktion::engine::CurveEditor::firstIndexOnScreen = 0
protected

◆ pointUnderMouse

int tracktion::engine::CurveEditor::pointUnderMouse = -1
protected

◆ pointBeingMoved

int tracktion::engine::CurveEditor::pointBeingMoved = -1
protected

◆ curveUnderMouse

int tracktion::engine::CurveEditor::curveUnderMouse = -1
protected

◆ lineUnderMouse

int tracktion::engine::CurveEditor::lineUnderMouse = -1
protected

◆ dragged

bool tracktion::engine::CurveEditor::dragged = false
protected

◆ movingAllPoints

bool tracktion::engine::CurveEditor::movingAllPoints = false
protected

◆ mouseDownTime

TimePosition tracktion::engine::CurveEditor::mouseDownTime
protected

◆ mouseDownValue

float tracktion::engine::CurveEditor::mouseDownValue = 0
protected

◆ isCurveSelected

bool tracktion::engine::CurveEditor::isCurveSelected = false
protected

◆ mouseDownCurve

float tracktion::engine::CurveEditor::mouseDownCurve = 0
protected

◆ point1

float tracktion::engine::CurveEditor::point1 = 0
protected

◆ point2

float tracktion::engine::CurveEditor::point2 = 0
protected

◆ realTimeDrag

bool tracktion::engine::CurveEditor::realTimeDrag = true
protected

◆ defaultCurve

float tracktion::engine::CurveEditor::defaultCurve = 0
protected

◆ lineThickness

float tracktion::engine::CurveEditor::lineThickness = 1.0f
protected

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