Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Tikz_Scene Class Reference

High-level scene wrapper to compose objects and algorithm visualizations. More...

#include <tikzgeom_scene.H>

Collaboration diagram for Aleph::Tikz_Scene:
[legend]

Public Member Functions

 Tikz_Scene (const double width_mm, const double height_mm, const double xoffset_mm=0.0, const double yoffset_mm=0.0, const bool squarize=true)
 
Tikz_Planeplane ()
 
const Tikz_Planeplane () const
 
bool squarize () const
 
void set_squarize (const bool value)
 
Tikz_Sceneclear ()
 
Tikz_Sceneput_cartesian_axis ()
 
Tikz_Sceneremove_cartesian_axis ()
 
Tikz_Sceneput_coordinate_grid (const double step_x=1.0, const double step_y=1.0, const bool draw_ticks=true)
 
Tikz_Sceneremove_coordinate_grid ()
 
Tikz_Sceneset_default_style (const Tikz_Style &style)
 
Tikz_Sceneset_axis_style (const Tikz_Style &style)
 
Tikz_Sceneset_grid_style (const Tikz_Style &style)
 
Tikz_Sceneset_point_radius_mm (const double radius_mm)
 
Tikz_Sceneenable_native_tikz_layers (const bool enabled=true)
 
Tikz_Sceneenable_auto_legend (const bool enabled=true)
 
Tikz_Sceneadd_legend_entry (const std::string &label, const Tikz_Style &style)
 
Tikz_Sceneclear_legend ()
 
Tikz_Sceneregister_tikz_style (const std::string &name, const Tikz_Style &style)
 
template<typename Geom >
Tikz_Sceneadd (const Geom &object)
 
template<typename Geom >
Tikz_Sceneadd (const Geom &object, const Tikz_Style &style, const int layer=Tikz_Plane::Layer_Default)
 
Tikz_Sceneadd_points (const Array< Point > &points, const Tikz_Style &style=tikz_points_style("black"), const int layer=Tikz_Plane::Layer_Default)
 
Tikz_Sceneadd_points (const DynList< Point > &points, const Tikz_Style &style=tikz_points_style("black"), const int layer=Tikz_Plane::Layer_Default)
 
Tikz_Sceneadd_polygons (const Array< Polygon > &polys, const Tikz_Style &style=tikz_wire_style("black", true), const int layer=Tikz_Plane::Layer_Default)
 
template<typename Points , typename HullAlgorithm , typename... Args>
Polygon visualize_convex_hull (const Points &points, HullAlgorithm &&algorithm, Args &&... args)
 
template<typename... Args>
Polygon visualize_convex_intersection (Args &&... args)
 
template<typename... Args>
Array< Polygonvisualize_boolean_operation (Args &&... args)
 
template<typename... Args>
auto visualize_voronoi (Args &&... args)
 
template<typename... Args>
auto visualize_power_diagram (Args &&... args)
 
template<typename... Args>
auto visualize_segment_arrangement (Args &&... args)
 
template<typename... Args>
DynList< Pointvisualize_shortest_path_in_polygon (Args &&... args)
 
template<typename... Args>
ShortestPathDebugResult visualize_shortest_path_with_portals (Args &&... args)
 
template<typename... Args>
Array< Polygonvisualize_convex_decomposition (Args &&... args)
 
template<typename... Args>
AlphaShape::Result visualize_alpha_shape (Args &&... args)
 
template<typename... Args>
auto visualize_delaunay (Args &&... args)
 
template<typename... Args>
auto visualize_regular_triangulation (Args &&... args)
 
template<typename... Args>
auto visualize_closest_pair (Args &&... args)
 
template<typename... Args>
auto visualize_rotating_calipers (Args &&... args)
 
template<typename... Args>
auto visualize_half_plane_intersection (Args &&... args)
 
template<typename... Args>
auto visualize_minkowski_sum (Args &&... args)
 
template<typename... Args>
auto visualize_monotone_triangulation (Args &&... args)
 
template<typename... Args>
auto visualize_visibility_polygon (Args &&... args)
 
template<typename... Args>
auto visualize_line_sweep (Args &&... args)
 
template<typename... Args>
auto visualize_kdtree_partitions (Args &&... args)
 
template<typename... Args>
auto visualize_range_tree (Args &&... args)
 
template<typename... Args>
auto visualize_range_tree_query (Args &&... args)
 
template<typename... Args>
auto visualize_aabb_tree (Args &&... args)
 
template<typename... Args>
auto visualize_aabb_tree_query (Args &&... args)
 
template<typename... Args>
void put_funnel_trace_step (Args &&... args)
 
template<typename Callable >
decltype(autorun (Callable &&callable)
 
template<typename Callable >
decltype(autorun (Callable &&callable) const
 
void draw (std::ostream &output) const
 
std::string to_tikz () const
 
void draw_beamer_frame (std::ostream &output, const std::string &frame_title="TikZ Scene", const std::string &frame_options="t") const
 
void draw_standalone (std::ostream &output, const Tikz_Standalone_Document_Options &options={}) const
 
std::string to_standalone (const Tikz_Standalone_Document_Options &options={}) const
 
void draw_beamer (std::ostream &output, const Tikz_Beamer_Document_Options &options={}) const
 
std::string to_beamer (const Tikz_Beamer_Document_Options &options={}) const
 
void draw_handout (std::ostream &output, const Tikz_Beamer_Document_Options &options={}) const
 
std::string to_handout (const Tikz_Beamer_Document_Options &options={}) const
 

Static Public Member Functions

static void draw_beamer_overlays (std::ostream &output, const std::vector< Tikz_Scene > &steps, const Tikz_Beamer_Document_Options &options={})
 Export multiple scenes as beamer overlays (\\only<k>{...}) in one frame.
 
static std::string to_beamer_overlays (const std::vector< Tikz_Scene > &steps, const Tikz_Beamer_Document_Options &options={})
 String variant of draw_beamer_overlays.
 
static void draw_handout_overlays (std::ostream &output, const std::vector< Tikz_Scene > &steps, const Tikz_Beamer_Document_Options &options={})
 Export multiple scenes as handout overlays (forces beamer[handout]).
 
static std::string to_handout_overlays (const std::vector< Tikz_Scene > &steps, const Tikz_Beamer_Document_Options &options={})
 String variant of draw_handout_overlays.
 

Private Member Functions

void draw_beamer_document (std::ostream &output, const Tikz_Beamer_Document_Options &options, const bool handout_mode) const
 

Static Private Member Functions

static std::string compose_beamer_class_options (const bool handout_mode, const std::string &class_options)
 
static void draw_beamer_document_preamble (std::ostream &output, const Tikz_Beamer_Document_Options &options, const bool handout_mode)
 
static void draw_beamer_document_epilogue (std::ostream &output)
 
static void draw_beamer_frame_begin (std::ostream &output, const std::string &frame_title, const std::string &frame_options)
 
static void draw_beamer_overlays_document (std::ostream &output, const std::vector< Tikz_Scene > &steps, const Tikz_Beamer_Document_Options &options, const bool handout_mode)
 

Private Attributes

Tikz_Plane plane_
 
bool squarize_ = true
 

Detailed Description

High-level scene wrapper to compose objects and algorithm visualizations.

Tikz_Scene owns a Tikz_Plane and exposes:

  • object insertion (add),
  • algorithm wrappers (visualize_*), and
  • export helpers (draw, to_tikz, draw_standalone, to_standalone, draw_beamer, draw_handout, overlay deck helpers).

This keeps a single interface when a figure combines multiple geometric layers (inputs, intermediate states, final outputs, annotations).

Definition at line 80 of file tikzgeom_scene.H.

Constructor & Destructor Documentation

◆ Tikz_Scene()

Aleph::Tikz_Scene::Tikz_Scene ( const double  width_mm,
const double  height_mm,
const double  xoffset_mm = 0.0,
const double  yoffset_mm = 0.0,
const bool  squarize = true 
)
inline

Definition at line 175 of file tikzgeom_scene.H.

Member Function Documentation

◆ add() [1/2]

template<typename Geom >
Tikz_Scene & Aleph::Tikz_Scene::add ( const Geom object)
inline

Definition at line 280 of file tikzgeom_scene.H.

References plane_, and Aleph::put_in_plane().

◆ add() [2/2]

template<typename Geom >
Tikz_Scene & Aleph::Tikz_Scene::add ( const Geom object,
const Tikz_Style style,
const int  layer = Tikz_Plane::Layer_Default 
)
inline

Definition at line 287 of file tikzgeom_scene.H.

References plane_, and Aleph::put_in_plane().

◆ add_legend_entry()

Tikz_Scene & Aleph::Tikz_Scene::add_legend_entry ( const std::string &  label,
const Tikz_Style style 
)
inline

Definition at line 259 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::add_legend_entry(), and plane_.

◆ add_points() [1/2]

Tikz_Scene & Aleph::Tikz_Scene::add_points ( const Array< Point > &  points,
const Tikz_Style style = tikz_points_style("black"),
const int  layer = Tikz_Plane::Layer_Default 
)
inline

Definition at line 295 of file tikzgeom_scene.H.

References plane_, and Aleph::put_points().

◆ add_points() [2/2]

Tikz_Scene & Aleph::Tikz_Scene::add_points ( const DynList< Point > &  points,
const Tikz_Style style = tikz_points_style("black"),
const int  layer = Tikz_Plane::Layer_Default 
)
inline

Definition at line 304 of file tikzgeom_scene.H.

References plane_, and Aleph::put_points().

◆ add_polygons()

Tikz_Scene & Aleph::Tikz_Scene::add_polygons ( const Array< Polygon > &  polys,
const Tikz_Style style = tikz_wire_style("black", true),
const int  layer = Tikz_Plane::Layer_Default 
)
inline

◆ clear()

Tikz_Scene & Aleph::Tikz_Scene::clear ( )
inline

Definition at line 191 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::clear(), and plane_.

◆ clear_legend()

Tikz_Scene & Aleph::Tikz_Scene::clear_legend ( )
inline

Definition at line 266 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::clear_legend(), and plane_.

◆ compose_beamer_class_options()

static std::string Aleph::Tikz_Scene::compose_beamer_class_options ( const bool  handout_mode,
const std::string &  class_options 
)
inlinestaticprivate

Definition at line 82 of file tikzgeom_scene.H.

References Aleph::divide_and_conquer_partition_dp().

Referenced by draw_beamer_document_preamble().

◆ draw()

void Aleph::Tikz_Scene::draw ( std::ostream &  output) const
inline

Definition at line 528 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::draw(), output, plane_, and squarize_.

Referenced by draw_beamer_frame(), and to_tikz().

◆ draw_beamer()

void Aleph::Tikz_Scene::draw_beamer ( std::ostream &  output,
const Tikz_Beamer_Document_Options options = {} 
) const
inline

Definition at line 583 of file tikzgeom_scene.H.

◆ draw_beamer_document()

void Aleph::Tikz_Scene::draw_beamer_document ( std::ostream &  output,
const Tikz_Beamer_Document_Options options,
const bool  handout_mode 
) const
inlineprivate

◆ draw_beamer_document_epilogue()

static void Aleph::Tikz_Scene::draw_beamer_document_epilogue ( std::ostream &  output)
inlinestaticprivate

Definition at line 122 of file tikzgeom_scene.H.

References output.

Referenced by draw_beamer_document(), and draw_beamer_overlays_document().

◆ draw_beamer_document_preamble()

static void Aleph::Tikz_Scene::draw_beamer_document_preamble ( std::ostream &  output,
const Tikz_Beamer_Document_Options options,
const bool  handout_mode 
)
inlinestaticprivate

◆ draw_beamer_frame()

void Aleph::Tikz_Scene::draw_beamer_frame ( std::ostream &  output,
const std::string &  frame_title = "TikZ Scene",
const std::string &  frame_options = "t" 
) const
inline

Definition at line 540 of file tikzgeom_scene.H.

References draw(), draw_beamer_frame_begin(), and output.

Referenced by draw_beamer_document().

◆ draw_beamer_frame_begin()

static void Aleph::Tikz_Scene::draw_beamer_frame_begin ( std::ostream &  output,
const std::string &  frame_title,
const std::string &  frame_options 
)
inlinestaticprivate

◆ draw_beamer_overlays()

static void Aleph::Tikz_Scene::draw_beamer_overlays ( std::ostream &  output,
const std::vector< Tikz_Scene > &  steps,
const Tikz_Beamer_Document_Options options = {} 
)
inlinestatic

Export multiple scenes as beamer overlays (\\only<k>{...}) in one frame.

Definition at line 614 of file tikzgeom_scene.H.

Referenced by main().

◆ draw_beamer_overlays_document()

static void Aleph::Tikz_Scene::draw_beamer_overlays_document ( std::ostream &  output,
const std::vector< Tikz_Scene > &  steps,
const Tikz_Beamer_Document_Options options,
const bool  handout_mode 
)
inlinestaticprivate

◆ draw_handout()

void Aleph::Tikz_Scene::draw_handout ( std::ostream &  output,
const Tikz_Beamer_Document_Options options = {} 
) const
inline

Definition at line 598 of file tikzgeom_scene.H.

◆ draw_handout_overlays()

static void Aleph::Tikz_Scene::draw_handout_overlays ( std::ostream &  output,
const std::vector< Tikz_Scene > &  steps,
const Tikz_Beamer_Document_Options options = {} 
)
inlinestatic

Export multiple scenes as handout overlays (forces beamer[handout]).

Definition at line 633 of file tikzgeom_scene.H.

Referenced by main().

◆ draw_standalone()

void Aleph::Tikz_Scene::draw_standalone ( std::ostream &  output,
const Tikz_Standalone_Document_Options options = {} 
) const
inline

Definition at line 551 of file tikzgeom_scene.H.

◆ enable_auto_legend()

Tikz_Scene & Aleph::Tikz_Scene::enable_auto_legend ( const bool  enabled = true)
inline

Definition at line 253 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::enable_auto_legend(), and plane_.

◆ enable_native_tikz_layers()

Tikz_Scene & Aleph::Tikz_Scene::enable_native_tikz_layers ( const bool  enabled = true)
inline

Definition at line 247 of file tikzgeom_scene.H.

References Aleph::Tikz_Plane::enable_native_tikz_layers(), and plane_.

◆ plane() [1/2]

Tikz_Plane & Aleph::Tikz_Scene::plane ( )
inline

Definition at line 185 of file tikzgeom_scene.H.

References plane_.

◆ plane() [2/2]

const Tikz_Plane & Aleph::Tikz_Scene::plane ( ) const
inline

Definition at line 186 of file tikzgeom_scene.H.

References plane_.

◆ put_cartesian_axis()

Tikz_Scene & Aleph::Tikz_Scene::put_cartesian_axis ( )
inline

Definition at line 197 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::put_cartesian_axis().

◆ put_coordinate_grid()

Tikz_Scene & Aleph::Tikz_Scene::put_coordinate_grid ( const double  step_x = 1.0,
const double  step_y = 1.0,
const bool  draw_ticks = true 
)
inline

◆ put_funnel_trace_step()

template<typename... Args>
void Aleph::Tikz_Scene::put_funnel_trace_step ( Args &&...  args)
inline

◆ register_tikz_style()

Tikz_Scene & Aleph::Tikz_Scene::register_tikz_style ( const std::string &  name,
const Tikz_Style style 
)
inline

Definition at line 272 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::register_tikz_style().

◆ remove_cartesian_axis()

Tikz_Scene & Aleph::Tikz_Scene::remove_cartesian_axis ( )
inline

Definition at line 203 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::remove_cartesian_axis().

◆ remove_coordinate_grid()

Tikz_Scene & Aleph::Tikz_Scene::remove_coordinate_grid ( )
inline

Definition at line 217 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::remove_coordinate_grid().

◆ run() [1/2]

template<typename Callable >
decltype(auto) Aleph::Tikz_Scene::run ( Callable &&  callable)
inline

Definition at line 517 of file tikzgeom_scene.H.

References Aleph::divide_and_conquer_partition_dp(), and plane_.

◆ run() [2/2]

template<typename Callable >
decltype(auto) Aleph::Tikz_Scene::run ( Callable &&  callable) const
inline

Definition at line 523 of file tikzgeom_scene.H.

References Aleph::divide_and_conquer_partition_dp(), and plane_.

◆ set_axis_style()

Tikz_Scene & Aleph::Tikz_Scene::set_axis_style ( const Tikz_Style style)
inline

Definition at line 229 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::set_axis_style().

◆ set_default_style()

Tikz_Scene & Aleph::Tikz_Scene::set_default_style ( const Tikz_Style style)
inline

Definition at line 223 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::set_default_style().

◆ set_grid_style()

Tikz_Scene & Aleph::Tikz_Scene::set_grid_style ( const Tikz_Style style)
inline

Definition at line 235 of file tikzgeom_scene.H.

References plane_, and Aleph::Tikz_Plane::set_grid_style().

◆ set_point_radius_mm()

Tikz_Scene & Aleph::Tikz_Scene::set_point_radius_mm ( const double  radius_mm)
inline

◆ set_squarize()

void Aleph::Tikz_Scene::set_squarize ( const bool  value)
inline

Definition at line 189 of file tikzgeom_scene.H.

References squarize_.

◆ squarize()

bool Aleph::Tikz_Scene::squarize ( ) const
inline

Definition at line 188 of file tikzgeom_scene.H.

References squarize_.

◆ to_beamer()

std::string Aleph::Tikz_Scene::to_beamer ( const Tikz_Beamer_Document_Options options = {}) const
inline

Definition at line 590 of file tikzgeom_scene.H.

◆ to_beamer_overlays()

static std::string Aleph::Tikz_Scene::to_beamer_overlays ( const std::vector< Tikz_Scene > &  steps,
const Tikz_Beamer_Document_Options options = {} 
)
inlinestatic

String variant of draw_beamer_overlays.

Definition at line 623 of file tikzgeom_scene.H.

Referenced by TEST(), and TEST().

◆ to_handout()

std::string Aleph::Tikz_Scene::to_handout ( const Tikz_Beamer_Document_Options options = {}) const
inline

Definition at line 605 of file tikzgeom_scene.H.

◆ to_handout_overlays()

static std::string Aleph::Tikz_Scene::to_handout_overlays ( const std::vector< Tikz_Scene > &  steps,
const Tikz_Beamer_Document_Options options = {} 
)
inlinestatic

String variant of draw_handout_overlays.

Definition at line 642 of file tikzgeom_scene.H.

Referenced by TEST().

◆ to_standalone()

std::string Aleph::Tikz_Scene::to_standalone ( const Tikz_Standalone_Document_Options options = {}) const
inline

Definition at line 575 of file tikzgeom_scene.H.

◆ to_tikz()

std::string Aleph::Tikz_Scene::to_tikz ( ) const
inline

Definition at line 533 of file tikzgeom_scene.H.

References Aleph::divide_and_conquer_partition_dp(), and draw().

◆ visualize_aabb_tree()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_aabb_tree ( Args &&...  args)
inline

◆ visualize_aabb_tree_query()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_aabb_tree_query ( Args &&...  args)
inline

◆ visualize_alpha_shape()

template<typename... Args>
AlphaShape::Result Aleph::Tikz_Scene::visualize_alpha_shape ( Args &&...  args)
inline

◆ visualize_boolean_operation()

template<typename... Args>
Array< Polygon > Aleph::Tikz_Scene::visualize_boolean_operation ( Args &&...  args)
inline

◆ visualize_closest_pair()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_closest_pair ( Args &&...  args)
inline

◆ visualize_convex_decomposition()

template<typename... Args>
Array< Polygon > Aleph::Tikz_Scene::visualize_convex_decomposition ( Args &&...  args)
inline

◆ visualize_convex_hull()

template<typename Points , typename HullAlgorithm , typename... Args>
Polygon Aleph::Tikz_Scene::visualize_convex_hull ( const Points points,
HullAlgorithm &&  algorithm,
Args &&...  args 
)
inline

◆ visualize_convex_intersection()

template<typename... Args>
Polygon Aleph::Tikz_Scene::visualize_convex_intersection ( Args &&...  args)
inline

◆ visualize_delaunay()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_delaunay ( Args &&...  args)
inline

◆ visualize_half_plane_intersection()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_half_plane_intersection ( Args &&...  args)
inline

◆ visualize_kdtree_partitions()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_kdtree_partitions ( Args &&...  args)
inline

◆ visualize_line_sweep()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_line_sweep ( Args &&...  args)
inline

◆ visualize_minkowski_sum()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_minkowski_sum ( Args &&...  args)
inline

◆ visualize_monotone_triangulation()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_monotone_triangulation ( Args &&...  args)
inline

◆ visualize_power_diagram()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_power_diagram ( Args &&...  args)
inline

◆ visualize_range_tree()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_range_tree ( Args &&...  args)
inline

◆ visualize_range_tree_query()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_range_tree_query ( Args &&...  args)
inline

◆ visualize_regular_triangulation()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_regular_triangulation ( Args &&...  args)
inline

◆ visualize_rotating_calipers()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_rotating_calipers ( Args &&...  args)
inline

◆ visualize_segment_arrangement()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_segment_arrangement ( Args &&...  args)
inline

◆ visualize_shortest_path_in_polygon()

template<typename... Args>
DynList< Point > Aleph::Tikz_Scene::visualize_shortest_path_in_polygon ( Args &&...  args)
inline

◆ visualize_shortest_path_with_portals()

template<typename... Args>
ShortestPathDebugResult Aleph::Tikz_Scene::visualize_shortest_path_with_portals ( Args &&...  args)
inline

◆ visualize_visibility_polygon()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_visibility_polygon ( Args &&...  args)
inline

◆ visualize_voronoi()

template<typename... Args>
auto Aleph::Tikz_Scene::visualize_voronoi ( Args &&...  args)
inline

Member Data Documentation

◆ plane_

◆ squarize_

bool Aleph::Tikz_Scene::squarize_ = true
private

Definition at line 172 of file tikzgeom_scene.H.

Referenced by draw(), set_squarize(), and squarize().


The documentation for this class was generated from the following file: