MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ generate_quad_with_transform()

void MayaFlux::Buffers::TextureBuffer::generate_quad_with_transform ( )
private

Definition at line 220 of file TextureBuffer.cpp.

221{
224 "TextureBuffer: using custom vertices, skipping transform");
225 return;
226 }
227
228 float cos_rot = std::cos(m_rotation);
229 float sin_rot = std::sin(m_rotation);
230
231 std::vector<QuadVertex> transformed(4);
232 for (size_t i = 0; i < 4; ++i) {
233 glm::vec3 pos = base_quad[i].position;
234
235 pos.x *= m_scale.x;
236 pos.y *= m_scale.y;
237
238 float rotated_x = pos.x * cos_rot - pos.y * sin_rot;
239 float rotated_y = pos.x * sin_rot + pos.y * cos_rot;
240
241 pos.x = rotated_x + m_position.x;
242 pos.y = rotated_y + m_position.y;
243
244 transformed[i].position = pos;
245 transformed[i].texcoord = base_quad[i].texcoord;
246 }
247
248 m_vertex_bytes.resize(transformed.size() * sizeof(QuadVertex));
249 std::memcpy(m_vertex_bytes.data(), transformed.data(), m_vertex_bytes.size());
250
252 "TextureBuffer: regenerated quad with transform (pos={},{}, scale={},{}, rot={})",
254}
#define MF_DEBUG(comp, ctx,...)
std::vector< uint8_t > m_vertex_bytes
const std::vector< TextureBuffer::QuadVertex > base_quad
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Buffers::base_quad, MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, m_position, m_rotation, m_scale, m_uses_custom_vertices, m_vertex_bytes, and MF_DEBUG.