MusicSpectrum  1.0.0
Referência da Classe Plane

#include <plane.hpp>

Membros Públicos

std::vector< GLuint > genIndices ()
 
std::vector< glm::vec3 > genVertices ()
 
 Plane (GLfloat w, GLfloat h, GLint num_seg)
 

Atributos Privados

GLfloat width
 
GLfloat height
 
GLint num_segments
 

Descrição detalhada

A classe Plane representa um plano retangular simples no espaço 3D.

Esta classe gera a forma geométrica de um plano retangular com uma largura, altura e número de segmentos dados. Ela fornece funções para gerar índices e vértices para renderizar o plano usando OpenGL.

Construtores e Destrutores

◆ Plane()

Plane::Plane ( GLfloat  w,
GLfloat  h,
GLint  num_seg 
)

Construtor da classe Plane com as dimensões e número de segmentos especificados.

w: A largura do plano.

h: A altura do plano.

num_seg: O número de segmentos (subdivisões) ao longo de cada lado do plano.

15  : width(w), height(h), num_segments(num_seg) {}
GLint num_segments
Definition: plane.hpp:19
GLfloat height
Definition: plane.hpp:18
GLfloat width
Definition: plane.hpp:17

Funções membros

◆ genIndices()

std::vector< GLuint > Plane::genIndices ( )

Gera índices para renderizar o plano.

Esta função gera um vetor de índices representando a ordem em que os vértices devem ser renderizados para construir a geometria do plano.

std::vector<GLuint>: Um vetor de índices para renderizar o plano.

25  {
26  std::vector<GLuint> indices;
27  indices.reserve(2 * num_segments * (num_segments + 1));
28  for (GLint i = 0; i < num_segments; ++i) {
29  GLint row = i * (num_segments + 1);
30  for (GLint j = 0; j < num_segments; ++j) {
31  indices.push_back(row + j);
32  }
33  }
34  return indices;
35 }

◆ genVertices()

std::vector< glm::vec3 > Plane::genVertices ( )

Gera vértices para renderizar o plano.

Esta função gera um vetor de vértices representando a geometria do plano com base em suas dimensões e número de segmentos.

std::vector<glm::vec3>: Um vetor de vértices para renderizar o plano.

46  {
47  std::vector<glm::vec3> vertices;
48  vertices.reserve((num_segments + 1) * (num_segments + 1));
49 
50  GLfloat halfWidth = width / 2.0f;
51  GLfloat halfHeight = height / 2.0f;
52 
53  for (GLint i = 0; i <= num_segments; ++i) {
54  GLfloat t = static_cast<GLfloat>(i) / num_segments;
55  GLfloat x = t * width - halfWidth;
56  for (GLint j = 0; j <= num_segments; ++j) {
57  GLfloat s = static_cast<GLfloat>(j) / num_segments;
58  GLfloat z = s * height - halfHeight;
59  vertices.emplace_back(x, 0.0f, z);
60  }
61  }
62 
63  return vertices;
64 }

Atributos

◆ height

GLfloat Plane::height
private

◆ num_segments

GLint Plane::num_segments
private

◆ width

GLfloat Plane::width
private

A documentação para essa classe foi gerada a partir dos seguintes arquivos: