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

◆ generate_quad()

QuadGeometry MayaFlux::Kinesis::generate_quad ( glm::vec2  position = glm::vec2(0.0F),
glm::vec2  scale = glm::vec2(1.0F),
float  rotation = 0.0F 
)

Generate a textured quad centred on the origin.

Parameters
positionTranslation in XY (z remains 0). Default: no translation.
scaleExtents in XY before rotation. Default: {1,1} → NDC-spanning quad.
rotationRotation angle in radians around Z axis. Default: 0.
Returns
QuadGeometry ready for TRIANGLE_STRIP draw.

UV origin is bottom-left (0,1) to match Vulkan image layout. Base vertices sit at ±scale before rotation and translation are applied.

Definition at line 665 of file GeometryPrimitives.cpp.

666{
667 const float cos_r = std::cos(rotation);
668 const float sin_r = std::sin(rotation);
669
670 QuadGeometry out { .layout = Kakshya::VertexLayout::for_textured_quad() };
671
672 for (size_t i = 0; i < 4; ++i) {
673 const float x = k_unit_quad[i].position.x * scale.x;
674 const float y = k_unit_quad[i].position.y * scale.y;
675
676 out.vertices[i].position = {
677 x * cos_r - y * sin_r + position.x,
678 x * sin_r + y * cos_r + position.y,
679 0.0F,
680 };
681 out.vertices[i].texcoord = k_unit_quad[i].texcoord;
682 }
683
684 return out;
685}
Textured quad vertex data together with its semantic layout descriptor.

References generate_quad(), and MayaFlux::Kinesis::QuadGeometry::layout.

Referenced by MayaFlux::Buffers::TextureBuffer::generate_default_quad(), MayaFlux::Buffers::NodeTextureBuffer::generate_fullscreen_quad(), generate_quad(), and MayaFlux::Buffers::TextureBuffer::generate_quad_with_transform().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: