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

#include <tracktion_CurveEditor.h>

Inheritance diagram for 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 (EditPosition leftTime, EditPosition rightTime)
 
EditTimeRange getTimes () const
 
bool getDrawPointInsertionIndicator () const
 
void setDrawPointInsertionIndicator (bool)
 
virtual float timeToX (EditPosition) const
 
virtual EditPosition 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 EditPosition snapTime (EditPosition, juce::ModifierKeys)
 
virtual float getValueAt (EditPosition)=0
 
virtual EditPosition getPointPosition (int idx)=0
 
virtual float getPointValue (int idx)=0
 
virtual float getPointCurve (int idx)=0
 
virtual void removePoint (int index)=0
 
virtual int addPoint (EditPosition 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 (EditPosition)=0
 
virtual void getBezierEnds (int index, double &x1out, float &y1out, double &x2out, float &y2out)=0
 
virtual std::pair< CurvePoint, CurvePointgetBezierEnds (int index)=0
 
virtual int movePoint (int index, EditPosition 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
 
virtual float getLineThickness (bool mouseOverOrDragging, bool curveOrPointsSelected) const
 
virtual void drawLine (juce::Graphics &, juce::Path, float lineThickness)
 
void selectPoint (int pointIdx, bool addToSelection)
 
virtual EditPosition toEditPosition (const TimePosition &t)
 
virtual juce::Range< float > getParameterRange () const =0
 
- Public Member Functions inherited from engine::SelectableListener
virtual ~SelectableListener ()
 
- Public Member Functions inherited from 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

virtual bool fillPath () const
 
virtual bool isBeats () const
 
EditPosition fromUnderlying (double u)
 
void updatePointUnderMouse (juce::Point< float >)
 
virtual void showBubbleForPointUnderMouse ()=0
 
virtual void hideBubble ()=0
 
virtual void nonRealTimeDragStart ()
 
virtual void nonRealTimeDragEnd ()
 
virtual bool canSelectItem () const
 
bool isPointSelected (int idx)
 
bool areAnyPointsSelected ()
 
CurveEditorPointgetSelectedPoint (int)
 

Protected Attributes

Editedit
 
juce::UndoManager & undoManager
 
SelectionManagerselectionManager
 
EditPosition leftTime
 
EditPosition rightTime
 
int firstIndexOnScreen = 0
 
int pointUnderMouse = -1
 
int pointBeingMoved = -1
 
int curveUnderMouse = -1
 
int lineUnderMouse = -1
 
bool dragged = false
 
bool movingAllPoints = false
 
EditPosition 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
 
bool drawPointInsertionIndicator = false
 

Static Protected Attributes

static constexpr const float pointRadius = 5.0f
 

Constructor & Destructor Documentation

◆ CurveEditor()

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

◆ ~CurveEditor()

engine::CurveEditor::~CurveEditor ( )
override

Member Function Documentation

◆ paint()

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

◆ hitTest()

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

◆ visibilityChanged()

void engine::CurveEditor::visibilityChanged ( )
override

◆ mouseDown()

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

◆ mouseUp()

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

◆ mouseDrag()

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

◆ mouseMove()

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

◆ mouseEnter()

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

◆ mouseExit()

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

◆ mouseDoubleClick()

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

◆ mouseHovered()

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

◆ mouseMovedAfterHover()

void engine::CurveEditor::mouseMovedAfterHover ( )
overridevirtual

◆ getMouseCursor()

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

◆ setTimes()

void engine::CurveEditor::setTimes ( EditPosition  leftTime,
EditPosition  rightTime 
)

◆ getTimes()

EditTimeRange engine::CurveEditor::getTimes ( ) const

◆ getDrawPointInsertionIndicator()

bool engine::CurveEditor::getDrawPointInsertionIndicator ( ) const

◆ setDrawPointInsertionIndicator()

void engine::CurveEditor::setDrawPointInsertionIndicator ( bool  )

◆ timeToX()

virtual float engine::CurveEditor::timeToX ( EditPosition  ) const
virtual

◆ xToTime()

virtual EditPosition engine::CurveEditor::xToTime ( double  x) const
virtual

◆ valueToY()

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

◆ yToValue()

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

◆ getPosition() [1/2]

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

◆ getPosition() [2/2]

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

◆ selectableObjectChanged()

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

◆ selectableObjectAboutToBeDeleted()

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

◆ changeListenerCallback()

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

◆ updateLineThickness()

void engine::CurveEditor::updateLineThickness ( )

◆ getEdit()

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

◆ getTrack()

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

◆ snapTime()

virtual EditPosition engine::CurveEditor::snapTime ( EditPosition  ,
juce::ModifierKeys   
)
virtual

◆ getValueAt()

virtual float engine::CurveEditor::getValueAt ( EditPosition  )
pure virtual

◆ getPointPosition()

virtual EditPosition engine::CurveEditor::getPointPosition ( int  idx)
pure virtual

◆ getPointValue()

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

◆ getPointCurve()

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

◆ removePoint()

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

◆ addPoint()

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

◆ getNumPoints()

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

◆ getBezierHandle()

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

◆ getBezierPoint()

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

◆ nextIndexAfter()

virtual int engine::CurveEditor::nextIndexAfter ( EditPosition  )
pure virtual

◆ getBezierEnds() [1/2]

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

◆ getBezierEnds() [2/2]

virtual std::pair< CurvePoint, CurvePoint > engine::CurveEditor::getBezierEnds ( int  index)
pure virtual

◆ movePoint()

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

◆ setValueWhenNoPoints()

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

◆ createPoint()

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

◆ curvePoint()

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

◆ getCurveName()

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

◆ getCurveNameOffset()

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

◆ getItem()

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

◆ isShowingCurve()

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

◆ updateFromTrack()

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

◆ getCurrentLineColour()

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

◆ getCurrentFillColour()

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

◆ getDefaultLineColour()

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

◆ getSelectedLineColour()

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

◆ getBackgroundColour()

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

◆ getCurveNameTextBackgroundColour()

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

◆ getPointOutlineColour()

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

◆ getLineThickness()

virtual float engine::CurveEditor::getLineThickness ( bool  mouseOverOrDragging,
bool  curveOrPointsSelected 
) const
virtual

◆ drawLine()

virtual void engine::CurveEditor::drawLine ( juce::Graphics &  ,
juce::Path  ,
float  lineThickness 
)
virtual

◆ selectPoint()

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

◆ toEditPosition()

virtual EditPosition engine::CurveEditor::toEditPosition ( const TimePosition &  t)
virtual

◆ getParameterRange()

virtual juce::Range< float > engine::CurveEditor::getParameterRange ( ) const
pure virtual

◆ fillPath()

virtual bool engine::CurveEditor::fillPath ( ) const
protectedvirtual

◆ isBeats()

virtual bool engine::CurveEditor::isBeats ( ) const
protectedvirtual

◆ fromUnderlying()

EditPosition engine::CurveEditor::fromUnderlying ( double  u)
protected

◆ updatePointUnderMouse()

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

◆ showBubbleForPointUnderMouse()

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

◆ hideBubble()

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

◆ nonRealTimeDragStart()

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

◆ nonRealTimeDragEnd()

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

◆ canSelectItem()

virtual bool engine::CurveEditor::canSelectItem ( ) const
protectedvirtual

◆ isPointSelected()

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

◆ areAnyPointsSelected()

bool engine::CurveEditor::areAnyPointsSelected ( )
protected

◆ getSelectedPoint()

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

Member Data Documentation

◆ pointRadius

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

◆ edit

Edit& engine::CurveEditor::edit
protected

◆ undoManager

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

◆ selectionManager

SelectionManager& engine::CurveEditor::selectionManager
protected

◆ leftTime

EditPosition engine::CurveEditor::leftTime
protected

◆ rightTime

EditPosition engine::CurveEditor::rightTime
protected

◆ firstIndexOnScreen

int engine::CurveEditor::firstIndexOnScreen = 0
protected

◆ pointUnderMouse

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

◆ pointBeingMoved

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

◆ curveUnderMouse

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

◆ lineUnderMouse

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

◆ dragged

bool engine::CurveEditor::dragged = false
protected

◆ movingAllPoints

bool engine::CurveEditor::movingAllPoints = false
protected

◆ mouseDownTime

EditPosition engine::CurveEditor::mouseDownTime
protected

◆ mouseDownValue

float engine::CurveEditor::mouseDownValue = 0
protected

◆ isCurveSelected

bool engine::CurveEditor::isCurveSelected = false
protected

◆ mouseDownCurve

float engine::CurveEditor::mouseDownCurve = 0
protected

◆ point1

float engine::CurveEditor::point1 = 0
protected

◆ point2

float engine::CurveEditor::point2 = 0
protected

◆ realTimeDrag

bool engine::CurveEditor::realTimeDrag = true
protected

◆ defaultCurve

float engine::CurveEditor::defaultCurve = 0
protected

◆ lineThickness

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

◆ drawPointInsertionIndicator

bool engine::CurveEditor::drawPointInsertionIndicator = false
protected

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