Tucano  0.1
A library for rapid prototyping with modern OpenGL and GLSL
Tucano::Shapes::Box Class Reference

A simple box with bounded limits. More...

#include <box.hpp>

Inheritance diagram for Tucano::Shapes::Box:
Tucano::Mesh Tucano::Model

Public Member Functions

 Box (float w=1.0, float h=1.0, float d=1.0)
 Default Constructor. More...
 
void render (const Tucano::Camera &camera, const Tucano::Camera &light)
 Render box. More...
 
- Public Member Functions inherited from Tucano::Mesh
 Mesh (void)
 Default Constructor. More...
 
int getNumberOfElements (void)
 Returns the number of elements (primitives such as triangles) of the mesh. More...
 
int getNumberOfVertices (void)
 Returns the number of vertices in the mesh. More...
 
void resetLocations (void)
 Resets all vertex attributes locations to -1. More...
 
void reset (void)
 
void loadVertices (vector< Eigen::Vector4f > &vert)
 Load vertices (x,y,z,w) and creates appropriate vertex attribute. The default attribute name is "in_Position". Computes bounding box and centroid and normalization factors (scale). More...
 
void loadNormals (vector< Eigen::Vector3f > &norm)
 Load normals (x,y,z) as a vertex attribute. More...
 
void loadTexCoords (vector< Eigen::Vector2f > &tex, bool normalize=false)
 Load tex coords (u,v) as a vertex attribute. Optionally normalizes coords in range [0,1]. More...
 
void loadColors (vector< Eigen::Vector4f > &clrs)
 Load colors (r,g,b,a) as a vertex attribute. More...
 
void loadIndices (vector< GLuint > &ind)
 Load indices into indices array. More...
 
void setDefaultAttribLocations (void)
 Sets default attribute locations. vertex coords -> location 0 normals -> location 1 colors -> location 2 texCoords -> location 3. More...
 
bool hasAttribute (const string &name) const
 Returns wether an attribute exists or not. More...
 
VertexAttributegetAttribute (const string &name)
 Returns a pointer to an attribute Given an attribute name, searches to see if it exists, if so, returns a pointer to it. More...
 
void setAttributeLocation (Shader *shader)
 Automatically sets the attribute locations for a given Shader. More...
 
void setAttributeLocation (const Shader &shader)
 
void setAttributeLocation (string name, GLint loc)
 Sets the location of a generic vertex attribute. More...
 
VertexAttributecreateAttribute (string name, vector< Eigen::Vector4f > &attrib)
 Creates and loads a new mesh attribute of 4 floats. More...
 
VertexAttributecreateAttribute (string name, vector< Eigen::Vector3f > &attrib)
 Creates and loads a new mesh attribute of 3 floats. More...
 
VertexAttributecreateAttribute (string name, vector< Eigen::Vector2f > &attrib)
 Creates and loads a new mesh attribute of 2 floats. More...
 
virtual void bindBuffers (void)
 Binds all buffers. More...
 
virtual void unbindBuffers (void)
 Unbinds all buffers. More...
 
virtual void renderPoints (void)
 Render only points without index buffer. More...
 
virtual void renderElements (void)
 Call the draw method for rendering triangles. This method requires that a index buffer has been created. More...
 
virtual void renderLineLoop (void)
 Render all vertices as a continous line loop. More...
 
virtual void renderPatches (void)
 Call the draw method for rendering patches. This method requires that a index buffer has been created. More...
 
virtual void render (void)
 Render the mesh triangles. The method binds the buffers, calls the method to render triangles, and then unbinds all buffers. Note that a index buffer is necessary. More...
 
void createParallelepiped (float x, float y, float z)
 Sets the mesh as a Parallelpiped with given dimensions, scales so larger side is equal to 1. More...
 
void createQuad (void)
 Sets the mesh as Unit Quad. More...
 
- Public Member Functions inherited from Tucano::Model
 Model (void)
 
Eigen::Vector4f getColor (void)
 Returns the default color of the model. More...
 
void setColor (const Eigen::Vector4f &color)
 Sets the default color of the model. More...
 
virtual Eigen::Vector3f getObjectCenter (void) const
 Returns the center of the axis-aligned bounding box. More...
 
virtual Eigen::Vector3f getCentroid (void) const
 Returns the centroid of the model. More...
 
virtual float getBoundingSphereRadius (void) const
 
Eigen::Affine3f getModelMatrix (void) const
 Returns the model matrix. More...
 
Eigen::Affine3f * modelMatrix (void)
 Returns a pointer to the model matrix. More...
 
void setModelMatrix (const Eigen::Affine3f &m)
 Sets the model matrix. More...
 
float getScale (void) const
 Returns the scale factor for fitting the model inside a unit cube. More...
 
void normalizeModelMatrix (void)
 Normalize model matrix to center and scale model. The model matrix will include a translation to place model's centroid at the origin, and scale the model to fit inside a unit sphere. More...
 
void desnormalizeModelMatrix (void)
 Desnormalize model matrix. More...
 
void resetModelMatrix (void)
 Resets the model matrix. More...
 

Private Member Functions

void createGeometry (void)
 Define box geometry. More...
 

Private Attributes

Tucano::Shader box_shader
 
float width
 Box width. More...
 
float height
 Box height. More...
 
float depth
 Box depth. More...
 

Additional Inherited Members

- Protected Attributes inherited from Tucano::Mesh
vector< Tucano::VertexAttributevertex_attributes
 Array of generic attributes. More...
 
unsigned int numberOfVertices = 0
 Number of vertices in vertices array. More...
 
unsigned int numberOfNormals = 0
 Number of normals in normals array. More...
 
unsigned int numberOfElements = 0
 Number of indices in indices array. More...
 
unsigned int numberOfTexCoords = 0
 Number of texture coordinates in texCoords array. More...
 
unsigned int numberOfColors = 0
 Number of colors in colors array. More...
 
GLuint index_buffer_id = 0
 Index Buffer. More...
 
GLuint vao_id = 0
 Vertex Array Object ID (VAO is just a descriptor, does not contain any data) More...
 
bool willTessellate = false
 Variable indicating if there will be tessellation. More...
 
std::shared_ptr< GLuint > index_buffer_sptr = 0
 Shared pointer for index buffer. More...
 
std::shared_ptr< GLuint > vao_sptr = 0
 Shared pointer for vertex array object. More...
 
- Protected Attributes inherited from Tucano::Model
Eigen::Affine3f model_matrix
 Model matrix, holds information about the models location and orientation. More...
 
Eigen::Vector3f objectCenter
 Center of the mesh object. More...
 
Eigen::Vector3f centroid
 Object's centroid (different from center of bounding box) More...
 
float radius
 Radius of the mesh bounding sphere. More...
 
float scale
 The normalization scale factor, scales the model matrix to fit the model inside a unit cube. More...
 
Eigen::Vector4f default_color = Eigen::Vector4f (0.7, 0.7, 0.7, 1.0)
 Default color. More...
 

Detailed Description

A simple box with bounded limits.

Constructor & Destructor Documentation

Tucano::Shapes::Box::Box ( float  w = 1.0,
float  h = 1.0,
float  d = 1.0 
)
inline

Default Constructor.

Member Function Documentation

void Tucano::Shapes::Box::createGeometry ( void  )
inlineprivate

Define box geometry.

void Tucano::Shapes::Box::render ( const Tucano::Camera camera,
const Tucano::Camera light 
)
inline

Render box.

Member Data Documentation

Tucano::Shader Tucano::Shapes::Box::box_shader
private
float Tucano::Shapes::Box::depth
private

Box depth.

float Tucano::Shapes::Box::height
private

Box height.

float Tucano::Shapes::Box::width
private

Box width.


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