void LinearMotion::interpolate(Vector length, int maxSpeed, bool solenoidOn) { long tempLength; Stepper * tempStep; Stepper * reorderedStepMotor[3] = {StepMotor[0], StepMotor[1], StepMotor[2]}; _z = false; if (abs(length.y) > abs(length.x)) { tempLength = length.y; length.y = length.x; length.x = tempLength; tempStep = reorderedStepMotor[1]; reorderedStepMotor[1] = reorderedStepMotor[0]; reorderedStepMotor[0] = tempStep; } if (abs(length.z) > abs(length.x)) { tempLength = length.z; length.z = length.x; length.x = tempLength; tempStep = reorderedStepMotor[2]; reorderedStepMotor[2] = reorderedStepMotor[0]; reorderedStepMotor[0] = tempStep; _z = true; } enableSteppers(true); doLinear(length, reorderedStepMotor, maxSpeed, solenoidOn); enableSteppers(false); }
CurveWidget::CurveWidget( QWidget* parent ) : QWidget( parent ) { CurveWidgetLayout = new QHBoxLayout(this); CurveWidgetLayout->setMargin(5); CurveWidgetLayout->setSpacing(5); layout1 = new QVBoxLayout; layout1->setMargin(0); layout1->setSpacing(5); invertButton = new QPushButton( this ); invertButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); invertButton->setIcon( IconManager::instance()->loadIcon("invert.png") ); invertButton->setIconSize(QSize(22, 22)); layout1->addWidget( invertButton ); resetButton = new QPushButton( this ); resetButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); resetButton->setIcon( IconManager::instance()->loadIcon("reload.png") ); resetButton->setIconSize(QSize(22, 22)); layout1->addWidget( resetButton ); linearButton = new QPushButton( this ); QIcon ic; ic.addPixmap(IconManager::instance()->loadPixmap("curvebezier.png"), QIcon::Normal, QIcon::Off); ic.addPixmap(IconManager::instance()->loadPixmap("curvelinear.png"), QIcon::Normal, QIcon::On); linearButton->setIcon(ic); linearButton->setCheckable( true ); linearButton->setChecked(false); linearButton->setIconSize(QSize(22, 22)); linearButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); layout1->addWidget( linearButton ); spacer1 = new QSpacerItem( 2, 3, QSizePolicy::Minimum, QSizePolicy::Expanding ); layout1->addItem( spacer1 ); loadButton = new QPushButton( this ); loadButton->setIcon( IconManager::instance()->loadIcon("22/document-open.png") ); loadButton->setIconSize(QSize(22, 22)); loadButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); layout1->addWidget( loadButton ); saveButton = new QPushButton( this ); saveButton->setIcon( IconManager::instance()->loadIcon("22/document-save-as.png") ); saveButton->setIconSize(QSize(22, 22)); saveButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); layout1->addWidget( saveButton ); CurveWidgetLayout->addLayout( layout1 ); cDisplay = new KCurve(this); cDisplay->setMinimumSize( QSize( 150, 150 ) ); CurveWidgetLayout->addWidget( cDisplay ); languageChange(); connect(invertButton, SIGNAL(clicked()), this, SLOT(doInvert())); connect(resetButton, SIGNAL(clicked()), this, SLOT(doReset())); connect(linearButton, SIGNAL(clicked()), this, SLOT(doLinear())); connect(loadButton, SIGNAL(clicked()), this, SLOT(doLoad())); connect(saveButton, SIGNAL(clicked()), this, SLOT(doSave())); }
void doBinary(ostream &o, uint i, Span *s, uint n, State *next){ if(n <= 4){ doLinear(o, i, s, n, next); } else { uint h = n/2; indent(o, i); genIf(o, "<=", s[h-1].ub - 1); o << "{\n"; doBinary(o, i+1, &s[0], h, next); indent(o, i); o << "\t} else {\n"; doBinary(o, i+1, &s[h], n - h, next); indent(o, i); o << "\t}\n"; } }
void State::genLinear(ostream &o){ o << "\t{LOADCURSOR}\n"; doLinear(o, 0, go.span, go.nSpans, next); }