MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Bounds.hpp File Reference
+ Include dependency graph for Bounds.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MayaFlux::Kinesis::AABB2D
 Axis-aligned bounding rectangle in a 2D coordinate space. More...
 
struct  MayaFlux::Kinesis::AABB3D
 Axis-aligned bounding box in 3D world space. More...
 
struct  MayaFlux::Kinesis::BoundingSphere
 Spherical fast-reject hint in world space. More...
 

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 

Concepts

concept  MayaFlux::Kinesis::HasBounds
 Any type carrying a spatial footprint usable as a placement anchor.
 

Enumerations

enum class  MayaFlux::Kinesis::Align : uint8_t { MayaFlux::Kinesis::Center , MayaFlux::Kinesis::Start , MayaFlux::Kinesis::End , MayaFlux::Kinesis::Span }
 Cross-axis alignment of a placed region against its anchor. More...
 
enum class  MayaFlux::Kinesis::Side : uint8_t {
  MayaFlux::Kinesis::Right , MayaFlux::Kinesis::Left , MayaFlux::Kinesis::Above , MayaFlux::Kinesis::Below ,
  MayaFlux::Kinesis::Over
}
 Direction of a placed region relative to its anchor. More...
 

Functions

template<HasBounds T>
AABB2D MayaFlux::Kinesis::bounds_of (const T &obj)
 Extract the anchor region from any HasBounds object.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::circular_bounds (glm::vec2 center, float radius) noexcept
 Containment test for a circle.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::circular_bounds (glm::vec3 center, float radius) noexcept
 Containment test for a sphere.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::convex_region (std::span< const std::pair< glm::vec3, float > > planes)
 Containment test for a convex volume defined by inward-facing half-planes.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::extruded_polygon_region (std::span< const glm::vec2 > footprint, float y_min, float y_max)
 Containment test for a vertically extruded 2D polygon.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::intersect_bounds (std::function< bool(glm::vec2)> a, std::function< bool(glm::vec2)> b)
 Intersection of two containment tests.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::intersect_bounds (std::function< bool(glm::vec3)> a, std::function< bool(glm::vec3)> b)
 Intersection of two 3D containment tests.
 
glm::uvec2 MayaFlux::Kinesis::ndc_size_to_pixels (const AABB2D &region, uint32_t width, uint32_t height)
 Convert an NDC AABB's extent to integer pixel dimensions.
 
AABB2D MayaFlux::Kinesis::place (AABB2D anchor, Side side, float w, float h, float gap=0.F, Align align=Align::Center) noexcept
 Compute a region of size (w, h) positioned relative to anchor.
 
template<HasBounds A>
AABB2D MayaFlux::Kinesis::place (const A &anchor, Side side, float w, float h, float gap=0.F, Align align=Align::Center)
 place() accepting any HasBounds anchor.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::polygon_bounds (std::span< const glm::vec2 > vertices)
 Containment test for a convex or concave polygon.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::stroke_bounds (std::span< const glm::vec2 > points, float half_thickness)
 Containment test for a polyline with a uniform half-thickness.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::subtract_bounds (std::function< bool(glm::vec2)> a, std::function< bool(glm::vec2)> b)
 Difference of two containment tests.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::subtract_bounds (std::function< bool(glm::vec3)> a, std::function< bool(glm::vec3)> b)
 Difference of two 3D containment tests.
 
std::function< bool(glm::vec2)> MayaFlux::Kinesis::union_bounds (std::function< bool(glm::vec2)> a, std::function< bool(glm::vec2)> b)
 Union of two containment tests.
 
std::function< bool(glm::vec3)> MayaFlux::Kinesis::union_bounds (std::function< bool(glm::vec3)> a, std::function< bool(glm::vec3)> b)
 Union of two 3D containment tests.