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 (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 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

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()

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 ( EditPosition  leftTime,
EditPosition  rightTime 
)

◆ getTimes()

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

◆ getDrawPointInsertionIndicator()

bool tracktion::engine::CurveEditor::getDrawPointInsertionIndicator ( ) const

◆ setDrawPointInsertionIndicator()

void tracktion::engine::CurveEditor::setDrawPointInsertionIndicator ( bool  )

◆ timeToX()

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

◆ xToTime()

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

◆ 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 EditPosition tracktion::engine::CurveEditor::snapTime ( EditPosition  ,
juce::ModifierKeys   
)
virtual

◆ getValueAt()

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

◆ getPointPosition()

virtual EditPosition tracktion::engine::CurveEditor::getPointPosition ( 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 ( EditPosition  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 ( EditPosition  )
pure virtual

◆ getBezierEnds() [1/2]

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

◆ getBezierEnds() [2/2]

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

◆ movePoint()

virtual int tracktion::engine::CurveEditor::movePoint ( int  index,
EditPosition  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

◆ getLineThickness()

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

◆ drawLine()

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

◆ selectPoint()

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

◆ toEditPosition()

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

◆ getParameterRange()

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

◆ fillPath()

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

◆ isBeats()

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

◆ fromUnderlying()

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

◆ 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

◆ canSelectItem()

virtual bool tracktion::engine::CurveEditor::canSelectItem ( ) const
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

◆ leftTime

EditPosition tracktion::engine::CurveEditor::leftTime
protected

◆ rightTime

EditPosition 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

EditPosition 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

◆ drawPointInsertionIndicator

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

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