KSeExpr 4.0.4.0
CurveScene Class Reference

#include <ExprCurve.h>

Inheritance diagram for CurveScene:

Public Slots

void interpChanged (int interp)
void selPosChanged (double pos)
void selValChanged (double val)
void resize (int width, int height)

Signals

void cvSelected (double x, double y, T_INTERP interp)
void curveChanged ()

Public Member Functions

 CurveScene ()
 ~CurveScene () override
void addPoint (double x, double y, T_INTERP interp, bool select=true)
void removePoint (int index)
void removeAll ()
void keyPressEvent (QKeyEvent *event) override
void mouseMoveEvent (QGraphicsSceneMouseEvent *mouseEvent) override
void mousePressEvent (QGraphicsSceneMouseEvent *mouseEvent) override
void mouseReleaseEvent (QGraphicsSceneMouseEvent *mouseEvent) override
void contextMenuEvent (QGraphicsSceneContextMenuEvent *event) override
void drawRect ()
void drawPoly ()
void drawPoints ()
void emitCurveChanged ()
void rebuildCurve ()

Public Attributes

std::vector< T_CURVE::CV > _cvs

Private Types

using T_CURVE = KSeExpr::Curve<double>
using T_INTERP = T_CURVE::InterpType

Private Attributes

T_CURVE_curve
int _width
int _height
T_INTERP _interp
std::vector< QGraphicsEllipseItem * > _circleObjects
int _selectedItem
QGraphicsPolygonItem * _curvePoly {nullptr}
QGraphicsRectItem * _baseRect {nullptr}
bool _lmb

Friends

class ExprCurve

Detailed Description

Definition at line 47 of file ExprCurve.h.

Member Typedef Documentation

◆ T_CURVE

using CurveScene::T_CURVE = KSeExpr::Curve<double>
private

Definition at line 50 of file ExprCurve.h.

◆ T_INTERP

Definition at line 51 of file ExprCurve.h.

Constructor & Destructor Documentation

◆ CurveScene()

CurveScene::CurveScene ( )

Definition at line 39 of file ExprCurve.cpp.

References _curve, _height, _interp, _lmb, _selectedItem, _width, rebuildCurve(), and resize().

◆ ~CurveScene()

CurveScene::~CurveScene ( )
override

Definition at line 51 of file ExprCurve.cpp.

References _curve.

Member Function Documentation

◆ addPoint()

void CurveScene::addPoint ( double x,
double y,
T_INTERP interp,
bool select = true )

Definition at line 76 of file ExprCurve.cpp.

References _cvs, _selectedItem, KSeExpr::clamp(), drawPoints(), drawPoly(), and rebuildCurve().

Referenced by mousePressEvent().

◆ contextMenuEvent()

void CurveScene::contextMenuEvent ( QGraphicsSceneContextMenuEvent * event)
override

Definition at line 149 of file ExprCurve.cpp.

References _selectedItem, and removePoint().

◆ curveChanged

void CurveScene::curveChanged ( )
signal

Referenced by emitCurveChanged().

◆ cvSelected

void CurveScene::cvSelected ( double x,
double y,
T_INTERP interp )
signal

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ drawPoints()

void CurveScene::drawPoints ( )

◆ drawPoly()

void CurveScene::drawPoly ( )

◆ drawRect()

void CurveScene::drawRect ( )

Definition at line 230 of file ExprCurve.cpp.

References _baseRect, _height, and _width.

Referenced by resize().

◆ emitCurveChanged()

void CurveScene::emitCurveChanged ( )

◆ interpChanged

void CurveScene::interpChanged ( int interp)
slot

Definition at line 186 of file ExprCurve.cpp.

References _cvs, _interp, _selectedItem, drawPoly(), emitCurveChanged(), and rebuildCurve().

◆ keyPressEvent()

void CurveScene::keyPressEvent ( QKeyEvent * event)
override

Definition at line 103 of file ExprCurve.cpp.

References _selectedItem, and removePoint().

◆ mouseMoveEvent()

void CurveScene::mouseMoveEvent ( QGraphicsSceneMouseEvent * mouseEvent)
override

◆ mousePressEvent()

void CurveScene::mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent)
override

◆ mouseReleaseEvent()

void CurveScene::mouseReleaseEvent ( QGraphicsSceneMouseEvent * mouseEvent)
override

Definition at line 180 of file ExprCurve.cpp.

References _lmb.

◆ rebuildCurve()

void CurveScene::rebuildCurve ( )

Definition at line 67 of file ExprCurve.cpp.

References _curve, and _cvs.

Referenced by addPoint(), CurveScene(), interpChanged(), mouseMoveEvent(), removePoint(), selPosChanged(), and selValChanged().

◆ removeAll()

void CurveScene::removeAll ( )

Definition at line 29 of file ExprCurve.cpp.

References _cvs.

◆ removePoint()

void CurveScene::removePoint ( int index)

Definition at line 92 of file ExprCurve.cpp.

References _cvs, _selectedItem, drawPoints(), drawPoly(), emitCurveChanged(), and rebuildCurve().

Referenced by contextMenuEvent(), and keyPressEvent().

◆ resize

void CurveScene::resize ( int width,
int height )
slot

Definition at line 56 of file ExprCurve.cpp.

References _height, _width, drawPoints(), drawPoly(), and drawRect().

Referenced by CurveScene().

◆ selPosChanged

void CurveScene::selPosChanged ( double pos)
slot

◆ selValChanged

void CurveScene::selValChanged ( double val)
slot

◆ ExprCurve

friend class ExprCurve
friend

Definition at line 80 of file ExprCurve.h.

References ExprCurve.

Referenced by ExprCurve.

Member Data Documentation

◆ _baseRect

QGraphicsRectItem* CurveScene::_baseRect {nullptr}
private

Definition at line 102 of file ExprCurve.h.

Referenced by drawRect().

◆ _circleObjects

std::vector<QGraphicsEllipseItem *> CurveScene::_circleObjects
private

Definition at line 99 of file ExprCurve.h.

Referenced by drawPoints(), and mousePressEvent().

◆ _curve

T_CURVE* CurveScene::_curve
private

Definition at line 83 of file ExprCurve.h.

Referenced by CurveScene(), drawPoly(), mousePressEvent(), rebuildCurve(), and ~CurveScene().

◆ _curvePoly

QGraphicsPolygonItem* CurveScene::_curvePoly {nullptr}
private

Definition at line 101 of file ExprCurve.h.

Referenced by drawPoly().

◆ _cvs

std::vector<T_CURVE::CV> CurveScene::_cvs

◆ _height

int CurveScene::_height
private

◆ _interp

T_INTERP CurveScene::_interp
private

Definition at line 98 of file ExprCurve.h.

Referenced by CurveScene(), interpChanged(), mouseMoveEvent(), and mousePressEvent().

◆ _lmb

bool CurveScene::_lmb
private

Definition at line 103 of file ExprCurve.h.

Referenced by CurveScene(), mouseMoveEvent(), mousePressEvent(), and mouseReleaseEvent().

◆ _selectedItem

◆ _width

int CurveScene::_width
private

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