这篇教程C++ vector2f函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中vector2f函数的典型用法代码示例。如果您正苦于以下问题:C++ vector2f函数的具体用法?C++ vector2f怎么用?C++ vector2f使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了vector2f函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: attractioninline Vector2f VectorLocalization2D::attractorFunction(line2f l, Vector2f p, float attractorRange, float margin){ static const bool debug = false; Vector2f attraction(0.0,0.0), dir(V2COMP(l.Dir())), p0(V2COMP(l.P0())), p1(V2COMP(l.P1())); float location = (p-p0).dot(dir); if(location<-margin || location>l.Length()+margin){ return attraction; } attraction = (p-p0) - dir*location ; float d = attraction.norm(); /* if(d>0.5*attractorRange){ float d2 = max(0.0f, attractorRange - d); attraction *= 2.0f*d2/attractorRange; } */ if(d>attractorRange){ attraction = Vector2f::Zero(); } if(debug){ debugLines.push_back( line2f( vector2f(p.x(),p.y()) ,vector2f((p-attraction).x(),(p-attraction).y()) ) ); } return attraction;}
开发者ID:iglesias,项目名称:cgr_localization,代码行数:29,
示例2: GetSizevoid SystemInfoView::BodyIcon::Draw(){ Gui::ImageRadioButton::Draw(); if (!GetSelected() && !HasStarport()) return; float size[2]; GetSize(size); if (HasStarport()) { Color portColor = Color(64, 128, 128, 255); // The -0.1f offset seems to be the best compromise to make the circles closed (e.g. around Mars), symmetric, fitting with selection // and not overlapping to much with asteroids Graphics::Drawables::Circle circle = Graphics::Drawables::Circle(size[0]*0.5f, size[0]*0.5f-0.1f, size[1]*0.5f, 0.f, portColor, m_renderState); circle.Draw(m_renderer); } if (GetSelected()) { const vector2f vts[] = { vector2f(0.f, 0.f), vector2f(size[0], 0.f), vector2f(size[0], size[1]), vector2f(0.f, size[1]), }; m_renderer->DrawLines2D(COUNTOF(vts), vts, m_selectColor, m_renderState, Graphics::LINE_LOOP); }}
开发者ID:Wuzzy2,项目名称:pioneer,代码行数:25,
示例3: vector2fvoid UIImage9::setLocation(const aabox2f &rect) { m_rect[4].min_corner = rect.min_corner + vector2f(m_widthLeft, m_heightTop); m_rect[4].max_corner = rect.max_corner - vector2f(m_widthRight, m_heightBottom); m_rect[0].min_corner = rect.min_corner; m_rect[0].max_corner = m_rect[4].min_corner; m_rect[1].min_corner.set(m_rect[4].min_corner.x, rect.min_corner.y); m_rect[1].max_corner.set(m_rect[4].max_corner.x, m_rect[4].min_corner.y); m_rect[2].min_corner.set(m_rect[4].max_corner.x, rect.min_corner.y); m_rect[2].max_corner.set(rect.max_corner.x, m_rect[4].min_corner.y); m_rect[3].min_corner.set(rect.min_corner.x, m_rect[4].min_corner.y); m_rect[3].max_corner.set(m_rect[4].min_corner.x, m_rect[4].max_corner.y); m_rect[5].min_corner.set(m_rect[4].max_corner.x, m_rect[4].min_corner.y); m_rect[5].max_corner.set(rect.max_corner.x, m_rect[4].max_corner.y); m_rect[6].min_corner.set(rect.min_corner.x, m_rect[4].max_corner.y); m_rect[6].max_corner.set(m_rect[4].min_corner.x, rect.max_corner.y); m_rect[7].min_corner.set(m_rect[4].min_corner.x, m_rect[4].max_corner.y); m_rect[7].max_corner.set(m_rect[4].max_corner.x, rect.max_corner.y); m_rect[8].min_corner = m_rect[4].max_corner; m_rect[8].max_corner = rect.max_corner;}
开发者ID:signorinotang,项目名称:vn2d,代码行数:28,
示例4: GetActiveOffsetvoid Face::Draw(){ const Point &offset = GetActiveOffset(); const Point &area = GetActiveArea(); const float x = offset.x; const float y = offset.y; const float sx = area.x; const float sy = area.y; const vector2f texSize = m_texture->GetDescriptor().texSize; Graphics::VertexArray va(Graphics::ATTRIB_POSITION | Graphics::ATTRIB_UV0); va.Add(vector3f(x, y, 0.0f), vector2f(0.0f, 0.0f)); va.Add(vector3f(x, y+sy, 0.0f), vector2f(0.0f, texSize.y)); va.Add(vector3f(x+sx, y, 0.0f), vector2f(texSize.x, 0.0f)); va.Add(vector3f(x+sx, y+sy, 0.0f), vector2f(texSize.x, texSize.y)); Graphics::Renderer *r = GetContext()->GetRenderer(); s_material->texture0 = m_texture.get(); auto state = GetContext()->GetSkin().GetAlphaBlendState(); r->DrawTriangles(&va, state, s_material.Get(), Graphics::TRIANGLE_STRIP); Single::Draw();}
开发者ID:ZeframCochrane,项目名称:pioneer,代码行数:25,
示例5: GetSizevoid Gradient::Draw(){ float size[2]; GetSize(size); m_quad->Draw(Gui::Screen::GetRenderer(), vector2f(0.0f), vector2f(size[0],size[1]));}
开发者ID:GizmoR13,项目名称:pioneer,代码行数:7,
示例6: GetContextvoid Face::Draw(){ Graphics::Renderer *r = GetContext()->GetRenderer(); if (!m_quad) { const Point &offset = GetActiveOffset(); const Point &area = GetActiveArea(); const float x = offset.x; const float y = offset.y; const float sx = area.x; const float sy = area.y; const vector2f texSize = m_texture->GetDescriptor().texSize; Graphics::VertexArray va(Graphics::ATTRIB_POSITION | Graphics::ATTRIB_UV0); va.Add(vector3f(x, y, 0.0f), vector2f(0.0f, 0.0f)); va.Add(vector3f(x, y + sy, 0.0f), vector2f(0.0f, texSize.y)); va.Add(vector3f(x + sx, y, 0.0f), vector2f(texSize.x, 0.0f)); va.Add(vector3f(x + sx, y + sy, 0.0f), vector2f(texSize.x, texSize.y)); Graphics::Renderer *r = GetContext()->GetRenderer(); s_material->texture0 = m_texture.get(); auto state = GetContext()->GetSkin().GetAlphaBlendState(); m_quad.reset(new Graphics::Drawables::TexturedQuad(r, s_material, va, state)); } m_quad->Draw(r); Single::Draw();}
开发者ID:emptyhead,项目名称:pioneer,代码行数:29,
示例7: vector2f //------------------------------------------------------------------------------------------------------- void SSAOPostEffect::Process( Engine& engine, const RenderTarget* const org, const RenderTarget* const scene, RenderTarget* const out ) { engine.GetDevice()->DisableDepthTest(); engine.GetDevice()->DisableAlpha(); { engine.GetDevice()->PushRenderTarget(m_pDownSimple_1); SSAOShader& ssao = engine.GetShaderManage()->GetShader<SSAOShader>(ShaderManage::SSAOShader); ssao.SetParamDepthTex( org->GetDepthBuffer() ); ssao.SetParamJitterTex( m_JitterTex ); ssao.SetParamNormalTex( engine.GetPipeline()->NormalRenderTarget()->GetColorBuffer() ); ssao.SetParamAOEdgeFinder( AOEdgeFinder ); ssao.SetParamAOIntensity( AOIntensity ); ssao.SetParamJitterAmount( JitterAmount ); ssao.SetParamStepSize( vector2f( 1.0 / m_pDownSimple_1->GetSize().m_x , 1.0 / m_pDownSimple_1->GetSize().m_y ) ); engine.GetDevice()->Draw( *m_pRendBuffer, ssao, NULL ); engine.GetDevice()->PopRenderTarget(); } {//模糊 //x engine.GetDevice()->PushRenderTarget(m_pDownSimple_2); engine.GetDevice()->Clear( Device::COLOR_BUFFER ); Blur2x2Shader& bs = engine.GetShaderManage()->GetShader<Blur2x2Shader>(ShaderManage::Blur2x2Shader); bs.SetParamColorTexture( m_pDownSimple_1->GetColorBuffer() ); bs.SetParamStepSize( vector2f( (1.0f / m_pDownSimple_2->GetSize().m_x) * GaussSpread, 0.0 ) ); bs.SetParamGaussWeight( GaussWeight ); engine.GetDevice()->Draw( *m_pRendBuffer, bs, NULL ); engine.GetDevice()->PopRenderTarget(); //y engine.GetDevice()->PushRenderTarget(m_pDownSimple_1); engine.GetDevice()->Clear( Device::COLOR_BUFFER ); bs.SetParamColorTexture( m_pDownSimple_2->GetColorBuffer() ); bs.SetParamStepSize( vector2f( 0.0, (1.0f / m_pDownSimple_1->GetSize().m_y) * GaussSpread ) ); bs.SetParamGaussWeight( GaussWeight ); engine.GetDevice()->Draw( *m_pRendBuffer, bs, NULL ); engine.GetDevice()->PopRenderTarget(); } engine.GetDevice()->PushRenderTarget( out );//如果画在了输出上面,则需要更换输出,下一个pe就用另外一张rt engine.GetDevice()->Clear( Device::COLOR_BUFFER ); if( 1 ) { SSAOCombine& sc = engine.GetShaderManage()->GetShader<SSAOCombine>(ShaderManage::SSAOCombine); sc.SetParamSceneTexture( scene->GetColorBuffer() ); sc.SetParamSSVOTexture( m_pDownSimple_1->GetColorBuffer() ); engine.GetDevice()->Draw( *m_pRendBuffer, sc, NULL ); } else { QuadShader& qs = engine.GetShaderManage()->GetShader<QuadShader>(ShaderManage::QuadShader); //engine.GetDevice()->Draw( *m_pRendBuffer, qs, engine.GetPipeline()->NormalRenderTarget()->GetColorBuffer() ); engine.GetDevice()->Draw( *m_pRendBuffer, qs, m_pDownSimple_1->GetColorBuffer() ); } engine.GetDevice()->PopRenderTarget( ); }
开发者ID:RichardOpenGL,项目名称:Bohge_Engine,代码行数:60,
示例8: vector2fvoid TextureBuilder::UpdateTexture(Texture *texture){ if( m_surface ) { texture->Update(m_surface->pixels, vector2f(m_surface->w,m_surface->h), m_descriptor.format, 0); } else { assert(m_dds.headerdone_); assert(m_descriptor.format == TEXTURE_DXT1 || m_descriptor.format == TEXTURE_DXT5); texture->Update(m_dds.imgdata_.imgData, vector2f(m_dds.imgdata_.width,m_dds.imgdata_.height), m_descriptor.format, m_dds.imgdata_.numMipMaps); }}
开发者ID:tnicoll,项目名称:pioneer,代码行数:10,
示例9: LoadSurfacevoid TextureBuilder::PrepareSurface(){ if (m_prepared) return; if (!m_surface && m_filename.length() > 0) LoadSurface(); TextureFormat targetTextureFormat; SDL_PixelFormat *targetPixelFormat; bool needConvert = !GetTargetFormat(m_surface->format, &targetTextureFormat, &targetPixelFormat, m_forceRGBA); if (needConvert) { SDL_Surface *s = SDL_ConvertSurface(m_surface, targetPixelFormat, SDL_SWSURFACE); SDL_FreeSurface(m_surface); m_surface = s; } unsigned int virtualWidth, actualWidth, virtualHeight, actualHeight; virtualWidth = actualWidth = m_surface->w; virtualHeight = actualHeight = m_surface->h; if (m_potExtend) { // extend to power-of-two if necessary actualWidth = ceil_pow2(m_surface->w); actualHeight = ceil_pow2(m_surface->h); if (actualWidth != virtualWidth || actualHeight != virtualHeight) { SDL_Surface *s = SDL_CreateRGBSurface(SDL_SWSURFACE, actualWidth, actualHeight, targetPixelFormat->BitsPerPixel, targetPixelFormat->Rmask, targetPixelFormat->Gmask, targetPixelFormat->Bmask, targetPixelFormat->Amask); SDL_SetAlpha(m_surface, 0, 0); SDL_SetAlpha(s, 0, 0); SDL_BlitSurface(m_surface, 0, s, 0); SDL_FreeSurface(m_surface); m_surface = s; } } else if (m_filename.length() > 0) { // power-of-to check unsigned long width = ceil_pow2(m_surface->w); unsigned long height = ceil_pow2(m_surface->h); if (width != virtualWidth || height != virtualHeight) fprintf(stderr, "WARNING: texture '%s' is not power-of-two and may not display correctly/n", m_filename.c_str()); } m_descriptor = TextureDescriptor( targetTextureFormat, vector2f(actualWidth,actualHeight), vector2f(float(virtualWidth)/float(actualWidth),float(virtualHeight)/float(actualHeight)), m_sampleMode, m_generateMipmaps); m_prepared = true;}
开发者ID:mightyzero,项目名称:pioneer,代码行数:55,
示例10: vector2f//-------------------------------------------------------------------------------------------------------void BloomPS::Process(IDriver& driver, const RenderTarget* const org, const RenderTarget* const scene, RenderTarget* const out, bool& isSwitch){ float Range = 2; //控制模糊度 //降采样 //driver.PushRenderTarget(m_pDownSimple_1); //driver.Clear( IDriver::COLOR_BUFFER ); //QuadShader& qs = driver.GetShaderManage().GetShader<QuadShader>(ShaderManage::QuadShader); //driver.Draw( *m_pRendBuffer, qs, scene->GetColorBuffer() ); //driver.PopRenderTarget(); //流明化 driver.PushRenderTarget(m_pDownSimple_1); driver.Clear( IDriver::COLOR_BUFFER ); Luminance& le = driver.GetShaderManage().GetShader<Luminance>(ShaderManage::Luminance); driver.Draw( *m_pRendBuffer, le, scene->GetColorBuffer() ); driver.PopRenderTarget(); //x方向模糊 driver.PushRenderTarget(m_pDownSimple_2); driver.Clear( IDriver::COLOR_BUFFER ); Gaussian& gauss = driver.GetShaderManage().GetShader<Gaussian>(ShaderManage::Gaussian); gauss.SetParamStep( vector2f( Range / m_pDownSimple_1->GetSize().m_x, 0.0f ) ); driver.Draw( *m_pRendBuffer, gauss, m_pDownSimple_1->GetColorBuffer() ); driver.PopRenderTarget(); //y方向模糊 driver.PushRenderTarget(m_pDownSimple_1); driver.Clear( IDriver::COLOR_BUFFER ); gauss.SetParamStep( vector2f( 0.0f, Range / m_pDownSimple_2->GetSize().m_y ) ); driver.Draw( *m_pRendBuffer, gauss, m_pDownSimple_2->GetColorBuffer() ); driver.PopRenderTarget(); driver.PushRenderTarget( out );//如果画在了输出上面,则需要更换输出,下一个pe就用另外一张rt isSwitch = true; driver.Clear( IDriver::COLOR_BUFFER ); //if( 0 ) { driver.EnableAlphaBlend(IDriver::BL_SRC_ALPHA, IDriver::BL_ONE_MINUS_SRC_ALPHA, IDriver::BL_SRC_ALPHA, IDriver::BL_ONE_MINUS_SRC_ALPHA ); Combine& ce = driver.GetShaderManage().GetShader<Combine>(ShaderManage::Combine); ce.SetParamOrginial( scene->GetColorBuffer() ); ce.SetParamSecen( m_pDownSimple_1->GetColorBuffer() ); ce.SetParamOrginialWeight(1.0f); ce.SetParamSecenWeight(0.0f);//was 0.75 driver.Draw( *m_pRendBuffer, ce, NULL ); } //else //{ // QuadShader& qs = driver.GetShaderManage().GetShader<QuadShader>(ShaderManage::QuadShader); // driver.Draw( *m_pRendBuffer, qs, m_pDownSimple_1->GetColorBuffer() ); // //driver.Draw( *m_pRendBuffer, ui, org->GetDepthBuffer() ); //} driver.PopRenderTarget( );}
开发者ID:RichardOpenGL,项目名称:Bohge_Engine,代码行数:55,
示例11: vavoid Skin::DrawRectElement(const RectElement &element, const Point &pos, const Point &size, Graphics::BlendMode blendMode) const{ Graphics::VertexArray va(Graphics::ATTRIB_POSITION | Graphics::ATTRIB_UV0); va.Add(vector3f(pos.x, pos.y, 0.0f), scaled(vector2f(element.pos.x, element.pos.y))); va.Add(vector3f(pos.x, pos.y+size.y, 0.0f), scaled(vector2f(element.pos.x, element.pos.y+element.size.y))); va.Add(vector3f(pos.x+size.x, pos.y, 0.0f), scaled(vector2f(element.pos.x+element.size.x, element.pos.y))); va.Add(vector3f(pos.x+size.x, pos.y+size.y, 0.0f), scaled(vector2f(element.pos.x+element.size.x, element.pos.y+element.size.y))); m_renderer->DrawTriangles(&va, GetRenderState(blendMode), m_textureMaterial.Get(), Graphics::TRIANGLE_STRIP);}
开发者ID:AmesianX,项目名称:pioneer,代码行数:11,
示例12: PROFILE_SCOPEDvoid TextEntry::Draw(){ PROFILE_SCOPED() m_justFocused = false; Graphics::Renderer *pRenderer = Screen::GetRenderer(); float size[2]; GetSize(size); // find cursor position float curs_x, curs_y; Gui::Screen::MeasureCharacterPos(m_text, m_cursPos, curs_x, curs_y, m_font.Get()); if (curs_x - m_scroll > size[0]*0.75f) { m_scroll += int(size[0]*0.25f); } else if (curs_x - m_scroll < size[0]*0.25f) { m_scroll -= int(size[0]*0.25f); if (m_scroll < 0) m_scroll = 0; } //background if(!m_background) { m_background.reset( new Graphics::Drawables::Rect(pRenderer, vector2f(0.f), vector2f(size[0], size[1]), Color(0,0,0,192), Screen::alphaBlendState)); } m_background->Draw(pRenderer); //outline const Color c = IsFocused() ? Color::WHITE : Color(192, 192, 192, 255); const vector3f boxVts[] = { vector3f(0.f, 0.f, 0.f), vector3f(size[0],0.f, 0.f), vector3f(size[0],size[1], 0.f), vector3f(0,size[1], 0.f) }; m_outlines.SetData(2, &boxVts[0], c); m_outlines.Draw(pRenderer, Screen::alphaBlendState, Graphics::LINE_LOOP); //text SetScissor(true); Gui::Screen::RenderStringBuffer(m_vb, m_text, 1.0f - m_scroll, 0.0f, c, m_font.Get()); SetScissor(false); //cursor const vector3f cursorVts[] = { vector3f(curs_x + 1.0f - m_scroll, curs_y + Gui::Screen::GetFontDescender(m_font.Get()) - Gui::Screen::GetFontHeight(m_font.Get()), 0.f), vector3f(curs_x + 1.0f - m_scroll, curs_y + Gui::Screen::GetFontDescender(m_font.Get()), 0.f), }; m_cursorLines.SetData(2, &cursorVts[0], Color(128, 128, 128)); m_cursorLines.Draw(pRenderer, Screen::alphaBlendState);}
开发者ID:christiank,项目名称:pioneer,代码行数:51,
|