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:
Collaboration diagram for sf::xgl::Tube:

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.
 
ShaderProgramshaderProgram ()
 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 (QObject *parent=nullptr)
 Default Qt object constructor.
 
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 can not 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 ColorgetDefaultColor ()
 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 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 = std::conditional_t< VertexMembers==vmPosition, VT_Position, std::conditional_t< VertexMembers==(vmPosition|vmColor), VT_PositionColor, std::conditional_t< VertexMembers==(vmPosition|vmNormal), VT_PositionNormal, std::conditional_t< VertexMembers==(vmPosition|vmNormal|vmColor), VT_PositionNormalColor, std::conditional_t< VertexMembers==(vmPosition|vmTexCoord), VT_PositionTexture, std::conditional_t< VertexMembers==(vmPosition|vmNormal|vmTexCoord), VT_PositionNormalTexture, std::conditional_t< VertexMembers==(vmPosition|vmNormal|vmColor|vmTexCoord), VT_PositionNormalColorTexture, void > > > > > > >
 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 #_generateFlag 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: