![]() |
Scanframe Modular Application 0.1.0
|
Class to render a circle in OpenGL. More...
#include <Disk.h>
Classes | |
struct | Parameters |
Parameters for generating the data. More... | |
Public Member Functions | |
TVertexArray (ShaderProgram *sp) | |
Constructor. | |
![]() | |
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. | |
![]() | |
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::Disk::Parameters | f |
![]() | |
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. | |
![]() | |
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,. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
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 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 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. | |
![]() | |
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. | |
![]() | |
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. | |
Class to render a circle in OpenGL.
|
overrideprotectedvirtual |
Overridden from base class.
Implements sf::xgl::VertexArrayBase.
|
explicit |
Constructor.
sp | Shader program instance. |
struct sf::xgl::Disk::Parameters sf::xgl::Disk::f |