Generator of centered UV-sphere shape with unit diameter. More...
#include <eagine/shapes/twisted_torus.hpp>
Public Member Functions | |
auto | vertex_count () -> span_size_t override |
Returns the shaped vertex count. | |
void | attrib_values (vertex_attrib_variant, span< float >) override |
Fetches the vertex attribute data for the specified variant as floats. | |
auto | operation_count (drawing_variant) -> span_size_t override |
Returns the number of drawing instructions for the specified variant. | |
void | instructions (drawing_variant, span< draw_operation > ops) override |
Fetches the drawing operations for the specified drawing variant. | |
auto | bounding_sphere () -> math::sphere< float, true > override |
Returns the bounding sphere for the generated shape. | |
void | ray_intersections (drawing_variant, span< const math::line< float, true >> rays, span< optionally_valid< float >> intersections) override |
Calculates the intersections of the shape geometry with a ray. | |
![]() | |
auto | attrib_bits () noexcept -> vertex_attrib_bits final |
Returns the set of vertex attributes supported by this generator. | |
auto | enable (generator_capability cap, bool value) noexcept -> bool final |
Enables or disables the specified generator capability. | |
auto | is_enabled (generator_capability cap) noexcept -> bool final |
Indicates if the specified generator capability is enabled. | |
auto | attribute_variants (vertex_attrib_kind attrib) -> span_size_t override |
Returns the count of shape attribute variants. | |
auto | variant_name (vertex_attrib_variant) -> string_view override |
Returns the name of the specified attribute variant. | |
auto | values_per_vertex (vertex_attrib_variant vav) -> span_size_t override |
Returns the number of values per vertex for the specified variant. | |
auto | attrib_type (vertex_attrib_variant) -> attrib_data_type override |
Returns the attribute data type for the specified variant. | |
auto | is_attrib_normalized (vertex_attrib_variant) -> bool override |
Indicates if the specified variant attribute values should be normalized. | |
void | attrib_values (vertex_attrib_variant, span< byte >) override |
Fetches the vertex attribute data for the specified variant as bytes. | |
void | attrib_values (vertex_attrib_variant, span< std::int16_t >) override |
Fetches the vertex attribute data for the specified variant as integers. | |
void | attrib_values (vertex_attrib_variant, span< std::int32_t >) override |
Fetches the vertex attribute data for the specified variant as integers. | |
void | attrib_values (vertex_attrib_variant, span< std::uint16_t >) override |
Fetches the vertex attribute data for the specified variant as integers. | |
void | attrib_values (vertex_attrib_variant, span< std::uint32_t >) override |
Fetches the vertex attribute data for the specified variant as integers. | |
auto | draw_variant_count () -> span_size_t override |
Returns the count of possible shape draw variants. | |
auto | index_type (drawing_variant) -> index_data_type override |
Returns the index data type for the specified draw variant. | |
auto | index_count (drawing_variant) -> span_size_t override |
Returns the index count for the specified drawing variant. | |
void | indices (drawing_variant, span< std::uint8_t > dest) override |
Fetches the index data for the specified drawing variant. | |
void | indices (drawing_variant, span< std::uint16_t > dest) override |
Fetches the index data for the specified drawing variant. | |
void | indices (drawing_variant, span< std::uint32_t > dest) override |
Fetches the index data for the specified drawing variant. | |
![]() | |
auto | has (vertex_attrib_kind attrib) noexcept |
Tests if the specified attribute is supported by this generator. | |
auto | disable (generator_capability cap) noexcept |
Disables the specified generator capability. | |
auto | strips_allowed () noexcept -> bool |
Indicates if element strips are enabled. | |
auto | fans_allowed () noexcept -> bool |
Indicates if element fans are enabled. | |
auto | primitive_restart () noexcept -> bool |
Indicates if primitive restart is enabled. | |
auto | find_variant (vertex_attrib_kind attrib, string_view name) -> vertex_attrib_variant |
Finds attribute variant by kind and name. | |
auto | value_count (vertex_attrib_variant vav) -> span_size_t |
Returns the total number of values for the specified attribute variant. | |
auto | draw_variant (span_size_t index) -> drawing_variant |
Returns the identifier of the drawing variant at the specified index. | |
auto | index_type () -> index_data_type |
Returns the index data type for the default draw variant. | |
auto | index_count () |
Returns the index count for the default drawing variant. | |
void | indices (span< std::uint8_t > dest) |
Fetches the index data for the default drawing variant. | |
void | indices (span< std::uint16_t > dest) |
Fetches the index data for the default drawing variant. | |
void | indices (span< std::uint32_t > dest) |
Fetches the index data for the default drawing variant. | |
auto | operation_count () |
Returns the number of drawing instructions for the default variant. | |
void | instructions (span< draw_operation > dest) |
Fetches the drawing operations for the default drawing variant. | |
void | ray_intersections (span< const math::line< float, true >> rays, span< optionally_valid< float >> intersections) |
Calculates the intersections of the shape geometry with a ray. | |
auto | ray_intersection (drawing_variant var, const math::line< float, true > &ray) -> optionally_valid< float > |
Returns the parameter for the nearest intersection with a ray. | |
auto | ray_intersection (const math::line< float, true > &ray) -> optionally_valid< float > |
Returns the parameter for the nearest intersection with a ray. | |
![]() | |
constexpr | interface (const interface &)=delete |
Not copyable. | |
auto | operator= (interface &&)=delete |
Not move assignable. | |
auto | operator= (const interface &)=delete |
Not copy assignable. | |
Additional Inherited Members | |
![]() | |
constexpr | interface () noexcept=default |
Default constructible by derived. | |
constexpr | interface (interface &&) noexcept=default |
Move constructible by derived. | |
Generator of centered UV-sphere shape with unit diameter.