Exemplo n.º 1
0
void WarpPerspective::draw( bool controls )
{
	// only draw grid while editing
	if( isEditModeEnabled() ) {
		gl::pushModelMatrix();
		gl::multModelMatrix( getTransform() );

		gl::ScopedGlslProg  shader( gl::getStockShader( gl::ShaderDef().color() ) );
		gl::ScopedLineWidth linewidth( 1.0f );
		glHint( GL_LINE_SMOOTH_HINT, GL_NICEST );

		gl::ScopedColor color( Color::white() );
		for( int i = 0; i <= 1; i++ ) {
			float s = i / 1.0f;
			gl::drawLine( vec2( s * (float)mWidth, 0.0f ), vec2( s * (float)mWidth, (float)mHeight ) );
			gl::drawLine( vec2( 0.0f, s * (float)mHeight ), vec2( (float)mWidth, s * (float)mHeight ) );
		}

		gl::drawLine( vec2( 0.0f, 0.0f ), vec2( (float)mWidth, (float)mHeight ) );
		gl::drawLine( vec2( (float)mWidth, 0.0f ), vec2( 0.0f, (float)mHeight ) );

		gl::popModelMatrix();

		if( controls && mSelected < mPoints.size() ) {
			// draw control points
			for( int i = 0; i < 4; i++ )
				queueControlPoint( mDestination[i], i == mSelected );

			drawControlPoints();
		}
	}
}
Exemplo n.º 2
0
void Warp::queueControlPoint( const vec2 &pt, bool selected, bool attached )
{
	float scale = 0.9f + 0.2f * math<float>::sin( 6.0f * float( app::getElapsedSeconds() - mSelectedTime ) );

	if( selected && attached ) {
		queueControlPoint( pt, Color( 0.0f, 0.8f, 0.0f ) );
	}
	else if( selected ) {
		queueControlPoint( pt, Color( 0.9f, 0.9f, 0.9f ), scale );
	}
	else if( attached ) {
		queueControlPoint( pt, Color( 0.0f, 0.4f, 0.0f ) );
	}
	else {
		queueControlPoint( pt, Color( 0.4f, 0.4f, 0.4f ) );
	}
}
void WarpPerspectiveBilinear::draw( bool controls )
{
	// apply perspective transform
	gl::pushModelMatrix();
	gl::multModelMatrix( mWarp->getTransform() );

	// draw bilinear warp
	WarpBilinear::draw( false );

	// restore transform
	gl::popModelMatrix();

	// draw edit interface
	if( isEditModeEnabled() ) {
		if( controls && mSelected < mPoints.size() ) {
			// draw control points
			for( unsigned i = 0; i < mPoints.size(); ++i )
				queueControlPoint( getControlPoint( i ) * mWindowSize, mSelected == i );

			drawControlPoints();
		}
	}
}