Scanframe Modular Application 0.1.0
Loading...
Searching...
No Matches
sf::xgl::Tube Class Referencefinal

Class to render a cylinder in OpenGL. Height of the cone is along the Z-axis where the tip is at (0, 0, 0). More...

#include <Tube.h>

Inheritance diagram for sf::xgl::Tube:
[legend]
Collaboration diagram for sf::xgl::Tube:
[legend]

Classes

struct  Parameters
 Parameters for generating the data. More...

Public Member Functions

 Tube (ShaderProgram *sp)
 Qt constructor only accepting a shader program.
void generate () override
 Overridden from base class.
void setSize (float height, float radius)
 Sets new sizes.
Public Member Functions inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition|VertexArrayBase::vmNormal >
 TVertexArray (ShaderProgram *sp)
 Constructor.
 ~TVertexArray () override
 Virtual destructor.
ShaderProgram * shaderProgram ()
 Gets the associated shader program.
void draw () final
 Overridden from base class VertexArrayBase. Uses new style OpenGL with a shader program.
void paint () final
 Overridden from base class VertexArrayBase. Uses old style OpenGL without a shader program.
bool hasColor () const final
 Overridden from base class VertexArrayBase.
bool hasTexture () const final
 Overridden from base class VertexArrayBase.
void setTexture (QOpenGLTexture *texture)
 Assigns the texture.
NormalsDataType getNormalsData () const override
 Overridden from base class.
void clearData () override
 Clears the data to generate array buffers.
Public Member Functions inherited from sf::xgl::VertexArrayBase
 VertexArrayBase (QOpenGLShaderProgram *parent)
 Default Qt object constructor. When the shader program is deleted, all vertex arrays referencing it should also be deleted.
void triggerGenerate ()
 Sets a flag to trigger data generation when the data is called for.
void setRenderOptions (RenderOptions options)
 Modify the render options which will trigger a regeneration of the vertices and indices.
RenderOptions getRenderOptions () const
 Gets the render options.

Public Attributes

struct sf::xgl::Tube::Parameters parameters
Public Attributes inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition|VertexArrayBase::vmNormal >
QOpenGLBuffer vbo
 Holds the vertex buffer object.
QOpenGLBuffer ebo
 Holds the index buffer object for solid drawing.

Additional Inherited Members

Public Types inherited from sf::xgl::VertexArrayBase
enum  EVertexMember : VertexMember { vmPosition = 1 << 0 , vmNormal = 1 << 1 , vmColor = 1 << 2 , vmTexCoord = 1 << 3 }
 Possible member of a vertex structure. Where the position cannot be omitted as part of the vertex. More...
enum  EDrawMode { dmDrawArrays , dmDrawElements }
 Drawing mode of by the template. More...
enum  ERenderOption : int { roNone = 0 , roWires = 1 << 0 , roNormals = 1 << 1 }
 Render options. More...
typedef unsigned VertexMember
 Type used to describe vertex structure members.
typedef TVector< std::pair< vector3f, vector3f > > NormalsDataType
 Type for extracting normals from all used vertices.
Static Public Member Functions inherited from sf::xgl::VertexArrayBase
static const Color & getDefaultColor ()
 Gets the default color used by the vertex structures when not set by the derived class. Created to have a single location for the default color.
An example of how it is used:
static void setDefaultColor (const QColor &color)
 Sets the default color used by the vertex structures when not set by the derived class.
Protected Types inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition|VertexArrayBase::vmNormal >
using Vertex
 Conditional vertex structure type. Used for memory locations.
typedef TVector< GLuint > IndexVectorType
 Type definition for storing indices.
Protected Member Functions inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition|VertexArrayBase::vmNormal >
bool setup () override
 Sets up the vertex array for the OpenGL context.
void setupLayout ()
 Sets up the layout of the Vertex structure for OpenGL.
void setAttribPointer (ShaderProgram::Attribute sa, size_t offset)
 Makes a call to setVertexAttribPointer().
void callModifyContext (const ModeRange &mr, bool before, bool draw, size_t mode_index)
 Calls the function modifyContext when overridden.
bool checkData () const
 Check the data integrity of indices to vertices.
Protected Member Functions inherited from sf::xgl::VertexArrayBase
bool callGenerate ()
 Makes a call to virtual function generate() when the _triggerGenerate flag is set using triggerGenerate().
virtual void modifyContext (bool before, bool draw, size_t mode_index)
 Allows modifying the OpenGL context before and after drawing.
bool isTriggered () const
 Gets the flag if data is to be (re-)generated. Flag is set to True initially.
Protected Attributes inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition|VertexArrayBase::vmNormal >
TVector< Vertex > _vertices
 Holds the data of the vertices before being copied to OpenGL memory.
IndexVectorType _indices
 Holds the data of the indices for solid and wire drawing.
TVector< ModeRange > _modes
 Modes to call glDrawArrays() or glDrawElements() depending on the _indices member not being empty.

Detailed Description

Class to render a cylinder in OpenGL. Height of the cone is along the Z-axis where the tip is at (0, 0, 0).

Constructor & Destructor Documentation

◆ Tube()

sf::xgl::Tube::Tube ( ShaderProgram * sp)
explicit

Qt constructor only accepting a shader program.

Member Function Documentation

◆ generate()

void sf::xgl::Tube::generate ( )
overridevirtual

Overridden from base class.

Implements sf::xgl::VertexArrayBase.

◆ setSize()

void sf::xgl::Tube::setSize ( float height,
float radius )

Sets new sizes.

Member Data Documentation

◆ parameters

struct sf::xgl::Tube::Parameters sf::xgl::Tube::parameters

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