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

Class to render Normals from another vertex array. More...

#include <Normals.h>

Inheritance diagram for sf::xgl::Normals:
Collaboration diagram for sf::xgl::Normals:

Classes

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

Public Member Functions

bool isTarget (const VertexArrayBase *object) const
 Checks if the passed object is where the normals are taken from.
 
void setTarget (const VertexArrayBase *object)
 Sets the target for this and regenerates the data.
 
 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::Normals::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 Normals from another vertex array.

Member Function Documentation

◆ generate()

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

Overridden from base class.

Implements sf::xgl::VertexArrayBase.

◆ isTarget()

bool sf::xgl::Normals::isTarget ( const VertexArrayBase object) const

Checks if the passed object is where the normals are taken from.

◆ modifyContext()

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

Overridden from base class to set the line width.

Reimplemented from sf::xgl::VertexArrayBase.

◆ setTarget()

void sf::xgl::Normals::setTarget ( const VertexArrayBase object)

Sets the target for this and regenerates the data.

◆ TVertexArray()

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

Constructor.

Parameters
spShader program instance.

Member Data Documentation

◆ f

struct sf::xgl::Normals::Parameters sf::xgl::Normals::f

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