PROTO::KLUDGE  0.1
Quick prototyping library for games using SDL and OpenGL.
pk::RectangleShape Class Reference

Create a drawable RectangleShape using OpenGL. For more complex OpenGL geometry see the Mesh class. More...

#include <RectangleShape.hpp>

Inheritance diagram for pk::RectangleShape:
Inheritance graph
Collaboration diagram for pk::RectangleShape:
Collaboration graph

Public Member Functions

 RectangleShape (GLfloat width, GLfloat height)
 Construct a RectangleShape from a width and height. More...
 
virtual ~RectangleShape ()
 
void setFillColor (glm::vec4 fillColor)
 
glm::vec4 & getFillColor ()
 Get the current fill color for the RectangleShape. More...
 
void setVertexColors (GLfloat colors [16])
 Set the individual values for the vertex colors of the RectangleShape. More...
 
GLfloat * getVertexColors ()
 Get the current vertex colors for the RectangleShape. More...
 
void draw (GLStates &states)
 Draw the RectangleShape to the screen. More...
 
- Public Member Functions inherited from pk::GLDrawable
 GLDrawable ()
 
virtual ~GLDrawable ()
 
- Public Member Functions inherited from pk::GLTransformable
 GLTransformable ()
 Default constructor. More...
 
virtual ~GLTransformable ()
 
void setRect (GLRect r)
 Set the bounding rectangle for the GLTransformable object. Useful for calculating origin and size definitions. More...
 
GLRectgetRect ()
 Get the current bounding rectangle of the GLTransformable object. More...
 
void setWidth (GLfloat w)
 Convenient function for setting the width of the GLTransformable. More...
 
GLfloat & getWidth ()
 Get the width of the GLTransformable. More...
 
void setHeight (GLfloat h)
 
GLfloat & getHeight ()
 Get the height of the GLTransformable. More...
 
void setOrigin (glm::vec2 origin)
 Set the origin of the GLTransformable in screen coordinates (NOT normalized coordinates such as clip coordinates for example). More...
 
glm::vec2 & getOrigin ()
 Get the origin of the GLTransformable in screen coordinates (NOT normalized coordinates such as clip coordinates for example). More...
 
void setPosition (glm::vec2 position)
 Set the position of the GLTransformable in screen coordinates (NOT normalized coordinates such as clip coordinates for example). More...
 
const glm::vec2 & getPosition ()
 Get the position of the GLTransformable in screen coordinates (NOT normalized coordinates such as clip coordinates for example). More...
 
void move (glm::vec2 offset)
 Move the GLTransformable by a constant offset value in screen coordinates (NOT normalized coordinates such as clip coordinates for example). More...
 
void setAngle (float angle)
 Set the angle of the GLTransformable (in degrees, NOT radians). More...
 
float getAngle ()
 Get the angle of the GLTransformable (in degrees, NOT radians). More...
 
void rotate (float degrees)
 Rotate the GLTransformable by a constant value (in degrees, NOT radians). (in degrees, NOT radians). More...
 
void setScale (glm::vec2 scale)
 Set the scale of the GLTransformable. More...
 
glm::vec2 getScale ()
 Get the scale of the GLTransformable. More...
 
void scale (glm::vec2 scale)
 Scale the GLTransformable by a constant factor specified as a glm::vec2 of floats. More...
 
void clear ()
 Clear the buffers and reset the GLTransformable to an uninitialized state. More...
 

Private Member Functions

 RectangleShape ()
 Default constructor - INACCESSIBLE! More...
 
void updateNormals (GLfloat *vertices, unsigned int verticeCount, unsigned int stride)
 Update the internal lighting normals of the RectangleShape. More...
 
void updateGeometry ()
 Update the internal geometry of the RectangleShape. More...
 

Private Attributes

glm::vec4 m_fillColor
 Rectangle fill color. More...
 
GLfloat m_vertexColors [16]
 Array of individual vertex colors. More...
 

Additional Inherited Members

- Public Attributes inherited from pk::GLTransformable
GLTransformData m_data
 Internal transform data for GLTransformable inherited classes. More...
 

Detailed Description

Create a drawable RectangleShape using OpenGL. For more complex OpenGL geometry see the Mesh class.

Constructor & Destructor Documentation

◆ RectangleShape() [1/2]

pk::RectangleShape::RectangleShape ( )
inlineprivate

Default constructor - INACCESSIBLE!

◆ RectangleShape() [2/2]

pk::RectangleShape::RectangleShape ( GLfloat  width,
GLfloat  height 
)

Construct a RectangleShape from a width and height.

Parameters
GLfloatwidth - width specified for the RectangleShape.
GLfloatheight - height specified for the RectangleShape.

◆ ~RectangleShape()

virtual pk::RectangleShape::~RectangleShape ( )
virtual

Member Function Documentation

◆ draw()

void pk::RectangleShape::draw ( GLStates states)
virtual

Draw the RectangleShape to the screen.

Parameters
GLStates&states - reference to an OpenGl states struct.

Implements pk::GLDrawable.

◆ getFillColor()

glm::vec4 & pk::RectangleShape::getFillColor ( )
inline

Get the current fill color for the RectangleShape.

Returns
glm::vec4 - a glm::vec4 representing the vertex colors.

◆ getVertexColors()

GLfloat * pk::RectangleShape::getVertexColors ( )
inline

Get the current vertex colors for the RectangleShape.

Returns
GLfloat* - an array of GLfloat representing the vertex colors.

◆ setFillColor()

void pk::RectangleShape::setFillColor ( glm::vec4  fillColor)

◆ setVertexColors()

void pk::RectangleShape::setVertexColors ( GLfloat  colors[16])

Set the individual values for the vertex colors of the RectangleShape.

◆ updateGeometry()

void pk::RectangleShape::updateGeometry ( )
private

Update the internal geometry of the RectangleShape.

◆ updateNormals()

void pk::RectangleShape::updateNormals ( GLfloat *  vertices,
unsigned int  verticeCount,
unsigned int  stride 
)
private

Update the internal lighting normals of the RectangleShape.

Member Data Documentation

◆ m_fillColor

glm::vec4 pk::RectangleShape::m_fillColor
private

Rectangle fill color.

◆ m_vertexColors

GLfloat pk::RectangleShape::m_vertexColors[16]
private

Array of individual vertex colors.


The documentation for this class was generated from the following file: