BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
RealSpace::Buffer Class Referencefinal
Inheritance diagram for RealSpace::Buffer:
[legend]
Collaboration diagram for RealSpace::Buffer:
[legend]

Public Member Functions

 Buffer (Geometry const &)
 
void draw ()
 

Private Attributes

QOpenGLBuffer m_glBuffer
 
QOpenGLVertexArrayObject m_vao
 
int m_vertexCount
 

Detailed Description

Definition at line 28 of file buffer.h.

Constructor & Destructor Documentation

◆ Buffer()

RealSpace::Buffer::Buffer ( Geometry const &  geometry)

Definition at line 25 of file buffer.cpp.

26 {
27  initializeOpenGLFunctions();
28 
29  auto& mesh = geometry.m_mesh;
30  m_vertexCount = mesh.count();
31 
32  QOpenGLVertexArrayObject::Binder __(&m_vao);
33 
34  m_glBuffer.create();
35  m_glBuffer.bind();
36  m_glBuffer.allocate(mesh.constData(), m_vertexCount * int(sizeof(Geometry::Vert_Normal)));
37 
38  glEnableVertexAttribArray(0); // vertices
39  glEnableVertexAttribArray(1); // normals
40 
41  glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 2 * sizeof(Vector3D), nullptr);
42  glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 2 * sizeof(Vector3D),
43  reinterpret_cast<void*>(sizeof(Vector3D)));
44 }
QOpenGLBuffer m_glBuffer
Definition: buffer.h:36
int m_vertexCount
Definition: buffer.h:34
QOpenGLVertexArrayObject m_vao
Definition: buffer.h:35

References m_glBuffer, RealSpace::Geometry::m_mesh, m_vao, and m_vertexCount.

Member Function Documentation

◆ draw()

void RealSpace::Buffer::draw ( )

Definition at line 46 of file buffer.cpp.

47 {
48  QOpenGLVertexArrayObject::Binder __(&m_vao);
49  glDrawArrays(GL_TRIANGLES, 0, m_vertexCount);
50 }

References m_vao, and m_vertexCount.

Referenced by RealSpace::Canvas::draw().

Member Data Documentation

◆ m_glBuffer

QOpenGLBuffer RealSpace::Buffer::m_glBuffer
private

Definition at line 36 of file buffer.h.

Referenced by Buffer().

◆ m_vao

QOpenGLVertexArrayObject RealSpace::Buffer::m_vao
private

Definition at line 35 of file buffer.h.

Referenced by Buffer(), and draw().

◆ m_vertexCount

int RealSpace::Buffer::m_vertexCount
private

Definition at line 34 of file buffer.h.

Referenced by Buffer(), and draw().


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