示例#1
0
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();
}
示例#2
0
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;	
}
示例#3
0
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;	
}
示例#4
0
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();
}
示例#5
0
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();
}