void ofxGuiSlider::draw() { glPushMatrix(); glTranslatef(mObjX, mObjY, 0.0); if(mParamName != "") drawParamString(0.0, 0.0, mParamName + ": " + floatToString(mValue, mDisplay), false); float x = (mCtrWidth * valueToFraction(mValue)); ofFill(); // background glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a); ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight); // action glColor4f(mGlobals->mSliderColor.r, mGlobals->mSliderColor.g, mGlobals->mSliderColor.b, mGlobals->mSliderColor.a); ofRect(mCtrX, mCtrY, x, mCtrHeight); // handle glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a); ofRect(x, mCtrY, 1.0, mCtrHeight); ofNoFill(); // frame glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a); ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight); glPopMatrix(); }
void ofxGuiKnob::setValue(float value) { if(mSteps > 1) { float fraction = valueToFraction(value); float steps = (float)mSteps - 1; float slice = roundInt(fraction * steps) / steps; value = mMinVal + mValDlt * slice; } mValue = value; }
void ofxGuiRadar::setValue(float value) { if(mSteps > 1) { float fraction = valueToFraction(value); float steps = (float)mSteps - 1; float slice = roundInt(fraction * steps) / steps; value = mMinVal + mValDlt * slice; if (mDisplay == kofxGui_Display_String && value != mValue) { int id = (int)value; //mGlobals->mListener->handleGui(mParamId, kofxGui_Get_String, &id, sizeof(int)); } } mValue = value; }
void ofxGuiPoints::draw() { glPushMatrix(); glTranslatef(mObjX, mObjY, 0.0f); if(mParamName != "") drawParamString(0.0, 0.0, mParamName + ": " + pointToString(mList.activePoint != -1 ? mOutVal : mValue, mDisplay), false); ofxPoint2f p = fractionToLocal(valueToFraction(mValue)); float x = mCtrWidth * p.x; float y = mCtrHeight * p.y; float d = mGlobals->mPointSize; float r = d / 2.0; ofFill(); // background glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a); ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight); ofNoFill(); // lines glColor4f(mGlobals->mCurveColor.r, mGlobals->mCurveColor.g, mGlobals->mCurveColor.b, mGlobals->mCurveColor.a); /* ofBeginShape(); for(int i = 0; i < mList.points.size(); i++) { ofxPoint2f p = fractionToLocal(valueToFraction(mList.points.at(i))); ofVertex(p.x, p.y); } ofEndShape(false); */ GLfloat* verts = new GLfloat[(int)mMaxVal.x*2]; for (int i = 0; i < mMaxVal.x; i++) { ofxPoint2f p = fractionToLocal(valueToFraction(bezier(mList.points, mList.points.size()-1, (float) i / (float) mMaxVal.x))); verts[i*2 ] = p.x; verts[i*2+1] = p.y; } glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(2, GL_FLOAT, 0, verts ); glDrawArrays( GL_LINE_STRIP, 0, mMaxVal.x); glDisableClientState(GL_VERTEX_ARRAY); // x-bar glColor4f(mGlobals->mAxisColor.r, mGlobals->mAxisColor.g, mGlobals->mAxisColor.b, mGlobals->mAxisColor.a); ofLine(p.x + 0.5, mCtrY, p.x + 0.5, mCtrBottom); if(mList.activePoint != -1) { // y-bar glColor4f(mGlobals->mAxisColor.r, mGlobals->mAxisColor.g, mGlobals->mAxisColor.b,mGlobals->mAxisColor.a); ofLine(mCtrX, p.y + 0.5, mCtrRight, p.y + 0.5); } // handles for(int i = 0; i < mList.points.size(); i++) { glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a); ofxPoint2f p = fractionToLocal(valueToFraction(mList.points.at(i))); ofRect(p.x - r, p.y - r, d, d); } // frame glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a); ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight); glPopMatrix(); }
void ofxGuiKnob::draw() { glPushMatrix(); glTranslatef(mObjX, mObjY, 0.0); float w = mCtrWidth / 2; float h = mCtrHeight / 2; float x = mCtrX + w; float y = mCtrY + h; float v1 = 130.0f; float v2 = 280.0f; int resolution = 22; float angle, step, cosine, sine, xpos, ypos; if(mParamName != "") drawParamString(x, 0.0, mParamName, true); ofFill(); // background glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a); ofEllipse(x, y, w, h); // action glColor4f(mGlobals->mSliderColor.r, mGlobals->mSliderColor.g, mGlobals->mSliderColor.b, mGlobals->mSliderColor.a); step = (DEG_TO_RAD * valueToFraction(mValue) * v2) / (resolution - 1); angle = DEG_TO_RAD * v1; glBegin(GL_TRIANGLE_STRIP); for(int i = 0; i < resolution; i++) { cosine = cos(angle); sine = sin(angle); xpos = cosine * w; ypos = sine * h; glVertex2f(x + xpos, y + ypos); xpos = cosine * (w - mGlobals->mKnobSize); ypos = sine * (h - mGlobals->mKnobSize); glVertex2f(x + xpos, y + ypos); angle += step; } glEnd(); ofNoFill(); // handle glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a); angle = DEG_TO_RAD * v1; cosine = cos(angle); sine = sin(angle); ofLine(x + cosine * w, y + sine * h, x + cosine * (w - mGlobals->mKnobSize), y + sine * (h - mGlobals->mKnobSize)); angle = DEG_TO_RAD * (v1 + valueToFraction(mValue) * v2); cosine = cos(angle); sine = sin(angle); ofLine(x + cosine * w, y + sine * h, x + cosine * (w - mGlobals->mKnobSize), y + sine * (h - mGlobals->mKnobSize)); step = (DEG_TO_RAD * valueToFraction(mValue) * v2) / (resolution - 1); angle = DEG_TO_RAD * v1; glPushMatrix(); glTranslatef(x, y, 0.0); ofBeginShape(); for(int i = 0; i < resolution; i++) { xpos = cos(angle) * (w - mGlobals->mKnobSize); ypos = sin(angle) * (h - mGlobals->mKnobSize); ofVertex(xpos, ypos); angle += step; } ofEndShape(false); glPopMatrix(); // frame glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a); ofEllipse(x, y, w, h); drawValueString(x, y, floatToString(mValue, mDisplay)); glPopMatrix(); }