billboard.cpp

来自「《OpenGL游戏编程》这本书的配套源码。」· C++ 代码 · 共 45 行

CPP
45
字号
//========================================================
/**
*  @file      BillBoard.cpp
*
*  项目描述: 构造游戏引擎
*  文件描述:  公告板类
*  适用平台: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  电子邮件:  wwboss123@gmail.com
*  创建日期: 2007-07-26	
*  修改日期: 2007-07-26
*
*/ 
//========================================================

#include "stdafx.h"
#include "BillBoard.h"


void CBillBoard::Update()
{
	float m[16];
	glGetFloatv(GL_MODELVIEW_MATRIX , m);
	right.set(m[0],m[4],m[8]);
	up.set(m[1],m[5],m[9]);
}

void CBillBoard::Render(vector3d vpos , float m_iSize)
{
	glPushMatrix();
	glBegin(GL_TRIANGLE_STRIP);
	  glTexCoord2f(0.0f , 1.0f); 
	  glVertex3fv((vpos + (up - right)*(m_iSize) ).v);
	  glTexCoord2f(0.0f , 0.0f); 
	  glVertex3fv((vpos + (right + up)*(-m_iSize) ).v);
      glTexCoord2f(1.0f , 1.0f); 
	  glVertex3fv((vpos + (right + up)*(m_iSize) ).v);
	  glTexCoord2f(1.0f , 0.0f);
	  glVertex3fv((vpos + (right - up)*(m_iSize) ).v);
	glEnd();
	glPopMatrix();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?