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

Class to render a line in OpenGL. More...

#include <Line.h>

Inheritance diagram for sf::xgl::Line:
Collaboration diagram for sf::xgl::Line:

Classes

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

Public Member Functions

 TVertexArray (ShaderProgram *sp)
 Constructor.
 
- Public Member Functions inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition >
 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::Line::Parameters f
 
- Public Attributes inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition >
QOpenGLBuffer vbo
 Holds the vertex buffer object.
 
QOpenGLBuffer ebo
 Holds the index buffer object for solid drawing.
 

Protected Member Functions

void generate () override
 Overridden from base class.
 
void modifyContext (bool before, bool draw, size_t mode_index) override
 Overridden from base class to set the line width.
 
- Protected Member Functions inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition >
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().
 
bool isTriggered () const
 Gets the flag if data is to be (re-)generated. Flag is set to True initially.
 

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 >
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 Attributes inherited from sf::xgl::TVertexArray< VertexArrayBase::vmPosition >
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 line in OpenGL.

Member Function Documentation

◆ generate()

void sf::xgl::Line::generate ( )
overrideprotectedvirtual

Overridden from base class.

Implements sf::xgl::VertexArrayBase.

◆ modifyContext()

void sf::xgl::Line::modifyContext ( bool  before,
bool  draw,
size_t  mode_index 
)
overrideprotectedvirtual

Overridden from base class to set the line width.

Reimplemented from sf::xgl::VertexArrayBase.

◆ TVertexArray()

sf::xgl::TVertexArray< VertexMembers >::TVertexArray ( ShaderProgram sp)
explicit

Constructor.

Parameters
spShader program instance.

Member Data Documentation

◆ f

struct sf::xgl::Line::Parameters sf::xgl::Line::f

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