TracktionEngine
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
tracktion::engine::CurveEditor Class Referenceabstract
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 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)
 
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 () const =0
 
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

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

◆ 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 ( ) const
pure 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: