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

A simple cone shape. More...

#include <cone.hpp>

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

Public Member Functions

 Cone ()
 Default Constructor. More...
 
 ~Cone ()
 Default destructor. More...
 
void setColor (const Eigen::Vector4f &c)
 Sets the cone color. More...
 
void render (const Tucano::Camera &camera, const Tucano::Camera &light)
 Render cone. More...
 
void create (float r, float h, int s=32)
 Create cone with given parameters. More...
 
float getHeight (void)
 Returns cone cone_height. More...
 
float getRadius (void)
 Returns cone cone_radius. 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 (int subdivisions)
 Define cone geometry. More...
 

Private Attributes

Tucano::Shader cone_shader
 Shader to render cone. More...
 
Eigen::Vector4f color
 Cone color. More...
 
float cone_height
 Cone cone_height. More...
 
float cone_radius
 Cone cone_radius. 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 cone shape.

Constructor & Destructor Documentation

Tucano::Shapes::Cone::Cone ( )
inline

Default Constructor.

Tucano::Shapes::Cone::~Cone ( )
inline

Default destructor.

Member Function Documentation

void Tucano::Shapes::Cone::create ( float  r,
float  h,
int  s = 32 
)
inline

Create cone with given parameters.

Parameters
rRadius
hHeight
sNumber of subdivisions
void Tucano::Shapes::Cone::createGeometry ( int  subdivisions)
inlineprivate

Define cone geometry.

Cone is created by creating one disk (cap) and a vertex, and generating triangles between them

Parameters
subdivisionsNumber of subdivisons for cap and body
float Tucano::Shapes::Cone::getHeight ( void  )
inline

Returns cone cone_height.

float Tucano::Shapes::Cone::getRadius ( void  )
inline

Returns cone cone_radius.

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

Render cone.

void Tucano::Shapes::Cone::setColor ( const Eigen::Vector4f &  c)
inline

Sets the cone color.

Parameters
cNew color

Member Data Documentation

Eigen::Vector4f Tucano::Shapes::Cone::color
private

Cone color.

float Tucano::Shapes::Cone::cone_height
private

Cone cone_height.

float Tucano::Shapes::Cone::cone_radius
private

Cone cone_radius.

Tucano::Shader Tucano::Shapes::Cone::cone_shader
private

Shader to render cone.


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