CPP-TOOLBOX
Loading...
Searching...
No Matches
vertex_geometry.hpp File Reference
#include <glm/glm.hpp>
#include <vector>
#include <cmath>
#include <functional>
#include <stdexcept>
#include <array>
#include "sbpt_generated_includes.hpp"

Go to the source code of this file.

Classes

class  vertex_geometry::NGon
 
class  vertex_geometry::AxisAlignedBoundingBox
 
class  vertex_geometry::AxisAlignedBoundingBox2D
 
class  vertex_geometry::Rectangle
 
class  vertex_geometry::Grid
 

Namespaces

namespace  vertex_geometry
 

Enumerations

enum class  vertex_geometry::TriangulationMode { vertex_geometry::CentralFan , vertex_geometry::VertexFan }
 

Functions

draw_info::IndexedVertexPositions vertex_geometry::triangulate_ngon (const NGon &ngon)
 
draw_info::IndexedVertexPositions vertex_geometry::connect_ngons (const NGon &a, const NGon &b)
 
Rectangle vertex_geometry::expand_rectangle (const Rectangle &rect, float x_expand, float y_expand)
 
Rectangle vertex_geometry::shrink_rectangle (const Rectangle &rect, float x_shrink, float y_shrink)
 
Rectangle vertex_geometry::scale_rectangle_from_left_side (const Rectangle &rect, float x_shrink, float y_shrink)
 
Rectangle vertex_geometry::slide_rectangle (const Rectangle &rect, int x_offset, int y_offset)
 
Rectangle vertex_geometry::get_bounding_rectangle (const std::vector< Rectangle > &rectangles)
 
bool vertex_geometry::circle_intersects_rect (float cx, float cy, float radius, const Rectangle &rect)
 
std::vector< Rectanglevertex_geometry::get_rects_intersecting_circle (const Grid &grid, float cx, float cy, float radius)
 
draw_info::IndexedVertexPositions vertex_geometry::text_grid_to_rect_grid (const std::string &text_grid, const vertex_geometry::Rectangle bounding_rect)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_rectangle_between_2d (const glm::vec2 &p1, const glm::vec2 &p2, float thickness)
 
Rectangle vertex_geometry::create_rectangle_from_corners (const glm::vec3 top_left, const glm::vec3 top_right, const glm::vec3 bottom_left, const glm::vec3 bottom_right)
 
Rectangle vertex_geometry::create_rectangle (float x_pos, float y_pos, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_top_left (const glm::vec3 &top_left, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_top_right (const glm::vec3 &top_right, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_bottom_left (const glm::vec3 &bottom_left, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_bottom_right (const glm::vec3 &bottom_right, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_center_left (const glm::vec3 &center_left, float width, float height)
 
Rectangle vertex_geometry::create_rectangle_from_center (const glm::vec3 &center, float width, float height)
 
std::vector< Rectanglevertex_geometry::subdivide_rectangle (const Rectangle &rect, unsigned int num_subdivisions, bool vertical)
 
std::vector< Rectanglevertex_geometry::vertical_weighted_subdivision (const Rectangle &rect, const std::vector< unsigned int > &weights)
 
std::vector< Rectanglevertex_geometry::horizontal_weighted_subdivision (const Rectangle &rect, const std::vector< unsigned int > &weights)
 
std::vector< Rectanglevertex_geometry::weighted_subdivision (const Rectangle &rect, const std::vector< unsigned int > &weights, bool vertical)
 
std::vector< glm::vec3 > vertex_geometry::generate_rectangle_normals ()
 Generates normals for each corner of a rectangle.
 
std::vector< Rectanglevertex_geometry::generate_grid_rectangles (const glm::vec3 &center_position, float width, float height, int num_rectangles_x, int num_rectangles_y, float spacing)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_grid (const glm::vec3 &center_position, float base_width, float base_height, int num_rectangles_x, int num_rectangles_y, float spacing)
 
std::vector< unsigned int > vertex_geometry::flatten_and_increment_indices (const std::vector< std::vector< unsigned int > > &indices)
 Flattens and increments a collection of index sets.
 
draw_info::IVPNormals vertex_geometry::generate_torus (int major_segments, int minor_segments, float major_radius, float minor_radius)
 
draw_info::IVPNormals vertex_geometry::generate_cube (float size)
 
draw_info::IVPNormals vertex_geometry::generate_box (float size_x, float size_y, float size_z)
 
draw_info::IVPNormals vertex_geometry::generate_cone (int segments, float height, float radius)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_cone_between (const glm::vec3 &base, const glm::vec3 &tip, int segments, float radius)
 
draw_info::IVPNormals vertex_geometry::generate_cylinder (int segments, float height, float radius)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_cylinder_between (const glm::vec3 &p1, const glm::vec3 &p2, int segments, float radius)
 
draw_info::IVPNormals vertex_geometry::generate_icosphere (int subdivisions, float radius)
 
draw_info::IVPNormals vertex_geometry::generate_terrain (float size_x, float size_z, int resolution_x, int resolution_z, float max_height, float base_height, int octaves, float persistence, float scale, float seed)
 
draw_info::IndexedVertexPositions vertex_geometry::connect_points_by_rectangles (const std::vector< glm::vec2 > &points)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_function_visualization (std::function< glm::vec3(double)> f, double t_start, double t_end, double step_size, double finite_diff_delta, float radius, int segments)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_segmented_cylinder (const std::vector< std::pair< glm::vec3, glm::vec3 > > &path, float radius, int segments)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_quad_strip (const std::vector< std::pair< glm::vec3, glm::vec3 > > &lines)
 
void vertex_geometry::merge_ivps (draw_info::IndexedVertexPositions &base_ivp, const draw_info::IndexedVertexPositions &extend_ivp)
 
void vertex_geometry::merge_ivps (draw_info::IndexedVertexPositions &base_ivp, const std::vector< draw_info::IndexedVertexPositions > &extend_ivps)
 
draw_info::IndexedVertexPositions vertex_geometry::merge_ivps (const std::vector< draw_info::IndexedVertexPositions > &ivps)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_unit_cube ()
 
std::vector< glm::vec3 > vertex_geometry::generate_unit_cube_vertices ()
 
std::vector< unsigned int > vertex_geometry::generate_cube_indices ()
 
std::vector< glm::vec3 > vertex_geometry::generate_square_vertices (float center_x, float center_y, float side_length)
 
std::vector< unsigned int > vertex_geometry::generate_square_indices ()
 
draw_info::IndexedVertexPositions vertex_geometry::generate_rectangle (float center_x, float center_y, float width, float height)
 
std::vector< glm::vec3 > vertex_geometry::generate_rectangle_vertices (float center_x, float center_y, float width, float height)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_rectangle (float center_x, float center_y, float center_z, float width, float height)
 
std::vector< glm::vec3 > vertex_geometry::generate_rectangle_vertices_with_z (float center_x, float center_y, float center_z, float width, float height)
 
std::vector< unsigned int > vertex_geometry::generate_rectangle_indices ()
 
std::vector< glm::vec2 > vertex_geometry::generate_rectangle_texture_coordinates ()
 
std::vector< glm::vec2 > vertex_geometry::generate_rectangle_texture_coordinates_flipped_vertically ()
 
std::vector< glm::vec3 > vertex_geometry::generate_rectangle_vertices_3d (const glm::vec3 &center, const glm::vec3 &width_dir, const glm::vec3 &height_dir, float width, float height)
 
std::vector< glm::vec3 > vertex_geometry::generate_rectangle_vertices_from_points (const glm::vec3 &point_a, const glm::vec3 &point_b, const glm::vec3 &surface_normal, float height)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_3d_arrow_with_ratio (const glm::vec3 &start, const glm::vec3 &end, int num_segments, float length_thickness_ratio)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_3d_arrow (const glm::vec3 &start, const glm::vec3 &end, int num_segments, float stem_thickness)
 
std::vector< glm::vec3 > vertex_geometry::generate_arrow_vertices (glm::vec2 start, glm::vec2 end, float stem_thickness, float tip_length)
 Create the points of an arrow pointing from one point to another.
 
std::vector< unsigned int > vertex_geometry::generate_arrow_indices ()
 
std::vector< glm::vec3 > vertex_geometry::scale_vertices (const std::vector< glm::vec3 > &vertices, const glm::vec3 &scale_vector, const glm::vec3 &origin)
 
void vertex_geometry::scale_vertices_in_place (std::vector< glm::vec3 > &vertices, const glm::vec3 &scale_vector, const glm::vec3 &origin)
 
void vertex_geometry::scale_vertices_in_place (std::vector< glm::vec3 > &vertices, float scale_factor)
 
void vertex_geometry::rotate_vertices_in_place (std::vector< glm::vec3 > &vertices, const glm::vec3 &rotation_turns)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_circle (const glm::vec3 center, float radius, unsigned int num_sides)
 
draw_info::IndexedVertexPositions vertex_geometry::generate_n_gon (const glm::vec3 center, float radius, unsigned int num_sides)
 
std::vector< unsigned int > vertex_geometry::generate_n_gon_indices (unsigned int num_sides)
 
std::vector< glm::vec3 > vertex_geometry::generate_n_gon_vertices (const glm::vec3 &center, float radius, unsigned int num_sides)
 generate n equally spaced points on the unit circle
 
draw_info::IndexedVertexPositions vertex_geometry::generate_annulus (float center_x, float center_y, float outer_radius, float inner_radius, int num_segments, float percent)
 
std::vector< glm::vec3 > vertex_geometry::generate_annulus_vertices (float center_x, float center_y, float outer_radius, float inner_radius, int num_segments, float percent)
 
std::vector< unsigned int > vertex_geometry::generate_annulus_indices (int num_segments, float percent)
 
std::vector< glm::vec3 > vertex_geometry::generate_star_vertices (float center_x, float center_y, float outer_radius, float inner_radius, int num_star_tips, bool blunt_tips)
 
std::vector< unsigned int > vertex_geometry::generate_star_indices (int num_star_tips, bool blunt_tips)
 
std::vector< glm::vec3 > vertex_geometry::generate_fibonacci_sphere_vertices (int num_samples, float scale)
 
void vertex_geometry::translate_vertices_in_place (std::vector< glm::vec3 > &vertices, const glm::vec3 &translation)
 
void vertex_geometry::increment_indices_in_place (std::vector< unsigned int > &indices, unsigned int increase)