44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
/*
|
|
==============================================================================
|
|
|
|
OpenGLUtils.cpp
|
|
Created: 17 Jan 2026 11:41:12am
|
|
Author: esca
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
#include "OpenGLUtils.h"
|
|
#include <cstring>
|
|
#include <vector>
|
|
#include <math.h>
|
|
|
|
void svCol(Vertex &v, float newColour[4]){
|
|
memcpy(&v.colour, &newColour, 4*sizeof(float));
|
|
}
|
|
|
|
void setColour(std::vector<Vertex> &verticeList, float newColour[4]){
|
|
for(Vertex v : verticeList){
|
|
svCol(v, newColour);
|
|
}
|
|
}
|
|
|
|
void vTransform(std::vector<Vertex> &verticeList, int transform[2]){
|
|
for(Vertex &v : verticeList){
|
|
v.position[0] = transform[0];
|
|
v.position[1] = transform[1];
|
|
}
|
|
}
|
|
|
|
std::vector<Vertex> generateSineWave(int numVertices, float angle, float startingColour[4]){
|
|
//generates one cycle of a sine wave with vertices numVertices and starting at angle angle
|
|
|
|
std::vector<Vertex> ret(numVertices, Vertex{});
|
|
for (int i = 0; i<numVertices; i++){
|
|
ret[i].position[0] = (float)i*1/numVertices;
|
|
ret[i].position[1] = sin(angle+i*(2*M_PI/numVertices));
|
|
svCol(ret[i], startingColour);
|
|
}
|
|
return ret;
|
|
}
|