//-------------------------------------------------------------- void ofxMuiKnob::onPress() { registerMousePosition(mousePosition); float nv = getNormalizedKnobPosition(); if(getBounds().isBounded()) { if(isRangeEnabled() && isShiftPressed()) { if(isCtrlPressed()) { setRightOrLeftRangeLimit(nv); } else { setClosestRangeLimit(nv); } } else if(isRangeEnabled() && isCtrlPressed()) { normCtrlDragStartMin = getNormalizedRangeMin(); normCtrlDragStartMax = getNormalizedRangeMax(); } else { setNormalizedValue(nv); } } else { //setNormalizedValue(nv); ofVec2f v = screenToHitBox(mousePosition); float d = v.distance(getHitBoxCenter()); float ds = ofNormalize(d,0,getHitBoxWidth()*2.0f) * 10.0f; add(ds*dKnobScaler*dKnobAngle); } }
void PosVelEffView::handleVelocityChanged() { velocityHistory->valueChanged(velocitySpin->value()); velocityChanged(); if(isShiftPressed() && id != connectedID) changeForID(connectedID, PosVelEffView::VELOCITY, velocitySpin->value()); }
void PosVelEffView::handleEffortChanged() { effortHistory->valueChanged(effortSpin->value()); effortChanged(); if(isShiftPressed() && id != connectedID) changeForID(connectedID, PosVelEffView::EFFORT, effortSpin->value()); }
//-------------------------------------------------------------- void ofxMuiKnob::onDrag() { registerMousePosition(mousePosition); float nv = getNormalizedKnobPosition(); cout << "nv=" << nv << endl; if(getBounds().isBounded()) { if(isRangeEnabled() && isShiftPressed()) { if(isCtrlPressed()) { setRightOrLeftRangeLimit(nv); } else { setClosestRangeLimit(nv); } } else if(isRangeEnabled() && isCtrlPressed()) { normCtrlDragStartMin = getNormalizedRangeMin(); normCtrlDragStartMax = getNormalizedRangeMax(); } else { setNormalizedValue(nv); } /* if(isRangeEnabled() && isShiftPressed()) { setClosestRangeLimit(nv); } else if(isRangeEnabled() && isCtrlPressed()) { // TODO -- fix this // TODO -- quick angle change problem float normDx = fabs(smallestAngleDelta(normCtrlDragStartMin, normCtrlDragStartMax) )/ (2 * PI - boundaryWedgeAngle); setNormalizedRangeMin(ofClamp(normCtrlDragStartMin + normDx,0,1)); setNormalizedRangeMax(ofClamp(normCtrlDragStartMax + normDx,0,1)); } else { //setNormalizedValue(nv); ofVec2f v = screenToHitBox(mousePosition); float d = v.distance(getHitBoxCenter()); float ds = ofNormalize(d,0,getHitBoxWidth()*2.0f) * 10.0f; add(ds*dKnobScaler*getBounds().delta()*dKnobAngle); } */ } else { //setNormalizedValue(nv); //ofVec2f v = screenToHitBox(mousePosition); //float d = v.distance(ofVec2f(getHitBoxWidth()*0.5f,getHitBoxHeight()*0.5f)); float ds = 1;//ofNormalize(d,0,getHitBoxWidth()*2.0f) * 10.0f; add(ds*dKnobScaler*dKnobAngle); cout << getValue() << endl; } }
void PosVelEffView::positionSpinChanged() { positionSlider->blockSignals(true); positionSlider->setValue(positionSpin->value() * ratio); positionSlider->blockSignals(false); positionHistory->valueChanged(positionSpin->value()); positionChanged(); if(isShiftPressed() && id != connectedID) { if(onShiftMirrored) changeForID(connectedID, PosVelEffView::POSITION, -positionSpin->value()); else changeForID(connectedID, PosVelEffView::POSITION, positionSpin->value()); } }