MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Portal::Forma::Geometry Namespace Reference

Classes

struct  Form
 A geometry function plus everything its realization requires. More...
 

Functions

template<Kinesis::HasBounds B, typename F , typename... Args>
auto at (const B &anchor, F &&factory, Args &&... args) -> decltype(std::forward< F >(factory)(Kinesis::bounds_of(anchor), std::forward< Args >(args)...))
 Call a bounds-taking factory with an anchor's region.
 
Form< glm::vec2 > crosshair (float arm_len=0.04F, glm::vec3 color=glm::vec3(0.9F), float thickness=1.F, float hit_radius=0.05F)
 Geometry function for a crosshair indicator in NDC space.
 
template<typename T >
auto drag_with (std::function< T(glm::vec2)> project, IO::MouseButtons btn=IO::MouseButtons::Left)
 Produce a Form::wire that registers a drag writing a projected cursor position.
 
Form< std::vector< float > > drawable_canvas (Kinesis::AABB2D bounds, glm::vec3 color=glm::vec3(0.8F), float thickness=1.5F)
 Geometry function for a drawable curve canvas in NDC space.
 
auto follow_move ()
 Produce a Form::wire that writes the cursor position on hover.
 
Form< float > horizontal_fader (Kinesis::AABB2D bounds, float handle_w, glm::vec3 track_color=glm::vec3(0.3F), glm::vec3 handle_color=glm::vec3(0.9F))
 Geometry function for a horizontal fader in NDC space.
 
Form< float > level_meter (Kinesis::AABB2D bounds, bool horizontal=true, glm::vec3 fill_color=glm::vec3(0.2F, 0.7F, 0.3F), glm::vec3 track_color=glm::vec3(0.15F))
 Geometry function for a level meter in NDC space.
 
auto paint_over (Kinesis::AABB2D bounds)
 Produce a Form::wire that registers canvas painting over bounds.
 
Form< glm::vec2 > point (glm::vec3 color=glm::vec3(1.0F), float size=10.0F, float hit_radius=0.04F)
 Geometry function for a positioned point in NDC space.
 
Form< glm::vec2 > position_picker (Kinesis::AABB2D bounds, glm::vec3 color=glm::vec3(0.9F), float size=8.0F)
 Geometry function for a 2D position picker in NDC space.
 
auto press_flip (IO::MouseButtons btn=IO::MouseButtons::Left)
 Produce a Form::wire that registers a press flipping a bool state.
 
Form< float > radial (Kinesis::AABB2D region, float angle_start, float angle_end, glm::vec3 color=glm::vec3(0.9F))
 Geometry function for a radial indicator in NDC space.
 
Form< float > stroke_slider (std::span< const glm::vec2 > path, std::shared_ptr< Buffers::FormaBuffer > handle_buf, float half_thickness=0.02F, glm::vec3 track_color=glm::vec3(0.3F), glm::vec3 fill_color=glm::vec3(0.2F, 0.6F, 1.0F), glm::vec3 handle_color=glm::vec3(0.95F), float handle_size=10.0F)
 Geometry function for a value scrubber along an arbitrary polyline.
 
Form< bool > toggle (Kinesis::AABB2D region, glm::vec3 color_off=glm::vec3(0.25F), glm::vec3 color_on=glm::vec3(0.2F, 0.7F, 0.4F))
 Geometry function for a boolean toggle in NDC space.
 
Form< float > vertical_fader (Kinesis::AABB2D bounds, float handle_h, glm::vec3 track_color=glm::vec3(0.3F), glm::vec3 handle_color=glm::vec3(0.9F))
 Geometry function for a vertical fader in NDC space.
 
void wire_canvas_drag (Context &ctx, uint32_t id, std::shared_ptr< MappedState< std::vector< float > > > state, Kinesis::AABB2D bounds)
 Wire drag interaction for a drawable canvas element.
 
template<typename T >
void wire_drag (Context &ctx, uint32_t id, std::shared_ptr< MappedState< T > > state, std::function< T(glm::vec2)> project, IO::MouseButtons btn=IO::MouseButtons::Left)
 Register a drag handler writing a projected cursor position to state.
 
template<typename V >
void write_verts (std::vector< uint8_t > &out, const std::vector< V > &verts)
 Write a vertex array into a GeometryFn output buffer.
 
template<typename V >
requires std::is_trivially_copyable_v<V> && (!std::ranges::range<V>)
void write_verts (std::vector< uint8_t > &out, const V &v)
 
template<typename V >
requires std::ranges::contiguous_range<V> && std::is_trivially_copyable_v<std::ranges::range_value_t<V>>
void write_verts (std::vector< uint8_t > &out, const V &verts)
 Write a contiguous range of trivially-copyable vertices into a GeometryFn output buffer.