#include <Sprite.h>
Inheritance diagram for pge::Sprite:
Public Member Functions | |
Sprite (Vector3f topLeft, Vector3f topRight, Vector3f bottomRight, Vector3f bottomLeft) | |
Constructor. | |
Sprite (Vector3f center, float size) | |
virtual | ~Sprite (void) |
Destructor. | |
Vector3f | getCenter (void) |
void | setCenter (Vector3f center) |
void | setSize (float size) |
void | setTexture (Texture *texture) |
void | setColor (Vector4f color) |
bool | isBillboardEnabled (void) |
void | setBillboardEnabled (bool enabled) |
bool | init (void) |
void | render (void) |
Called when the object should render itself. | |
void | timer (unsigned int delay) |
Called when the timer event comes. | |
Protected Attributes | |
Vector3f | m_topLeft |
Vector3f | m_topRight |
Vector3f | m_bottomLeft |
Vector3f | m_bottomRight |
Vector3f | m_center |
Private Attributes | |
bool | m_forceBillboard |
bool | m_billboardEnabled |
float | m_mat [16] |
float | m_size |
Vector3f | m_right |
Vector3f | m_up |
Vector4f | m_color |
Texture * | m_texture |
float | m_texRepeatU |
float | m_texRepeatV |
|
Constructor.
Definition at line 17 of file Sprite.cpp. References m_billboardEnabled, m_bottomLeft, m_bottomRight, m_center, m_color, m_forceBillboard, m_right, m_size, m_texRepeatU, m_texRepeatV, m_texture, m_topLeft, m_topRight, and m_up.
00017 { 00018 m_topLeft = topLeft; 00019 m_topRight = topRight; 00020 m_bottomLeft = bottomLeft; 00021 m_bottomRight = bottomRight; 00022 00023 // TODO: Calculate center 00024 m_center = topLeft; 00025 00026 m_forceBillboard = false; 00027 m_billboardEnabled = false; 00028 00029 m_size = ((topLeft.subtract(topRight)).magnitude()); 00030 m_right = Vector3f(); 00031 m_up = Vector3f(); 00032 00033 m_texRepeatU = 0.0f; 00034 m_texRepeatV = 0.0f; 00035 00036 m_texture = NULL; 00037 00038 m_color = Vector4f(1.0f, 1.0f, 1.0f, 1.0f); 00039 } |
|
Definition at line 47 of file Sprite.cpp. References m_billboardEnabled, m_bottomLeft, m_bottomRight, m_center, m_color, m_forceBillboard, m_right, m_size, m_texRepeatU, m_texRepeatV, m_texture, m_topLeft, m_topRight, and m_up.
00047 { 00048 m_topLeft = Vector3f(); 00049 m_topRight = Vector3f(); 00050 m_bottomLeft = Vector3f(); 00051 m_bottomRight = Vector3f(); 00052 00053 m_center = center; 00054 m_forceBillboard = true; 00055 m_billboardEnabled = true; 00056 00057 m_size = size; 00058 m_right = Vector3f(); 00059 m_up = Vector3f(); 00060 00061 m_texRepeatU = 0.0f; 00062 m_texRepeatV = 0.0f; 00063 00064 m_texture = NULL; 00065 00066 m_color = Vector4f(1.0f, 1.0f, 1.0f, 1.0f); 00067 } |
|
Destructor.
Definition at line 75 of file Sprite.cpp.
00075 { 00076 } |
|
Definition at line 84 of file Sprite.cpp. References m_center.
00084 { 00085 return m_center; 00086 } |
|
Implements pge::IRenderableObject. Reimplemented in pge::GPUFire. Definition at line 154 of file Sprite.cpp.
00154 { 00155 return true; 00156 } |
|
Definition at line 134 of file Sprite.cpp. References m_billboardEnabled, and m_forceBillboard.
00134 { 00135 return (m_billboardEnabled || m_forceBillboard); 00136 } |
|
Called when the object should render itself.
Implements pge::IRenderableObject. Reimplemented in pge::GPUFire. Definition at line 164 of file Sprite.cpp. References pge::Vector3f::add(), pge::Texture::hasAlphaBlending(), m_billboardEnabled, m_bottomLeft, m_bottomRight, m_center, m_color, m_forceBillboard, m_mat, m_right, m_size, m_texRepeatU, m_texRepeatV, m_texture, m_topLeft, m_topRight, m_up, pge::Vector3f::m_v, and pge::Vector3f::subtract(). Referenced by pge::SkyBox::render(), and pge::EffectTest::render().
00164 { 00165 // Use billboarding 00166 if(m_forceBillboard || m_billboardEnabled) { 00167 00168 glGetFloatv(GL_MODELVIEW_MATRIX, m_mat); 00169 00170 m_right.m_v[0] = m_mat[0]; 00171 m_right.m_v[1] = m_mat[4]; 00172 m_right.m_v[2] = m_mat[8]; 00173 m_up.m_v[0] = m_mat[1]; 00174 m_up.m_v[1] = m_mat[5]; 00175 m_up.m_v[2] = m_mat[9]; 00176 00177 m_bottomLeft = m_center.add((m_right.add(m_up)).multiply(-m_size)); 00178 m_bottomRight = m_center.add((m_right.subtract(m_up)).multiply(m_size)); 00179 m_topRight = m_center.add((m_right.add(m_up)).multiply(m_size)); 00180 m_topLeft = m_center.add((m_up.subtract(m_right)).multiply(m_size)); 00181 00182 // Set texture and color. 00183 if(m_texture != NULL) { 00184 if(m_texture->hasAlphaBlending()) { 00185 renderer::setTextureAlphaBlendEnabled(true); 00186 } 00187 renderer::setTexture(m_texture, GL_MODULATE); 00188 renderer::color4f(m_color); 00189 } 00190 00191 glBegin(GL_QUADS); 00192 // Bottom left 00193 renderer::vertex3f(m_bottomLeft, 0.0f + m_texRepeatU, 1.0f + m_texRepeatV); 00194 // Bottom right 00195 renderer::vertex3f(m_bottomRight, 1.0f + m_texRepeatU, 1.0f + m_texRepeatV); 00196 // Top right 00197 renderer::vertex3f(m_topRight, 1.0f + m_texRepeatU, 0.0f + m_texRepeatV); 00198 // Top left 00199 renderer::vertex3f(m_topLeft, 0.0f + m_texRepeatU, 0.0f + m_texRepeatV); 00200 glEnd(); 00201 00202 if(m_texture != NULL) { 00203 if(m_texture->hasAlphaBlending()) { 00204 renderer::setTextureAlphaBlendEnabled(false); 00205 } 00206 renderer::color4f(1.0f, 1.0f, 1.0f, 1.0f); 00207 } 00208 00209 } else { 00210 // Set texture and color. 00211 if(m_texture != NULL) { 00212 if(m_texture->hasAlphaBlending()) { 00213 renderer::setTextureAlphaBlendEnabled(true); 00214 } 00215 renderer::setTexture(m_texture, GL_MODULATE); 00216 renderer::color4f(m_color); 00217 } 00218 00219 glBegin(GL_QUADS); 00220 // Bottom left 00221 renderer::vertex3f(m_bottomLeft, 0.0f + m_texRepeatU, 1.0f + m_texRepeatV); 00222 // Bottom right 00223 renderer::vertex3f(m_bottomRight, 1.0f + m_texRepeatU, 1.0f + m_texRepeatV); 00224 // Top right 00225 renderer::vertex3f(m_topRight, 1.0f + m_texRepeatU, 0.0f + m_texRepeatV); 00226 // Top left 00227 renderer::vertex3f(m_topLeft, 0.0f + m_texRepeatU, 0.0f + m_texRepeatV); 00228 glEnd(); 00229 00230 if(m_texture != NULL) { 00231 if(m_texture->hasAlphaBlending()) { 00232 renderer::setTextureAlphaBlendEnabled(false); 00233 } 00234 renderer::color4f(1.0f, 1.0f, 1.0f, 1.0f); 00235 } 00236 } 00237 } |
Here is the call graph for this function:
|
Definition at line 144 of file Sprite.cpp. References m_billboardEnabled.
00144 { 00145 m_billboardEnabled = enabled; 00146 } |
|
Definition at line 94 of file Sprite.cpp. References m_center. Referenced by pge::EffectTest::timer().
00094 { 00095 m_center = center; 00096 } |
|
Definition at line 124 of file Sprite.cpp. References m_color. Referenced by pge::EffectTest::initLights().
00124 { 00125 m_color = color; 00126 } |
|
Definition at line 104 of file Sprite.cpp. References m_size.
00104 { 00105 m_size = size; 00106 } |
|
Definition at line 114 of file Sprite.cpp. References m_texture. Referenced by pge::EffectTest::initLights().
00114 { 00115 m_texture = texture; 00116 } |
|
Called when the timer event comes.
Implements pge::IRenderableObject. Reimplemented in pge::GPUFire. Definition at line 245 of file Sprite.cpp.
00245 { 00246 } |
|
Definition at line 83 of file Sprite.h. Referenced by isBillboardEnabled(), render(), setBillboardEnabled(), and Sprite(). |
|
|
|
|
|
Definition at line 66 of file Sprite.h. Referenced by getCenter(), render(), setCenter(), and Sprite(). |
|
Definition at line 92 of file Sprite.h. Referenced by render(), setColor(), and Sprite(). |
|
Definition at line 82 of file Sprite.h. Referenced by isBillboardEnabled(), render(), and Sprite(). |
|
Definition at line 85 of file Sprite.h. Referenced by render(). |
|
|
|
|
|
|
|
|
|
Definition at line 94 of file Sprite.h. Referenced by render(), setTexture(), and Sprite(). |
|
|
|
|
|
|