本文整理汇总了C++中ci::params::InterfaceGlRef::draw方法的典型用法代码示例。如果您正苦于以下问题:C++ InterfaceGlRef::draw方法的具体用法?C++ InterfaceGlRef::draw怎么用?C++ InterfaceGlRef::draw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ci::params::InterfaceGlRef
的用法示例。
在下文中一共展示了InterfaceGlRef::draw方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw
void BasicApp::draw()
{
gl::viewport( getWindowSize() );
gl::clear();
gl::setMatricesWindow( getWindowSize() );
gl::enableAlphaBlending();
if ( mSurfaceColor ) {
gl::TextureRef tex = gl::Texture::create( *mSurfaceColor );
gl::draw( tex, tex->getBounds(), Rectf( vec2( 0.0f ), getWindowCenter() ) );
}
if ( mChannelDepth ) {
gl::TextureRef tex = gl::Texture::create( *Kinect2::channel16To8( mChannelDepth ) );
gl::draw( tex, tex->getBounds(), Rectf( getWindowCenter().x, 0.0f, (float)getWindowWidth(), getWindowCenter().y ) );
}
if ( mChannelInfrared ) {
gl::TextureRef tex = gl::Texture::create( *mChannelInfrared );
gl::draw( tex, tex->getBounds(), Rectf( 0.0f, getWindowCenter().y, getWindowCenter().x, (float)getWindowHeight() ) );
}
if ( mChannelBodyIndex ) {
gl::TextureRef tex = gl::Texture::create( *Kinect2::colorizeBodyIndex( mChannelBodyIndex ) );
gl::draw( tex, tex->getBounds(), Rectf( getWindowCenter(), vec2( getWindowSize() ) ) );
}
mParams->draw();
}
示例2: draw
void WebClientApp::draw()
{
gl::clear( Colorf::black() );
gl::setMatricesWindow( getWindowSize() );
if ( mTexture ) {
gl::draw( mTexture, ivec2( 250, 20 ) );
}
mParams->draw();
}
示例3: draw
void ImageFileBasicApp::draw()
{
gl::clear( Color( 0.5f, 0.5f, 0.5f ) );
gl::enableAlphaBlending();
if( mTexture ) {
Rectf destRect = Rectf( mTexture->getBounds() ).getCenteredFit( getWindowBounds(), true ).scaledCentered( 0.85f );
gl::draw(mTexture, getWindowBounds());
}
m_params->draw();
}
示例4: draw
void TcpClientApp::draw()
{
gl::setViewport( getWindowBounds() );
gl::clear( Colorf::black() );
gl::setMatricesWindow( getWindowSize() );
if ( mTexture ) {
gl::draw( mTexture, Vec2i( 250, 20 ) );
}
mParams->draw();
}
示例5: draw
void FaceApp::draw()
{
gl::setViewport( getWindowBounds() );
gl::clear();
gl::setMatricesWindow( getWindowSize() );
if ( mSurface ) {
gl::color( Colorf::white() );
gl::enable( GL_TEXTURE_2D );
gl::TextureRef tex = gl::Texture::create( mSurface );
gl::draw( tex, tex->getBounds(), Rectf( getWindowBounds() ) );
gl::disable( GL_TEXTURE_2D );
gl::pushMatrices();
gl::scale( Vec2f( getWindowSize() ) / Vec2f( mSurface.getSize() ) );
for ( const Kinect2::Face3d& face : mFaces3d ) {
const TriMesh& mesh = face.getMesh();
if ( mesh.getNumIndices() > 0 ) {
vector<Vec2f> verts;
for ( const Vec3f& i : mesh.getVertices() ) {
Vec2f v = mDevice->mapCameraToColor( i );
verts.push_back( v );
}
gl::lineWidth( 0.5f );
gl::enableWireframe();
TriMesh2d mesh2d;
mesh2d.appendIndices( &mesh.getIndices()[ 0 ], mesh.getNumIndices() );
mesh2d.appendVertices( &verts[ 0 ], mesh.getNumVertices() );
gl::draw( mesh2d );
gl::disableWireframe();
}
}
if ( mEnabledFace3d ) {
gl::color( Colorf( 1.0f, 0.0f, 0.0f ) );
} else {
gl::lineWidth( 2.0f );
}
for ( const Kinect2::Face2d& face : mFaces2d ) {
if ( face.isTracked() ) {
gl::drawStrokedRect( face.getBoundsColor() );
for ( const Vec2f& i : face.getPointsColor() ) {
gl::drawSolidCircle( i, 3.0f, 16 );
}
}
}
gl::popMatrices();
}
mParams->draw();
}
示例6: draw
void ClientApp::draw()
{
gl::setViewport( getWindowBounds() );
gl::clear();
gl::setMatricesWindow( getWindowSize() );
if ( mTexture ) {
gl::enableAlphaBlending();
gl::draw( mTexture, getWindowCenter() - mSize * 0.5f );
}
mParams->draw();
}
示例7: draw
void ImageApp::draw()
{
gl::setViewport( getWindowBounds() );
gl::clear( Colorf::white() );
gl::setMatricesWindow( getWindowSize() );
gl::color( ColorAf::white() );
size_t i = 0;
const Leap::ImageList& images = mFrame.images();
for ( Leap::ImageList::const_iterator iter = images.begin(); iter != images.end(); ++iter, ++i ) {
const Leap::Image& img = *iter;
Channel8u channel = LeapMotion::toChannel8u( img );
gl::draw( gl::Texture::create( channel ), channel.getBounds(), getWindowBounds() );
}
mParams->draw();
}
示例8: draw
void GestureApp::draw()
{
gl::viewport( getWindowSize() );
gl::clear( mBackgroundColor + Colorf::gray( mBackgroundBrightness ) );
gl::setMatricesWindow( getWindowSize() );
gl::enableAlphaBlending();
gl::color( Colorf::white() );
{
const gl::ScopedMatrices scopedMatrices;
gl::translate( mOffset );
drawUi();
drawGestures();
drawPointables();
}
mParams->draw();
}
示例9: draw
void SegmentationApp::draw()
{
// clear out the window with black
gl::clear( Color( 0, 0, 0 ) );
gl::color(1, 1, 1);
gl::drawStrokedRoundedRect(firstImageRect, 10);
gl::drawStrokedRoundedRect(secondImageRect, 10);
if(drawMode == DRAW_MODE::INPUT) {
gl::Texture& inputTexture = inputImage.second;
if(inputTexture) {
gl::pushMatrices();
gl::translate(firstImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-inputTexture.getWidth()/2.f,-inputTexture.getHeight()/2.f);
gl::draw(inputTexture);
gl::popMatrices();
}
}
else if(drawMode == DRAW_MODE::INPUT_GROUNDTRUTH) {
gl::Texture& inputTexture = inputImage.second;
if(inputTexture) {
gl::pushMatrices();
gl::translate(firstImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-inputTexture.getWidth()/2.f,-inputTexture.getHeight()/2.f);
gl::draw(inputTexture);
gl::popMatrices();
}
gl::Texture& groundTruthTexture = groundTruthImage.second;
if(groundTruthTexture) {
gl::pushMatrices();
gl::translate(secondImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-groundTruthTexture.getWidth()/2.f,-groundTruthTexture.getHeight()/2.f);
gl::draw(groundTruthTexture);
gl::popMatrices();
}
}
else if (drawMode == DRAW_MODE::THRESHOLD_GROUNDTRUTH) {
gl::Texture& segmentationTexture = segmentedImage.second;
if(segmentationTexture) {
gl::pushMatrices();
gl::translate(firstImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-segmentationTexture.getWidth()/2.f,-segmentationTexture.getHeight()/2.f);
gl::draw(segmentationTexture);
gl::popMatrices();
}
gl::Texture& groundTruthTexture = groundTruthImage.second;
if(groundTruthTexture) {
gl::pushMatrices();
gl::translate(secondImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-groundTruthTexture.getWidth()/2.f,-groundTruthTexture.getHeight()/2.f);
gl::draw(groundTruthTexture);
gl::popMatrices();
}
}
else if (drawMode == DRAW_MODE::INPUT_THRESHOLD) {
gl::Texture& inputTexture = inputImage.second;
if(inputTexture) {
gl::pushMatrices();
gl::translate(firstImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-inputTexture.getWidth()/2.f,-inputTexture.getHeight()/2.f);
gl::draw(inputTexture);
gl::popMatrices();
}
gl::Texture& thresholdTexture = segmentedImage.second;
if(thresholdTexture) {
gl::pushMatrices();
gl::translate(secondImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-thresholdTexture.getWidth()/2.f,-thresholdTexture.getHeight()/2.f);
gl::draw(thresholdTexture);
gl::popMatrices();
}
}
else if (drawMode == DRAW_MODE::INPUT_RESULT) {
gl::Texture& inputTexture = inputImage.second;
if(inputTexture) {
gl::pushMatrices();
gl::translate(firstImageRect.getCenter());
gl::scale(glScale,glScale);
gl::translate(-inputTexture.getWidth()/2.f,-inputTexture.getHeight()/2.f);
gl::draw(inputTexture);
gl::popMatrices();
}
gl::Texture& resultTexture = resultImage.second;
if(resultTexture) {
gl::pushMatrices();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
float glScale = (float)mouse->getGLScale();
gl::scale(glScale,glScale);
gl::translate(ci::Vec2d(mouse->getGLTx(), mouse->getGLTy()));
gl::draw(resultTexture);
gl::popMatrices();
}
//.........这里部分代码省略.........
示例10: draw
void GpGpuApp::draw()
{
// We're going to draw new data onto the "ping" FBO,
// using the "pong" FBO's textures as input
size_t pong = ( mFboIndex + 1 ) % 2;
// Set up OpenGL for data
gl::disableDepthRead();
gl::disableDepthWrite();
gl::setViewport( mFbo[ mFboIndex ].getBounds() );
gl::color( ColorAf::white() );
// Draw any new input onto the acceleration texture
mFbo[ pong ].bindFramebuffer();
glDrawBuffer( GL_COLOR_ATTACHMENT2 );
if ( mMouseDown ) {
Vec2f fboSize = Vec2f( mFbo[ mFboIndex ].getSize() );
Vec2f winSize = Vec2f( app::getWindowSize() );
gl::setMatricesWindow( fboSize, true );
Vec2f brushSize = Vec2f::one() * mBrushSize * fboSize;
Vec2f pos = ( mMouse / winSize );
pos.y = 1.0f - pos.y;
pos *= fboSize;
mGlslProgGpGpu0->bind();
mGlslProgGpGpu0->uniform( "color", ColorAf( mMouseVelocity.x, 0.0f, 1.0f - mMouseVelocity.y, 1.0f ) );
mGlslProgGpGpu0->uniform( "tex", 0 );
gl::enable( GL_TEXTURE_2D );
mTextureBrush->bind();
gl::drawSolidRect( Rectf( pos - brushSize, pos + brushSize ) );
mTextureBrush->unbind();
gl::disable( GL_TEXTURE_2D );
mGlslProgGpGpu0->unbind();
}
mFbo[ pong ].unbindFramebuffer();
// Now let's do an update pass in GLSL
mFbo[ mFboIndex ].bindFramebuffer();
gl::setMatricesWindow( mFbo[ mFboIndex ].getSize(), false );
// Bind the "pong" textures to use as input data
for ( int32_t i = 0; i < 3; ++i ) {
mFbo[ pong ].bindTexture( i, i );
}
// Set up shader to read data textures
mGlslProgGpGpu1->bind();
mGlslProgGpGpu1->uniform( "offsets", 0 );
mGlslProgGpGpu1->uniform( "velocities", 1 );
mGlslProgGpGpu1->uniform( "acceleration", 2 );
// Draw a rect to process data
glDrawBuffers( 3, kColorAttachments );
gl::drawSolidRect( mFbo[ pong ].getBounds() );
// Unbind everything
mFbo[ pong ].unbindTexture();
mGlslProgGpGpu1->unbind();
mFbo[ mFboIndex ].unbindFramebuffer();
// Swap FBOs
mFboIndex = pong;
/////////////////////////////////
// Make sure we have data to work with before we draw geometry
if ( mFbo[ mFboIndex ] &&
mFbo[ mFboIndex ].getTexture( 0 ) &&
mFbo[ mFboIndex ].getTexture( 1 ) ) {
// Set up window for 3D drawing
gl::clear( Colorf( 0.5f, 0.45f, 0.4f ) );
gl::setViewport( getWindowBounds() );
gl::setMatrices( mCamera );
gl::enableDepthRead();
gl::enableDepthWrite();
gl::multModelView( mArcball.getQuat() );
gl::color( ColorAf::black() );
// Set up shader to render scene
mGlslProgDraw->bind();
mGlslProgDraw->uniform( "Ax", mLightAmbient );
mGlslProgDraw->uniform( "Ac", mLightAttenuationConstant );
mGlslProgDraw->uniform( "Al", mLightAttenuationLinear );
mGlslProgDraw->uniform( "Aq", mLightAttenuationQuadratic );
mGlslProgDraw->uniform( "Dx", mLightDiffuse );
mGlslProgDraw->uniform( "eyePoint", mEyePoint );
mGlslProgDraw->uniform( "Ka", mMaterialAmbient );
mGlslProgDraw->uniform( "Kd", mMaterialDiffuse );
mGlslProgDraw->uniform( "Ke", mMaterialEmissive );
mGlslProgDraw->uniform( "Ks", mMaterialSpecular );
mGlslProgDraw->uniform( "lightPos", mLightPosition );
mGlslProgDraw->uniform( "n", mLightShine );
mGlslProgDraw->uniform( "offsets", 0 );
mGlslProgDraw->uniform( "projection", mCamera.getProjectionMatrix() );
mGlslProgDraw->uniform( "size", Vec2f( mSize ) );
//.........这里部分代码省略.........
示例11: draw
void LeapApp::draw()
{
const gl::ScopedViewport scopedViewport( ivec2( 0 ), getWindowSize() );
const gl::ScopedMatrices scopedMatrices;
const gl::ScopedBlendAlpha scopedBlendAlpha;
gl::clear( Colorf::white() );
gl::setMatrices( mCamera );
gl::enableDepthRead();
gl::enableDepthWrite();
float headLength = 6.0f;
float headRadius = 3.0f;
const Leap::HandList& hands = mFrame.hands();
for ( Leap::HandList::const_iterator handIter = hands.begin(); handIter != hands.end(); ++handIter ) {
const Leap::Hand& hand = *handIter;
// Get hand data
const vec3 handDir = LeapMotion::toVec3( hand.direction() );
const vec3 palmNorm = LeapMotion::toVec3( hand.palmNormal() );
const vec3 palmPos = LeapMotion::toVec3( hand.palmPosition() );
const vec3 palmVel = LeapMotion::toVec3( hand.palmVelocity() );
const vec3 sphereCenter = LeapMotion::toVec3( hand.sphereCenter() );
const float sphereRadius = hand.sphereRadius();
// Hand sphere
{
const gl::ScopedColor scopedColor( ColorAf( Colorf::gray( 0.9f ), 0.5f ) );
gl::enableWireframe();
gl::drawSphere( sphereCenter, sphereRadius, 16 );
gl::disableWireframe();
}
// Hand plane
{
const gl::ScopedColor scopedColor( ColorAf( 0.75f, 0.0f, 0.75f, 0.25f ) );
const gl::ScopedModelMatrix scopedModelMatrix;
gl::translate( palmPos );
gl::rotate( quat( palmPos, handDir ) );
for ( float i = 0.25f; i <= 1.0f; i += 0.25f ) {
gl::drawStrokedCircle( vec2( 0.0f ), sphereRadius * i, 16 );
}
}
// Hand direction
{
const gl::ScopedColor scopedColor( ColorAf( 1.0f, 0.0f, 1.0f, 0.5f ) );
gl::drawVector( palmPos, palmPos + handDir * 30.0f, headLength, headRadius );
}
// Hand normal
{
const gl::ScopedColor scopedColor( ColorAf( 0.0f, 0.0f, 1.0f, 0.5f ) );
gl::drawVector( palmPos, palmPos + palmNorm * 30.0f, headLength, headRadius );
}
// Hand velocity
{
const gl::ScopedColor scopedColor( ColorAf( 0.0f, 1.0f, 0.0f, 0.5f ) );
gl::drawVector( palmPos, palmPos + palmVel * 0.05f, headLength, headRadius );
}
// Fingers
const Leap::PointableList& pointables = hand.pointables();
for ( Leap::PointableList::const_iterator pointIter = pointables.begin(); pointIter != pointables.end(); ++pointIter ) {
const Leap::Pointable& pointable = *pointIter;
// Get pointable data
const vec3 dir = LeapMotion::toVec3( pointable.direction() );
const bool isTool = pointable.isTool();
const float length = pointable.length();
const vec3 tipPos = LeapMotion::toVec3( pointable.tipPosition() );
const vec3 tipVel = LeapMotion::toVec3( pointable.tipVelocity() );
const float width = pointable.width();
const vec3 basePos = tipPos + dir * -length;
// Draw line representing pointable's length
{
const gl::ScopedColor scopedColor( ColorAf::gray( 0.3f ) );
gl::drawLine( basePos, tipPos );
}
// Tip position
{
const gl::ScopedColor scopedColor( isTool ? Colorf( 1.0f, 0.0f, 0.0f ) : Colorf::black() );
const gl::ScopedModelMatrix scopedModelMatrix;
gl::translate( tipPos );
gl::drawStrokedCircle( vec2( 0.0f ), width, 16 );
}
// Finger velocity
{
const gl::ScopedColor scopedColor( ColorAf( 0.0f, 1.0f, 0.0f, 0.5f ) );
gl::drawVector( tipPos, tipPos + tipVel * 0.05f, headLength, headRadius );
}
}
}
mParams->draw();
}
示例12: draw
void LeapApp::draw()
{
gl::setViewport( getWindowBounds() );
gl::clear( Colorf::white() );
gl::setMatrices( mCamera );
gl::enableAlphaBlending();
gl::enableDepthRead();
gl::enableDepthWrite();
float headLength = 6.0f;
float headRadius = 3.0f;
const Leap::HandList& hands = mFrame.hands();
for ( Leap::HandList::const_iterator handIter = hands.begin(); handIter != hands.end(); ++handIter ) {
const Leap::Hand& hand = *handIter;
// Get hand data
Vec3f handDir = LeapMotion::toVec3f( hand.direction() );
Vec3f palmNorm = LeapMotion::toVec3f( hand.palmNormal() );
Vec3f palmPos = LeapMotion::toVec3f( hand.palmPosition() );
Vec3f palmVel = LeapMotion::toVec3f( hand.palmVelocity() );
Vec3f sphereCenter = LeapMotion::toVec3f( hand.sphereCenter() );
float sphereRadius = hand.sphereRadius();
// Hand sphere
gl::enableWireframe();
gl::color( ColorAf( Colorf::gray( 0.9f ), 0.5f ) );
gl::drawSphere( sphereCenter, sphereRadius, 16 );
gl::disableWireframe();
// Hand plane
gl::color( ColorAf( 0.75f, 0.0f, 0.75f, 0.25f ) );
gl::pushMatrices();
gl::translate( palmPos );
gl::rotate( Quatf( palmPos, handDir ) );
for ( float i = 0.25f; i <= 1.0f; i += 0.25f ) {
gl::drawStrokedCircle( Vec2f::zero(), sphereRadius * i, 16 );
}
gl::popMatrices();
// Hand direction
gl::color( 1.0f, 0.0f, 1.0f, 0.5f );
gl::drawVector( palmPos, palmPos + handDir * 30.0f, headLength, headRadius );
// Hand normal
gl::color( 0.0f, 0.0f, 1.0f, 0.5f );
gl::drawVector( palmPos, palmPos + palmNorm * 30.0f, headLength, headRadius );
// Hand velocity
gl::color( 0.0f, 1.0f, 0.0f, 0.5f );
gl::drawVector( palmPos, palmPos + palmVel * 0.05f, headLength, headRadius );
// Fingers
const Leap::PointableList& pointables = hand.pointables();
for ( Leap::PointableList::const_iterator pointIter = pointables.begin(); pointIter != pointables.end(); ++pointIter ) {
const Leap::Pointable& pointable = *pointIter;
// Get pointable data
Vec3f dir = LeapMotion::toVec3f( pointable.direction() );
bool isTool = pointable.isTool();
float length = pointable.length();
Vec3f tipPos = LeapMotion::toVec3f( pointable.tipPosition() );
Vec3f tipVel = LeapMotion::toVec3f( pointable.tipVelocity() );
float width = pointable.width();
Vec3f basePos = tipPos + dir * -length;
// Draw line representing pointable's length
gl::color( ColorAf::gray( 0.3f ) );
gl::drawLine( basePos, tipPos );
// Tip position
Colorf color = isTool ? Colorf( 1.0f, 0.0f, 0.0f ) : Colorf::black();
gl::color( color );
gl::pushMatrices();
gl::translate( tipPos );
gl::drawStrokedCircle( Vec2f::zero(), width, 16 );
gl::popMatrices();
// Finger velocity
gl::color( 0.0f, 1.0f, 0.0f, 0.5f );
gl::drawVector( tipPos, tipPos + tipVel * 0.05f, headLength, headRadius );
}
}
mParams->draw();
}