From f25ae50e127643a0cc365cafdfaff60da546aaf0 Mon Sep 17 00:00:00 2001 From: Enrico Bertolazzi Date: Fri, 19 Feb 2021 10:44:31 +0100 Subject: [PATCH] added doxygen (incomplete) docs --- Doxyfile | 2 +- docs/annotated.html | 130 + docs/bc_s.png | Bin 0 -> 676 bytes docs/bdwn.png | Bin 0 -> 147 bytes docs/classes.html | 122 + docs/closed.png | Bin 0 -> 132 bytes docs/d0/d6e/_circle_8hxx_source.html | 767 +++++ .../class_g2lib_1_1_biarc__coll__graph.map | 4 + .../class_g2lib_1_1_biarc__coll__graph.md5 | 1 + .../class_g2lib_1_1_biarc__coll__graph.png | Bin 0 -> 3662 bytes docs/d0/dcb/_thread_pool_8hxx_source.html | 571 ++++ ...eneric_container_cinterface_8h_source.html | 364 +++ .../d4a/class_utils_1_1_tic_toc-members.html | 96 + .../d1/d55/class_g2lib_1_1_b_box-members.html | 106 + .../class_g2lib_1_1_circle_arc-members.html | 274 ++ docs/d1/d7c/namespace_utils.html | 255 ++ ...mespace_1_1_generic_container-members.html | 349 +++ ...lass_g2lib_1_1_clothoid_curve-members.html | 280 ++ docs/d1/daa/_malloc_8hxx_source.html | 234 ++ ..._1_console_1_1_console__style-members.html | 93 + docs/d1/dec/class_g2lib_1_1_g2solve3arc.html | 1108 +++++++ .../class_g2lib_1_1_poly_line-members.html | 272 ++ ...1_1_runtime___trace_error__coll__graph.map | 4 + ...1_1_runtime___trace_error__coll__graph.md5 | 1 + ...1_1_runtime___trace_error__coll__graph.png | Bin 0 -> 4188 bytes ...espace_1_1_generic_container_explorer.html | 136 + docs/d1/df8/class_utils_1_1_console.html | 205 ++ docs/d2/d00/class_g2lib_1_1_poly_line.html | 1755 +++++++++++ docs/d2/d03/class_g2lib_1_1_base_curve.html | 1632 ++++++++++ ...lass_g2lib_1_1_circle_arc__coll__graph.map | 4 + ...lass_g2lib_1_1_circle_arc__coll__graph.md5 | 1 + ...lass_g2lib_1_1_circle_arc__coll__graph.png | Bin 0 -> 3956 bytes docs/d2/d25/class_utils_1_1_thread_pool.html | 129 + docs/d2/d79/class_g2lib_1_1_asy_plot.html | 122 + .../class_g2lib_1_1_biarc_list-members.html | 273 ++ .../class_utils_1_1_spin_lock-members.html | 94 + ...s_g2lib_1_1_base_curve__inherit__graph.map | 10 + ...s_g2lib_1_1_base_curve__inherit__graph.md5 | 1 + ...s_g2lib_1_1_base_curve__inherit__graph.png | Bin 0 -> 22921 bytes .../_generic_container_libs_8hh_source.html | 128 + .../class_utils_1_1_spin_lock__barrier.html | 115 + docs/d3/d44/_numbers_8hxx_source.html | 305 ++ .../d48/class_utils_1_1_console-members.html | 123 + docs/d3/d67/group___generic.html | 83 + .../class_g2lib_1_1_biarc__inherit__graph.map | 4 + .../class_g2lib_1_1_biarc__inherit__graph.md5 | 1 + .../class_g2lib_1_1_biarc__inherit__graph.png | Bin 0 -> 3662 bytes .../dbc/class_utils_1_1_worker-members.html | 98 + .../df1/class_g2lib_1_1_asy_plot-members.html | 99 + .../_generic_container__doc_8hh_source.html | 113 + docs/d4/d23/class_utils_1_1_worker.html | 120 + docs/d4/d36/_a_a_b_btree_8hxx_source.html | 397 +++ docs/d4/d63/class_utils_1_1_spin_lock.html | 106 + ...class_g2lib_1_1_g2solve_c_l_c-members.html | 99 + docs/d4/d9f/namespace_g2lib.html | 1486 ++++++++++ .../_generic_container_config_8hh_source.html | 166 ++ .../df9/structc__complex__type-members.html | 88 + docs/d5/d1e/class_g2lib_1_1_a_a_b_btree.html | 268 ++ ...lib_1_1_clothoid_curve__inherit__graph.map | 4 + ...lib_1_1_clothoid_curve__inherit__graph.md5 | 1 + ...lib_1_1_clothoid_curve__inherit__graph.png | Bin 0 -> 4410 bytes docs/d5/d44/namespace_polynomial_roots.html | 132 + ...g2lib_1_1_line_segment__inherit__graph.map | 4 + ...g2lib_1_1_line_segment__inherit__graph.md5 | 1 + ...g2lib_1_1_line_segment__inherit__graph.png | Bin 0 -> 4223 bytes .../d7a/class_g2lib_1_1_solve2x2-members.html | 93 + .../d81/class_utils_1_1_simple_semaphore.html | 106 + .../class_g2lib_1_1_g2solve3arc-members.html | 135 + docs/d5/de3/_trace_8hxx_source.html | 234 ++ ...eric_container_namespace_1_1mat__type.html | 155 + .../class_polynomial_roots_1_1_quadratic.html | 423 +++ .../class_utils_1_1_thread_pool-members.html | 100 + docs/d6/d33/structc__complex__type.html | 99 + ...ss_utils_1_1_simple_semaphore-members.html | 94 + ..._runtime___trace_error__inherit__graph.map | 4 + ..._runtime___trace_error__inherit__graph.md5 | 1 + ..._runtime___trace_error__inherit__graph.png | Bin 0 -> 4188 bytes ...utils_1_1_runtime___error__coll__graph.map | 4 + ...utils_1_1_runtime___error__coll__graph.md5 | 1 + ...utils_1_1_runtime___error__coll__graph.png | Bin 0 -> 3707 bytes docs/d6/dde/class_utils_1_1_wait_worker.html | 106 + .../de4/class_utils_1_1_malloc-members.html | 100 + ...er_namespace_1_1mat__type__coll__graph.map | 4 + ...er_namespace_1_1mat__type__coll__graph.md5 | 1 + ...er_namespace_1_1mat__type__coll__graph.png | Bin 0 -> 6297 bytes docs/d6/ded/_utils_8hxx_source.html | 253 ++ ...s_g2lib_1_1_clothoid_list__coll__graph.map | 4 + ...s_g2lib_1_1_clothoid_list__coll__graph.md5 | 1 + ...s_g2lib_1_1_clothoid_list__coll__graph.png | Bin 0 -> 4080 bytes docs/d6/df5/_triangle2_d_8hxx_source.html | 303 ++ ..._utils_1_1_spin_lock__barrier-members.html | 97 + .../d7/d02/class_g2lib_1_1_clothoid_list.html | 2437 +++++++++++++++ .../_polynomial_roots-_utils_8hh_source.html | 229 ++ ...ss_g2lib_1_1_line_segment__coll__graph.map | 4 + ...ss_g2lib_1_1_line_segment__coll__graph.md5 | 1 + ...ss_g2lib_1_1_line_segment__coll__graph.png | Bin 0 -> 4223 bytes ..._1_generic_container_explorer-members.html | 105 + ...class_g2lib_1_1_poly_line__coll__graph.map | 4 + ...class_g2lib_1_1_poly_line__coll__graph.md5 | 1 + ...class_g2lib_1_1_poly_line__coll__graph.png | Bin 0 -> 3933 bytes ...ss_polynomial_roots_1_1_cubic-members.html | 117 + docs/d7/dc1/_clothoids_8hh_source.html | 161 + docs/d7/dd9/class_g2lib_1_1_circle_arc.html | 1767 +++++++++++ docs/d7/df9/class_utils_1_1_tic_toc.html | 109 + docs/d8/d20/class_utils_1_1_barrier.html | 109 + .../d8/d68/_generic_container_8hh_source.html | 1436 +++++++++ docs/d8/d7c/class_g2lib_1_1_triangle2_d.html | 267 ++ ...class_utils_1_1_runtime___trace_error.html | 122 + docs/d8/d87/_console_8hxx_source.html | 262 ++ docs/d8/d89/_poly_line_8hxx_source.html | 616 ++++ ...olynomial_roots_1_1_quadratic-members.html | 112 + ...class_g2lib_1_1_clothoid_list-members.html | 304 ++ .../class_polynomial_roots_1_1_quartic.html | 416 +++ ...lass_g2lib_1_1_biarc_list__coll__graph.map | 4 + ...lass_g2lib_1_1_biarc_list__coll__graph.md5 | 1 + ...lass_g2lib_1_1_biarc_list__coll__graph.png | Bin 0 -> 3991 bytes ...namespace_1_1mat__type__inherit__graph.map | 4 + ...namespace_1_1mat__type__inherit__graph.md5 | 1 + ...namespace_1_1mat__type__inherit__graph.png | Bin 0 -> 6297 bytes docs/d9/d0c/class_g2lib_1_1_line_segment.html | 1708 +++++++++++ ...2lib_1_1_clothoid_list__inherit__graph.map | 4 + ...2lib_1_1_clothoid_list__inherit__graph.md5 | 1 + ...2lib_1_1_clothoid_list__inherit__graph.png | Bin 0 -> 4080 bytes .../d24/_base_curve__using_8hxx_source.html | 212 ++ .../class_g2lib_1_1_triangle2_d-members.html | 124 + .../d8c/_clothoid_asy_plot_8hxx_source.html | 178 ++ .../d9/d96/class_utils_1_1_binary_search.html | 103 + docs/d9/dcc/rang_8hpp_source.html | 589 ++++ .../df7/class_polynomial_roots_1_1_cubic.html | 447 +++ .../class_g2lib_1_1_g2solve2arc-members.html | 98 + ...ils_1_1_runtime___trace_error-members.html | 92 + ..._polynomial_roots_1_1_quartic-members.html | 119 + docs/da/d80/_polynomial_roots_8hh_source.html | 755 +++++ docs/da/d83/_fresnel_8hxx_source.html | 492 +++ docs/da/da5/class_g2lib_1_1_g2solve2arc.html | 123 + ...ss_g2lib_1_1_poly_line__inherit__graph.map | 4 + ...ss_g2lib_1_1_poly_line__inherit__graph.md5 | 1 + ...ss_g2lib_1_1_poly_line__inherit__graph.png | Bin 0 -> 3933 bytes .../da/dda/class_g2lib_1_1_g2solve_c_l_c.html | 126 + ...class_utils_1_1_binary_search-members.html | 94 + .../d6b/class_utils_1_1_runtime___error.html | 125 + .../class_utils_1_1_wait_worker-members.html | 94 + ...s_g2lib_1_1_circle_arc__inherit__graph.map | 4 + ...s_g2lib_1_1_circle_arc__inherit__graph.md5 | 1 + ...s_g2lib_1_1_circle_arc__inherit__graph.png | Bin 0 -> 3956 bytes docs/db/dd5/_utils_8hh_source.html | 141 + .../d27/class_g2lib_1_1_clothoid_curve.html | 2640 +++++++++++++++++ .../d2f/class_utils_1_1_barrier-members.html | 95 + docs/dc/d4f/_clothoid_8hxx_source.html | 1158 ++++++++ .../dc/d5d/class_g2lib_1_1_clothoid_data.html | 443 +++ ...ls_1_1_runtime___error__inherit__graph.map | 4 + ...ls_1_1_runtime___error__inherit__graph.md5 | 1 + ...ls_1_1_runtime___error__inherit__graph.png | Bin 0 -> 3707 bytes docs/dc/d87/class_utils_1_1_malloc.html | 150 + ...tainer_namespace_1_1mat__type-members.html | 104 + .../class_g2lib_1_1_line_segment-members.html | 255 ++ docs/dc/dbb/_tic_toc_8hxx_source.html | 237 ++ docs/dc/dd9/_biarc_list_8hxx_source.html | 817 +++++ ...ass_utils_1_1_runtime___error-members.html | 93 + ..._utils_1_1_console_1_1_console__style.html | 106 + .../class_g2lib_1_1_a_a_b_btree-members.html | 105 + ..._g2lib_1_1_clothoid_spline_g2-members.html | 125 + docs/dd/dd4/class_g2lib_1_1_biarc.html | 1772 +++++++++++ docs/dd/dee/_g2lib_8hxx_source.html | 1453 +++++++++ docs/de/d0b/_line_8hxx_source.html | 765 +++++ docs/de/d36/_biarc_8hxx_source.html | 710 +++++ docs/de/d56/class_g2lib_1_1_b_box.html | 167 ++ .../class_g2lib_1_1_base_curve-members.html | 232 ++ ...s_g2lib_1_1_biarc_list__inherit__graph.map | 4 + ...s_g2lib_1_1_biarc_list__inherit__graph.md5 | 1 + ...s_g2lib_1_1_biarc_list__inherit__graph.png | Bin 0 -> 3991 bytes .../de/df9/class_g2lib_1_1_biarc-members.html | 259 ++ ...ainer_namespace_1_1_generic_container.html | 1431 +++++++++ ...class_g2lib_1_1_clothoid_data-members.html | 200 ++ docs/df/d29/class_g2lib_1_1_biarc_list.html | 1872 ++++++++++++ .../class_g2lib_1_1_clothoid_spline_g2.html | 197 ++ docs/df/d84/class_g2lib_1_1_solve2x2.html | 112 + docs/df/d97/_clothoid_list_8hxx_source.html | 1593 ++++++++++ ..._g2lib_1_1_clothoid_curve__coll__graph.map | 4 + ..._g2lib_1_1_clothoid_curve__coll__graph.md5 | 1 + ..._g2lib_1_1_clothoid_curve__coll__graph.png | Bin 0 -> 4410 bytes .../dir_0a1f12c766bab7b1122878f6ee86a58c.html | 87 + .../dir_3e733afcaace4b8f3b921cf9d06105f1.html | 87 + .../dir_44f31e97b68efd72c17d68a10af94e4a.html | 87 + .../dir_58aa29abd9db8371a5f796d78f16f3c1.html | 91 + .../dir_5944fc4197c9fcb1f3be2c4e9dbb3df2.html | 91 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 91 + .../dir_8cd12074276c6cad95ab77d33f11f7e2.html | 87 + .../dir_9a6a40d0042babb0fe6d781664dd9493.html | 91 + .../dir_c4eb734967f9c800ff33b84ad1703116.html | 91 + .../dir_fe6eb5064d42f9f773e90d3512fafa25.html | 87 + docs/doc.png | Bin 0 -> 746 bytes docs/doxygen.css | 1793 +++++++++++ docs/doxygen.svg | 26 + docs/dynsections.js | 121 + docs/files.html | 127 + docs/folderclosed.png | Bin 0 -> 616 bytes docs/folderopen.png | Bin 0 -> 597 bytes docs/functions.html | 89 + docs/functions_b.html | 148 + docs/functions_c.html | 144 + docs/functions_d.html | 100 + docs/functions_e.html | 149 + docs/functions_f.html | 93 + docs/functions_func.html | 89 + docs/functions_func_b.html | 148 + docs/functions_func_c.html | 144 + docs/functions_func_d.html | 97 + docs/functions_func_e.html | 149 + docs/functions_func_f.html | 93 + docs/functions_func_g.html | 209 ++ docs/functions_func_i.html | 116 + docs/functions_func_j.html | 86 + docs/functions_func_k.html | 92 + docs/functions_func_l.html | 112 + docs/functions_func_m.html | 92 + docs/functions_func_n.html | 94 + docs/functions_func_o.html | 96 + docs/functions_func_p.html | 143 + docs/functions_func_r.html | 106 + docs/functions_func_s.html | 160 + docs/functions_func_t.html | 125 + docs/functions_func_w.html | 86 + docs/functions_func_x.html | 96 + docs/functions_func_y.html | 96 + docs/functions_func_~.html | 89 + docs/functions_g.html | 209 ++ docs/functions_i.html | 116 + docs/functions_j.html | 86 + docs/functions_k.html | 95 + docs/functions_l.html | 112 + docs/functions_m.html | 92 + docs/functions_n.html | 94 + docs/functions_o.html | 96 + docs/functions_p.html | 143 + docs/functions_r.html | 106 + docs/functions_s.html | 160 + docs/functions_t.html | 128 + docs/functions_vars.html | 96 + docs/functions_w.html | 86 + docs/functions_x.html | 99 + docs/functions_y.html | 99 + docs/functions_~.html | 89 + docs/graph_legend.html | 143 + docs/graph_legend.md5 | 1 + docs/graph_legend.png | Bin 0 -> 17667 bytes docs/hierarchy.html | 132 + docs/index.html | 91 + docs/inherit_graph_0.map | 3 + docs/inherit_graph_0.md5 | 1 + docs/inherit_graph_0.png | Bin 0 -> 1120 bytes docs/inherit_graph_1.map | 3 + docs/inherit_graph_1.md5 | 1 + docs/inherit_graph_1.png | Bin 0 -> 1242 bytes docs/inherit_graph_10.map | 3 + docs/inherit_graph_10.md5 | 1 + docs/inherit_graph_10.png | Bin 0 -> 1250 bytes docs/inherit_graph_11.map | 3 + docs/inherit_graph_11.md5 | 1 + docs/inherit_graph_11.png | Bin 0 -> 1384 bytes docs/inherit_graph_12.map | 3 + docs/inherit_graph_12.md5 | 1 + docs/inherit_graph_12.png | Bin 0 -> 1963 bytes docs/inherit_graph_13.map | 3 + docs/inherit_graph_13.md5 | 1 + docs/inherit_graph_13.png | Bin 0 -> 2281 bytes docs/inherit_graph_14.map | 4 + docs/inherit_graph_14.md5 | 1 + docs/inherit_graph_14.png | Bin 0 -> 3816 bytes docs/inherit_graph_15.map | 3 + docs/inherit_graph_15.md5 | 1 + docs/inherit_graph_15.png | Bin 0 -> 1660 bytes docs/inherit_graph_16.map | 3 + docs/inherit_graph_16.md5 | 1 + docs/inherit_graph_16.png | Bin 0 -> 1776 bytes docs/inherit_graph_17.map | 3 + docs/inherit_graph_17.md5 | 1 + docs/inherit_graph_17.png | Bin 0 -> 1658 bytes docs/inherit_graph_18.map | 3 + docs/inherit_graph_18.md5 | 1 + docs/inherit_graph_18.png | Bin 0 -> 1035 bytes docs/inherit_graph_19.map | 3 + docs/inherit_graph_19.md5 | 1 + docs/inherit_graph_19.png | Bin 0 -> 1964 bytes docs/inherit_graph_2.map | 3 + docs/inherit_graph_2.md5 | 1 + docs/inherit_graph_2.png | Bin 0 -> 1270 bytes docs/inherit_graph_20.map | 3 + docs/inherit_graph_20.md5 | 1 + docs/inherit_graph_20.png | Bin 0 -> 2018 bytes docs/inherit_graph_21.map | 3 + docs/inherit_graph_21.md5 | 1 + docs/inherit_graph_21.png | Bin 0 -> 1055 bytes docs/inherit_graph_22.map | 3 + docs/inherit_graph_22.md5 | 1 + docs/inherit_graph_22.png | Bin 0 -> 1503 bytes docs/inherit_graph_23.map | 3 + docs/inherit_graph_23.md5 | 1 + docs/inherit_graph_23.png | Bin 0 -> 1747 bytes docs/inherit_graph_24.map | 3 + docs/inherit_graph_24.md5 | 1 + docs/inherit_graph_24.png | Bin 0 -> 1280 bytes docs/inherit_graph_25.map | 5 + docs/inherit_graph_25.md5 | 1 + docs/inherit_graph_25.png | Bin 0 -> 5410 bytes docs/inherit_graph_26.map | 3 + docs/inherit_graph_26.md5 | 1 + docs/inherit_graph_26.png | Bin 0 -> 1513 bytes docs/inherit_graph_27.map | 3 + docs/inherit_graph_27.md5 | 1 + docs/inherit_graph_27.png | Bin 0 -> 1276 bytes docs/inherit_graph_28.map | 3 + docs/inherit_graph_28.md5 | 1 + docs/inherit_graph_28.png | Bin 0 -> 1684 bytes docs/inherit_graph_29.map | 3 + docs/inherit_graph_29.md5 | 1 + docs/inherit_graph_29.png | Bin 0 -> 1282 bytes docs/inherit_graph_3.map | 10 + docs/inherit_graph_3.md5 | 1 + docs/inherit_graph_3.png | Bin 0 -> 21202 bytes docs/inherit_graph_30.map | 3 + docs/inherit_graph_30.md5 | 1 + docs/inherit_graph_30.png | Bin 0 -> 881 bytes docs/inherit_graph_31.map | 3 + docs/inherit_graph_31.md5 | 1 + docs/inherit_graph_31.png | Bin 0 -> 1239 bytes docs/inherit_graph_32.map | 3 + docs/inherit_graph_32.md5 | 1 + docs/inherit_graph_32.png | Bin 0 -> 1118 bytes docs/inherit_graph_4.map | 3 + docs/inherit_graph_4.md5 | 1 + docs/inherit_graph_4.png | Bin 0 -> 1046 bytes docs/inherit_graph_5.map | 3 + docs/inherit_graph_5.md5 | 1 + docs/inherit_graph_5.png | Bin 0 -> 1426 bytes docs/inherit_graph_6.map | 3 + docs/inherit_graph_6.md5 | 1 + docs/inherit_graph_6.png | Bin 0 -> 1660 bytes docs/inherit_graph_7.map | 3 + docs/inherit_graph_7.md5 | 1 + docs/inherit_graph_7.png | Bin 0 -> 1349 bytes docs/inherit_graph_8.map | 3 + docs/inherit_graph_8.md5 | 1 + docs/inherit_graph_8.png | Bin 0 -> 1427 bytes docs/inherit_graph_9.map | 3 + docs/inherit_graph_9.md5 | 1 + docs/inherit_graph_9.png | Bin 0 -> 1330 bytes docs/inherits.html | 262 ++ docs/jquery.js | 35 + docs/logo.pdf | Bin 0 -> 25858 bytes docs/menu.js | 51 + docs/menudata.js | 109 + docs/modules.html | 88 + docs/namespacemembers.html | 264 ++ docs/namespacemembers_func.html | 246 ++ docs/namespacemembers_vars.html | 99 + docs/namespaces.html | 130 + docs/nav_f.png | Bin 0 -> 153 bytes docs/nav_g.png | Bin 0 -> 95 bytes docs/nav_h.png | Bin 0 -> 98 bytes docs/open.png | Bin 0 -> 123 bytes docs/search/all_0.html | 37 + docs/search/all_0.js | 11 + docs/search/all_1.html | 37 + docs/search/all_1.js | 23 + docs/search/all_10.html | 37 + docs/search/all_10.js | 13 + docs/search/all_11.html | 37 + docs/search/all_11.js | 40 + docs/search/all_12.html | 37 + docs/search/all_12.js | 19 + docs/search/all_13.html | 37 + docs/search/all_13.js | 4 + docs/search/all_14.html | 37 + docs/search/all_14.js | 6 + docs/search/all_15.html | 37 + docs/search/all_15.js | 8 + docs/search/all_16.html | 37 + docs/search/all_16.js | 8 + docs/search/all_17.html | 37 + docs/search/all_17.js | 5 + docs/search/all_2.html | 37 + docs/search/all_2.js | 34 + docs/search/all_3.html | 37 + docs/search/all_3.js | 8 + docs/search/all_4.html | 37 + docs/search/all_4.js | 18 + docs/search/all_5.html | 37 + docs/search/all_5.js | 8 + docs/search/all_6.html | 37 + docs/search/all_6.js | 49 + docs/search/all_7.html | 37 + docs/search/all_7.js | 17 + docs/search/all_8.html | 37 + docs/search/all_8.js | 4 + docs/search/all_9.html | 37 + docs/search/all_9.js | 7 + docs/search/all_a.html | 37 + docs/search/all_a.js | 8 + docs/search/all_b.html | 37 + docs/search/all_b.js | 17 + docs/search/all_c.html | 37 + docs/search/all_c.js | 7 + docs/search/all_d.html | 37 + docs/search/all_d.js | 7 + docs/search/all_e.html | 37 + docs/search/all_e.js | 29 + docs/search/all_f.html | 37 + docs/search/all_f.js | 5 + docs/search/classes_0.html | 37 + docs/search/classes_0.js | 5 + docs/search/classes_1.html | 37 + docs/search/classes_1.js | 10 + docs/search/classes_2.html | 37 + docs/search/classes_2.js | 12 + docs/search/classes_3.html | 37 + docs/search/classes_3.js | 8 + docs/search/classes_4.html | 37 + docs/search/classes_4.js | 4 + docs/search/classes_5.html | 37 + docs/search/classes_5.js | 6 + docs/search/classes_6.html | 37 + docs/search/classes_6.js | 4 + docs/search/classes_7.html | 37 + docs/search/classes_7.js | 5 + docs/search/classes_8.html | 37 + docs/search/classes_8.js | 5 + docs/search/classes_9.html | 37 + docs/search/classes_9.js | 7 + docs/search/classes_a.html | 37 + docs/search/classes_a.js | 6 + docs/search/classes_b.html | 37 + docs/search/classes_b.js | 5 + docs/search/close.svg | 31 + docs/search/functions_0.html | 37 + docs/search/functions_0.js | 9 + docs/search/functions_1.html | 37 + docs/search/functions_1.js | 17 + docs/search/functions_10.html | 37 + docs/search/functions_10.js | 35 + docs/search/functions_11.html | 37 + docs/search/functions_11.js | 15 + docs/search/functions_12.html | 37 + docs/search/functions_12.js | 4 + docs/search/functions_13.html | 37 + docs/search/functions_13.js | 7 + docs/search/functions_14.html | 37 + docs/search/functions_14.js | 7 + docs/search/functions_15.html | 37 + docs/search/functions_15.js | 5 + docs/search/functions_2.html | 37 + docs/search/functions_2.js | 26 + docs/search/functions_3.html | 37 + docs/search/functions_3.js | 7 + docs/search/functions_4.html | 37 + docs/search/functions_4.js | 18 + docs/search/functions_5.html | 37 + docs/search/functions_5.js | 8 + docs/search/functions_6.html | 37 + docs/search/functions_6.js | 44 + docs/search/functions_7.html | 37 + docs/search/functions_7.js | 17 + docs/search/functions_8.html | 37 + docs/search/functions_8.js | 4 + docs/search/functions_9.html | 37 + docs/search/functions_9.js | 6 + docs/search/functions_a.html | 37 + docs/search/functions_a.js | 8 + docs/search/functions_b.html | 37 + docs/search/functions_b.js | 10 + docs/search/functions_c.html | 37 + docs/search/functions_c.js | 7 + docs/search/functions_d.html | 37 + docs/search/functions_d.js | 7 + docs/search/functions_e.html | 37 + docs/search/functions_e.js | 27 + docs/search/functions_f.html | 37 + docs/search/functions_f.js | 11 + docs/search/groups_0.html | 37 + docs/search/groups_0.js | 4 + docs/search/mag_sel.svg | 74 + docs/search/namespaces_0.html | 37 + docs/search/namespaces_0.js | 4 + docs/search/namespaces_1.html | 37 + docs/search/namespaces_1.js | 4 + docs/search/namespaces_2.html | 37 + docs/search/namespaces_2.js | 4 + docs/search/nomatches.html | 13 + docs/search/search.css | 257 ++ docs/search/search.js | 816 +++++ docs/search/search_l.png | Bin 0 -> 567 bytes docs/search/search_m.png | Bin 0 -> 158 bytes docs/search/search_r.png | Bin 0 -> 553 bytes docs/search/searchdata.js | 30 + docs/search/variables_0.html | 37 + docs/search/variables_0.js | 4 + docs/search/variables_1.html | 37 + docs/search/variables_1.js | 4 + docs/search/variables_2.html | 37 + docs/search/variables_2.js | 8 + docs/search/variables_3.html | 37 + docs/search/variables_3.js | 4 + docs/search/variables_4.html | 37 + docs/search/variables_4.js | 4 + docs/search/variables_5.html | 37 + docs/search/variables_5.js | 4 + docs/search/variables_6.html | 37 + docs/search/variables_6.js | 4 + docs/splitbar.png | Bin 0 -> 314 bytes docs/sync_off.png | Bin 0 -> 853 bytes docs/sync_on.png | Bin 0 -> 845 bytes docs/tab_a.png | Bin 0 -> 142 bytes docs/tab_b.png | Bin 0 -> 169 bytes docs/tab_h.png | Bin 0 -> 177 bytes docs/tab_s.png | Bin 0 -> 184 bytes docs/tabs.css | 1 + 516 files changed, 61434 insertions(+), 1 deletion(-) create mode 100644 docs/annotated.html create mode 100644 docs/bc_s.png create mode 100644 docs/bdwn.png create mode 100644 docs/classes.html create mode 100644 docs/closed.png create mode 100644 docs/d0/d6e/_circle_8hxx_source.html create mode 100644 docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.map create mode 100644 docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.md5 create mode 100644 docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.png create mode 100644 docs/d0/dcb/_thread_pool_8hxx_source.html create mode 100644 docs/d1/d07/_generic_container_cinterface_8h_source.html create mode 100644 docs/d1/d4a/class_utils_1_1_tic_toc-members.html create mode 100644 docs/d1/d55/class_g2lib_1_1_b_box-members.html create mode 100644 docs/d1/d74/class_g2lib_1_1_circle_arc-members.html create mode 100644 docs/d1/d7c/namespace_utils.html create mode 100644 docs/d1/d7d/class_generic_container_namespace_1_1_generic_container-members.html create mode 100644 docs/d1/d94/class_g2lib_1_1_clothoid_curve-members.html create mode 100644 docs/d1/daa/_malloc_8hxx_source.html create mode 100644 docs/d1/dd1/class_utils_1_1_console_1_1_console__style-members.html create mode 100644 docs/d1/dec/class_g2lib_1_1_g2solve3arc.html create mode 100644 docs/d1/def/class_g2lib_1_1_poly_line-members.html create mode 100644 docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.map create mode 100644 docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.md5 create mode 100644 docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.png create mode 100644 docs/d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html create mode 100644 docs/d1/df8/class_utils_1_1_console.html create mode 100644 docs/d2/d00/class_g2lib_1_1_poly_line.html create mode 100644 docs/d2/d03/class_g2lib_1_1_base_curve.html create mode 100644 docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.map create mode 100644 docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.md5 create mode 100644 docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.png create mode 100644 docs/d2/d25/class_utils_1_1_thread_pool.html create mode 100644 docs/d2/d79/class_g2lib_1_1_asy_plot.html create mode 100644 docs/d2/d7b/class_g2lib_1_1_biarc_list-members.html create mode 100644 docs/d2/db5/class_utils_1_1_spin_lock-members.html create mode 100644 docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.map create mode 100644 docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.md5 create mode 100644 docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.png create mode 100644 docs/d3/d06/_generic_container_libs_8hh_source.html create mode 100644 docs/d3/d23/class_utils_1_1_spin_lock__barrier.html create mode 100644 docs/d3/d44/_numbers_8hxx_source.html create mode 100644 docs/d3/d48/class_utils_1_1_console-members.html create mode 100644 docs/d3/d67/group___generic.html create mode 100644 docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.map create mode 100644 docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.md5 create mode 100644 docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.png create mode 100644 docs/d3/dbc/class_utils_1_1_worker-members.html create mode 100644 docs/d3/df1/class_g2lib_1_1_asy_plot-members.html create mode 100644 docs/d4/d09/_generic_container__doc_8hh_source.html create mode 100644 docs/d4/d23/class_utils_1_1_worker.html create mode 100644 docs/d4/d36/_a_a_b_btree_8hxx_source.html create mode 100644 docs/d4/d63/class_utils_1_1_spin_lock.html create mode 100644 docs/d4/d66/class_g2lib_1_1_g2solve_c_l_c-members.html create mode 100644 docs/d4/d9f/namespace_g2lib.html create mode 100644 docs/d4/db2/_generic_container_config_8hh_source.html create mode 100644 docs/d4/df9/structc__complex__type-members.html create mode 100644 docs/d5/d1e/class_g2lib_1_1_a_a_b_btree.html create mode 100644 docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.map create mode 100644 docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.md5 create mode 100644 docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.png create mode 100644 docs/d5/d44/namespace_polynomial_roots.html create mode 100644 docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.map create mode 100644 docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.md5 create mode 100644 docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.png create mode 100644 docs/d5/d7a/class_g2lib_1_1_solve2x2-members.html create mode 100644 docs/d5/d81/class_utils_1_1_simple_semaphore.html create mode 100644 docs/d5/d94/class_g2lib_1_1_g2solve3arc-members.html create mode 100644 docs/d5/de3/_trace_8hxx_source.html create mode 100644 docs/d5/de4/class_generic_container_namespace_1_1mat__type.html create mode 100644 docs/d5/ded/class_polynomial_roots_1_1_quadratic.html create mode 100644 docs/d6/d2e/class_utils_1_1_thread_pool-members.html create mode 100644 docs/d6/d33/structc__complex__type.html create mode 100644 docs/d6/d39/class_utils_1_1_simple_semaphore-members.html create mode 100644 docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.map create mode 100644 docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.md5 create mode 100644 docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.png create mode 100644 docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.map create mode 100644 docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.md5 create mode 100644 docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.png create mode 100644 docs/d6/dde/class_utils_1_1_wait_worker.html create mode 100644 docs/d6/de4/class_utils_1_1_malloc-members.html create mode 100644 docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.map create mode 100644 docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.md5 create mode 100644 docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.png create mode 100644 docs/d6/ded/_utils_8hxx_source.html create mode 100644 docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.map create mode 100644 docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.md5 create mode 100644 docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.png create mode 100644 docs/d6/df5/_triangle2_d_8hxx_source.html create mode 100644 docs/d6/df9/class_utils_1_1_spin_lock__barrier-members.html create mode 100644 docs/d7/d02/class_g2lib_1_1_clothoid_list.html create mode 100644 docs/d7/d32/_polynomial_roots-_utils_8hh_source.html create mode 100644 docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.map create mode 100644 docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.md5 create mode 100644 docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.png create mode 100644 docs/d7/d79/class_generic_container_namespace_1_1_generic_container_explorer-members.html create mode 100644 docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.map create mode 100644 docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.md5 create mode 100644 docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.png create mode 100644 docs/d7/db2/class_polynomial_roots_1_1_cubic-members.html create mode 100644 docs/d7/dc1/_clothoids_8hh_source.html create mode 100644 docs/d7/dd9/class_g2lib_1_1_circle_arc.html create mode 100644 docs/d7/df9/class_utils_1_1_tic_toc.html create mode 100644 docs/d8/d20/class_utils_1_1_barrier.html create mode 100644 docs/d8/d68/_generic_container_8hh_source.html create mode 100644 docs/d8/d7c/class_g2lib_1_1_triangle2_d.html create mode 100644 docs/d8/d7d/class_utils_1_1_runtime___trace_error.html create mode 100644 docs/d8/d87/_console_8hxx_source.html create mode 100644 docs/d8/d89/_poly_line_8hxx_source.html create mode 100644 docs/d8/d9e/class_polynomial_roots_1_1_quadratic-members.html create mode 100644 docs/d8/dc6/class_g2lib_1_1_clothoid_list-members.html create mode 100644 docs/d8/dec/class_polynomial_roots_1_1_quartic.html create mode 100644 docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.map create mode 100644 docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.md5 create mode 100644 docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.png create mode 100644 docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.map create mode 100644 docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.md5 create mode 100644 docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.png create mode 100644 docs/d9/d0c/class_g2lib_1_1_line_segment.html create mode 100644 docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.map create mode 100644 docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.md5 create mode 100644 docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.png create mode 100644 docs/d9/d24/_base_curve__using_8hxx_source.html create mode 100644 docs/d9/d76/class_g2lib_1_1_triangle2_d-members.html create mode 100644 docs/d9/d8c/_clothoid_asy_plot_8hxx_source.html create mode 100644 docs/d9/d96/class_utils_1_1_binary_search.html create mode 100644 docs/d9/dcc/rang_8hpp_source.html create mode 100644 docs/d9/df7/class_polynomial_roots_1_1_cubic.html create mode 100644 docs/da/d14/class_g2lib_1_1_g2solve2arc-members.html create mode 100644 docs/da/d45/class_utils_1_1_runtime___trace_error-members.html create mode 100644 docs/da/d58/class_polynomial_roots_1_1_quartic-members.html create mode 100644 docs/da/d80/_polynomial_roots_8hh_source.html create mode 100644 docs/da/d83/_fresnel_8hxx_source.html create mode 100644 docs/da/da5/class_g2lib_1_1_g2solve2arc.html create mode 100644 docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.map create mode 100644 docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.md5 create mode 100644 docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.png create mode 100644 docs/da/dda/class_g2lib_1_1_g2solve_c_l_c.html create mode 100644 docs/da/dde/class_utils_1_1_binary_search-members.html create mode 100644 docs/db/d6b/class_utils_1_1_runtime___error.html create mode 100644 docs/db/d8d/class_utils_1_1_wait_worker-members.html create mode 100644 docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.map create mode 100644 docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.md5 create mode 100644 docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.png create mode 100644 docs/db/dd5/_utils_8hh_source.html create mode 100644 docs/dc/d27/class_g2lib_1_1_clothoid_curve.html create mode 100644 docs/dc/d2f/class_utils_1_1_barrier-members.html create mode 100644 docs/dc/d4f/_clothoid_8hxx_source.html create mode 100644 docs/dc/d5d/class_g2lib_1_1_clothoid_data.html create mode 100644 docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.map create mode 100644 docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.md5 create mode 100644 docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.png create mode 100644 docs/dc/d87/class_utils_1_1_malloc.html create mode 100644 docs/dc/da2/class_generic_container_namespace_1_1mat__type-members.html create mode 100644 docs/dc/db9/class_g2lib_1_1_line_segment-members.html create mode 100644 docs/dc/dbb/_tic_toc_8hxx_source.html create mode 100644 docs/dc/dd9/_biarc_list_8hxx_source.html create mode 100644 docs/dd/d06/class_utils_1_1_runtime___error-members.html create mode 100644 docs/dd/d68/class_utils_1_1_console_1_1_console__style.html create mode 100644 docs/dd/d79/class_g2lib_1_1_a_a_b_btree-members.html create mode 100644 docs/dd/d93/class_g2lib_1_1_clothoid_spline_g2-members.html create mode 100644 docs/dd/dd4/class_g2lib_1_1_biarc.html create mode 100644 docs/dd/dee/_g2lib_8hxx_source.html create mode 100644 docs/de/d0b/_line_8hxx_source.html create mode 100644 docs/de/d36/_biarc_8hxx_source.html create mode 100644 docs/de/d56/class_g2lib_1_1_b_box.html create mode 100644 docs/de/d89/class_g2lib_1_1_base_curve-members.html create mode 100644 docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.map create mode 100644 docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.md5 create mode 100644 docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.png create mode 100644 docs/de/df9/class_g2lib_1_1_biarc-members.html create mode 100644 docs/de/dfa/class_generic_container_namespace_1_1_generic_container.html create mode 100644 docs/df/d18/class_g2lib_1_1_clothoid_data-members.html create mode 100644 docs/df/d29/class_g2lib_1_1_biarc_list.html create mode 100644 docs/df/d4a/class_g2lib_1_1_clothoid_spline_g2.html create mode 100644 docs/df/d84/class_g2lib_1_1_solve2x2.html create mode 100644 docs/df/d97/_clothoid_list_8hxx_source.html create mode 100644 docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.map create mode 100644 docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.md5 create mode 100644 docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.png create mode 100644 docs/dir_0a1f12c766bab7b1122878f6ee86a58c.html create mode 100644 docs/dir_3e733afcaace4b8f3b921cf9d06105f1.html create mode 100644 docs/dir_44f31e97b68efd72c17d68a10af94e4a.html create mode 100644 docs/dir_58aa29abd9db8371a5f796d78f16f3c1.html create mode 100644 docs/dir_5944fc4197c9fcb1f3be2c4e9dbb3df2.html create mode 100644 docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 docs/dir_8cd12074276c6cad95ab77d33f11f7e2.html create mode 100644 docs/dir_9a6a40d0042babb0fe6d781664dd9493.html create mode 100644 docs/dir_c4eb734967f9c800ff33b84ad1703116.html create mode 100644 docs/dir_fe6eb5064d42f9f773e90d3512fafa25.html create mode 100644 docs/doc.png create mode 100644 docs/doxygen.css create mode 100644 docs/doxygen.svg create mode 100644 docs/dynsections.js create mode 100644 docs/files.html create mode 100644 docs/folderclosed.png create mode 100644 docs/folderopen.png create mode 100644 docs/functions.html create mode 100644 docs/functions_b.html create mode 100644 docs/functions_c.html create mode 100644 docs/functions_d.html create mode 100644 docs/functions_e.html create mode 100644 docs/functions_f.html create mode 100644 docs/functions_func.html create mode 100644 docs/functions_func_b.html create mode 100644 docs/functions_func_c.html create mode 100644 docs/functions_func_d.html create mode 100644 docs/functions_func_e.html create mode 100644 docs/functions_func_f.html create mode 100644 docs/functions_func_g.html create mode 100644 docs/functions_func_i.html create mode 100644 docs/functions_func_j.html create mode 100644 docs/functions_func_k.html create mode 100644 docs/functions_func_l.html create mode 100644 docs/functions_func_m.html create mode 100644 docs/functions_func_n.html create mode 100644 docs/functions_func_o.html create mode 100644 docs/functions_func_p.html create mode 100644 docs/functions_func_r.html create mode 100644 docs/functions_func_s.html create mode 100644 docs/functions_func_t.html create mode 100644 docs/functions_func_w.html create mode 100644 docs/functions_func_x.html create mode 100644 docs/functions_func_y.html create mode 100644 docs/functions_func_~.html create mode 100644 docs/functions_g.html create mode 100644 docs/functions_i.html create mode 100644 docs/functions_j.html create mode 100644 docs/functions_k.html create mode 100644 docs/functions_l.html create mode 100644 docs/functions_m.html create mode 100644 docs/functions_n.html create mode 100644 docs/functions_o.html create mode 100644 docs/functions_p.html create mode 100644 docs/functions_r.html create mode 100644 docs/functions_s.html create mode 100644 docs/functions_t.html create mode 100644 docs/functions_vars.html create mode 100644 docs/functions_w.html create mode 100644 docs/functions_x.html create mode 100644 docs/functions_y.html create mode 100644 docs/functions_~.html create mode 100644 docs/graph_legend.html create mode 100644 docs/graph_legend.md5 create mode 100644 docs/graph_legend.png create mode 100644 docs/hierarchy.html create mode 100644 docs/index.html create mode 100644 docs/inherit_graph_0.map create mode 100644 docs/inherit_graph_0.md5 create mode 100644 docs/inherit_graph_0.png create mode 100644 docs/inherit_graph_1.map create mode 100644 docs/inherit_graph_1.md5 create mode 100644 docs/inherit_graph_1.png create mode 100644 docs/inherit_graph_10.map create mode 100644 docs/inherit_graph_10.md5 create mode 100644 docs/inherit_graph_10.png create mode 100644 docs/inherit_graph_11.map create mode 100644 docs/inherit_graph_11.md5 create mode 100644 docs/inherit_graph_11.png create mode 100644 docs/inherit_graph_12.map create mode 100644 docs/inherit_graph_12.md5 create mode 100644 docs/inherit_graph_12.png create mode 100644 docs/inherit_graph_13.map create mode 100644 docs/inherit_graph_13.md5 create mode 100644 docs/inherit_graph_13.png create mode 100644 docs/inherit_graph_14.map create mode 100644 docs/inherit_graph_14.md5 create mode 100644 docs/inherit_graph_14.png create mode 100644 docs/inherit_graph_15.map create mode 100644 docs/inherit_graph_15.md5 create mode 100644 docs/inherit_graph_15.png create mode 100644 docs/inherit_graph_16.map create mode 100644 docs/inherit_graph_16.md5 create mode 100644 docs/inherit_graph_16.png create mode 100644 docs/inherit_graph_17.map create mode 100644 docs/inherit_graph_17.md5 create mode 100644 docs/inherit_graph_17.png create mode 100644 docs/inherit_graph_18.map create mode 100644 docs/inherit_graph_18.md5 create mode 100644 docs/inherit_graph_18.png create mode 100644 docs/inherit_graph_19.map create mode 100644 docs/inherit_graph_19.md5 create mode 100644 docs/inherit_graph_19.png create mode 100644 docs/inherit_graph_2.map create mode 100644 docs/inherit_graph_2.md5 create mode 100644 docs/inherit_graph_2.png create mode 100644 docs/inherit_graph_20.map create mode 100644 docs/inherit_graph_20.md5 create mode 100644 docs/inherit_graph_20.png create mode 100644 docs/inherit_graph_21.map create mode 100644 docs/inherit_graph_21.md5 create mode 100644 docs/inherit_graph_21.png create mode 100644 docs/inherit_graph_22.map create mode 100644 docs/inherit_graph_22.md5 create mode 100644 docs/inherit_graph_22.png create mode 100644 docs/inherit_graph_23.map create mode 100644 docs/inherit_graph_23.md5 create mode 100644 docs/inherit_graph_23.png create mode 100644 docs/inherit_graph_24.map create mode 100644 docs/inherit_graph_24.md5 create mode 100644 docs/inherit_graph_24.png create mode 100644 docs/inherit_graph_25.map create mode 100644 docs/inherit_graph_25.md5 create mode 100644 docs/inherit_graph_25.png create mode 100644 docs/inherit_graph_26.map create mode 100644 docs/inherit_graph_26.md5 create mode 100644 docs/inherit_graph_26.png create mode 100644 docs/inherit_graph_27.map create mode 100644 docs/inherit_graph_27.md5 create mode 100644 docs/inherit_graph_27.png create mode 100644 docs/inherit_graph_28.map create mode 100644 docs/inherit_graph_28.md5 create mode 100644 docs/inherit_graph_28.png create mode 100644 docs/inherit_graph_29.map create mode 100644 docs/inherit_graph_29.md5 create mode 100644 docs/inherit_graph_29.png create mode 100644 docs/inherit_graph_3.map create mode 100644 docs/inherit_graph_3.md5 create mode 100644 docs/inherit_graph_3.png create mode 100644 docs/inherit_graph_30.map create mode 100644 docs/inherit_graph_30.md5 create mode 100644 docs/inherit_graph_30.png create mode 100644 docs/inherit_graph_31.map create mode 100644 docs/inherit_graph_31.md5 create mode 100644 docs/inherit_graph_31.png create mode 100644 docs/inherit_graph_32.map create mode 100644 docs/inherit_graph_32.md5 create mode 100644 docs/inherit_graph_32.png create mode 100644 docs/inherit_graph_4.map create mode 100644 docs/inherit_graph_4.md5 create mode 100644 docs/inherit_graph_4.png create mode 100644 docs/inherit_graph_5.map create mode 100644 docs/inherit_graph_5.md5 create mode 100644 docs/inherit_graph_5.png create mode 100644 docs/inherit_graph_6.map create mode 100644 docs/inherit_graph_6.md5 create mode 100644 docs/inherit_graph_6.png create mode 100644 docs/inherit_graph_7.map create mode 100644 docs/inherit_graph_7.md5 create mode 100644 docs/inherit_graph_7.png create mode 100644 docs/inherit_graph_8.map create mode 100644 docs/inherit_graph_8.md5 create mode 100644 docs/inherit_graph_8.png create mode 100644 docs/inherit_graph_9.map create mode 100644 docs/inherit_graph_9.md5 create mode 100644 docs/inherit_graph_9.png create mode 100644 docs/inherits.html create mode 100644 docs/jquery.js create mode 100644 docs/logo.pdf create mode 100644 docs/menu.js create mode 100644 docs/menudata.js create mode 100644 docs/modules.html create mode 100644 docs/namespacemembers.html create mode 100644 docs/namespacemembers_func.html create mode 100644 docs/namespacemembers_vars.html create mode 100644 docs/namespaces.html create mode 100644 docs/nav_f.png create mode 100644 docs/nav_g.png create mode 100644 docs/nav_h.png create mode 100644 docs/open.png create mode 100644 docs/search/all_0.html create mode 100644 docs/search/all_0.js create mode 100644 docs/search/all_1.html create mode 100644 docs/search/all_1.js create mode 100644 docs/search/all_10.html create mode 100644 docs/search/all_10.js create mode 100644 docs/search/all_11.html create mode 100644 docs/search/all_11.js create mode 100644 docs/search/all_12.html create mode 100644 docs/search/all_12.js create mode 100644 docs/search/all_13.html create mode 100644 docs/search/all_13.js create mode 100644 docs/search/all_14.html create mode 100644 docs/search/all_14.js create mode 100644 docs/search/all_15.html create mode 100644 docs/search/all_15.js create mode 100644 docs/search/all_16.html create mode 100644 docs/search/all_16.js create mode 100644 docs/search/all_17.html create mode 100644 docs/search/all_17.js create mode 100644 docs/search/all_2.html create mode 100644 docs/search/all_2.js create mode 100644 docs/search/all_3.html create mode 100644 docs/search/all_3.js create mode 100644 docs/search/all_4.html create mode 100644 docs/search/all_4.js create mode 100644 docs/search/all_5.html create mode 100644 docs/search/all_5.js create mode 100644 docs/search/all_6.html create mode 100644 docs/search/all_6.js create mode 100644 docs/search/all_7.html create mode 100644 docs/search/all_7.js create mode 100644 docs/search/all_8.html create mode 100644 docs/search/all_8.js create mode 100644 docs/search/all_9.html create mode 100644 docs/search/all_9.js create mode 100644 docs/search/all_a.html create mode 100644 docs/search/all_a.js create mode 100644 docs/search/all_b.html create mode 100644 docs/search/all_b.js create mode 100644 docs/search/all_c.html create mode 100644 docs/search/all_c.js create mode 100644 docs/search/all_d.html create mode 100644 docs/search/all_d.js create mode 100644 docs/search/all_e.html create mode 100644 docs/search/all_e.js create mode 100644 docs/search/all_f.html create mode 100644 docs/search/all_f.js create mode 100644 docs/search/classes_0.html create mode 100644 docs/search/classes_0.js create mode 100644 docs/search/classes_1.html create mode 100644 docs/search/classes_1.js create mode 100644 docs/search/classes_2.html create mode 100644 docs/search/classes_2.js create mode 100644 docs/search/classes_3.html create mode 100644 docs/search/classes_3.js create mode 100644 docs/search/classes_4.html create mode 100644 docs/search/classes_4.js create mode 100644 docs/search/classes_5.html create mode 100644 docs/search/classes_5.js create mode 100644 docs/search/classes_6.html create mode 100644 docs/search/classes_6.js create mode 100644 docs/search/classes_7.html create mode 100644 docs/search/classes_7.js create mode 100644 docs/search/classes_8.html create mode 100644 docs/search/classes_8.js create mode 100644 docs/search/classes_9.html create mode 100644 docs/search/classes_9.js create mode 100644 docs/search/classes_a.html create mode 100644 docs/search/classes_a.js create mode 100644 docs/search/classes_b.html create mode 100644 docs/search/classes_b.js create mode 100644 docs/search/close.svg create mode 100644 docs/search/functions_0.html create mode 100644 docs/search/functions_0.js create mode 100644 docs/search/functions_1.html create mode 100644 docs/search/functions_1.js create mode 100644 docs/search/functions_10.html create mode 100644 docs/search/functions_10.js create mode 100644 docs/search/functions_11.html create mode 100644 docs/search/functions_11.js create mode 100644 docs/search/functions_12.html create mode 100644 docs/search/functions_12.js create mode 100644 docs/search/functions_13.html create mode 100644 docs/search/functions_13.js create mode 100644 docs/search/functions_14.html create mode 100644 docs/search/functions_14.js create mode 100644 docs/search/functions_15.html create mode 100644 docs/search/functions_15.js create mode 100644 docs/search/functions_2.html create mode 100644 docs/search/functions_2.js create mode 100644 docs/search/functions_3.html create mode 100644 docs/search/functions_3.js create mode 100644 docs/search/functions_4.html create mode 100644 docs/search/functions_4.js create mode 100644 docs/search/functions_5.html create mode 100644 docs/search/functions_5.js create mode 100644 docs/search/functions_6.html create mode 100644 docs/search/functions_6.js create mode 100644 docs/search/functions_7.html create mode 100644 docs/search/functions_7.js create mode 100644 docs/search/functions_8.html create mode 100644 docs/search/functions_8.js create mode 100644 docs/search/functions_9.html create mode 100644 docs/search/functions_9.js create mode 100644 docs/search/functions_a.html create mode 100644 docs/search/functions_a.js create mode 100644 docs/search/functions_b.html create mode 100644 docs/search/functions_b.js create mode 100644 docs/search/functions_c.html create mode 100644 docs/search/functions_c.js create mode 100644 docs/search/functions_d.html create mode 100644 docs/search/functions_d.js create mode 100644 docs/search/functions_e.html create mode 100644 docs/search/functions_e.js create mode 100644 docs/search/functions_f.html create mode 100644 docs/search/functions_f.js create mode 100644 docs/search/groups_0.html create mode 100644 docs/search/groups_0.js create mode 100644 docs/search/mag_sel.svg create mode 100644 docs/search/namespaces_0.html create mode 100644 docs/search/namespaces_0.js create mode 100644 docs/search/namespaces_1.html create mode 100644 docs/search/namespaces_1.js create mode 100644 docs/search/namespaces_2.html create mode 100644 docs/search/namespaces_2.js create mode 100644 docs/search/nomatches.html create mode 100644 docs/search/search.css create mode 100644 docs/search/search.js create mode 100644 docs/search/search_l.png create mode 100644 docs/search/search_m.png create mode 100644 docs/search/search_r.png create mode 100644 docs/search/searchdata.js create mode 100644 docs/search/variables_0.html create mode 100644 docs/search/variables_0.js create mode 100644 docs/search/variables_1.html create mode 100644 docs/search/variables_1.js create mode 100644 docs/search/variables_2.html create mode 100644 docs/search/variables_2.js create mode 100644 docs/search/variables_3.html create mode 100644 docs/search/variables_3.js create mode 100644 docs/search/variables_4.html create mode 100644 docs/search/variables_4.js create mode 100644 docs/search/variables_5.html create mode 100644 docs/search/variables_5.js create mode 100644 docs/search/variables_6.html create mode 100644 docs/search/variables_6.js create mode 100644 docs/splitbar.png create mode 100644 docs/sync_off.png create mode 100644 docs/sync_on.png create mode 100644 docs/tab_a.png create mode 100644 docs/tab_b.png create mode 100644 docs/tab_h.png create mode 100644 docs/tab_s.png create mode 100644 docs/tabs.css diff --git a/Doxyfile b/Doxyfile index ecd23101..3eeb5fa6 100644 --- a/Doxyfile +++ b/Doxyfile @@ -813,7 +813,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = src +INPUT = src src/Clothoids submodules/GenericContainer/src submodules/Utils/src submodules/Utils/src/Utils submodules/quarticRootsFlocke/src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/docs/annotated.html b/docs/annotated.html new file mode 100644 index 00000000..354d1128 --- /dev/null +++ b/docs/annotated.html @@ -0,0 +1,130 @@ + + + + + + + +Clothoids: Class List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NG2libClothoid computations routine
 CBBoxClass to manipulate bounding box
 CAABBtreeClass to manage AABB tree
 CBiarcCompute biarc fitting by Hemite data
 CBiarcListClass to manage a list of biarc Curve (not necessarily G2 or G1 connected)
 CCircleArcClass to manage Clothoid Curve
 CClothoidCurveClass to manage Clothoid Curve
 CAsyPlot
 CG2solve2arcComputation of the G2 fitting with 2 clothoid arc
 CG2solveCLCComputation of the G2 fitting with 2 clothoid and one line segment
 CG2solve3arcComputation of the G2 fitting with 3 clothoid arcs
 CClothoidListClass to manage a list of clothoid curves (not necessarily G2 or G1 connected)
 CClothoidSplineG2Class for the computation of G2 spljne of clothoids
 CClothoidDataData storage for clothoid type curve
 CSolve2x2Class that solve a 2x2 linear system
 CBaseCurveBase classe for all the curve ìs in the library
 CLineSegmentClass to manage a straight segment
 CPolyLineClass to manage a collection of straight segment
 CTriangle2DClass to manage Triangle for BB of clothoid curve
 NGenericContainerNamespace
 Cmat_type
 CGenericContainerGenericContainer is a class which permit to store eterogeneous data:
 CGenericContainerExplorer
 NPolynomialRootsImplementation of Flocke algorithm for roots of 3rd and 4th degree polynomials
 CQuadraticQuadratic polynomial class
 CCubicCubic polynomial class
 CQuarticQuartic polynomial class
 NUtils
 CConsole
 CConsole_style
 CMallocAllocate memory
 CSpinLock
 CWaitWorker
 CBinarySearch
 CSpinLock_barrier
 CBarrier
 CSimpleSemaphore
 CWorker
 CThreadPool
 CTicToc
 CRuntime_TraceError
 CRuntime_Error
 Cc_complex_type
+
+
+ + + + diff --git a/docs/bc_s.png b/docs/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/docs/bdwn.png b/docs/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +Clothoids: Class Index + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+ + + + + diff --git a/docs/closed.png b/docs/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/docs/d0/d6e/_circle_8hxx_source.html b/docs/d0/d6e/_circle_8hxx_source.html new file mode 100644 index 00000000..f96ecfa3 --- /dev/null +++ b/docs/d0/d6e/_circle_8hxx_source.html @@ -0,0 +1,767 @@ + + + + + + + +Clothoids: src/Clothoids/Circle.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Circle.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  /*\
+
28  | ____ _ _ _
+
29  | / ___(_)_ __ ___| | ___ / \ _ __ ___
+
30  | | | | | '__/ __| |/ _ \ / _ \ | '__/ __|
+
31  | | |___| | | | (__| | __// ___ \| | | (__
+
32  | \____|_|_| \___|_|\___/_/ \_\_| \___|
+
33  \*/
+
34 
+
36  class CircleArc : public BaseCurve {
+
37 
+
38  friend class Biarc;
+
39 
+
40  real_type m_x0;
+
41  real_type m_y0;
+
42  real_type m_theta0;
+
43  real_type m_c0;
+
44  real_type m_s0;
+
45  real_type m_k;
+
46 
+
47  real_type m_L;
+
48 
+
49  public:
+
50 
+
51  #include "BaseCurve_using.hxx"
+
52 
+
53  //explicit
+
54  CircleArc()
+
55  : BaseCurve(G2LIB_CIRCLE)
+
56  , m_x0(0)
+
57  , m_y0(0)
+
58  , m_theta0(0)
+
59  , m_c0(1)
+
60  , m_s0(0)
+
61  , m_k(0)
+
62  , m_L(0)
+
63  {}
+
64 
+
65  //explicit
+
66  CircleArc( CircleArc const & s )
+
67  : BaseCurve(G2LIB_CIRCLE)
+
68  { copy(s); }
+
69 
+
71  explicit
+ +
73  real_type x0,
+
74  real_type y0,
+
75  real_type theta0,
+
76  real_type k,
+
77  real_type L
+
78  )
+
79  : BaseCurve(G2LIB_CIRCLE)
+
80  , m_x0(x0)
+
81  , m_y0(y0)
+
82  , m_theta0(theta0)
+
83  , m_c0(cos(theta0))
+
84  , m_s0(sin(theta0))
+
85  , m_k(k)
+
86  , m_L(L)
+
87  {}
+
88 
+
90  explicit
+
91  CircleArc( LineSegment const & LS )
+
92  : BaseCurve(G2LIB_CIRCLE)
+
93  , m_x0(LS.xBegin())
+
94  , m_y0(LS.yBegin())
+
95  , m_theta0(LS.m_theta0)
+
96  , m_c0(LS.m_c0)
+
97  , m_s0(LS.m_s0)
+
98  , m_k(0)
+
99  , m_L(LS.length())
+
100  {}
+
101 
+
102  void
+
103  copy( CircleArc const & c ) {
+
104  m_x0 = c.m_x0;
+
105  m_y0 = c.m_y0;
+
106  m_theta0 = c.m_theta0;
+
107  m_c0 = c.m_c0;
+
108  m_s0 = c.m_s0;
+
109  m_k = c.m_k;
+
110  m_L = c.m_L;
+
111  }
+
112 
+
113  explicit
+
114  CircleArc( BaseCurve const & C );
+
115 
+
116  CircleArc const &
+
117  operator = ( CircleArc const & s )
+
118  { copy(s); return *this; }
+
119 
+
121  void
+ +
123  real_type x0,
+
124  real_type y0,
+
125  real_type theta0,
+
126  real_type k,
+
127  real_type L
+
128  ) {
+
129  m_x0 = x0;
+
130  m_y0 = y0;
+
131  m_theta0 = theta0;
+
132  m_k = k;
+
133  m_L = L;
+
134  }
+
135 
+
137  bool
+
138  build_G1(
+
139  real_type x0,
+
140  real_type y0,
+
141  real_type theta0,
+
142  real_type x1,
+
143  real_type y1
+
144  );
+
145 
+
147  bool
+
148  build_3P(
+
149  real_type x0,
+
150  real_type y0,
+
151  real_type x1,
+
152  real_type y1,
+
153  real_type x2,
+
154  real_type y2
+
155  );
+
156 
+
157  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
158 
+
160  bool
+
161  bbTriangle(
+
162  real_type & x0, real_type & y0,
+
163  real_type & x1, real_type & y1,
+
164  real_type & x2, real_type & y2
+
165  ) const;
+
166 
+
168  bool
+ +
170  real_type offs,
+
171  real_type & x0, real_type & y0,
+
172  real_type & x1, real_type & y1,
+
173  real_type & x2, real_type & y2
+
174  ) const;
+
175 
+
177  bool
+ +
179  real_type offs,
+
180  real_type & _x0, real_type & _y0,
+
181  real_type & _x1, real_type & _y1,
+
182  real_type & _x2, real_type & _y2
+
183  ) const {
+
184  return this->bbTriangle_ISO( -offs, _x0, _y0, _x1, _y1, _x2, _y2 );
+
185  }
+
186 
+
187  bool
+
188  bbTriangle(
+
189  real_type p0[2],
+
190  real_type p1[2],
+
191  real_type p2[2]
+
192  ) const {
+
193  return bbTriangle( p0[0], p0[1], p1[0], p1[1], p2[0], p2[1] );
+
194  }
+
195 
+
196  bool
+ +
198  real_type offs,
+
199  real_type p0[2],
+
200  real_type p1[2],
+
201  real_type p2[2]
+
202  ) const {
+
203  return bbTriangle_ISO( offs, p0[0], p0[1], p1[0], p1[1], p2[0], p2[1] );
+
204  }
+
205 
+
206  bool
+ +
208  real_type offs,
+
209  real_type p0[2],
+
210  real_type p1[2],
+
211  real_type p2[2]
+
212  ) const {
+
213  return bbTriangle_SAE( offs, p0[0], p0[1], p1[0], p1[1], p2[0], p2[1] );
+
214  }
+
215 
+
216  bool
+
217  bbTriangle(
+
218  Triangle2D & t,
+
219  real_type ss0 = 0,
+
220  real_type ss1 = 0,
+
221  int_type icurve = 0
+
222  ) const {
+
223  real_type p0[2], p1[2], p2[2];
+
224  bool ok = bbTriangle( p0, p1, p2 );
+
225  if ( ok ) t.build( p0, p1, p2, ss0, ss1, icurve );
+
226  return ok;
+
227  }
+
228 
+
229  bool
+ +
231  real_type offs,
+
232  Triangle2D & t,
+
233  real_type ss0 = 0,
+
234  real_type ss1 = 0,
+
235  int_type icurve = 0
+
236  ) const {
+
237  real_type p0[2], p1[2], p2[2];
+
238  bool ok = bbTriangle_ISO( offs, p0, p1, p2 );
+
239  if ( ok ) t.build( p0, p1, p2, ss0, ss1, icurve );
+
240  return ok;
+
241  }
+
242 
+
243  bool
+ +
245  real_type offs,
+
246  Triangle2D & t,
+
247  real_type ss0 = 0,
+
248  real_type ss1 = 0,
+
249  int_type icurve = 0
+
250  ) const {
+
251  return this->bbTriangle_ISO( -offs, t, ss0, ss1, icurve );
+
252  }
+
253 
+
254  void
+
255  bbTriangles(
+
256  std::vector<Triangle2D> & tvec,
+
257  real_type max_angle = Utils::m_pi/18,
+
258  real_type max_size = 1e100,
+
259  int_type icurve = 0
+
260  ) const; // 10 degree
+
261 
+
262  void
+
263  bbTriangles_ISO(
+
264  real_type offs,
+
265  std::vector<Triangle2D> & tvec,
+
266  real_type max_angle = Utils::m_pi/18,
+
267  real_type max_size = 1e100,
+
268  int_type icurve = 0
+
269  ) const; // 10 degree
+
270 
+
271  void
+
272  bbTriangles_SAE(
+
273  real_type offs,
+
274  std::vector<Triangle2D> & tvec,
+
275  real_type max_angle = Utils::m_pi/18,
+
276  real_type max_size = 1e100,
+
277  int_type icurve = 0
+
278  ) const {
+
279  this->bbTriangles_ISO( -offs, tvec, max_angle, max_size, icurve );
+
280  }
+
281 
+
282  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
283 
+
284  virtual
+
285  void
+
286  bbox(
+
287  real_type & xmin,
+
288  real_type & ymin,
+
289  real_type & xmax,
+
290  real_type & ymax
+
291  ) const UTILS_OVERRIDE;
+
292 
+
293  virtual
+
294  void
+
295  bbox_ISO(
+
296  real_type offs,
+
297  real_type & xmin,
+
298  real_type & ymin,
+
299  real_type & xmax,
+
300  real_type & ymax
+
301  ) const UTILS_OVERRIDE;
+
302 
+
303  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
304 
+
305  virtual
+
306  real_type
+
307  length() const UTILS_OVERRIDE
+
308  { return m_L; }
+
309 
+
310  virtual
+
311  real_type
+
312  length_ISO( real_type offs ) const UTILS_OVERRIDE
+
313  { return m_L*(1+m_k*offs); }
+
314 
+
315  virtual
+
316  real_type
+
317  thetaBegin() const UTILS_OVERRIDE
+
318  { return m_theta0; }
+
319 
+
320  virtual
+
321  real_type
+
322  xBegin() const UTILS_OVERRIDE
+
323  { return m_x0; }
+
324 
+
325  virtual
+
326  real_type
+
327  yBegin() const UTILS_OVERRIDE
+
328  { return m_y0; }
+
329 
+
330  virtual
+
331  real_type
+
332  tx_Begin() const UTILS_OVERRIDE
+
333  { return m_c0; }
+
334 
+
335  virtual
+
336  real_type
+
337  ty_Begin() const UTILS_OVERRIDE
+
338  { return m_s0; }
+
339 
+
340  virtual
+
341  real_type
+
342  nx_Begin_ISO() const UTILS_OVERRIDE
+
343  { return m_s0; }
+
344 
+
345  virtual
+
346  real_type
+
347  ny_Begin_ISO() const UTILS_OVERRIDE
+
348  { return -m_c0; }
+
349 
+
350  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
351 
+
352  virtual
+
353  real_type
+
354  theta( real_type s ) const UTILS_OVERRIDE
+
355  { return m_theta0 + s*m_k; }
+
356 
+
357  virtual
+
358  real_type
+
359  theta_D( real_type ) const UTILS_OVERRIDE
+
360  { return m_k; }
+
361 
+
362  virtual
+
363  real_type
+
364  theta_DD( real_type ) const UTILS_OVERRIDE
+
365  { return 0; }
+
366 
+
367  virtual
+
368  real_type
+
369  theta_DDD( real_type ) const UTILS_OVERRIDE
+
370  { return 0; }
+
371 
+
372  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
373 
+
374  virtual
+
375  void
+
376  evaluate(
+
377  real_type s,
+
378  real_type & th,
+
379  real_type & kappa,
+
380  real_type & x,
+
381  real_type & y
+
382  ) const UTILS_OVERRIDE {
+
383  eval( s, x, y );
+
384  th = m_theta0 + s*m_k;
+
385  kappa = m_k;
+
386  }
+
387 
+
388  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
389 
+
390  virtual real_type X( real_type s ) const UTILS_OVERRIDE;
+
391  virtual real_type Y( real_type s ) const UTILS_OVERRIDE;
+
392 
+
393  virtual real_type X_D( real_type ) const UTILS_OVERRIDE;
+
394  virtual real_type Y_D( real_type ) const UTILS_OVERRIDE;
+
395 
+
396  virtual real_type X_DD( real_type ) const UTILS_OVERRIDE;
+
397  virtual real_type Y_DD( real_type ) const UTILS_OVERRIDE;
+
398 
+
399  virtual real_type X_DDD( real_type ) const UTILS_OVERRIDE;
+
400  virtual real_type Y_DDD( real_type ) const UTILS_OVERRIDE;
+
401 
+
402  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
403 
+
404  virtual
+
405  void
+
406  eval(
+
407  real_type s,
+
408  real_type & x,
+
409  real_type & y
+
410  ) const UTILS_OVERRIDE;
+
411 
+
412  virtual
+
413  void
+
414  eval_D(
+
415  real_type,
+
416  real_type & x_D,
+
417  real_type & y_D
+
418  ) const UTILS_OVERRIDE;
+
419 
+
420  virtual
+
421  void
+
422  eval_DD(
+
423  real_type,
+
424  real_type & x_DD,
+
425  real_type & y_DD
+
426  ) const UTILS_OVERRIDE;
+
427 
+
428  virtual
+
429  void
+
430  eval_DDD(
+
431  real_type,
+
432  real_type & x_DDD,
+
433  real_type & y_DDD
+
434  ) const UTILS_OVERRIDE;
+
435 
+
436  /*\
+
437  | _____ _ _ _
+
438  | |_ _| __ _ _ __ __| | | \ | |
+
439  | | | / _` | '_ \ / _` | | \| |
+
440  | | | | (_| | | | | (_| | | |\ |
+
441  | |_| \__,_|_| |_|\__,_| |_| \_|
+
442  \*/
+
443 
+
444  virtual
+
445  real_type
+
446  tx( real_type s ) const UTILS_OVERRIDE
+
447  { return cos(theta(s)); }
+
448 
+
449  virtual
+
450  real_type
+
451  tx_D( real_type s ) const UTILS_OVERRIDE
+
452  { return -sin(theta(s))*m_k; }
+
453 
+
454  virtual
+
455  real_type
+
456  tx_DD( real_type s ) const UTILS_OVERRIDE
+
457  { return -cos(theta(s))*m_k*m_k; }
+
458 
+
459  virtual
+
460  real_type
+
461  tx_DDD( real_type s ) const UTILS_OVERRIDE
+
462  { return sin(theta(s))*m_k*m_k*m_k; }
+
463 
+
464  virtual
+
465  real_type
+
466  ty( real_type s ) const UTILS_OVERRIDE
+
467  { return sin(theta(s)); }
+
468 
+
469  virtual
+
470  real_type
+
471  ty_D( real_type s ) const UTILS_OVERRIDE
+
472  { return cos(theta(s))*m_k; }
+
473 
+
474  virtual
+
475  real_type
+
476  ty_DD( real_type s ) const UTILS_OVERRIDE
+
477  { return -sin(theta(s))*m_k*m_k; }
+
478 
+
479  virtual
+
480  real_type
+
481  ty_DDD( real_type s ) const UTILS_OVERRIDE
+
482  { return -cos(theta(s))*m_k*m_k*m_k; }
+
483 
+
484  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
485 
+
486  virtual
+
487  void
+
488  tg( real_type s, real_type & tx, real_type & ty ) const UTILS_OVERRIDE;
+
489 
+
490  virtual
+
491  void
+
492  tg_D( real_type s, real_type & tx_D, real_type & ty_D ) const UTILS_OVERRIDE;
+
493 
+
494  virtual
+
495  void
+
496  tg_DD( real_type s, real_type & tx_DD, real_type & ty_DD ) const UTILS_OVERRIDE;
+
497 
+
498  virtual
+
499  void
+
500  tg_DDD( real_type s, real_type & tx_DDD, real_type & ty_DDD ) const UTILS_OVERRIDE;
+
501 
+
502  /*\
+
503  | _ __
+
504  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
505  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
506  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
507  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
508  \*/
+
509 
+
510  virtual
+
511  void
+
512  translate( real_type tx, real_type ty ) UTILS_OVERRIDE
+
513  { m_x0 += tx; m_y0 += ty; }
+
514 
+
515  virtual
+
516  void
+
517  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE;
+
518 
+
519  virtual
+
520  void
+
521  reverse() UTILS_OVERRIDE;
+
522 
+
523  virtual
+
524  void
+
525  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE
+
526  { m_x0 = newx0; m_y0 = newy0; }
+
527 
+
528  virtual
+
529  void
+
530  scale( real_type s ) UTILS_OVERRIDE;
+
531 
+
532  virtual
+
533  void
+
534  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE;
+
535 
+
536  /*\
+
537  | _ _ ____ _ _
+
538  | ___| | ___ ___ ___ ___| |_| _ \ ___ (_)_ __ | |_
+
539  | / __| |/ _ \/ __|/ _ \/ __| __| |_) / _ \| | '_ \| __|
+
540  | | (__| | (_) \__ \ __/\__ \ |_| __/ (_) | | | | | |_
+
541  | \___|_|\___/|___/\___||___/\__|_| \___/|_|_| |_|\__|
+
542  |
+
543  \*/
+
544 
+
545  virtual
+
546  int_type
+ +
548  real_type qx,
+
549  real_type qy,
+
550  real_type & x,
+
551  real_type & y,
+
552  real_type & s,
+
553  real_type & t,
+
554  real_type & dst
+
555  ) const UTILS_OVERRIDE;
+
556 
+
557  virtual
+
558  int_type
+ +
560  real_type qx,
+
561  real_type qy,
+
562  real_type offs,
+
563  real_type & x,
+
564  real_type & y,
+
565  real_type & s,
+
566  real_type & t,
+
567  real_type & dst
+
568  ) const UTILS_OVERRIDE;
+
569 
+
570  virtual
+
571  void
+
572  info( ostream_type & stream ) const UTILS_OVERRIDE
+
573  { stream << "CircleArc\n" << *this << '\n'; }
+
574 
+
575  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
576  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
577  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
578 
+
579  /*\
+
580  | _ _ _ _
+
581  | ___ ___ | | (_)___(_) ___ _ __
+
582  | / __/ _ \| | | / __| |/ _ \| '_ \
+
583  | | (_| (_) | | | \__ \ | (_) | | | |
+
584  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
585  \*/
+
586 
+
587  bool
+
588  collision( CircleArc const & ) const;
+
589 
+
590  bool
+
591  collision_ISO(
+
592  real_type offs,
+
593  CircleArc const & C,
+
594  real_type offs_obj
+
595  ) const;
+
596 
+
597  /*\
+
598  | _ _ _
+
599  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
600  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
601  | | | | | | || __/ | \__ \ __/ (__| |_
+
602  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
603  \*/
+
604 
+
605  void
+
606  intersect(
+
607  CircleArc const & obj,
+
608  IntersectList & ilist,
+
609  bool swap_s_vals
+
610  ) const;
+
611 
+
612  void
+
613  intersect_ISO(
+
614  real_type offs,
+
615  CircleArc const & C,
+
616  real_type offs_obj,
+
617  IntersectList & ilist,
+
618  bool swap_s_vals
+
619  ) const;
+
620 
+
621  real_type sinTheta0() const { return sin(m_theta0); }
+
622  real_type cosTheta0() const { return cos(m_theta0); }
+
623  real_type curvature() const { return m_k; }
+
624 
+
625  // return the length of the arc that can approximated
+
626  // by a line segment
+
627  real_type lenTolerance( real_type tol ) const;
+
628 
+
629  real_type
+
630  delta_theta() const
+
631  { return m_L*m_k; }
+
632 
+
633  real_type
+
634  thetaTotalVariation() const
+
635  { return std::abs(m_L*m_k); }
+
636 
+
637  real_type
+
638  thetaMinMax( real_type & thMin, real_type & thMax ) const;
+
639 
+
640  real_type
+
641  deltaTheta() const
+
642  { real_type thMin, thMax; return thetaMinMax( thMin, thMax ); }
+
643 
+
644  void
+
645  changeCurvilinearOrigin( real_type s0, real_type newL );
+
646 
+
647  void
+
648  center( real_type & cx, real_type & cy ) const;
+
649 
+
650  real_type ray() const { return 1/std::abs(m_k); }
+
651 
+
652  /*\
+
653  | _ _ _ _ ____ ____ ____
+
654  | | \ | | | | | _ \| __ ) ___|
+
655  | | \| | | | | |_) | _ \___ \
+
656  | | |\ | |_| | _ <| |_) |__) |
+
657  | |_| \_|\___/|_| \_\____/____/
+
658  \*/
+
659 
+
660  void
+
661  paramNURBS( int_type & n_knots, int_type & n_pnts ) const;
+
662 
+
663  void
+
664  toNURBS( real_type knots[], real_type Poly[][3] ) const;
+
665 
+
666  friend
+
667  ostream_type &
+
668  operator << ( ostream_type & stream, CircleArc const & c );
+
669 
+
670  friend class ClothoidCurve;
+
671 
+
672  };
+
673 
+
674 }
+
675 
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Compute biarc fitting by Hemite data.
Definition: Biarc.hxx:40
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
bool bbTriangle_ISO(real_type offs, real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) const
get the bounding box triangle (if angle variation less that pi/3)
Definition: Circle.cc:427
+
virtual real_type length_ISO(real_type offs) const UTILS_OVERRIDE
Definition: Circle.hxx:312
+
bool bbTriangle_SAE(real_type offs, real_type &_x0, real_type &_y0, real_type &_x1, real_type &_y1, real_type &_x2, real_type &_y2) const
get the bounding box triangle (if angle variation less that pi/3)
Definition: Circle.hxx:178
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Circle.hxx:307
+
bool build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1)
build a circle by solving the hermite G1 problem
Definition: Circle.cc:88
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Circle.cc:550
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Circle.cc:528
+
CircleArc(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)
construct a circle curve with the standard parameters
Definition: Circle.hxx:72
+
CircleArc(LineSegment const &LS)
construct a circle curve with the standard parameters
Definition: Circle.hxx:91
+
bool bbTriangle(real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) const
get the bounding box triangle (if angle variation less that pi/3)
Definition: Circle.cc:401
+
void build(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)
construct a circle with the standard parameters
Definition: Circle.hxx:122
+
bool build_3P(real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)
build a circle passing by 3 points
Definition: Circle.cc:115
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
Definition: Circle.cc:703
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.map b/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.map new file mode 100644 index 00000000..b2f30628 --- /dev/null +++ b/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.md5 b/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.md5 new file mode 100644 index 00000000..7f9cea05 --- /dev/null +++ b/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.md5 @@ -0,0 +1 @@ +61266a78f05a7468e536b5ab554f63b0 \ No newline at end of file diff --git a/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.png b/docs/d0/db3/class_g2lib_1_1_biarc__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..abf70a52b2f5eae34b97b13ceb358f0df3031f2e GIT binary patch literal 3662 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 + + + + + + +Clothoids: submodules/Utils/src/Utils/ThreadPool.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ThreadPool.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2020 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef THREADPOOL_dot_HH
+
27 #define THREADPOOL_dot_HH
+
28 
+
29 #include <algorithm>
+
30 #include <utility>
+
31 #include <vector>
+
32 //#include <type_traits>
+
33 
+
34 #include <thread>
+
35 #include <condition_variable>
+
36 #include <mutex>
+
37 #include <functional>
+
38 
+
39 #ifdef UTILS_OS_LINUX
+
40  #include <pthread.h>
+
41 #endif
+
42 
+
43 namespace Utils {
+
44 
+
45  /*\
+
46  | _____ _ _
+
47  | |_ _| |__ _ __ ___ __ _ __| |___
+
48  | | | | '_ \| '__/ _ \/ _` |/ _` / __|
+
49  | | | | | | | | | __/ (_| | (_| \__ \
+
50  | |_| |_| |_|_| \___|\__,_|\__,_|___/
+
51  \*/
+
52 
+
53  class SpinLock {
+
54  // see https://geidav.wordpress.com/2016/03/23/test-and-set-spinlocks/
+
55  private:
+
56  std::atomic<bool> m_locked = {false};
+
57  public:
+
58  SpinLock() {}
+
59 
+
60  void
+
61  wait() {
+
62  while (m_locked.load(std::memory_order_relaxed) == true);
+
63  }
+
64 
+
65  void
+
66  lock() {
+
67  do { wait(); } while (m_locked.exchange(true, std::memory_order_acquire) == true);
+
68  }
+
69 
+
70  void
+
71  unlock() {
+
72  m_locked.store(false, std::memory_order_release);
+
73  }
+
74  };
+
75 
+
76  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
77 
+
78  class WaitWorker {
+
79  private:
+
80  #ifdef UTILS_OS_WINDOWS
+
81  std::atomic<int> n_worker;
+
82  #else
+
83  std::atomic<int> n_worker = {0};
+
84  #endif
+
85  public:
+
86  #ifdef UTILS_OS_WINDOWS
+
87  WaitWorker() { n_worker = 0; }
+
88  #else
+
89  WaitWorker() {}
+
90  #endif
+
91 
+
92  void
+
93  wait() {
+
94  while (n_worker.load(std::memory_order_relaxed) != 0 );
+
95  }
+
96 
+
97  void enter() { ++n_worker; }
+
98  void leave() { --n_worker; }
+
99  };
+
100 
+
101  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
102 
+
103  template <typename DATA>
+
104  class BinarySearch {
+
105  private:
+
106  typedef std::pair<std::thread::id,DATA*> DATA_TYPE;
+
107  mutable std::vector<DATA_TYPE> m_data;
+
108  mutable SpinLock m_spin_write;
+
109  mutable WaitWorker m_worker_read;
+
110 
+
111  public:
+
112 
+
113  BinarySearch() {
+
114  m_data.clear();
+
115  m_data.reserve(64);
+
116  }
+
117 
+
118  ~BinarySearch() {
+
119  m_spin_write.wait();
+
120  for ( auto & a : m_data ) delete a.second;
+
121  m_data.clear();
+
122  m_spin_write.wait();
+
123  }
+
124 
+
125  void
+
126  clear() {
+
127  m_spin_write.wait();
+
128  for ( auto & a : m_data ) delete a.second;
+
129  m_data.clear(); m_data.reserve(64);
+
130  m_spin_write.wait();
+
131  }
+
132 
+
133  DATA *
+
134  search( std::thread::id const & id, bool & ok ) const {
+
135  m_spin_write.wait(); // wait writing finished
+
136  m_worker_read.enter();
+
137  ok = true;
+
138 
+
139  size_t U = m_data.size();
+
140 
+
141  if ( U == 0 ) {
+
142  m_worker_read.leave();
+
143  m_spin_write.lock();
+
144  m_worker_read.wait(); // wait all read finished
+
145  ok = false;
+
146  U = m_data.size();
+
147  m_data.resize(1);
+
148  DATA_TYPE & dL = m_data[0];
+
149  dL.first = id;
+
150  DATA * res = dL.second = new DATA();
+
151  m_spin_write.unlock();
+
152  return res;
+
153  }
+
154 
+
155  size_t L = 0;
+
156  while ( U-L > 1 ) {
+
157  size_t pos = (L+U)>>1;
+
158  std::thread::id const & id_pos = m_data[pos].first;
+
159  if ( id_pos < id ) L = pos; else U = pos;
+
160  }
+
161  DATA_TYPE & dL = m_data[L];
+
162  if ( dL.first == id ) { m_worker_read.leave(); return dL.second; }
+
163  DATA_TYPE & dU = m_data[U];
+
164  if ( dU.first == id ) { m_worker_read.leave(); return dU.second; }
+
165  m_worker_read.leave();
+
166 
+
167  // not found must insert
+
168  m_spin_write.lock();
+
169  m_worker_read.wait(); // wait all read finished
+
170  ok = false;
+
171  if ( dL.first < id ) ++L;
+
172  U = m_data.size();
+
173  m_data.resize(U+1);
+
174  while ( U > L ) {
+
175  --U;
+
176  m_data[U+1].first = m_data[U].first;
+
177  m_data[U+1].second = m_data[U].second;
+
178  }
+
179  DATA_TYPE & dL1 = m_data[L];
+
180  dL1.first = id;
+
181  DATA * res = dL1.second = new DATA();
+
182  m_spin_write.unlock();
+
183  return res;
+
184  }
+
185 
+
186  };
+
187 
+
188  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
189 
+ +
191  private:
+
192  std::atomic<unsigned> m_count;
+
193  std::atomic<unsigned> m_generation;
+
194  unsigned m_count_reset_value;
+
195  public:
+
196  SpinLock_barrier(const SpinLock_barrier&) = delete;
+
197  SpinLock_barrier& operator=(const SpinLock_barrier&) = delete;
+
198 
+
199  explicit
+ +
201  : m_generation(0)
+
202  {}
+
203 
+
204  void
+
205  setup( unsigned count ) {
+
206  m_count_reset_value = m_count = count ;
+
207  }
+
208 
+
209  void
+
210  count_down() {
+
211  unsigned gen = m_generation.load();
+
212  if ( --m_count == 0 ) {
+
213  if ( m_generation.compare_exchange_weak(gen, gen + 1) )
+
214  m_count = m_count_reset_value;
+
215  return;
+
216  }
+
217  }
+
218 
+
219  void
+
220  wait() {
+
221  unsigned gen = m_generation.load();
+
222  while ((gen == m_generation) && (m_count != 0))
+
223  std::this_thread::yield();
+
224  }
+
225 
+
226  void
+
227  count_down_and_wait() {
+
228  unsigned gen = m_generation.load();
+
229  if ( --m_count == 0 ) {
+
230  if ( m_generation.compare_exchange_weak(gen, gen + 1) )
+
231  m_count = m_count_reset_value;
+
232  return;
+
233  }
+
234  while ((gen == m_generation) && (m_count != 0))
+
235  std::this_thread::yield();
+
236  }
+
237  };
+
238 
+
239  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
240 
+
241  class Barrier {
+
242  int m_to_be_done;
+
243  int m_usedThread;
+
244  std::mutex m_mtx;
+
245  std::condition_variable m_cond;
+
246  public:
+
247  Barrier() : m_to_be_done(0) {}
+
248 
+
249  void
+
250  setup( int nthreads )
+
251  { m_usedThread = m_to_be_done = nthreads ; }
+
252 
+
253  void
+
254  count_down() {
+
255  std::unique_lock<std::mutex> lck(m_mtx);
+
256  if ( --m_to_be_done <= 0 ) m_cond.notify_all() ; // wake up all tread
+
257  }
+
258 
+
259  void
+
260  wait() {
+
261  std::unique_lock<std::mutex> lck(m_mtx);
+
262  m_cond.wait(lck);
+
263  }
+
264 
+
265  void
+
266  count_down_and_wait() {
+
267  std::unique_lock<std::mutex> lck(m_mtx);
+
268  if ( --m_to_be_done <= 0 ) {
+
269  m_cond.notify_all() ; // wake up all tread
+
270  m_to_be_done = m_usedThread ;
+
271  } else {
+
272  m_cond.wait(lck);
+
273  }
+
274  }
+
275  };
+
276 
+
277  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
278 
+ +
280  private:
+
281  bool m_go;
+
282  std::mutex m_mutex;
+
283  std::condition_variable m_cv;
+
284  public:
+
285  SimpleSemaphore() noexcept : m_go(true) {}
+
286 
+
287  void
+
288  green() noexcept {
+
289  { std::unique_lock<std::mutex> lock(m_mutex); m_go = true; }
+
290  m_cv.notify_one();
+
291  }
+
292 
+
293  void
+
294  red() noexcept {
+
295  { std::unique_lock<std::mutex> lock(m_mutex); m_go = false; }
+
296  m_cv.notify_one();
+
297  }
+
298 
+
299  void
+
300  wait() noexcept {
+
301  std::unique_lock<std::mutex> lock(m_mutex);
+
302  m_cv.wait(lock, [this]()->bool { return this->m_go; });
+
303  }
+
304 
+
305  };
+
306 
+
307  /*\
+
308  | __ __ _
+
309  | \ \ / /__ _ __| | _____ _ __
+
310  | \ \ /\ / / _ \| '__| |/ / _ \ '__|
+
311  | \ V V / (_) | | | < __/ |
+
312  | \_/\_/ \___/|_| |_|\_\___|_|
+
313  \*/
+
314 
+
315  class Worker {
+
316  friend class ThreadPool;
+
317 
+
318  bool m_active;
+
319  SimpleSemaphore m_is_running;
+
320  SimpleSemaphore m_job_done;
+
321  std::thread m_running_thread;
+
322  std::function<void()> m_job;
+
323 
+
324  //disable copy
+
325  Worker( Worker const & ) = delete;
+
326  Worker& operator = ( Worker const & ) = delete;
+
327 
+
328  void
+
329  loop() {
+
330  while ( m_active ) {
+
331  m_is_running.wait();
+
332  if ( m_active ) m_job();
+
333  m_is_running.red();
+
334  m_job_done.green();
+
335  }
+
336  }
+
337 
+
338  public:
+
339 
+
340  Worker() : m_active(false) { start(); }
+
341  ~Worker() { stop(); }
+
342 
+
343  Worker( Worker && rhs ) {
+
344  m_active = rhs.m_active;
+
345  m_job = rhs.m_job;
+
346  m_running_thread = std::move(rhs.m_running_thread);
+
347  }
+
348 
+
349  void
+
350  start() {
+
351  if ( !m_active ) {
+
352  m_active = true;
+
353  m_is_running.red();
+
354  m_job_done.green();
+
355  m_running_thread = std::thread( [this] () -> void { this->loop(); } );
+
356  }
+
357  }
+
358 
+
359  void
+
360  stop() {
+
361  if ( m_active ) {
+
362  m_active = false; // deactivate computation
+
363  m_is_running.green(); // for exiting from the loop
+
364  m_running_thread.join(); // wait thread for exiting
+
365  }
+
366  }
+
367 
+
368  void wait() { m_job_done.wait(); }
+
369 
+
370  template < class Func, class... Args >
+
371  void
+
372  run( Func && func, Args && ... args ) {
+
373  //launch( std::bind(std::forward<Func>(func), std::forward<Args>(args)...) );
+
374  m_job_done.wait(); // se gia occupato in task aspetta
+
375  m_job = std::bind(std::forward<Func>(func), std::forward<Args>(args)...);
+
376  m_job_done.red();
+
377  m_is_running.green(); // activate computation
+
378  }
+
379 
+
380  };
+
381 
+
382  /*\
+
383  | _____ _ _ ____ _
+
384  | |_ _| |__ _ __ ___ __ _ __| | _ \ ___ ___ | |
+
385  | | | | '_ \| '__/ _ \/ _` |/ _` | |_) / _ \ / _ \| |
+
386  | | | | | | | | | __/ (_| | (_| | __/ (_) | (_) | |
+
387  | |_| |_| |_|_| \___|\__,_|\__,_|_| \___/ \___/|_|
+
388  \*/
+
389 
+
390  class ThreadPool {
+
391  // need to keep track of threads so we can join them
+
392  std::vector<Worker> m_workers;
+
393 
+
394  //disable copy
+
395  ThreadPool() = delete;
+
396  ThreadPool( ThreadPool const & ) = delete;
+
397  ThreadPool & operator = ( ThreadPool const & ) = delete;
+
398 
+
399  #if defined(UTILS_OS_WINDOWS)
+
400  void
+
401  setup() {
+
402  for ( auto & w: m_workers ) {
+
403  w.start();
+
404  std::thread & t = w.m_running_thread;
+
405  SetThreadPriority( t.native_handle(), THREAD_PRIORITY_HIGHEST );
+
406  }
+
407  }
+
408  #elif defined(UTILS_OS_LINUX)
+
409  void
+
410  setup() {
+
411  sched_param sch;
+
412  int policy;
+
413  for ( auto & w: m_workers ) {
+
414  w.start();
+
415  std::thread & t = w.m_running_thread;
+
416  pthread_getschedparam( t.native_handle(), &policy, &sch );
+
417  sch.sched_priority = sched_get_priority_max( SCHED_RR );
+
418  pthread_setschedparam( t.native_handle(), SCHED_RR, &sch );
+
419  }
+
420  }
+
421  #else
+
422  void
+
423  setup() {
+
424  for ( auto & w: m_workers ) w.start();
+
425  }
+
426  #endif
+
427 
+
428  public:
+
429 
+
430  ThreadPool(
+
431  unsigned nthread = std::max(
+
432  unsigned(1),
+
433  unsigned(std::thread::hardware_concurrency()-1)
+
434  )
+
435  ) {
+
436  m_workers.resize( size_t( nthread ) );
+
437  setup();
+
438  }
+
439 
+
441  template <typename Func, typename... Args>
+
442  void
+
443  run( unsigned nt, Func && func, Args && ... args ) {
+
444  m_workers[size_t(nt)].run( func, args...);
+
445  }
+
446 
+
447  void wait_all() { for ( auto && w : m_workers ) w.wait(); }
+
448  void start_all() { for ( auto && w : m_workers ) w.start(); }
+
449  void stop_all() { for ( auto && w : m_workers ) w.stop(); }
+
450 
+
451  unsigned size() const { return unsigned(m_workers.size()); }
+
452 
+
453  std::thread::id
+
454  get_id( unsigned i ) const
+
455  { return m_workers[size_t(i)].m_running_thread.get_id(); }
+
456 
+
457  std::thread const &
+
458  get_thread( unsigned i ) const
+
459  { return m_workers[size_t(i)].m_running_thread; }
+
460 
+
461  std::thread &
+
462  get_thread( unsigned i )
+
463  { return m_workers[size_t(i)].m_running_thread; }
+
464 
+
465  void
+
466  resize( unsigned numThreads ) {
+
467  wait_all();
+
468  stop_all();
+
469  m_workers.resize( size_t(numThreads) );
+
470  setup();
+
471  }
+
472 
+
473  };
+
474 
+
475 }
+
476 
+
477 #endif
+
478 
+
Definition: ThreadPool.hxx:241
+
Definition: ThreadPool.hxx:104
+
Definition: ThreadPool.hxx:279
+
Definition: ThreadPool.hxx:190
+
Definition: ThreadPool.hxx:53
+
Definition: ThreadPool.hxx:390
+
void run(unsigned nt, Func &&func, Args &&... args)
Submit a job to be run by the thread pool.
Definition: ThreadPool.hxx:443
+
Definition: ThreadPool.hxx:78
+
Definition: ThreadPool.hxx:315
+
Definition: Console.cc:31
+
+ + + + diff --git a/docs/d1/d07/_generic_container_cinterface_8h_source.html b/docs/d1/d07/_generic_container_cinterface_8h_source.html new file mode 100644 index 00000000..b2992bb8 --- /dev/null +++ b/docs/d1/d07/_generic_container_cinterface_8h_source.html @@ -0,0 +1,364 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src/GenericContainerCinterface.h Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerCinterface.h
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2013 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 /*
+
21 // file: GenericContainerCinterface.h
+
22 */
+
23 
+
28 /* @{ */
+
29 
+
30 #ifndef GENERIC_CONTAINER_C_INTERFACE_H
+
31 #define GENERIC_CONTAINER_C_INTERFACE_H
+
32 
+
33 #ifndef GENERIC_CONTAINER_API_DLL
+
34  #if defined(_WIN32) || defined(_WIN64)
+
35  #ifdef GENERIC_CONTAINER_EXPORT
+
36  #define GENERIC_CONTAINER_API_DLL __declspec(dllexport)
+
37  #elif defined(GENERIC_CONTAINER_IMPORT)
+
38  #define GENERIC_CONTAINER_API_DLL __declspec(dllimport)
+
39  #else
+
40  #define GENERIC_CONTAINER_API_DLL
+
41  #endif
+
42  #elif defined(__GNUC__) || defined(__clang__)
+
43  #define GENERIC_CONTAINER_API_DLL __attribute__((visibility("default")))
+
44  #else
+
45  #define GENERIC_CONTAINER_API_DLL
+
46  #endif
+
47 #endif
+
48 
+
49 #ifdef __cplusplus
+
50 extern "C" {
+
51 #endif
+
52 
+
53 enum {
+
54  GENERIC_CONTAINER_OK = 0,
+
55  GENERIC_CONTAINER_BAD_TYPE,
+
56  GENERIC_CONTAINER_NO_DATA,
+
57  GENERIC_CONTAINER_NOT_EMPTY,
+
58  GENERIC_CONTAINER_BAD_HEAD
+
59 };
+
60 
+
61 typedef struct {
+
62  double real;
+
63  double imag;
+ +
65 
+
67 GENERIC_CONTAINER_API_DLL
+
68 int GC_new( char const id[] );
+
69 
+
71 GENERIC_CONTAINER_API_DLL
+
72 int GC_select( char const id[] );
+
73 
+
75 GENERIC_CONTAINER_API_DLL
+
76 int GC_delete( char const id[] );
+
77 
+
79 GENERIC_CONTAINER_API_DLL
+
80 int GC_fill_for_test( char const id[] );
+
81 
+
83 GENERIC_CONTAINER_API_DLL
+
84 int GC_pop_head( void);
+
85 
+
87 GENERIC_CONTAINER_API_DLL
+
88 int GC_reset_head( void );
+
89 
+
91 GENERIC_CONTAINER_API_DLL
+
92 int GC_dump( void );
+
93 
+
95 GENERIC_CONTAINER_API_DLL
+
96 int GC_print_content_types( void );
+
97 
+
99 GENERIC_CONTAINER_API_DLL
+
100 int GC_get_type( void );
+
101 
+
103 GENERIC_CONTAINER_API_DLL
+
104 char const * GC_get_type_name( void );
+
105 
+
107 GENERIC_CONTAINER_API_DLL
+
108 void * GC_mem_ptr( char const id[] );
+
109 
+
110 // -----------------------------------------------------------------------------
+
111 
+
113 GENERIC_CONTAINER_API_DLL
+
114 int GC_set_bool( int const a );
+
115 
+
117 GENERIC_CONTAINER_API_DLL
+
118 int GC_set_int( int const a );
+
119 
+
121 GENERIC_CONTAINER_API_DLL
+
122 int GC_set_real( double const a );
+
123 
+
125 GENERIC_CONTAINER_API_DLL
+
126 int GC_set_complex( c_complex_type const * a );
+
127 
+
129 GENERIC_CONTAINER_API_DLL
+
130 int GC_set_complex2( double const re, double const im );
+
131 
+
133 GENERIC_CONTAINER_API_DLL
+
134 int GC_set_string( char const a[] );
+
135 
+
136 // -----------------------------------------------------------------------------
+
137 
+
139 GENERIC_CONTAINER_API_DLL
+
140 int GC_get_bool( void );
+
141 
+
143 GENERIC_CONTAINER_API_DLL
+
144 int GC_get_int( void );
+
145 
+
147 GENERIC_CONTAINER_API_DLL
+
148 long GC_get_long( void );
+
149 
+
151 GENERIC_CONTAINER_API_DLL
+
152 double GC_get_real( void );
+
153 
+
155 GENERIC_CONTAINER_API_DLL
+
156 c_complex_type GC_get_complex( void );
+
157 
+
159 GENERIC_CONTAINER_API_DLL
+
160 double GC_get_complex_re( void );
+
161 
+
163 GENERIC_CONTAINER_API_DLL
+
164 double GC_get_complex_im( void );
+
165 
+
167 GENERIC_CONTAINER_API_DLL
+
168 char const * GC_get_string( void );
+
169 
+
170 // -----------------------------------------------------------------------------
+
171 
+
173 GENERIC_CONTAINER_API_DLL
+
174 int GC_push_bool( int const a );
+
175 
+
177 GENERIC_CONTAINER_API_DLL
+
178 int GC_push_int( int const a );
+
179 
+
181 GENERIC_CONTAINER_API_DLL
+
182 int GC_push_real( double const a );
+
183 
+
185 GENERIC_CONTAINER_API_DLL
+
186 int GC_push_complex( c_complex_type const * a );
+
187 
+
189 GENERIC_CONTAINER_API_DLL
+
190 int GC_push_complex2( double const re, double const im );
+
191 
+
193 GENERIC_CONTAINER_API_DLL
+
194 int GC_push_string( char const a[] );
+
195 
+
196 // -----------------------------------------------------------------------------
+
197 
+
199 GENERIC_CONTAINER_API_DLL
+
200 int GC_get_bool_at_pos( int pos );
+
201 
+
203 GENERIC_CONTAINER_API_DLL
+
204 int GC_get_int_at_pos( int pos );
+
205 
+
207 GENERIC_CONTAINER_API_DLL
+
208 double GC_get_real_at_pos( int pos );
+
209 
+
211 GENERIC_CONTAINER_API_DLL
+
212 c_complex_type GC_get_complex_at_pos( int pos );
+
213 
+
215 GENERIC_CONTAINER_API_DLL
+
216 double GC_get_complex_real_at_pos( int pos );
+
217 
+
219 GENERIC_CONTAINER_API_DLL
+
220 double GC_get_complex_imag_at_pos( int pos );
+
221 
+
223 GENERIC_CONTAINER_API_DLL
+
224 char const * GC_get_string_at_pos( int pos );
+
225 
+
226 // -----------------------------------------------------------------------------
+
227 
+
229 GENERIC_CONTAINER_API_DLL
+
230 double GC_get_real_at_coor( int i, int j );
+
231 
+
233 GENERIC_CONTAINER_API_DLL
+
234 c_complex_type GC_get_complex_at_coor( int i, int j );
+
235 
+
237 GENERIC_CONTAINER_API_DLL
+
238 double GC_get_complex_real_at_coor( int i, int j );
+
239 
+
241 GENERIC_CONTAINER_API_DLL
+
242 double GC_get_complex_imag_at_coor( int i, int j );
+
243 
+
244 // -----------------------------------------------------------------------------
+
245 
+
247 GENERIC_CONTAINER_API_DLL
+
248 int GC_set_empty_vector_of_bool( void );
+
249 
+
251 GENERIC_CONTAINER_API_DLL
+
252 int GC_set_empty_vector_of_int( void );
+
253 
+
255 GENERIC_CONTAINER_API_DLL
+
256 int GC_set_empty_vector_of_real( void );
+
257 
+
259 GENERIC_CONTAINER_API_DLL
+
260 int GC_set_empty_vector_of_complex( void );
+
261 
+
263 GENERIC_CONTAINER_API_DLL
+
264 int GC_set_empty_vector_of_string( void );
+
265 
+
266 // -----------------------------------------------------------------------------
+
267 
+
273 GENERIC_CONTAINER_API_DLL
+
274 int GC_set_vector_of_bool( int const a[], int nelem );
+
275 
+
281 GENERIC_CONTAINER_API_DLL
+
282 int GC_set_vector_of_int( int const a[], int nelem );
+
283 
+
289 GENERIC_CONTAINER_API_DLL
+
290 int GC_set_vector_of_real( double const a[], int nelem );
+
291 
+
297 GENERIC_CONTAINER_API_DLL
+
298 int GC_set_vector_of_complex( double const re[], double const im[], int nelem );
+
299 
+
305 GENERIC_CONTAINER_API_DLL
+
306 int GC_set_vector_of_string( char const *a[], int nelem );
+
307 
+
308 // -----------------------------------------------------------------------------
+
309 
+
315 GENERIC_CONTAINER_API_DLL
+
316 int GC_set_vector( int nelem );
+
317 
+
322 GENERIC_CONTAINER_API_DLL
+
323 int GC_set_empty_vector( void );
+
324 
+
328 GENERIC_CONTAINER_API_DLL
+
329 int GC_get_vector_size( void );
+
330 
+
334 GENERIC_CONTAINER_API_DLL
+
335 int GC_get_matrix_num_rows( void );
+
336 
+
340 GENERIC_CONTAINER_API_DLL
+
341 int GC_get_matrix_num_cols( void );
+
342 
+
347 GENERIC_CONTAINER_API_DLL
+
348 int GC_push_vector_position( int pos );
+
349 
+
350 // -----------------------------------------------------------------------------
+
351 
+
356 GENERIC_CONTAINER_API_DLL
+
357 int GC_set_map( void );
+
358 
+
363 GENERIC_CONTAINER_API_DLL
+
364 int GC_init_map_key( void );
+
365 
+
369 GENERIC_CONTAINER_API_DLL
+
370 char const * GC_get_next_key( void );
+
371 
+
376 GENERIC_CONTAINER_API_DLL
+
377 int GC_push_map_position( char const pos[] );
+
378 
+
379 #ifdef __cplusplus
+
380 }
+
381 #endif
+
382 
+
383 #endif
+
384 
+
385 /* @} */
+
386 
+
387 /*
+
388 // eof: GenericContainerCinterface.hh
+
389 */
+
Definition: GenericContainerCinterface.h:61
+
+ + + + diff --git a/docs/d1/d4a/class_utils_1_1_tic_toc-members.html b/docs/d1/d4a/class_utils_1_1_tic_toc-members.html new file mode 100644 index 00000000..c522c0f2 --- /dev/null +++ b/docs/d1/d4a/class_utils_1_1_tic_toc-members.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::TicToc Member List
+
+
+ +

This is the complete list of members for Utils::TicToc, including all inherited members.

+ + + + + + + +
elapsed_ms() const (defined in Utils::TicToc)Utils::TicTocinline
elapsed_s() const (defined in Utils::TicToc)Utils::TicTocinline
tic() (defined in Utils::TicToc)Utils::TicTocinline
TicToc() (defined in Utils::TicToc)Utils::TicTocinline
toc() (defined in Utils::TicToc)Utils::TicTocinline
~TicToc() (defined in Utils::TicToc)Utils::TicTocinline
+ + + + diff --git a/docs/d1/d55/class_g2lib_1_1_b_box-members.html b/docs/d1/d55/class_g2lib_1_1_b_box-members.html new file mode 100644 index 00000000..74cd4ff6 --- /dev/null +++ b/docs/d1/d55/class_g2lib_1_1_b_box-members.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::BBox Member List
+
+
+ +

This is the complete list of members for G2lib::BBox, including all inherited members.

+ + + + + + + + + + + + + + + + + +
AABBtree (defined in G2lib::BBox)G2lib::BBoxfriend
BBox(real_type xmin, real_type ymin, real_type xmax, real_type ymax, int_type id, int_type ipos) (defined in G2lib::BBox)G2lib::BBoxinline
BBox(vector< PtrBBox > const &bboxes, int_type id, int_type ipos) (defined in G2lib::BBox)G2lib::BBoxinline
collision(BBox const &box) constG2lib::BBoxinline
distance(real_type x, real_type y) constG2lib::BBox
Id() constG2lib::BBoxinline
Ipos() constG2lib::BBoxinline
join(vector< PtrBBox > const &bboxes)G2lib::BBox
maxDistance(real_type x, real_type y) constG2lib::BBox
operator=(BBox const &rhs) (defined in G2lib::BBox)G2lib::BBoxinline
print(ostream_type &stream) const (defined in G2lib::BBox)G2lib::BBoxinline
PtrBBox typedef (defined in G2lib::BBox)G2lib::BBox
Xmax() const (defined in G2lib::BBox)G2lib::BBoxinline
Xmin() const (defined in G2lib::BBox)G2lib::BBoxinline
Ymax() const (defined in G2lib::BBox)G2lib::BBoxinline
Ymin() const (defined in G2lib::BBox)G2lib::BBoxinline
+ + + + diff --git a/docs/d1/d74/class_g2lib_1_1_circle_arc-members.html b/docs/d1/d74/class_g2lib_1_1_circle_arc-members.html new file mode 100644 index 00000000..7a44e5f9 --- /dev/null +++ b/docs/d1/d74/class_g2lib_1_1_circle_arc-members.html @@ -0,0 +1,274 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::CircleArc Member List
+
+
+ +

This is the complete list of members for G2lib::CircleArc, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::CircleArcvirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::CircleArcvirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
bbTriangle(real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) constG2lib::CircleArc
bbTriangle(real_type p0[2], real_type p1[2], real_type p2[2]) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangle(Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangle_ISO(real_type offs, real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) constG2lib::CircleArc
bbTriangle_ISO(real_type offs, real_type p0[2], real_type p1[2], real_type p2[2]) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangle_ISO(real_type offs, Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangle_SAE(real_type offs, real_type &_x0, real_type &_y0, real_type &_x1, real_type &_y1, real_type &_x2, real_type &_y2) constG2lib::CircleArcinline
bbTriangle_SAE(real_type offs, real_type p0[2], real_type p1[2], real_type p2[2]) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangle_SAE(real_type offs, Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
bbTriangles(std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArc
bbTriangles_ISO(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArc
bbTriangles_SAE(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::CircleArc)G2lib::CircleArcinline
Biarc (defined in G2lib::CircleArc)G2lib::CircleArcfriend
build(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)G2lib::CircleArcinline
build_3P(real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)G2lib::CircleArc
build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1)G2lib::CircleArc
center(real_type &cx, real_type &cy) const (defined in G2lib::CircleArc)G2lib::CircleArc
changeCurvilinearOrigin(real_type s0, real_type newL) (defined in G2lib::CircleArc)G2lib::CircleArc
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
CircleArc() (defined in G2lib::CircleArc)G2lib::CircleArcinline
CircleArc(CircleArc const &s) (defined in G2lib::CircleArc)G2lib::CircleArcinline
CircleArc(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)G2lib::CircleArcinlineexplicit
CircleArc(LineSegment const &LS)G2lib::CircleArcinlineexplicit
CircleArc(BaseCurve const &C) (defined in G2lib::CircleArc)G2lib::CircleArcexplicit
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::CircleArcvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::CircleArcvirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
ClothoidCurve (defined in G2lib::CircleArc)G2lib::CircleArcfriend
collision(CircleArc const &) const (defined in G2lib::CircleArc)G2lib::CircleArc
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, CircleArc const &C, real_type offs_obj) const (defined in G2lib::CircleArc)G2lib::CircleArc
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(CircleArc const &c) (defined in G2lib::CircleArc)G2lib::CircleArcinline
cosTheta0() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
curvature() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
delta_theta() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
deltaTheta() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
eval_D(real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
eval_DD(real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
eval_DDD(real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurvevirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurvevirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurvevirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurvevirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &kappa, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
intersect(CircleArc const &obj, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::CircleArc)G2lib::CircleArc
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, CircleArc const &C, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::CircleArc)G2lib::CircleArc
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::CircleArcinlinevirtual
length_ISO(real_type offs) const UTILS_OVERRIDEG2lib::CircleArcinlinevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
lenTolerance(real_type tol) const (defined in G2lib::CircleArc)G2lib::CircleArc
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::CircleArc)G2lib::CircleArcfriend
operator=(CircleArc const &s) (defined in G2lib::CircleArc)G2lib::CircleArcinline
paramNURBS(int_type &n_knots, int_type &n_pnts) const (defined in G2lib::CircleArc)G2lib::CircleArc
ray() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
reverse() UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
scale(real_type s) UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
sinTheta0() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
tg(real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
tg_D(real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
tg_DD(real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
tg_DDD(real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
theta(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
theta_D(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
theta_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
theta_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
thetaBegin() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
thetaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
thetaMinMax(real_type &thMin, real_type &thMax) const (defined in G2lib::CircleArc)G2lib::CircleArc
thetaTotalVariation() const (defined in G2lib::CircleArc)G2lib::CircleArcinline
toNURBS(real_type knots[], real_type Poly[][3]) const (defined in G2lib::CircleArc)G2lib::CircleArc
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
tx(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
tx_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
tx_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
tx_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
tx_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ty_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ty_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ty_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
ty_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
X_D(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
X_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
X_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
X_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
xBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
Y_D(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
Y_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
Y_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcvirtual
Y_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::CircleArc)G2lib::CircleArcinlinevirtual
yBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
+ + + + diff --git a/docs/d1/d7c/namespace_utils.html b/docs/d1/d7c/namespace_utils.html new file mode 100644 index 00000000..ba75b5c4 --- /dev/null +++ b/docs/d1/d7c/namespace_utils.html @@ -0,0 +1,255 @@ + + + + + + + +Clothoids: Utils Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
Utils Namespace Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  Console
 
class  Malloc
 Allocate memory. More...
 
class  SpinLock
 
class  WaitWorker
 
class  BinarySearch
 
class  SpinLock_barrier
 
class  Barrier
 
class  SimpleSemaphore
 
class  Worker
 
class  ThreadPool
 
class  TicToc
 
class  Runtime_TraceError
 
class  Runtime_Error
 
+ + + +

+Typedefs

+typedef std::basic_ostream< char > ostream_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+string outBytes (size_t nb)
 
+bool foundNaN (double const pv[], int DIM)
 check if the vector pv os size DIM contains only regular floats
 
+bool foundNaN (float const pv[], int DIM)
 
+void checkNaN (double const pv[], char const v_name[], int DIM, int line, char const file[])
 check if the vector pv os size DIM contains only regular floats. If not an error is issued
 
+void checkNaN (float const pv[], char const v_name[], int DIM, int line, char const file[])
 
+void printTrace (int line, char const file[], std::string const &reason, ostream_type &stream)
 print a trace stack used in debug
 
+std::string basename (char const path[])
 
+template<typename T_int , typename T_real >
void searchInterval (T_int npts, T_real const X[], T_real &x, T_int &lastInterval, bool closed, bool can_extend)
 
+template void searchInterval (int32_t npts, float const X[], float &x, int32_t &lastInterval, bool closed, bool can_extend)
 
+template void searchInterval (int32_t npts, double const X[], double &x, int32_t &lastInterval, bool closed, bool can_extend)
 
+template void searchInterval (int64_t npts, float const X[], float &x, int64_t &lastInterval, bool closed, bool can_extend)
 
+template void searchInterval (int64_t npts, double const X[], double &x, int64_t &lastInterval, bool closed, bool can_extend)
 
+template<typename T >
NaN ()
 Not a number constant.
 
+template<>
float NaN ()
 Not a number constant.
 
+template<typename T >
Inf ()
 
+template<>
float Inf ()
 
+template<typename T >
machineEps ()
 machine epsilon
 
+template<>
float machineEps ()
 machine epsilon
 
+template<typename T >
sqrtMachineEps ()
 square root of machine epsilon
 
+template<>
float sqrtMachineEps ()
 square root of machine epsilon
 
+template<typename T >
maximumValue ()
 maximum representable value
 
+template<>
float maximumValue ()
 maximum representable value
 
+template<typename T >
minimumValue ()
 minimum representable value
 
+template<>
float minimumValue ()
 minimum representable value
 
+void sleep_for_seconds (unsigned s)
 
+void sleep_for_milliseconds (unsigned ms)
 
+ + + + + + + + + + + + + +

+Variables

+std::mutex MallocMutex
 
+int64_t CountAlloc = 0
 
+int64_t CountFreed = 0
 
+int64_t AllocatedBytes = 0
 
+int64_t MaximumAllocatedBytes = 0
 
+bool MallocDebug = false
 
+

Detailed Description

+

file: Console.cc

+
+ + + + diff --git a/docs/d1/d7d/class_generic_container_namespace_1_1_generic_container-members.html b/docs/d1/d7d/class_generic_container_namespace_1_1_generic_container-members.html new file mode 100644 index 00000000..058f39e3 --- /dev/null +++ b/docs/d1/d7d/class_generic_container_namespace_1_1_generic_container-members.html @@ -0,0 +1,349 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerNamespace::GenericContainer Member List
+
+
+ +

This is the complete list of members for GenericContainerNamespace::GenericContainer, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
clear()GenericContainerNamespace::GenericContainer
complex_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_complex(vec_complex_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_int(vec_int_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_long(vec_long_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_real(vec_real_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_string(vec_string_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_uint(vec_uint_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
copyto_vec_ulong(vec_ulong_type &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
dump(ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") constGenericContainerNamespace::GenericContainer
exception(char const msg[]) GC_NO_RETURN (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerstatic
exists(std::string const &s) constGenericContainerNamespace::GenericContainer
free_pointer()GenericContainerNamespace::GenericContainer
GenericContainer()GenericContainerNamespace::GenericContainer
GenericContainer(bool const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(uint_type const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(int_type const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(ulong_type const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(long_type const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(float const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(double const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(std::complex< float > const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(std::complex< double > const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(char const a[])GenericContainerNamespace::GenericContainerinline
GenericContainer(std::string const &a)GenericContainerNamespace::GenericContainerinline
GenericContainer(pointer_type a)GenericContainerNamespace::GenericContainerinline
GenericContainer(GenericContainer const &gc)GenericContainerNamespace::GenericContainerinline
get_as_int(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_as_long(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_as_uint(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_as_ulong(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_bool(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_bool(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_bool_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_bool_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_complex(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_complex_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_complex_at(unsigned i, unsigned j) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_at(unsigned i, unsigned j, char const msg[]) constGenericContainerNamespace::GenericContainer
get_complex_number() constGenericContainerNamespace::GenericContainer
get_complex_number(real_type &re, real_type &im) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_number_at(unsigned i) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_number_at(unsigned i, real_type &re, real_type &im) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_pointer() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_complex_pointer() (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_gc_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_gc_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_if_exists(char const field[], bool &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], int_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], uint_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], long_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], ulong_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], real_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], complex_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_if_exists(char const field[], string_type &value) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_int(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_int(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_int_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_int_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_int_at(unsigned i, unsigned j) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_int_at(unsigned i, unsigned j, char const msg[]) constGenericContainerNamespace::GenericContainer
get_int_pointer() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_int_pointer() (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_long(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_long(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_long_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_long_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_long_at(unsigned i, unsigned j) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_long_at(unsigned i, unsigned j, char const msg[]) constGenericContainerNamespace::GenericContainer
get_long_pointer() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_long_pointer() (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_map(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_map(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_map_bool(char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerinline
get_mat_complex(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_mat_complex(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_mat_int(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_mat_int(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_mat_long(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_mat_long(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_mat_real(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_mat_real(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_num_elements() constGenericContainerNamespace::GenericContainer
get_number() constGenericContainerNamespace::GenericContainer
get_number_at(unsigned i) constGenericContainerNamespace::GenericContainer
get_numCols() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_numRows() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_pointer() (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerinline
get_pointer() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerinline
get_pointer_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerinline
get_pointer_at(unsigned i) constGenericContainerNamespace::GenericContainerinline
get_ppvoid(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_pvoid(char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_real(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_real(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_real_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_real_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_real_at(unsigned i, unsigned j) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_real_at(unsigned i, unsigned j, char const msg[]) constGenericContainerNamespace::GenericContainer
get_real_pointer() const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_real_pointer() (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_string(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_string(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_string_at(unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_string_at(unsigned i, char const msg[]) constGenericContainerNamespace::GenericContainer
get_type() constGenericContainerNamespace::GenericContainerinline
get_type_name() constGenericContainerNamespace::GenericContainer
get_value(T &v, char const msg[]="") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(unsigned &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(int &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(unsigned long &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(long &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(float &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_value(double &v, char const msg[]) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_bool(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_bool(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_complex(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_complex(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_int(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_int(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_long(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_long(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_pointer(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_pointer(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_real(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_real(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vec_string(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vec_string(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
get_vector(char const msg[]=nullptr) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
get_vector(char const msg[]=nullptr) constGenericContainerNamespace::GenericContainer
info(ostream_type &stream) constGenericContainerNamespace::GenericContainer
int_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
load(GenericContainer const &a)GenericContainerNamespace::GenericContainer
long_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
map_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
mat_complex_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
mat_int_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
mat_long_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
mat_real_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
operator()(unsigned i, char const msg[]=nullptr)GenericContainerNamespace::GenericContainer
operator()(unsigned i, char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
operator()(std::string const &s, char const msg[]=nullptr)GenericContainerNamespace::GenericContainer
operator()(std::string const &s, char const msg[]=nullptr) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
operator=(bool const &a)GenericContainerNamespace::GenericContainerinline
operator=(uint_type const &a)GenericContainerNamespace::GenericContainerinline
operator=(int_type const &a)GenericContainerNamespace::GenericContainerinline
operator=(ulong_type const &a)GenericContainerNamespace::GenericContainerinline
operator=(long_type const &a)GenericContainerNamespace::GenericContainerinline
operator=(float const &a)GenericContainerNamespace::GenericContainerinline
operator=(double const &a)GenericContainerNamespace::GenericContainerinline
operator=(std::complex< float > const &a)GenericContainerNamespace::GenericContainerinline
operator=(std::complex< double > const &a)GenericContainerNamespace::GenericContainerinline
operator=(vec_bool_type const &a)GenericContainerNamespace::GenericContainer
operator=(vec_int_type const &a)GenericContainerNamespace::GenericContainer
operator=(vec_long_type const &a)GenericContainerNamespace::GenericContainer
operator=(vec_real_type const &a)GenericContainerNamespace::GenericContainer
operator=(vec_complex_type const &a)GenericContainerNamespace::GenericContainer
operator=(vec_string_type const &a)GenericContainerNamespace::GenericContainer
operator=(mat_int_type const &a)GenericContainerNamespace::GenericContainer
operator=(mat_long_type const &a)GenericContainerNamespace::GenericContainer
operator=(mat_real_type const &a)GenericContainerNamespace::GenericContainer
operator=(mat_complex_type const &a)GenericContainerNamespace::GenericContainer
operator=(char const a[])GenericContainerNamespace::GenericContainerinline
operator=(std::string const &a)GenericContainerNamespace::GenericContainerinline
operator=(pointer_type a)GenericContainerNamespace::GenericContainerinline
operator=(GenericContainer const &a)GenericContainerNamespace::GenericContainerinline
operator[](unsigned i) (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
operator[](unsigned i) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
operator[](std::string const &s)GenericContainerNamespace::GenericContainer
operator[](std::string const &s) const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
pointer_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
print(ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") const (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainerinline
print_content_types(ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") constGenericContainerNamespace::GenericContainer
promote_to_complex()GenericContainerNamespace::GenericContainer
promote_to_int()GenericContainerNamespace::GenericContainer
promote_to_long()GenericContainerNamespace::GenericContainer
promote_to_mat_complex()GenericContainerNamespace::GenericContainer
promote_to_mat_int()GenericContainerNamespace::GenericContainer
promote_to_mat_long()GenericContainerNamespace::GenericContainer
promote_to_mat_real()GenericContainerNamespace::GenericContainer
promote_to_real()GenericContainerNamespace::GenericContainer
promote_to_vec_complex()GenericContainerNamespace::GenericContainer
promote_to_vec_int()GenericContainerNamespace::GenericContainer
promote_to_vec_long()GenericContainerNamespace::GenericContainer
promote_to_vec_real()GenericContainerNamespace::GenericContainer
promote_to_vector()GenericContainerNamespace::GenericContainer
push_bool(bool)GenericContainerNamespace::GenericContainer
push_complex(complex_type &)GenericContainerNamespace::GenericContainer
push_complex(real_type re, real_type im)GenericContainerNamespace::GenericContainer
push_int(int_type)GenericContainerNamespace::GenericContainer
push_long(long_type)GenericContainerNamespace::GenericContainer
push_real(real_type)GenericContainerNamespace::GenericContainer
push_string(string_type const &)GenericContainerNamespace::GenericContainer
readFormattedData(std::istream &stream, char const commentChars[]="#%", char const delimiters[]=" \t")GenericContainerNamespace::GenericContainer
readFormattedData(char const fname[], char const commentChars[]="#%", char const delimiters[]=" \t") (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
real_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
set(bool const &a)GenericContainerNamespace::GenericContainerinline
set(uint_type const &a)GenericContainerNamespace::GenericContainerinline
set(int_type const &a)GenericContainerNamespace::GenericContainerinline
set(ulong_type const &a)GenericContainerNamespace::GenericContainerinline
set(long_type const &a)GenericContainerNamespace::GenericContainerinline
set(float const &a)GenericContainerNamespace::GenericContainerinline
set(double const &a)GenericContainerNamespace::GenericContainerinline
set(std::complex< float > const &a)GenericContainerNamespace::GenericContainerinline
set(std::complex< double > const &a)GenericContainerNamespace::GenericContainerinline
set(char const a[])GenericContainerNamespace::GenericContainerinline
set(std::string const &a)GenericContainerNamespace::GenericContainerinline
set(pointer_type a)GenericContainerNamespace::GenericContainerinline
set_bool(bool_type value)GenericContainerNamespace::GenericContainer
set_complex(complex_type &value)GenericContainerNamespace::GenericContainer
set_complex(real_type r, real_type i)GenericContainerNamespace::GenericContainer
set_int(int_type value)GenericContainerNamespace::GenericContainer
set_long(long_type value)GenericContainerNamespace::GenericContainer
set_map()GenericContainerNamespace::GenericContainer
set_mat_complex(unsigned nr=0, unsigned nc=0)GenericContainerNamespace::GenericContainer
set_mat_complex(mat_complex_type const &m)GenericContainerNamespace::GenericContainer
set_mat_int(unsigned nr=0, unsigned nc=0)GenericContainerNamespace::GenericContainer
set_mat_int(mat_int_type const &m)GenericContainerNamespace::GenericContainer
set_mat_long(unsigned nr=0, unsigned nc=0)GenericContainerNamespace::GenericContainer
set_mat_long(mat_long_type const &m)GenericContainerNamespace::GenericContainer
set_mat_real(unsigned nr=0, unsigned nc=0)GenericContainerNamespace::GenericContainer
set_mat_real(mat_real_type const &m)GenericContainerNamespace::GenericContainer
set_pointer(pointer_type value)GenericContainerNamespace::GenericContainer
set_real(real_type value)GenericContainerNamespace::GenericContainer
set_string(string_type const &value)GenericContainerNamespace::GenericContainer
set_vec_bool(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_bool(vec_bool_type const &v)GenericContainerNamespace::GenericContainer
set_vec_complex(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_complex(vec_complex_type const &v)GenericContainerNamespace::GenericContainer
set_vec_int(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_int(vec_int_type const &v)GenericContainerNamespace::GenericContainer
set_vec_long(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_long(vec_long_type const &v)GenericContainerNamespace::GenericContainer
set_vec_pointer(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_pointer(vec_pointer_type const &v)GenericContainerNamespace::GenericContainer
set_vec_real(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_real(vec_real_type const &v)GenericContainerNamespace::GenericContainer
set_vec_string(unsigned sz=0)GenericContainerNamespace::GenericContainer
set_vec_string(vec_string_type const &v)GenericContainerNamespace::GenericContainer
set_vector(unsigned sz=0)GenericContainerNamespace::GenericContainer
string_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
to_yaml(ostream_type &, std::string const &prefix="") constGenericContainerNamespace::GenericContainer
uint_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
ulong_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_bool_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_complex_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_int_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_long_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_pointer_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_real_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_string_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_uint_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vec_ulong_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
vector_type typedef (defined in GenericContainerNamespace::GenericContainer)GenericContainerNamespace::GenericContainer
writeFormattedData(ostream_type &stream, char const delimiter='\t') constGenericContainerNamespace::GenericContainer
~GenericContainer()GenericContainerNamespace::GenericContainerinline
+ + + + diff --git a/docs/d1/d94/class_g2lib_1_1_clothoid_curve-members.html b/docs/d1/d94/class_g2lib_1_1_clothoid_curve-members.html new file mode 100644 index 00000000..4ae295a8 --- /dev/null +++ b/docs/d1/d94/class_g2lib_1_1_clothoid_curve-members.html @@ -0,0 +1,280 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::ClothoidCurve Member List
+
+
+ +

This is the complete list of members for G2lib::ClothoidCurve, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
approximate_collision_ISO(real_type offs, ClothoidCurve const &c, real_type c_offs, real_type max_angle, real_type max_size) constG2lib::ClothoidCurve
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::ClothoidCurvevirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
bbTriangle(real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) constG2lib::ClothoidCurveinline
bbTriangle(Triangle2D &t, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
bbTriangle_ISO(real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) constG2lib::ClothoidCurveinline
bbTriangle_ISO(real_type offs, Triangle2D &t, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
bbTriangle_SAE(real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) constG2lib::ClothoidCurveinline
bbTriangle_SAE(real_type offs, Triangle2D &t, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
bbTriangles(std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
bbTriangles_ISO(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
bbTriangles_SAE(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
build(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)G2lib::ClothoidCurveinline
build(LineSegment const &LS)G2lib::ClothoidCurveinline
build(CircleArc const &C)G2lib::ClothoidCurveinline
build_AABBtree_ISO(real_type offs, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
build_forward(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type tol=1e-12)G2lib::ClothoidCurveinline
build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol=1e-12)G2lib::ClothoidCurveinline
build_G1_D(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type L_D[2], real_type k_D[2], real_type dk_D[2], real_type tol=1e-12)G2lib::ClothoidCurveinline
changeCurvilinearOrigin(real_type s0, real_type newL) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::ClothoidCurvevirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::ClothoidCurvevirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPointBySample(real_type ds, real_type qx, real_type qy, real_type &X, real_type &Y, real_type &S) constG2lib::ClothoidCurve
ClothoidCurve() (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
ClothoidCurve(ClothoidCurve const &s) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
ClothoidCurve(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)G2lib::ClothoidCurveinlineexplicit
ClothoidCurve(real_type const P0[], real_type theta0, real_type const P1[], real_type theta1)G2lib::ClothoidCurveinlineexplicit
ClothoidCurve(LineSegment const &LS) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlineexplicit
ClothoidCurve(CircleArc const &C) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlineexplicit
ClothoidCurve(BaseCurve const &C) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveexplicit
ClothoidList (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurvefriend
collision(ClothoidCurve const &C) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, ClothoidCurve const &C, real_type offs_C) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(ClothoidCurve const &c) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
curvatureMinMax(real_type &kMin, real_type &kMax) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
curvatureTotalVariation() constG2lib::ClothoidCurve
deltaTheta() constG2lib::ClothoidCurveinline
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distanceBySample(real_type ds, real_type qx, real_type qy, real_type &S) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
distanceBySample(real_type ds, real_type qx, real_type qy) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
dkappa() const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
integralCurvature2() const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
integralJerk2() const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
integralSnap2() const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
intersect(ClothoidCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, ClothoidCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
length_ISO(real_type) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurvefriend
operator=(ClothoidCurve const &s) (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
optimized_sample_ISO(real_type offs, int_type npts, real_type max_angle, std::vector< real_type > &s) constG2lib::ClothoidCurve
optimized_sample_SAE(real_type offs, int_type npts, real_type max_angle, std::vector< real_type > &s) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
Pinfinity(real_type &x, real_type &y, bool plus=true) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinline
reverse() UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
scale(real_type s) UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tg(real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tg_D(real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tg_DD(real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tg_DDD(real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
theta(real_type s) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
theta_D(real_type s) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
theta_DD(real_type) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
theta_DDD(real_type) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
thetaBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
thetaEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
thetaMinMax(real_type &thMin, real_type &thMax) const (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurve
thetaTotalVariation() constG2lib::ClothoidCurve
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
tx_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ty_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ty_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ty_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
ty_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
X_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_ISO(real_type s, real_type offs) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
X_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
xBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
xEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
Y_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDEG2lib::ClothoidCurveinlinevirtual
Y_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
yBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidCurve)G2lib::ClothoidCurveinlinevirtual
yEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
+ + + + diff --git a/docs/d1/daa/_malloc_8hxx_source.html b/docs/d1/daa/_malloc_8hxx_source.html new file mode 100644 index 00000000..e0a094cf --- /dev/null +++ b/docs/d1/daa/_malloc_8hxx_source.html @@ -0,0 +1,234 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/Malloc.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Malloc.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2020 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef MALLOC_dot_HXX
+
27 #define MALLOC_dot_HXX
+
28 
+
29 /*\
+
30 :|: ____ _ _ __
+
31 :|: / ___| _ _ (_)_ __ | |_ ___ _ __ / _| __ _ ___ ___
+
32 :|: | | _| |_ _| |_| | '_ \| __/ _ \ '__| |_ / _` |/ __/ _ \
+
33 :|: | |__|_ _|_ _| | | | | || __/ | | _| (_| | (_| __/
+
34 :|: \____||_| |_| |_|_| |_|\__\___|_| |_| \__,_|\___\___|
+
35 \*/
+
36 
+
37 namespace Utils {
+
38 
+
39  using std::int64_t;
+
40  using std::string;
+
41 
+
42  extern std::mutex MallocMutex;
+
43 
+
44  extern int64_t CountAlloc;
+
45  extern int64_t CountFreed;
+
46  extern int64_t AllocatedBytes;
+
47  extern int64_t MaximumAllocatedBytes;
+
48  extern bool MallocDebug;
+
49 
+
50  string outBytes( size_t nb );
+
51 
+
52  /*\
+
53  :|: __ __ _ _
+
54  :|: | \/ | __ _| | | ___ ___
+
55  :|: | |\/| |/ _` | | |/ _ \ / __|
+
56  :|: | | | | (_| | | | (_) | (__
+
57  :|: |_| |_|\__,_|_|_|\___/ \___|
+
58  \*/
+
59 
+
61  template <typename T>
+
62  class Malloc {
+
63  public:
+
64  typedef T valueType;
+
65 
+
66  private:
+
67 
+
68  std::string m_name;
+
69  size_t m_numTotValues;
+
70  size_t m_numTotReserved;
+
71  size_t m_numAllocated;
+
72  valueType * m_pMalloc;
+
73 
+
74  Malloc(Malloc<T> const &) = delete; // blocco costruttore di copia
+
75  Malloc<T> const & operator = (Malloc<T> &) const = delete; // blocco copia
+
76 
+
77  void allocate_internal( size_t n );
+
78  void memory_exausted( size_t sz );
+
79 
+
80  public:
+
81 
+
83  explicit
+
84  Malloc( std::string const & name );
+
85 
+
87  ~Malloc();
+
88 
+
90  void
+
91  allocate( size_t n ) {
+
92  if ( n > m_numTotReserved ) allocate_internal( n );
+
93  m_numTotValues = n;
+
94  m_numAllocated = 0;
+
95  }
+
96 
+
98  void free(void);
+
99 
+
101  size_t size(void) const { return m_numTotValues; }
+
102 
+
104  T * operator () ( size_t sz ) {
+
105  size_t offs = m_numAllocated;
+
106  m_numAllocated += sz;
+
107  if ( m_numAllocated > m_numTotValues ) memory_exausted( sz );
+
108  return m_pMalloc + offs;
+
109  }
+
110 
+
111  T *
+
112  malloc( size_t n ) {
+
113  if ( n > m_numTotReserved ) allocate_internal( n );
+
114  m_numTotValues = n;
+
115  m_numAllocated = n;
+
116  return m_pMalloc;
+
117  }
+
118 
+
120  bool is_empty() const { return m_numAllocated >= m_numTotValues; }
+
121 
+
123  void must_be_empty( char const where[] ) const;
+
124  };
+
125 
+
126  extern template class Malloc<char>;
+
127  extern template class Malloc<uint16_t>;
+
128  extern template class Malloc<int16_t>;
+
129  extern template class Malloc<uint32_t>;
+
130  extern template class Malloc<int32_t>;
+
131  extern template class Malloc<uint64_t>;
+
132  extern template class Malloc<int64_t>;
+
133  extern template class Malloc<float>;
+
134  extern template class Malloc<double>;
+
135 
+
136  extern template class Malloc<void*>;
+
137  extern template class Malloc<char*>;
+
138  extern template class Malloc<uint16_t*>;
+
139  extern template class Malloc<int16_t*>;
+
140  extern template class Malloc<uint32_t*>;
+
141  extern template class Malloc<int32_t*>;
+
142  extern template class Malloc<uint64_t*>;
+
143  extern template class Malloc<int64_t*>;
+
144  extern template class Malloc<float*>;
+
145  extern template class Malloc<double*>;
+
146 
+
147 }
+
148 
+
149 #endif
+
150 
+
Allocate memory.
Definition: Malloc.hxx:62
+
void allocate(size_t n)
allocate memory for n objects
Definition: Malloc.hxx:91
+
~Malloc()
malloc object destructor
Definition: Malloc.cc:82
+
bool is_empty() const
true if you cannot get more memory pointers
Definition: Malloc.hxx:120
+
void must_be_empty(char const where[]) const
return an error if memory is not complately used
Definition: Malloc.cc:174
+
void free(void)
free memory
Definition: Malloc.cc:138
+
size_t size(void) const
number of objects allocated
Definition: Malloc.hxx:101
+
T * operator()(size_t sz)
get pointer of allocated memory for sz objets
Definition: Malloc.hxx:104
+
Definition: Console.cc:31
+
+ + + + diff --git a/docs/d1/dd1/class_utils_1_1_console_1_1_console__style-members.html b/docs/d1/dd1/class_utils_1_1_console_1_1_console__style-members.html new file mode 100644 index 00000000..11948e71 --- /dev/null +++ b/docs/d1/dd1/class_utils_1_1_console_1_1_console__style-members.html @@ -0,0 +1,93 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Console::Console_style Member List
+
+ + + + + diff --git a/docs/d1/dec/class_g2lib_1_1_g2solve3arc.html b/docs/d1/dec/class_g2lib_1_1_g2solve3arc.html new file mode 100644 index 00000000..876c8466 --- /dev/null +++ b/docs/d1/dec/class_g2lib_1_1_g2solve3arc.html @@ -0,0 +1,1108 @@ + + + + + + + +Clothoids: G2lib::G2solve3arc Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::G2solve3arc Class Reference
+
+
+ +

computation of the G2 fitting with 3 clothoid arcs + More...

+ +

#include <ClothoidList.hxx>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void setTolerance (real_type tol)
 
+void setMaxIter (int miter)
 
int build (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1, real_type Dmax=0, real_type dmax=0)
 
int build_fixed_length (real_type s0, real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type s1, real_type x1, real_type y1, real_type theta1, real_type kappa1)
 
ClothoidCurve const & getS0 () const
 
ClothoidCurve const & getS1 () const
 
ClothoidCurve const & getSM () const
 
real_type totalLength () const
 
real_type thetaTotalVariation () const
 
real_type curvatureTotalVariation () const
 
real_type integralCurvature2 () const
 
real_type integralJerk2 () const
 
real_type integralSnap2 () const
 
real_type thetaMinMax (real_type &thMin, real_type &thMax) const
 
real_type deltaTheta () const
 
real_type curvatureMinMax (real_type &kMin, real_type &kMax) const
 
real_type theta (real_type s) const
 
real_type theta_D (real_type s) const
 
real_type theta_DD (real_type s) const
 
real_type theta_DDD (real_type s) const
 
real_type X (real_type s) const
 
real_type Y (real_type s) const
 
real_type xBegin () const
 
real_type yBegin () const
 
real_type kappaBegin () const
 
real_type thetaBegin () const
 
real_type xEnd () const
 
real_type yEnd () const
 
real_type kappaEnd () const
 
real_type thetaEnd () const
 
void eval (real_type s, real_type &theta, real_type &kappa, real_type &x, real_type &y) const
 
+void eval (real_type s, real_type &x, real_type &y) const
 
+void eval_D (real_type s, real_type &x_D, real_type &y_D) const
 
+void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const
 
+void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const
 
+void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const
 
+void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
+void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
+void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+void rotate (real_type angle, real_type cx, real_type cy)
 
+void translate (real_type tx, real_type ty)
 
+void reverse ()
 
+ + + +

+Friends

+ostream_type & operator<< (ostream_type &stream, ClothoidCurve const &c)
 
+

Detailed Description

+

computation of the G2 fitting with 3 clothoid arcs

+

Member Function Documentation

+ +

◆ build()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int G2lib::G2solve3arc::build (real_type x0,
real_type y0,
real_type theta0,
real_type kappa0,
real_type x1,
real_type y1,
real_type theta1,
real_type kappa1,
real_type Dmax = 0,
real_type dmax = 0 
)
+
+

Compute the 3 arc clothoid spline that fit the data

+
Parameters
+ + + + + + + + + + + +
[in]x0initial x position
[in]y0initial y position
[in]theta0initial angle
[in]kappa0initial curvature
[in]x1final x position
[in]y1final y position
[in]theta1final angle
[in]kappa1final curvature
[in]Dmaxrough desidered maximum angle variation, if 0 computed automatically
[in]dmaxrough desidered maximum angle divergence from guess, if 0 computed automatically
+
+
+
Returns
number of iteration, -1 if fails
+ +
+
+ +

◆ build_fixed_length()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int G2lib::G2solve3arc::build_fixed_length (real_type s0,
real_type x0,
real_type y0,
real_type theta0,
real_type kappa0,
real_type s1,
real_type x1,
real_type y1,
real_type theta1,
real_type kappa1 
)
+
+

Compute the 3 arc clothoid spline that fit the data

+
Parameters
+ + + + + + + + + + + +
[in]s0length of the first segment
[in]x0initial x position
[in]y0initial y position
[in]theta0initial angle
[in]kappa0initial curvature
[in]s1length of the last segment
[in]x1final x position
[in]y1final y position
[in]theta1final angle
[in]kappa1final curvature
+
+
+
Returns
number of iteration, -1 if fails
+ +
+
+ +

◆ curvatureMinMax()

+ +
+
+ + + + + + + + + + + + + + + + + + +
real_type G2lib::G2solve3arc::curvatureMinMax (real_type & kMin,
real_type & kMax 
) const
+
+
Parameters
+ + + +
[out]kMinminimum curvature in the 3 arc G2 fitting curve
[out]kMaxmaximum curvature in the 3 arc G2 fitting curve
+
+
+
Returns
the difference of kMax and kMin
+ +
+
+ +

◆ curvatureTotalVariation()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::curvatureTotalVariation () const
+
+inline
+
+
Returns
get the total curvature variation of the 3 arc G2 fitting
+ +
+
+ +

◆ deltaTheta()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::deltaTheta () const
+
+inline
+
+
Returns
the difference of maximum-minimum angle in the 3 arc G2 fitting curve
+ +
+
+ +

◆ eval()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::G2solve3arc::eval (real_type s,
real_type & theta,
real_type & kappa,
real_type & x,
real_type & y 
) const
+
+

Compute parameters of 3 arc clothoid at curvilinear coordinate s

+
Parameters
+ + + + + + +
[in]scurvilinear coordinate of where curve is computed
[out]thetathe curve angle
[out]kappathe curve curvature
[out]xthe curve x-coordinate
[out]ythe curve y-coordinate
+
+
+ +
+
+ +

◆ getS0()

+ +
+
+ + + + + +
+ + + + + + + +
ClothoidCurve const& G2lib::G2solve3arc::getS0 () const
+
+inline
+
+
Returns
get the first clothoid for the 3 arc G2 fitting
+ +
+
+ +

◆ getS1()

+ +
+
+ + + + + +
+ + + + + + + +
ClothoidCurve const& G2lib::G2solve3arc::getS1 () const
+
+inline
+
+
Returns
get the last clothoid for the 3 arc G2 fitting
+ +
+
+ +

◆ getSM()

+ +
+
+ + + + + +
+ + + + + + + +
ClothoidCurve const& G2lib::G2solve3arc::getSM () const
+
+inline
+
+
Returns
get the middle clothoid for the 3 arc G2 fitting
+ +
+
+ +

◆ integralCurvature2()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::integralCurvature2 () const
+
+inline
+
+
Returns
get the integral of the curvature squared of the 3 arc G2 fitting
+ +
+
+ +

◆ integralJerk2()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::integralJerk2 () const
+
+inline
+
+
Returns
get the integral of the jerk squared of the 3 arc G2 fitting
+ +
+
+ +

◆ integralSnap2()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::integralSnap2 () const
+
+inline
+
+
Returns
get the integral of the snap squared of the 3 arc G2 fitting
+ +
+
+ +

◆ kappaBegin()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::kappaBegin () const
+
+inline
+
+
Returns
initial curvature of the 3 arc clothoid
+ +
+
+ +

◆ kappaEnd()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::kappaEnd () const
+
+inline
+
+
Returns
final curvature of the 3 arc clothoid
+ +
+
+ +

◆ theta()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::theta (real_type s) const
+
+
Returns
angle as a function of curvilinear coordinate
+ +
+
+ +

◆ theta_D()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::theta_D (real_type s) const
+
+
Returns
angle derivative (curvature) as a function of curvilinear coordinate
+ +
+
+ +

◆ theta_DD()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::theta_DD (real_type s) const
+
+
Returns
angle second derivative (curvature derivative) as a function of curvilinear coordinate
+ +
+
+ +

◆ theta_DDD()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::theta_DDD (real_type s) const
+
+
\return angle third derivative as a function of curvilinear coordinate
+

\

+ +
+
+ +

◆ thetaBegin()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::thetaBegin () const
+
+inline
+
+
Returns
initial angle of the 3 arc clothoid
+ +
+
+ +

◆ thetaEnd()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::thetaEnd () const
+
+inline
+
+
Returns
final angle of the 3 arc clothoid
+ +
+
+ +

◆ thetaMinMax()

+ +
+
+ + + + + + + + + + + + + + + + + + +
real_type G2lib::G2solve3arc::thetaMinMax (real_type & thMin,
real_type & thMax 
) const
+
+
Parameters
+ + + +
[out]thMinminimum angle in the 3 arc G2 fitting curve
[out]thMaxmaximum angle in the 3 arc G2 fitting curve
+
+
+
Returns
the difference of thMax and thMin
+ +
+
+ +

◆ thetaTotalVariation()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::thetaTotalVariation () const
+
+inline
+
+
Returns
get the total angle variation of the 3 arc G2 fitting
+ +
+
+ +

◆ totalLength()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::totalLength () const
+
+inline
+
+
Returns
get the length of the 3 arc G2 fitting
+ +
+
+ +

◆ X()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::X (real_type s) const
+
+
Returns
x coordinate of the3 arc clothoid as a function of curvilinear coordinate
+ +
+
+ +

◆ xBegin()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::xBegin () const
+
+inline
+
+
Returns
initial x coordinate of the 3 arc clothoid
+ +
+
+ +

◆ xEnd()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::xEnd () const
+
+inline
+
+
Returns
final x coordinate of the 3 arc clothoid
+ +
+
+ +

◆ Y()

+ +
+
+ + + + + + + + +
real_type G2lib::G2solve3arc::Y (real_type s) const
+
+
Returns
y coordinate of the3 arc clothoid as a function of curvilinear coordinate
+ +
+
+ +

◆ yBegin()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::yBegin () const
+
+inline
+
+
Returns
initial y coordinate of the 3 arc clothoid
+ +
+
+ +

◆ yEnd()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::G2solve3arc::yEnd () const
+
+inline
+
+
Returns
final y coordinate of the 3 arc clothoid
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d1/def/class_g2lib_1_1_poly_line-members.html b/docs/d1/def/class_g2lib_1_1_poly_line-members.html new file mode 100644 index 00000000..187afb12 --- /dev/null +++ b/docs/d1/def/class_g2lib_1_1_poly_line-members.html @@ -0,0 +1,272 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::PolyLine Member List
+
+
+ +

This is the complete list of members for G2lib::PolyLine, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::PolyLinevirtual
bbox_ISO(real_type, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
BiarcList (defined in G2lib::PolyLine)G2lib::PolyLinefriend
build(real_type const x[], real_type const y[], int_type npts) (defined in G2lib::PolyLine)G2lib::PolyLine
build(LineSegment const &L) (defined in G2lib::PolyLine)G2lib::PolyLine
build(CircleArc const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
build(Biarc const &B, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
build(ClothoidCurve const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
build(ClothoidList const &CL, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
build_AABBtree(AABBtree &aabb) const (defined in G2lib::PolyLine)G2lib::PolyLine
build_AABBtree() const (defined in G2lib::PolyLine)G2lib::PolyLineinline
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
closestPoint_ISO(real_type x, real_type y, real_type &X, real_type &Y, real_type &S, real_type &T, real_type &DST) const UTILS_OVERRIDEG2lib::PolyLinevirtual
closestPoint_ISO(real_type, real_type, real_type, real_type &, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
ClothoidList (defined in G2lib::PolyLine)G2lib::PolyLinefriend
collision(PolyLine const &C) const (defined in G2lib::PolyLine)G2lib::PolyLine
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, PolyLine const &CL, real_type offs_CL) const (defined in G2lib::PolyLine)G2lib::PolyLineinline
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(PolyLine const &l) (defined in G2lib::PolyLine)G2lib::PolyLine
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
eval_DD(real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
eval_DDD(real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
eval_ISO_DD(real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
eval_ISO_DDD(real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findAtS(real_type &s) const (defined in G2lib::PolyLine)G2lib::PolyLine
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
getSegment(int_type n) const (defined in G2lib::PolyLine)G2lib::PolyLine
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
init() (defined in G2lib::PolyLine)G2lib::PolyLine
init(real_type x0, real_type y0) (defined in G2lib::PolyLine)G2lib::PolyLine
intersect(PolyLine const &pl, std::vector< real_type > &s1, std::vector< real_type > &s2) const (defined in G2lib::PolyLine)G2lib::PolyLine
intersect(PolyLine const &pl, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::PolyLine)G2lib::PolyLine
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, PolyLine const &pl, real_type offs_pl, IntersectList &ilist, bool swap_s_vals) (defined in G2lib::PolyLine)G2lib::PolyLineinline
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
length_ISO(real_type) const UTILS_OVERRIDEG2lib::PolyLineinlinevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
numPoints() const (defined in G2lib::PolyLine)G2lib::PolyLineinline
numSegment() const (defined in G2lib::PolyLine)G2lib::PolyLineinline
nx_Begin_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::PolyLine)G2lib::PolyLinefriend
operator=(PolyLine const &s) (defined in G2lib::PolyLine)G2lib::PolyLineinline
polygon(real_type x[], real_type y[]) const (defined in G2lib::PolyLine)G2lib::PolyLine
PolyLine() (defined in G2lib::PolyLine)G2lib::PolyLineinline
PolyLine(PolyLine const &PL) (defined in G2lib::PolyLine)G2lib::PolyLineinline
PolyLine(LineSegment const &LS) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
PolyLine(CircleArc const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
PolyLine(Biarc const &B, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
PolyLine(ClothoidCurve const &B, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
PolyLine(ClothoidList const &B, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
PolyLine(BaseCurve const &C) (defined in G2lib::PolyLine)G2lib::PolyLineexplicit
push_back(real_type x, real_type y) (defined in G2lib::PolyLine)G2lib::PolyLine
push_back(LineSegment const &C) (defined in G2lib::PolyLine)G2lib::PolyLine
push_back(CircleArc const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
push_back(Biarc const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
push_back(ClothoidCurve const &C, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
push_back(ClothoidList const &L, real_type tol) (defined in G2lib::PolyLine)G2lib::PolyLine
reverse() UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
scale(real_type sc) UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
tg(real_type s, real_type &tg_x, real_type &tg_y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_D(real_type s, real_type &tg_x_D, real_type &tg_y_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_DD(real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_DDD(real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
theta(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
theta_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
theta_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
theta_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
thetaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
thetaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLinevirtual
trim(real_type s_begin, real_type s_end, PolyLine &newPL) const (defined in G2lib::PolyLine)G2lib::PolyLine
tx(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_Begin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tx_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_Begin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
X_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
X_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
X_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
X_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
xBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
xEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
Y_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
Y_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
Y_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
Y_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
yBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::PolyLine)G2lib::PolyLineinlinevirtual
yEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
+ + + + diff --git a/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.map b/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.map new file mode 100644 index 00000000..11a811f0 --- /dev/null +++ b/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.md5 b/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.md5 new file mode 100644 index 00000000..2a95f81a --- /dev/null +++ b/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.md5 @@ -0,0 +1 @@ +90cef031480a56439c8e7e77298287b4 \ No newline at end of file diff --git a/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.png b/docs/d1/df5/class_utils_1_1_runtime___trace_error__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..de6f9cacefd28777d8f58cbe6d7c2f728de8f60f GIT binary patch literal 4188 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 literal 0 HcmV?d00001 diff --git a/docs/d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html b/docs/d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html new file mode 100644 index 00000000..ce5dbf18 --- /dev/null +++ b/docs/d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html @@ -0,0 +1,136 @@ + + + + + + + +Clothoids: GenericContainerNamespace::GenericContainerExplorer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
GenericContainerNamespace::GenericContainerExplorer Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+GenericContainertop ()
 
+GenericContainer const * top () const
 
+void * mem_ptr ()
 
+void const * mem_ptr () const
 
+GENERIC_CONTAINER_API_DLL int check (int data_type) const
 
+GENERIC_CONTAINER_API_DLL int check_no_data (int data_type) const
 
+GENERIC_CONTAINER_API_DLL int pop ()
 
+GENERIC_CONTAINER_API_DLL int push (GenericContainer *gc)
 
+GENERIC_CONTAINER_API_DLL int push_vector_position (unsigned pos)
 
+GENERIC_CONTAINER_API_DLL int push_map_position (char const pos[])
 
+GENERIC_CONTAINER_API_DLL int init_map_key ()
 
+GENERIC_CONTAINER_API_DLL char const * next_map_key ()
 
+GENERIC_CONTAINER_API_DLL int reset ()
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d1/df8/class_utils_1_1_console.html b/docs/d1/df8/class_utils_1_1_console.html new file mode 100644 index 00000000..7e3e7885 --- /dev/null +++ b/docs/d1/df8/class_utils_1_1_console.html @@ -0,0 +1,205 @@ + + + + + + + +Clothoids: Utils::Console Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Console Class Reference
+
+
+ + + + +

+Classes

class  Console_style
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Console (ostream_type *stream=&std::cout, int level=4)
 
+void changeLevel (int new_level)
 
+void changeStream (ostream_type *new_stream)
 
+int getLevel () const
 
+ostream_type * getStream () const
 
+Console const & flush () const
 
+Console const & message (std::string const &msg, int msg_level=4) const
 
+Console const & semaphore (unsigned ryg, std::string const &msg, int msg_level=0) const
 
+Console const & warning (std::string const &msg) const
 
+Console const & error (std::string const &msg) const
 
+Console const & fatal (std::string const &msg) const
 
+Console const & black (std::string const &msg, int msg_level=0) const
 
+Console const & red (std::string const &msg, int msg_level=0) const
 
+Console const & green (std::string const &msg, int msg_level=0) const
 
+Console const & yellow (std::string const &msg, int msg_level=0) const
 
+Console const & blue (std::string const &msg, int msg_level=0) const
 
+Console const & magenta (std::string const &msg, int msg_level=0) const
 
+Console const & cyan (std::string const &msg, int msg_level=0) const
 
+Console const & gray (std::string const &msg, int msg_level=0) const
 
+Console const & black_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & red_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & green_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & yellow_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & blue_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & magenta_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & cyan_reversed (std::string const &msg, int msg_level=0) const
 
+Console const & gray_reversed (std::string const &msg, int msg_level=0) const
 
+void setMessageStyle (rang::style const &s, rang::fg const &f, rang::bg const &b)
 
+void setWarningStyle (rang::style const &s, rang::fg const &f, rang::bg const &b)
 
+void setErrorStyle (rang::style const &s, rang::fg const &f, rang::bg const &b)
 
+void setFatalStyle (rang::style const &s, rang::fg const &f, rang::bg const &b)
 
+void setOff () const
 set off coloring
 
+void setAuto () const
 set coloring automatic
 
+
The documentation for this class was generated from the following files:
    +
  • submodules/Utils/src/Utils/Console.hxx
  • +
  • submodules/Utils/src/Console.cc
  • +
+
+ + + + diff --git a/docs/d2/d00/class_g2lib_1_1_poly_line.html b/docs/d2/d00/class_g2lib_1_1_poly_line.html new file mode 100644 index 00000000..d05d3731 --- /dev/null +++ b/docs/d2/d00/class_g2lib_1_1_poly_line.html @@ -0,0 +1,1755 @@ + + + + + + + +Clothoids: G2lib::PolyLine Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::PolyLine Class Reference
+
+
+ +

Class to manage a collection of straight segment. + More...

+ +

#include <PolyLine.hxx>

+
+Inheritance diagram for G2lib::PolyLine:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::PolyLine:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void init ()
 
+void copy (PolyLine const &l)
 
PolyLine (PolyLine const &PL)
 
+int_type findAtS (real_type &s) const
 
PolyLine (LineSegment const &LS)
 
PolyLine (CircleArc const &C, real_type tol)
 
PolyLine (Biarc const &B, real_type tol)
 
PolyLine (ClothoidCurve const &B, real_type tol)
 
PolyLine (ClothoidList const &B, real_type tol)
 
PolyLine (BaseCurve const &C)
 
+PolyLine const & operator= (PolyLine const &s)
 
+LineSegment const & getSegment (int_type n) const
 
+int_type numSegment () const
 
+int_type numPoints () const
 
+void polygon (real_type x[], real_type y[]) const
 
+void init (real_type x0, real_type y0)
 
+void push_back (real_type x, real_type y)
 
+void push_back (LineSegment const &C)
 
+void push_back (CircleArc const &C, real_type tol)
 
+void push_back (Biarc const &C, real_type tol)
 
+void push_back (ClothoidCurve const &C, real_type tol)
 
+void push_back (ClothoidList const &L, real_type tol)
 
+void build (real_type const x[], real_type const y[], int_type npts)
 
+void build (LineSegment const &L)
 
+void build (CircleArc const &C, real_type tol)
 
+void build (Biarc const &B, real_type tol)
 
+void build (ClothoidCurve const &C, real_type tol)
 
+void build (ClothoidList const &CL, real_type tol)
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDE
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type) const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void scale (real_type sc) UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
+void trim (real_type s_begin, real_type s_end, PolyLine &newPL) const
 
virtual int_type closestPoint_ISO (real_type x, real_type y, real_type &X, real_type &Y, real_type &S, real_type &T, real_type &DST) const UTILS_OVERRIDE
 compute the point at minimum distance from a point [x,y] and the line segment More...
 
virtual int_type closestPoint_ISO (real_type, real_type, real_type, real_type &, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDE
 
+bool collision (PolyLine const &C) const
 
+bool collision_ISO (real_type offs, PolyLine const &CL, real_type offs_CL) const
 
+void intersect (PolyLine const &pl, std::vector< real_type > &s1, std::vector< real_type > &s2) const
 
+void intersect (PolyLine const &pl, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, PolyLine const &pl, real_type offs_pl, IntersectList &ilist, bool swap_s_vals)
 
+virtual void info (ostream_type &stream) const UTILS_OVERRIDE
 
+void build_AABBtree (AABBtree &aabb) const
 
+void build_AABBtree () const
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type thetaBegin () const
 
+virtual real_type thetaEnd () const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+virtual real_type xBegin_ISO (real_type offs) const
 
+virtual real_type yBegin_ISO (real_type offs) const
 
+virtual real_type xEnd_ISO (real_type offs) const
 
+virtual real_type yEnd_ISO (real_type offs) const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+virtual real_type tx_Begin () const
 
+virtual real_type ty_Begin () const
 
+virtual real_type tx_End () const
 
+virtual real_type ty_End () const
 
+virtual real_type nx_Begin_ISO () const
 
+virtual real_type ny_Begin_ISO () const
 
+virtual real_type nx_End_ISO () const
 
+virtual real_type ny_End_ISO () const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+virtual real_type tx (real_type s) const
 
+virtual real_type ty (real_type s) const
 
+virtual real_type tx_D (real_type s) const
 
+virtual real_type ty_D (real_type s) const
 
+virtual real_type tx_DD (real_type s) const
 
+virtual real_type ty_DD (real_type s) const
 
+virtual real_type tx_DDD (real_type s) const
 
+virtual real_type ty_DDD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+virtual void tg (real_type s, real_type &tg_x, real_type &tg_y) const
 
+virtual void tg_D (real_type s, real_type &tg_x_D, real_type &tg_y_D) const
 
+virtual void tg_DD (real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const
 
+virtual void tg_DDD (real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual real_type X_ISO (real_type s, real_type offs) const
 
+virtual real_type Y_ISO (real_type s, real_type offs) const
 
+virtual real_type X_ISO_D (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_D (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DDD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DDD (real_type s, real_type offs) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + + + + + +

+Friends

+class ClothoidList
 
+class BiarcList
 
+ostream_type & operator<< (ostream_type &stream, PolyLine const &P)
 
+

Detailed Description

+

Class to manage a collection of straight segment.

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::PolyLine::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::PolyLine::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlinevirtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::PolyLine::closestPoint_ISO (real_type x,
real_type y,
real_type & X,
real_type & Y,
real_type & S,
real_type & T,
real_type & DST 
) const
+
+virtual
+
+ +

compute the point at minimum distance from a point [x,y] and the line segment

+
Parameters
+ + + + + + +
xx-coordinate
yy-coordinate
Xx-coordinate of the closest point
Yy-coordinate of the closest point
Sparam of the closest point
+
+
+
Returns
the distance point-segment
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual int_type G2lib::PolyLine::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlinevirtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::PolyLine::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlinevirtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::PolyLine::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlinevirtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::PolyLine::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlinevirtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::PolyLine::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlinevirtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::PolyLine::length () const
+
+inlinevirtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::PolyLine::length_ISO (real_type offs) const
+
+inlinevirtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d2/d03/class_g2lib_1_1_base_curve.html b/docs/d2/d03/class_g2lib_1_1_base_curve.html new file mode 100644 index 00000000..2dcc2b8a --- /dev/null +++ b/docs/d2/d03/class_g2lib_1_1_base_curve.html @@ -0,0 +1,1632 @@ + + + + + + + +Clothoids: G2lib::BaseCurve Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::BaseCurve Class Reference
+
+
+ +

base classe for all the curve ìs in the library + More...

+ +

#include <G2lib.hxx>

+
+Inheritance diagram for G2lib::BaseCurve:
+
+
Inheritance graph
+ + + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BaseCurve (CurveType const &type)
 
CurveType type () const
 
virtual real_type length () const UTILS_PURE_VIRTUAL
 
virtual real_type length_ISO (real_type offs) const UTILS_PURE_VIRTUAL
 
real_type length_SAE (real_type offs) const
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUAL
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUAL
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type thetaBegin () const
 
+virtual real_type thetaEnd () const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+virtual real_type xBegin () const
 
+virtual real_type yBegin () const
 
+virtual real_type xEnd () const
 
+virtual real_type yEnd () const
 
+virtual real_type xBegin_ISO (real_type offs) const
 
+virtual real_type yBegin_ISO (real_type offs) const
 
+virtual real_type xEnd_ISO (real_type offs) const
 
+virtual real_type yEnd_ISO (real_type offs) const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+virtual real_type tx_Begin () const
 
+virtual real_type ty_Begin () const
 
+virtual real_type tx_End () const
 
+virtual real_type ty_End () const
 
+virtual real_type nx_Begin_ISO () const
 
+virtual real_type ny_Begin_ISO () const
 
+virtual real_type nx_End_ISO () const
 
+virtual real_type ny_End_ISO () const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+virtual real_type theta (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type theta_D (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type theta_DD (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type theta_DDD (real_type s) const UTILS_PURE_VIRTUAL
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+virtual real_type tx (real_type s) const
 
+virtual real_type ty (real_type s) const
 
+virtual real_type tx_D (real_type s) const
 
+virtual real_type ty_D (real_type s) const
 
+virtual real_type tx_DD (real_type s) const
 
+virtual real_type ty_DD (real_type s) const
 
+virtual real_type tx_DDD (real_type s) const
 
+virtual real_type ty_DDD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+virtual void tg (real_type s, real_type &tg_x, real_type &tg_y) const
 
+virtual void tg_D (real_type s, real_type &tg_x_D, real_type &tg_y_D) const
 
+virtual void tg_DD (real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const
 
+virtual void tg_DDD (real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual real_type X (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type Y (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type X_D (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type Y_D (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type X_DD (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type Y_DD (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type X_DDD (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual real_type Y_DDD (real_type s) const UTILS_PURE_VIRTUAL
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_PURE_VIRTUAL
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_PURE_VIRTUAL
 
+virtual void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const UTILS_PURE_VIRTUAL
 
+virtual void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_PURE_VIRTUAL
 
+virtual real_type X_ISO (real_type s, real_type offs) const
 
+virtual real_type Y_ISO (real_type s, real_type offs) const
 
+virtual real_type X_ISO_D (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_D (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DDD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DDD (real_type s, real_type offs) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+virtual void translate (real_type tx, real_type ty) UTILS_PURE_VIRTUAL
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_PURE_VIRTUAL
 
+virtual void scale (real_type sc) UTILS_PURE_VIRTUAL
 
+virtual void reverse () UTILS_PURE_VIRTUAL
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_PURE_VIRTUAL
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_PURE_VIRTUAL
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+virtual void info (ostream_type &stream) const UTILS_PURE_VIRTUAL
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+

Detailed Description

+

base classe for all the curve ìs in the library

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::BaseCurve::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::CircleArc, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::BaseCurve::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::CircleArc, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inline
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual int_type G2lib::BaseCurve::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::CircleArc, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual int_type G2lib::BaseCurve::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::CircleArc, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inline
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inline
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+virtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+virtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented in G2lib::LineSegment, G2lib::PolyLine, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+virtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+virtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inline
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inline
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inline
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inline
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::BaseCurve::length () const
+
+virtual
+
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::BaseCurve::length_ISO (real_type offs) const
+
+virtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidCurve, G2lib::ClothoidList, G2lib::CircleArc, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inline
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inline
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.map b/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.map new file mode 100644 index 00000000..226156be --- /dev/null +++ b/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.md5 b/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.md5 new file mode 100644 index 00000000..3a9c9c86 --- /dev/null +++ b/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.md5 @@ -0,0 +1 @@ +597714d9fc8754b2cd9e54eb6004f315 \ No newline at end of file diff --git a/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.png b/docs/d2/d05/class_g2lib_1_1_circle_arc__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e62e76663321d02266117df19241f4b41ffdc5ec GIT binary patch literal 3956 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 C%ThZ4 literal 0 HcmV?d00001 diff --git a/docs/d2/d25/class_utils_1_1_thread_pool.html b/docs/d2/d25/class_utils_1_1_thread_pool.html new file mode 100644 index 00000000..859f6b04 --- /dev/null +++ b/docs/d2/d25/class_utils_1_1_thread_pool.html @@ -0,0 +1,129 @@ + + + + + + + +Clothoids: Utils::ThreadPool Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::ThreadPool Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ThreadPool (unsigned nthread=std::max(unsigned(1), unsigned(std::thread::hardware_concurrency() -1)))
 
+template<typename Func , typename... Args>
void run (unsigned nt, Func &&func, Args &&... args)
 Submit a job to be run by the thread pool.
 
+void wait_all ()
 
+void start_all ()
 
+void stop_all ()
 
+unsigned size () const
 
+std::thread::id get_id (unsigned i) const
 
+std::thread const & get_thread (unsigned i) const
 
+std::thread & get_thread (unsigned i)
 
+void resize (unsigned numThreads)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d2/d79/class_g2lib_1_1_asy_plot.html b/docs/d2/d79/class_g2lib_1_1_asy_plot.html new file mode 100644 index 00000000..1deb8f27 --- /dev/null +++ b/docs/d2/d79/class_g2lib_1_1_asy_plot.html @@ -0,0 +1,122 @@ + + + + + + + +Clothoids: G2lib::AsyPlot Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::AsyPlot Class Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

AsyPlot (string filename, bool showAxes)
 
+void drawClothoid (ClothoidCurve const &c, std::string const &penna="black", real_type offset=0) const
 
+void dot (real_type x, real_type y, string const &penna="black") const
 
+void triangle (Triangle2D const &t, string const &penna="black") const
 
+void drawRect (real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, string const &penna="black") const
 
+void drawLine (real_type x0, real_type y0, real_type x1, real_type y1, std::string const &penna="black") const
 
+void label (string const &text, real_type x, real_type y, string const &placement="", string const &penna="black") const
 
+void displayAxes (string const &labX, string const &labY, real_type xmin, real_type xmax, real_type ymin, real_type ymax) const
 
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d2/d7b/class_g2lib_1_1_biarc_list-members.html b/docs/d2/d7b/class_g2lib_1_1_biarc_list-members.html new file mode 100644 index 00000000..ba01b6e4 --- /dev/null +++ b/docs/d2/d7b/class_g2lib_1_1_biarc_list-members.html @@ -0,0 +1,273 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::BiarcList Member List
+
+
+ +

This is the complete list of members for G2lib::BiarcList, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::BiarcListinlinevirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::BiarcListvirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
bbTriangles(std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::BiarcList)G2lib::BiarcListinline
bbTriangles_ISO(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::BiarcList)G2lib::BiarcList
bbTriangles_SAE(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::BiarcList)G2lib::BiarcListinline
BiarcList() (defined in G2lib::BiarcList)G2lib::BiarcListinline
BiarcList(BiarcList const &s) (defined in G2lib::BiarcList)G2lib::BiarcListinline
BiarcList(LineSegment const &LS) (defined in G2lib::BiarcList)G2lib::BiarcListexplicit
BiarcList(CircleArc const &C) (defined in G2lib::BiarcList)G2lib::BiarcListexplicit
BiarcList(Biarc const &C) (defined in G2lib::BiarcList)G2lib::BiarcListexplicit
BiarcList(PolyLine const &pl) (defined in G2lib::BiarcList)G2lib::BiarcListexplicit
BiarcList(BaseCurve const &C) (defined in G2lib::BiarcList)G2lib::BiarcListexplicit
build_AABBtree_ISO(real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::BiarcList)G2lib::BiarcList
build_AABBtree_SAE(real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::BiarcList)G2lib::BiarcListinline
build_G1(int_type n, real_type const x[], real_type const y[]) (defined in G2lib::BiarcList)G2lib::BiarcList
build_G1(int_type n, real_type const x[], real_type const y[], real_type const theta[]) (defined in G2lib::BiarcList)G2lib::BiarcList
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::BiarcListvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::BiarcListvirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
ClothoidList (defined in G2lib::BiarcList)G2lib::BiarcListfriend
collision(BiarcList const &C) const (defined in G2lib::BiarcList)G2lib::BiarcList
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, BiarcList const &CL, real_type offs_C) const (defined in G2lib::BiarcList)G2lib::BiarcList
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(BiarcList const &L) (defined in G2lib::BiarcList)G2lib::BiarcList
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::BiarcListvirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::BiarcListvirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::BiarcListvirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::BiarcListvirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findAtS(real_type &s) const (defined in G2lib::BiarcList)G2lib::BiarcList
findST1(real_type x, real_type y, real_type &s, real_type &t) constG2lib::BiarcList
findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) constG2lib::BiarcList
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
get(int_type idx) const (defined in G2lib::BiarcList)G2lib::BiarcList
getAtS(real_type s) const (defined in G2lib::BiarcList)G2lib::BiarcList
getSTK(real_type s[], real_type theta[], real_type kappa[]) const (defined in G2lib::BiarcList)G2lib::BiarcList
getXY(real_type x[], real_type y[]) const (defined in G2lib::BiarcList)G2lib::BiarcList
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
init() (defined in G2lib::BiarcList)G2lib::BiarcList
intersect(BiarcList const &CL, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BiarcList)G2lib::BiarcListinline
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, BiarcList const &CL, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BiarcList)G2lib::BiarcList
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::BiarcListvirtual
length_ISO(real_type offs) const UTILS_OVERRIDEG2lib::BiarcListvirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
numSegment() const (defined in G2lib::BiarcList)G2lib::BiarcListinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::BiarcList)G2lib::BiarcListfriend
operator=(BiarcList const &s) (defined in G2lib::BiarcList)G2lib::BiarcListinline
push_back(LineSegment const &c) (defined in G2lib::BiarcList)G2lib::BiarcList
push_back(CircleArc const &c) (defined in G2lib::BiarcList)G2lib::BiarcList
push_back(Biarc const &c) (defined in G2lib::BiarcList)G2lib::BiarcList
push_back(PolyLine const &c) (defined in G2lib::BiarcList)G2lib::BiarcList
push_back_G1(real_type x1, real_type y1, real_type theta1) (defined in G2lib::BiarcList)G2lib::BiarcList
push_back_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1) (defined in G2lib::BiarcList)G2lib::BiarcList
reserve(int_type n) (defined in G2lib::BiarcList)G2lib::BiarcList
reverse() UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
scale(real_type sc) UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
segment_length(int_type nseg) const (defined in G2lib::BiarcList)G2lib::BiarcList
segment_length_ISO(int_type nseg, real_type offs) const (defined in G2lib::BiarcList)G2lib::BiarcList
tg(real_type s, real_type &tg_x, real_type &tg_y) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tg_D(real_type s, real_type &tg_x_D, real_type &tg_y_D) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tg_DD(real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tg_DDD(real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
theta(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
theta_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
theta_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
theta_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
thetaBegin() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
thetaEnd() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tx(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
tx_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tx_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tx_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
tx_End() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
ty(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
ty_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
ty_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
ty_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
ty_End() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
xBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
xEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListvirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
yBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
yEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
~BiarcList() UTILS_OVERRIDE (defined in G2lib::BiarcList)G2lib::BiarcListinlinevirtual
+ + + + diff --git a/docs/d2/db5/class_utils_1_1_spin_lock-members.html b/docs/d2/db5/class_utils_1_1_spin_lock-members.html new file mode 100644 index 00000000..e1a54536 --- /dev/null +++ b/docs/d2/db5/class_utils_1_1_spin_lock-members.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::SpinLock Member List
+
+
+ +

This is the complete list of members for Utils::SpinLock, including all inherited members.

+ + + + + +
lock() (defined in Utils::SpinLock)Utils::SpinLockinline
SpinLock() (defined in Utils::SpinLock)Utils::SpinLockinline
unlock() (defined in Utils::SpinLock)Utils::SpinLockinline
wait() (defined in Utils::SpinLock)Utils::SpinLockinline
+ + + + diff --git a/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.map b/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.map new file mode 100644 index 00000000..dee02793 --- /dev/null +++ b/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.md5 b/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.md5 new file mode 100644 index 00000000..98ebf322 --- /dev/null +++ b/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.md5 @@ -0,0 +1 @@ +35e6dccda6573ceea1df35b501e5b51f \ No newline at end of file diff --git a/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.png b/docs/d2/dba/class_g2lib_1_1_base_curve__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..1130fc0a47b897f629d27305037697d426355dce GIT binary patch literal 22921 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 literal 0 HcmV?d00001 diff --git a/docs/d3/d06/_generic_container_libs_8hh_source.html b/docs/d3/d06/_generic_container_libs_8hh_source.html new file mode 100644 index 00000000..5da2745e --- /dev/null +++ b/docs/d3/d06/_generic_container_libs_8hh_source.html @@ -0,0 +1,128 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src/GenericContainerLibs.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerLibs.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2013 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 //
+
21 // file: GenericContainerLibs.hh
+
22 //
+
23 
+
24 #ifndef GENERIC_CONTAINER_LIBS_HH
+
25 #define GENERIC_CONTAINER_LIBS_HH
+
26 
+
27 #include "GenericContainerConfig.hh"
+
28 
+
29 #if defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64)
+
30  #define GENERIC_CONTAINER_ON_WINDOWS
+
31  #ifdef _MSC_VER
+
32  #pragma comment(lib, "kernel32.lib")
+
33  #pragma comment(lib, "user32.lib")
+
34  #endif
+
35 #endif
+
36 
+
37 #endif
+
38 
+
39 //
+
40 // eof: GenericContainerLibs.hh
+
41 //
+
+ + + + diff --git a/docs/d3/d23/class_utils_1_1_spin_lock__barrier.html b/docs/d3/d23/class_utils_1_1_spin_lock__barrier.html new file mode 100644 index 00000000..eb75efa0 --- /dev/null +++ b/docs/d3/d23/class_utils_1_1_spin_lock__barrier.html @@ -0,0 +1,115 @@ + + + + + + + +Clothoids: Utils::SpinLock_barrier Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::SpinLock_barrier Class Reference
+
+
+ + + + + + + + + + + + + + +

+Public Member Functions

SpinLock_barrier (const SpinLock_barrier &)=delete
 
+SpinLock_barrieroperator= (const SpinLock_barrier &)=delete
 
+void setup (unsigned count)
 
+void count_down ()
 
+void wait ()
 
+void count_down_and_wait ()
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d3/d44/_numbers_8hxx_source.html b/docs/d3/d44/_numbers_8hxx_source.html new file mode 100644 index 00000000..907052f6 --- /dev/null +++ b/docs/d3/d44/_numbers_8hxx_source.html @@ -0,0 +1,305 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/Numbers.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Numbers.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2020 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef NUMBERS_dot_HXX
+
27 #define NUMBERS_dot_HXX
+
28 
+
29 namespace Utils {
+
30 
+
31  /*
+
32  // ____ _ _
+
33  // / ___|___ _ __ ___| |_ __ _ _ __ | |_ ___
+
34  // | | / _ \| '_ \/ __| __/ _` | '_ \| __/ __|
+
35  // | |__| (_) | | | \__ \ || (_| | | | | |_\__ \
+
36  // \____\___/|_| |_|___/\__\__,_|_| |_|\__|___/
+
37  */
+
38 
+
40  template <typename T> T NaN();
+
41 
+
42  template <> inline float
+
43  NaN() { return std::numeric_limits<float>::quiet_NaN(); }
+
44 
+
45  template <> inline double
+
46  NaN() { return std::numeric_limits<double>::quiet_NaN(); }
+
47 
+
48  template <typename T> T Inf();
+
49 
+
50  template <> inline float
+
51  Inf() { return std::numeric_limits<float>::infinity(); }
+
52 
+
53  template <> inline double
+
54  Inf() { return std::numeric_limits<double>::infinity(); }
+
55 
+
57  template <typename T> T machineEps();
+
58 
+
59  template <> inline float
+
60  machineEps() { return std::numeric_limits<float>::epsilon(); }
+
61 
+
62  template <> inline double
+
63  machineEps() { return std::numeric_limits<double>::epsilon(); }
+
64 
+
66  template <typename T> T sqrtMachineEps();
+
67 
+
68  template <> inline float
+
69  sqrtMachineEps() { return std::sqrt(std::numeric_limits<float>::epsilon()); }
+
70 
+
71  template <> inline double
+
72  sqrtMachineEps() { return std::sqrt(std::numeric_limits<double>::epsilon()); }
+
73 
+
75  template <typename T> T maximumValue();
+
76 
+
77  template <> inline float
+
78  maximumValue() { return std::sqrt(std::numeric_limits<float>::max()); }
+
79 
+
80  template <> inline double
+
81  maximumValue() { return std::sqrt(std::numeric_limits<double>::max()); }
+
82 
+
84  template <typename T> T minimumValue();
+
85 
+
86  template <> inline float
+
87  minimumValue() { return std::sqrt(std::numeric_limits<float>::min()); }
+
88 
+
89  template <> inline double
+
90  minimumValue() { return std::sqrt(std::numeric_limits<double>::min()); }
+
91 
+
92  static
+
93  inline
+
94  bool isZero( double x )
+
95  { return FP_ZERO == std::fpclassify(x); }
+
96 
+
97  static
+
98  inline
+
99  bool isZero( float x )
+
100  { return FP_ZERO == std::fpclassify(x); }
+
101 
+
102  static
+
103  inline
+
104  bool isInfinite( double x )
+
105  { return FP_INFINITE == std::fpclassify(x); }
+
106 
+
107  static
+
108  inline
+
109  bool isInfinite( float x )
+
110  { return FP_INFINITE == std::fpclassify(x); }
+
111 
+
112  static
+
113  inline
+
114  bool isNaN( double x )
+
115  { return FP_NAN == std::fpclassify(x); }
+
116 
+
117  static
+
118  inline
+
119  bool isNaN( float x )
+
120  { return FP_NAN == std::fpclassify(x); }
+
121 
+
122  static
+
123  inline
+
124  bool isRegular( double x )
+
125  { return !( FP_INFINITE == std::fpclassify(x) ||
+
126  FP_NAN == std::fpclassify(x) ); }
+
127 
+
128  static
+
129  inline
+
130  bool isRegular( float x )
+
131  { return !( FP_INFINITE == std::fpclassify(x) ||
+
132  FP_NAN == std::fpclassify(x) ); }
+
133 
+
134  // added alias
+
135  static
+
136  inline
+
137  bool isFinite( double x )
+
138  { return !( FP_INFINITE == std::fpclassify(x) ||
+
139  FP_NAN == std::fpclassify(x) ); }
+
140 
+
141  static
+
142  inline
+
143  bool isFinite( float x )
+
144  { return !( FP_INFINITE == std::fpclassify(x) ||
+
145  FP_NAN == std::fpclassify(x) ); }
+
146 
+
147  static
+
148  inline
+
149  bool isInteger( double x )
+
150  { return isZero( x-static_cast<long>(std::floor(x)) ); }
+
151 
+
152  static
+
153  inline
+
154  bool isInteger( float x )
+
155  { return isZero( x-static_cast<long>(std::floor(x)) ); }
+
156 
+
157  static
+
158  inline
+
159  bool isUnsigned( double x ) { return isInteger(x) && x >= 0; }
+
160 
+
161  static
+
162  inline
+
163  bool isUnsigned( float x ) { return isInteger(x) && x >= 0; }
+
164 
+
165  //============================================================================
+
166 
+
167  bool
+
168  foundNaN( double const pv[], int DIM );
+
169 
+
170  bool
+
171  foundNaN( float const pv[], int DIM );
+
172 
+
173  void
+
174  checkNaN(
+
175  double const pv[],
+
176  char const v_name[],
+
177  int DIM,
+
178  int line,
+
179  char const file[]
+
180  );
+
181 
+
182  void
+
183  checkNaN(
+
184  float const pv[],
+
185  char const v_name[],
+
186  int DIM,
+
187  int line,
+
188  char const file[]
+
189  );
+
190 
+
191  //============================================================================
+
192 
+
194  static double const m_e = 2.718281828459045235360287471352662497757;
+
195 
+
197  static double const m_pi = 3.141592653589793238462643383279502884197;
+
198 
+
200  static double const m_2pi = 6.283185307179586476925286766559005768394;
+
201 
+
203  static double const m_pi_2 = 1.570796326794896619231321691639751442098;
+
204 
+
206  static double const m_pi_4 = 0.7853981633974483096156608458198757210492;
+
207 
+
209  static double const m_1_pi = 0.3183098861837906715377675267450287240689;
+
210 
+
212  static double const m_2_pi = 0.6366197723675813430755350534900574481378;
+
213 
+
215  static double const m_sqrtpi = 1.772453850905516027298167483341145182798;
+
216 
+
218  static double const m_2_sqrtpi = 1.128379167095512573896158903121545171688;
+
219 
+
221  static double const m_sqrt2 = 1.414213562373095048801688724209698078570;
+
222 
+
224  static double const m_1_sqrt2 = 0.7071067811865475244008443621048490392850;
+
225 
+
226 }
+
227 
+
228 #endif
+
229 
+
Definition: Console.cc:31
+
T maximumValue()
maximum representable value
Definition: Numbers.hxx:78
+
T sqrtMachineEps()
square root of machine epsilon
Definition: Numbers.hxx:69
+
T minimumValue()
minimum representable value
Definition: Numbers.hxx:87
+
void checkNaN(double const pv[], char const v_name[], int DIM, int line, char const file[])
check if the vector pv os size DIM contains only regular floats. If not an error is issued
Definition: Numbers.cc:63
+
bool foundNaN(double const pv[], int DIM)
check if the vector pv os size DIM contains only regular floats
Definition: Numbers.cc:37
+
T NaN()
Not a number constant.
Definition: Numbers.hxx:43
+
T machineEps()
machine epsilon
Definition: Numbers.hxx:60
+
+ + + + diff --git a/docs/d3/d48/class_utils_1_1_console-members.html b/docs/d3/d48/class_utils_1_1_console-members.html new file mode 100644 index 00000000..881e0a52 --- /dev/null +++ b/docs/d3/d48/class_utils_1_1_console-members.html @@ -0,0 +1,123 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Console Member List
+
+
+ +

This is the complete list of members for Utils::Console, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
black(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
black_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
blue(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
blue_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
changeLevel(int new_level) (defined in Utils::Console)Utils::Console
changeStream(ostream_type *new_stream) (defined in Utils::Console)Utils::Console
Console(ostream_type *stream=&std::cout, int level=4) (defined in Utils::Console)Utils::Console
cyan(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
cyan_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
error(std::string const &msg) const (defined in Utils::Console)Utils::Console
fatal(std::string const &msg) const (defined in Utils::Console)Utils::Console
flush() const (defined in Utils::Console)Utils::Consoleinline
getLevel() const (defined in Utils::Console)Utils::Consoleinline
getStream() const (defined in Utils::Console)Utils::Consoleinline
gray(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
gray_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
green(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
green_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
magenta(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
magenta_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
message(std::string const &msg, int msg_level=4) const (defined in Utils::Console)Utils::Console
red(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
red_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
semaphore(unsigned ryg, std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
setAuto() constUtils::Consoleinline
setErrorStyle(rang::style const &s, rang::fg const &f, rang::bg const &b) (defined in Utils::Console)Utils::Consoleinline
setFatalStyle(rang::style const &s, rang::fg const &f, rang::bg const &b) (defined in Utils::Console)Utils::Consoleinline
setMessageStyle(rang::style const &s, rang::fg const &f, rang::bg const &b) (defined in Utils::Console)Utils::Consoleinline
setOff() constUtils::Consoleinline
setWarningStyle(rang::style const &s, rang::fg const &f, rang::bg const &b) (defined in Utils::Console)Utils::Consoleinline
warning(std::string const &msg) const (defined in Utils::Console)Utils::Console
yellow(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
yellow_reversed(std::string const &msg, int msg_level=0) const (defined in Utils::Console)Utils::Console
+ + + + diff --git a/docs/d3/d67/group___generic.html b/docs/d3/d67/group___generic.html new file mode 100644 index 00000000..59297566 --- /dev/null +++ b/docs/d3/d67/group___generic.html @@ -0,0 +1,83 @@ + + + + + + + +Clothoids: Container C interface + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Container C interface
+
+
+
+ + + + diff --git a/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.map b/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.map new file mode 100644 index 00000000..b2f30628 --- /dev/null +++ b/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.md5 b/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.md5 new file mode 100644 index 00000000..7f9cea05 --- /dev/null +++ b/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.md5 @@ -0,0 +1 @@ +61266a78f05a7468e536b5ab554f63b0 \ No newline at end of file diff --git a/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.png b/docs/d3/daa/class_g2lib_1_1_biarc__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..abf70a52b2f5eae34b97b13ceb358f0df3031f2e GIT binary patch literal 3662 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 + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Worker Member List
+
+
+ +

This is the complete list of members for Utils::Worker, including all inherited members.

+ + + + + + + + + +
run(Func &&func, Args &&... args) (defined in Utils::Worker)Utils::Workerinline
start() (defined in Utils::Worker)Utils::Workerinline
stop() (defined in Utils::Worker)Utils::Workerinline
ThreadPool (defined in Utils::Worker)Utils::Workerfriend
wait() (defined in Utils::Worker)Utils::Workerinline
Worker() (defined in Utils::Worker)Utils::Workerinline
Worker(Worker &&rhs) (defined in Utils::Worker)Utils::Workerinline
~Worker() (defined in Utils::Worker)Utils::Workerinline
+ + + + diff --git a/docs/d3/df1/class_g2lib_1_1_asy_plot-members.html b/docs/d3/df1/class_g2lib_1_1_asy_plot-members.html new file mode 100644 index 00000000..11857af3 --- /dev/null +++ b/docs/d3/df1/class_g2lib_1_1_asy_plot-members.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::AsyPlot Member List
+
+
+ +

This is the complete list of members for G2lib::AsyPlot, including all inherited members.

+ + + + + + + + + + +
AsyPlot(string filename, bool showAxes) (defined in G2lib::AsyPlot)G2lib::AsyPlot
displayAxes(string const &labX, string const &labY, real_type xmin, real_type xmax, real_type ymin, real_type ymax) const (defined in G2lib::AsyPlot)G2lib::AsyPlot
dot(real_type x, real_type y, string const &penna="black") const (defined in G2lib::AsyPlot)G2lib::AsyPlot
drawClothoid(ClothoidCurve const &c, std::string const &penna="black", real_type offset=0) const (defined in G2lib::AsyPlot)G2lib::AsyPlot
drawLine(real_type x0, real_type y0, real_type x1, real_type y1, std::string const &penna="black") const (defined in G2lib::AsyPlot)G2lib::AsyPlot
drawRect(real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, string const &penna="black") const (defined in G2lib::AsyPlot)G2lib::AsyPlot
label(string const &text, real_type x, real_type y, string const &placement="", string const &penna="black") const (defined in G2lib::AsyPlot)G2lib::AsyPlot
triangle(Triangle2D const &t, string const &penna="black") const (defined in G2lib::AsyPlot)G2lib::AsyPlot
~AsyPlot() (defined in G2lib::AsyPlot)G2lib::AsyPlot
+ + + + diff --git a/docs/d4/d09/_generic_container__doc_8hh_source.html b/docs/d4/d09/_generic_container__doc_8hh_source.html new file mode 100644 index 00000000..7a8b2e54 --- /dev/null +++ b/docs/d4/d09/_generic_container__doc_8hh_source.html @@ -0,0 +1,113 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src/GenericContainer_doc.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainer_doc.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2013 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 //
+
21 // file: GenericContainer_doc.hh
+
22 //
+
23 
+
394 //
+
395 // eof: GenericContainer_doc.hh
+
396 //
+
+ + + + diff --git a/docs/d4/d23/class_utils_1_1_worker.html b/docs/d4/d23/class_utils_1_1_worker.html new file mode 100644 index 00000000..942d10a2 --- /dev/null +++ b/docs/d4/d23/class_utils_1_1_worker.html @@ -0,0 +1,120 @@ + + + + + + + +Clothoids: Utils::Worker Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Worker Class Reference
+
+
+ + + + + + + + + + + + + +

+Public Member Functions

Worker (Worker &&rhs)
 
+void start ()
 
+void stop ()
 
+void wait ()
 
+template<class Func , class... Args>
void run (Func &&func, Args &&... args)
 
+ + + +

+Friends

+class ThreadPool
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d4/d36/_a_a_b_btree_8hxx_source.html b/docs/d4/d36/_a_a_b_btree_8hxx_source.html new file mode 100644 index 00000000..f7c9c181 --- /dev/null +++ b/docs/d4/d36/_a_a_b_btree_8hxx_source.html @@ -0,0 +1,397 @@ + + + + + + + +Clothoids: src/Clothoids/AABBtree.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
AABBtree.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2018 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Paolo Bevilacqua and Enrico Bertolazzi |
+
14  | |
+
15  | (1) Dipartimento di Ingegneria e Scienza dell'Informazione |
+
16  | (2) Dipartimento di Ingegneria Industriale |
+
17  | |
+
18  | Universita` degli Studi di Trento |
+
19  | email: paolo.bevilacqua@unitn.it |
+
20  | email: enrico.bertolazzi@unitn.it |
+
21  | |
+
22 \*--------------------------------------------------------------------------*/
+
23 
+
27 
+
28 namespace G2lib {
+
29 
+
30  using std::setw;
+
31  using std::vector;
+
32  using std::pair;
+
33 
+
34  #ifdef G2LIB_USE_CXX11
+
35  using std::make_shared;
+
36  using std::shared_ptr; // promemoria shared_ptr<Foo>(&foo, [](void*){});
+
37  #endif
+
38 
+
39  class AABBtree;
+
40 
+
41  /*\
+
42  | ____ ____
+
43  | | __ )| __ ) _____ __
+
44  | | _ \| _ \ / _ \ \/ /
+
45  | | |_) | |_) | (_) > <
+
46  | |____/|____/ \___/_/\_\
+
47  \*/
+
49  class BBox {
+
50  public:
+
51  #ifdef G2LIB_USE_CXX11
+
52  typedef shared_ptr<BBox const> PtrBBox;
+
53  #else
+
54  typedef BBox const * PtrBBox;
+
55  #endif
+
56 
+
57  private:
+
58  real_type m_xmin;
+
59  real_type m_ymin;
+
60  real_type m_xmax;
+
61  real_type m_ymax;
+
62  int_type m_id;
+
63  int_type m_ipos;
+
64  BBox();
+
65  BBox( BBox const & );
+
66 
+
67  public:
+
68 
+
69  BBox(
+
70  real_type xmin,
+
71  real_type ymin,
+
72  real_type xmax,
+
73  real_type ymax,
+
74  int_type id,
+
75  int_type ipos
+
76  ) {
+
77  m_xmin = xmin;
+
78  m_ymin = ymin;
+
79  m_xmax = xmax;
+
80  m_ymax = ymax;
+
81  m_id = id;
+
82  m_ipos = ipos;
+
83  }
+
84 
+
85  BBox(
+
86  vector<PtrBBox> const & bboxes,
+
87  int_type id,
+
88  int_type ipos
+
89  ) {
+
90  m_id = id;
+
91  m_ipos = ipos;
+
92  this -> join( bboxes );
+
93  }
+
94 
+
95  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
96 
+
97  real_type Xmin() const { return m_xmin; }
+
98  real_type Ymin() const { return m_ymin; }
+
99  real_type Xmax() const { return m_xmax; }
+
100  real_type Ymax() const { return m_ymax; }
+
101 
+
102  int_type const & Id() const { return m_id; }
+
103  int_type const & Ipos() const { return m_ipos; }
+
104 
+
105  BBox const &
+
106  operator = ( BBox const & rhs ) {
+
107  m_xmin = rhs.m_xmin;
+
108  m_ymin = rhs.m_ymin;
+
109  m_xmax = rhs.m_xmax;
+
110  m_ymax = rhs.m_ymax;
+
111  m_id = rhs.m_id;
+
112  m_ipos = rhs.m_ipos;
+
113  return *this;
+
114  }
+
115 
+
117  bool
+
118  collision( BBox const & box ) const {
+
119  return !( (box.m_xmin > m_xmax ) ||
+
120  (box.m_xmax < m_xmin ) ||
+
121  (box.m_ymin > m_ymax ) ||
+
122  (box.m_ymax < m_ymin ) );
+
123  }
+
124 
+
126  void
+
127  join( vector<PtrBBox> const & bboxes );
+
128 
+
130  real_type
+
131  distance( real_type x, real_type y ) const;
+
132 
+
134  real_type
+
135  maxDistance( real_type x, real_type y ) const;
+
136 
+
137  void
+
138  print( ostream_type & stream ) const {
+
139  fmt::print( stream,
+
140  "BBOX (xmin,ymin,xmax,ymax) = ( {}, {}, {}, {} )\n",
+
141  m_xmin, m_ymin, m_xmax, m_ymax
+
142  );
+
143  }
+
144 
+
145  friend class AABBtree;
+
146  };
+
147 
+
148  inline
+
149  ostream_type &
+
150  operator << ( ostream_type & stream, BBox const & bb ) {
+
151  bb.print(stream);
+
152  return stream;
+
153  }
+
154 
+
155  /*\
+
156  | _ _ ____ ____ _
+
157  | / \ / \ | __ )| __ )| |_ _ __ ___ ___
+
158  | / _ \ / _ \ | _ \| _ \| __| '__/ _ \/ _ \
+
159  | / ___ \ / ___ \| |_) | |_) | |_| | | __/ __/
+
160  | /_/ \_\/_/ \_\____/|____/ \__|_| \___|\___|
+
161  \*/
+
163  class AABBtree {
+
164  public:
+
165 
+
166  #ifdef G2LIB_USE_CXX11
+
167  typedef shared_ptr<BBox const> PtrBBox;
+
168  typedef shared_ptr<AABBtree> PtrAABB;
+
169  #else
+
170  typedef BBox const * PtrBBox;
+
171  typedef AABBtree * PtrAABB;
+
172  #endif
+
173 
+
174  typedef pair<PtrBBox,PtrBBox> PairPtrBBox;
+
175  typedef vector<PtrBBox> VecPtrBBox;
+
176  typedef vector<PairPtrBBox> VecPairPtrBBox;
+
177 
+
178  private:
+
179 
+
180  // bbox of the tree
+
181  PtrBBox pBBox;
+
182  vector<PtrAABB> children;
+
183 
+
184  AABBtree( AABBtree const & tree );
+
185 
+
190  static
+
191  real_type
+
192  min_maxdist(
+
193  real_type x,
+
194  real_type y,
+
195  AABBtree const & tree,
+
196  real_type mmDist
+
197  );
+
198 
+
202  static
+
203  void
+
204  min_maxdist_select(
+
205  real_type x,
+
206  real_type y,
+
207  real_type mmDist,
+
208  AABBtree const & tree,
+
209  VecPtrBBox & candidateList
+
210  );
+
211 
+
212  public:
+
213 
+
214  AABBtree();
+
215  ~AABBtree();
+
216 
+
217  // copy contructor (recursive)
+
218  //AABBtree( PtrBBox const & pbox ) {
+
219  // this -> pBBox = pbox;
+
220  // children.clear();
+
221  //}
+
222 
+
223  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
224 
+
225  void clear();
+
226 
+
227  bool empty() const;
+
228 
+
229  void
+
230  bbox(
+
231  real_type & xmin,
+
232  real_type & ymin,
+
233  real_type & xmax,
+
234  real_type & ymax
+
235  ) const {
+
236  xmin = pBBox->m_xmin;
+
237  ymin = pBBox->m_ymin;
+
238  xmax = pBBox->m_xmax;
+
239  ymax = pBBox->m_ymax;
+
240  }
+
241 
+
243  void
+
244  build( vector<PtrBBox> const & bboxes );
+
245 
+
246  void
+
247  print( ostream_type & stream, int level = 0 ) const;
+
248 
+
258  template <typename COLLISION_fun>
+
259  bool
+ +
261  AABBtree const & tree,
+
262  COLLISION_fun ifun,
+
263  bool swap_tree = false
+
264  ) const {
+
265 
+
266  // check bbox with
+
267  if ( !tree.pBBox->collision(*pBBox) ) return false;
+
268 
+
269  int icase = (children.empty() ? 0 : 1) +
+
270  (tree.children.empty()? 0 : 2);
+
271 
+
272  switch ( icase ) {
+
273  case 0: // both leaf, use GeomPrimitive intersection algorithm
+
274  if ( swap_tree ) return ifun( tree.pBBox, pBBox );
+
275  else return ifun( pBBox, tree.pBBox );
+
276  case 1: // first is a tree, second is a leaf
+
277  { typename vector<PtrAABB>::const_iterator it;
+
278  for ( it = children.begin(); it != children.end(); ++it )
+
279  if ( tree.collision( **it, ifun, !swap_tree ) )
+
280  return true;
+
281  }
+
282  break;
+
283  case 2: // first leaf, second is a tree
+
284  { typename vector<PtrAABB>::const_iterator it;
+
285  for ( it = tree.children.begin();
+
286  it != tree.children.end(); ++it )
+
287  if ( this->collision( **it, ifun, swap_tree ) )
+
288  return true;
+
289  }
+
290  break;
+
291  case 3: // first is a tree, second is a tree
+
292  { typename vector<PtrAABB>::const_iterator c1;
+
293  typename vector<PtrAABB>::const_iterator c2;
+
294  for ( c1 = children.begin(); c1 != children.end(); ++c1 )
+
295  for ( c2 = tree.children.begin();
+
296  c2 != tree.children.end(); ++c2 )
+
297  if ( (*c1)->collision( **c2, ifun, swap_tree ) )
+
298  return true;
+
299  }
+
300  break;
+
301  }
+
302  return false;
+
303  }
+
304 
+
314  void
+
315  intersect(
+
316  AABBtree const & tree,
+
317  VecPairPtrBBox & intersectionList,
+
318  bool swap_tree = false
+
319  ) const;
+
320 
+
321  void
+
322  min_distance(
+
323  real_type x,
+
324  real_type y,
+
325  VecPtrBBox & candidateList
+
326  ) const;
+
327 
+
328  };
+
329 
+
330 }
+
331 
+
Class to manage AABB tree.
Definition: AABBtree.hxx:163
+
void clear()
initialized AABB tree
Definition: AABBtree.cc:143
+
void build(vector< PtrBBox > const &bboxes)
build AABB tree given a list of bbox
Definition: AABBtree.cc:188
+
bool empty() const
check if AABB tree is empty
Definition: AABBtree.cc:149
+
bool collision(AABBtree const &tree, COLLISION_fun ifun, bool swap_tree=false) const
Definition: AABBtree.hxx:260
+
void intersect(AABBtree const &tree, VecPairPtrBBox &intersectionList, bool swap_tree=false) const
Definition: AABBtree.cc:281
+
Class to manipulate bounding box.
Definition: AABBtree.hxx:49
+
bool collision(BBox const &box) const
detect if two bbox collide
Definition: AABBtree.hxx:118
+
int_type const & Id() const
return BBOX id
Definition: AABBtree.hxx:102
+
real_type maxDistance(real_type x, real_type y) const
maximum distance of the point (x,y) to the point of bbox
Definition: AABBtree.cc:116
+
int_type const & Ipos() const
return BBOX position
Definition: AABBtree.hxx:103
+
real_type distance(real_type x, real_type y) const
distance of the point (x,y) to the bbox
Definition: AABBtree.cc:81
+
void join(vector< PtrBBox > const &bboxes)
Build bbox for a list of bbox.
Definition: AABBtree.cc:57
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/d4/d63/class_utils_1_1_spin_lock.html b/docs/d4/d63/class_utils_1_1_spin_lock.html new file mode 100644 index 00000000..023e76c8 --- /dev/null +++ b/docs/d4/d63/class_utils_1_1_spin_lock.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Utils::SpinLock Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::SpinLock Class Reference
+
+
+ + + + + + + + +

+Public Member Functions

+void wait ()
 
+void lock ()
 
+void unlock ()
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d4/d66/class_g2lib_1_1_g2solve_c_l_c-members.html b/docs/d4/d66/class_g2lib_1_1_g2solve_c_l_c-members.html new file mode 100644 index 00000000..96730daa --- /dev/null +++ b/docs/d4/d66/class_g2lib_1_1_g2solve_c_l_c-members.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::G2solveCLC Member List
+
+
+ +

This is the complete list of members for G2lib::G2solveCLC, including all inherited members.

+ + + + + + + + + + +
build(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1) (defined in G2lib::G2solveCLC)G2lib::G2solveCLC
G2solveCLC() (defined in G2lib::G2solveCLC)G2lib::G2solveCLCinline
getS0() const (defined in G2lib::G2solveCLC)G2lib::G2solveCLCinline
getS1() const (defined in G2lib::G2solveCLC)G2lib::G2solveCLCinline
getSM() const (defined in G2lib::G2solveCLC)G2lib::G2solveCLCinline
setMaxIter(int tol) (defined in G2lib::G2solveCLC)G2lib::G2solveCLC
setTolerance(real_type tol) (defined in G2lib::G2solveCLC)G2lib::G2solveCLC
solve() (defined in G2lib::G2solveCLC)G2lib::G2solveCLC
~G2solveCLC() (defined in G2lib::G2solveCLC)G2lib::G2solveCLCinline
+ + + + diff --git a/docs/d4/d9f/namespace_g2lib.html b/docs/d4/d9f/namespace_g2lib.html new file mode 100644 index 00000000..b7419746 --- /dev/null +++ b/docs/d4/d9f/namespace_g2lib.html @@ -0,0 +1,1486 @@ + + + + + + + +Clothoids: G2lib Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
G2lib Namespace Reference
+
+
+ +

Clothoid computations routine. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  BBox
 Class to manipulate bounding box. More...
 
class  AABBtree
 Class to manage AABB tree. More...
 
class  Biarc
 Compute biarc fitting by Hemite data. More...
 
class  BiarcList
 Class to manage a list of biarc Curve (not necessarily G2 or G1 connected) More...
 
class  CircleArc
 Class to manage Clothoid Curve. More...
 
class  ClothoidCurve
 Class to manage Clothoid Curve. More...
 
class  AsyPlot
 
class  G2solve2arc
 computation of the G2 fitting with 2 clothoid arc More...
 
class  G2solveCLC
 computation of the G2 fitting with 2 clothoid and one line segment More...
 
class  G2solve3arc
 computation of the G2 fitting with 3 clothoid arcs More...
 
class  ClothoidList
 Class to manage a list of clothoid curves (not necessarily G2 or G1 connected) More...
 
class  ClothoidSplineG2
 Class for the computation of G2 spljne of clothoids. More...
 
class  ClothoidData
 data storage for clothoid type curve More...
 
class  Solve2x2
 Class that solve a 2x2 linear system. More...
 
class  BaseCurve
 base classe for all the curve ìs in the library More...
 
class  LineSegment
 Class to manage a straight segment. More...
 
class  PolyLine
 Class to manage a collection of straight segment. More...
 
class  Triangle2D
 Class to manage Triangle for BB of clothoid curve. More...
 
+ + + + + + + + + + + + + +

+Typedefs

+typedef double real_type
 
+typedef int int_type
 
+typedef pair< CurveType, CurveType > Ppair
 
+typedef vector< LineSegment >::difference_type LS_dist_type
 
+typedef std::pair< real_type, real_type > Ipair
 
+typedef std::vector< Ipair > IntersectList
 
+ + + +

+Enumerations

enum  CurveType {
+  G2LIB_LINE =0 +, G2LIB_POLYLINE +, G2LIB_CIRCLE +, G2LIB_BIARC +,
+  G2LIB_BIARC_LIST +, G2LIB_CLOTHOID +, G2LIB_CLOTHOID_LIST +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+bool build_guess_theta (int_type n, real_type const x[], real_type const y[], real_type theta[])
 
+ostream_type & operator<< (ostream_type &stream, Biarc const &bi)
 
+ostream_type & operator<< (ostream_type &stream, BiarcList const &CL)
 
+ostream_type & operator<< (ostream_type &stream, CircleArc const &c)
 
+ostream_type & operator<< (ostream_type &stream, ClothoidCurve const &c)
 
+real_type power2 (real_type a)
 
+real_type power3 (real_type a)
 
+real_type power4 (real_type a)
 
+ostream_type & operator<< (ostream_type &stream, ClothoidSplineG2 const &c)
 
+ostream_type & operator<< (ostream_type &stream, ClothoidList const &CL)
 
void FresnelCS (real_type x, real_type &C, real_type &S)
 Compute Fresnel integrals. More...
 
void FresnelCS (int_type nk, real_type x, real_type C[], real_type S[])
 Compute Fresnel integrals and its derivatives. More...
 
void GeneralizedFresnelCS (real_type a, real_type b, real_type c, real_type &intC, real_type &intS)
 Compute the Fresnel integrals. More...
 
void GeneralizedFresnelCS (int_type nk, real_type a, real_type b, real_type c, real_type intC[], real_type intS[])
 Compute the Fresnel integrals. More...
 
+void rangeSymm (real_type &ang)
 Add or remove multiple of \( 2\pi \) to an angle in order to put it in the range \( [-\pi,\pi]\).
 
+real_type Sinc (real_type x)
 \( \frac{\sin x}{x} \)
 
+real_type Sinc_D (real_type x)
 \( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\sin x}{x} \)
 
+real_type Sinc_DD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^2 \frac{\sin x}{x} \)
 
+real_type Sinc_DDD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^3 \frac{\sin x}{x} \)
 
+real_type Cosc (real_type x)
 \( \frac{1-\cos x}{x} \)
 
+real_type Cosc_D (real_type x)
 \( \frac{\mathrm{d}}{\mathrm{d}x} \frac{1-\cos x}{x} \)
 
+real_type Cosc_DD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^2 \frac{1-\cos x}{x} \)
 
+real_type Cosc_DDD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^3 \frac{1-\cos x}{x} \)
 
+real_type Atanc (real_type x)
 \( \frac{\arctan x}{x} \)
 
+real_type Atanc_D (real_type x)
 \( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\arctan x}{x} \)
 
+real_type Atanc_DD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^2 \frac{\arctan x}{x} \)
 
+real_type Atanc_DDD (real_type x)
 \( \left(\frac{\mathrm{d}}{\mathrm{d}x}\right)^3 \frac{\arctan x}{x} \)
 
int_type solveLinearQuadratic (real_type A, real_type B, real_type C, real_type a, real_type b, real_type c, real_type x[], real_type y[])
 
int_type solveLinearQuadratic2 (real_type A, real_type B, real_type C, real_type x[], real_type y[])
 
int_type intersectCircleCircle (real_type x1, real_type y1, real_type theta1, real_type kappa1, real_type x2, real_type y2, real_type theta2, real_type kappa2, real_type s1[], real_type s2[])
 
+void xy_to_guess_angle (int_type npts, real_type const x[], real_type const y[], real_type theta[], real_type theta_min[], real_type theta_max[], real_type omega[], real_type len[])
 
int_type isCounterClockwise (real_type const P1[2], real_type const P2[2], real_type const P3[2])
 
real_type projectPointOnCircleArc (real_type x0, real_type y0, real_type c0, real_type s0, real_type k, real_type L, real_type qx, real_type qy)
 
real_type projectPointOnCircle (real_type x0, real_type y0, real_type theta0, real_type k, real_type qx, real_type qy)
 
int_type isPointInTriangle (real_type const point[2], real_type const p1[2], real_type const p2[2], real_type const p3[2])
 
bool collision (BaseCurve const &obj1, BaseCurve const &obj2)
 
bool collision_ISO (BaseCurve const &obj1, real_type offs1, BaseCurve const &obj2, real_type offs2)
 
void intersect (BaseCurve const &obj1, BaseCurve const &obj2, IntersectList &ilist, bool swap_s_vals)
 
void intersect_ISO (BaseCurve const &obj1, real_type offs1, BaseCurve const &obj2, real_type offs2, IntersectList &ilist, bool swap_s_vals)
 
+ostream_type & operator<< (ostream_type &stream, LineSegment const &c)
 
+ostream_type & operator<< (ostream_type &stream, PolyLine const &P)
 
+ostream_type & operator<< (ostream_type &stream, Triangle2D const &t)
 
+ostream_type & operator<< (ostream_type &stream, BBox const &bb)
 
+void minmax3 (real_type a, real_type b, real_type c, real_type &vmin, real_type &vmax)
 return minumum and maximum of three numbers
 
bool pointInsideCircle (real_type x0, real_type y0, real_type c0, real_type s0, real_type k, real_type qx, real_type qy)
 
bool collision_SAE (BaseCurve const &C1, real_type offs_C1, BaseCurve const &C2, real_type offs_C2)
 
void intersect_SAE (BaseCurve const &C1, real_type offs_C1, BaseCurve const &C2, real_type offs_C2, IntersectList &ilist, bool swap_s_vals)
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Variables

+real_type const m_1_sqrt_pi = 0.564189583547756286948079451561
 \( 1/\sqrt{\pi} \)
 
+real_type const machepsi = numeric_limits<real_type>::epsilon()
 machine espilon \( \varepsilon \)
 
+real_type const machepsi10 = 10*machepsi
 \( 10\varepsilon \)
 
+real_type const machepsi100 = 100*machepsi
 \( 100\varepsilon \)
 
+real_type const machepsi1000 = 1000*machepsi
 \( 1000\varepsilon \)
 
+real_type const sqrtMachepsi = sqrt(machepsi)
 \( \sqrt{\varepsilon} \)
 
+bool intersect_with_AABBtree = true
 
char const * CurveType_name []
 
+

Detailed Description

+

Clothoid computations routine.

+

file: AABBtree.hh

+

file: Biarc.cc

+

file: AABBtree.hxx

+

file: Biarc.hxx

+

file: BiarcList.hh

+

file: Circle.hxx

+

file: Clothoid.hh

+

file: ClothoidList.hh

+

file: Fresnel.hxx

+

file: Line.hxx

+

file: PolyLine.hxx

+

file: Triangle2D.hxx

+

Function Documentation

+ +

◆ collision()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool G2lib::collision (BaseCurve const & C1,
BaseCurve const & C2 
)
+
+

return true if the two curves intersect

+
Parameters
+ + + +
[in]C1first curve
[in]C2second curve
+
+
+ +
+
+ +

◆ collision_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::collision_ISO (BaseCurve const & C1,
real_type offs_C1,
BaseCurve const & C2,
real_type offs_C2 
)
+
+

return true the the two curves intersect

+
Parameters
+ + + + + +
[in]C1first curve
[in]offs_C1offset of the first curve
[in]C2second curve
[in]offs_C2offset of the second curve
+
+
+ +
+
+ +

◆ collision_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::collision_SAE (BaseCurve const & C1,
real_type offs_C1,
BaseCurve const & C2,
real_type offs_C2 
)
+
+inline
+
+

return true the the two curves intersect

+
Parameters
+ + + + + +
[in]C1first curve
[in]offs_C1offset of the first curve
[in]C2second curve
[in]offs_C2offset of the second curve
+
+
+ +
+
+ +

◆ FresnelCS() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::FresnelCS (int_type nk,
real_type x,
real_type C[],
real_type S[] 
)
+
+ +

Compute Fresnel integrals and its derivatives.

+

+\[ C(x) = \int_0^x \cos\left(\frac{\pi}{2}t^2\right) dt, \qquad S(x) = \int_0^x \sin\left(\frac{\pi}{2}t^2\right) dt \] +

+
Parameters
+ + + + +
xthe input abscissa
SS[0]= \( S(x) \), S[1]= \( S'(x) \), S[2]= \( S''(x) \)
CC[0]= \( C(x) \), C[1]= \( C'(x) \), C[2]= \( C''(x) \)
+
+
+ +
+
+ +

◆ FresnelCS() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::FresnelCS (real_type x,
real_type & C,
real_type & S 
)
+
+ +

Compute Fresnel integrals.

+

+\[ C(x) = \int_0^x \cos\left(\frac{\pi}{2}t^2\right) dt, \qquad S(x) = \int_0^x \sin\left(\frac{\pi}{2}t^2\right) dt \] +

+
Parameters
+ + + + +
xthe input abscissa
Sthe value of \( S(x) \)
Cthe value of \( C(x) \)
+
+
+ +
+
+ +

◆ GeneralizedFresnelCS() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::GeneralizedFresnelCS (int_type nk,
real_type a,
real_type b,
real_type c,
real_type intC[],
real_type intS[] 
)
+
+ +

Compute the Fresnel integrals.

+

+\[ \int_0^1 t^k \cos\left(a\frac{t^2}{2} + b t + c\right) dt,\qquad \int_0^1 t^k \sin\left(a\frac{t^2}{2} + b t + c\right) dt \] +

+
Parameters
+ + + + + + + +
nknumber of momentae to compute
aparameter \( a \)
bparameter \( b \)
cparameter \( c \)
intCcosine integrals,
intSsine integrals
+
+
+ +
+
+ +

◆ GeneralizedFresnelCS() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::GeneralizedFresnelCS (real_type a,
real_type b,
real_type c,
real_type & intC,
real_type & intS 
)
+
+ +

Compute the Fresnel integrals.

+

+\[ \int_0^1 t^k \cos\left(a\frac{t^2}{2} + b t + c\right) dt,\qquad \int_0^1 t^k \sin\left(a\frac{t^2}{2} + b t + c\right) dt \] +

+
Parameters
+ + + + + + +
aparameter \( a \)
bparameter \( b \)
cparameter \( c \)
intCcosine integrals,
intSsine integrals
+
+
+ +
+
+ +

◆ intersect()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::intersect (BaseCurve const & C1,
BaseCurve const & C2,
IntersectList & ilist,
bool swap_s_vals 
)
+
+

collect the intersection of the two curve

+
Parameters
+ + + + + +
[in]C1first curve
[in]C2second curve
[out]ilistlist of the intersection (as parameter on the curves)
[out]swap_s_valsif true store (s2,s1) instead of (s1,s2) for each intersection
+
+
+ +
+
+ +

◆ intersect_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::intersect_ISO (BaseCurve const & C1,
real_type offs_C1,
BaseCurve const & C2,
real_type offs_C2,
IntersectList & ilist,
bool swap_s_vals 
)
+
+

collect the intersections of the two curve

+
Parameters
+ + + + + + + +
[in]C1first curve
[in]offs_C1offset of the first curve
[in]C2second curve
[in]offs_C2offset of the second curve
[out]ilistlist of the intersection (as parameter on the curves)
[out]swap_s_valsif true store (s2,s1) instead of (s1,s2) for each intersection
+
+
+ +
+
+ +

◆ intersect_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::intersect_SAE (BaseCurve const & C1,
real_type offs_C1,
BaseCurve const & C2,
real_type offs_C2,
IntersectList & ilist,
bool swap_s_vals 
)
+
+inline
+
+

collect the intersections of the two curve

+
Parameters
+ + + + + + + +
[in]C1first curve
[in]offs_C1offset of the first curve
[in]C2second curve
[in]offs_C2offset of the second curve
[out]ilistlist of the intersection (as parameter on the curves)
[out]swap_s_valsif true store (s2,s1) instead of (s1,s2) for each intersection
+
+
+ +
+
+ +

◆ intersectCircleCircle()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::intersectCircleCircle (real_type x1,
real_type y1,
real_type theta1,
real_type kappa1,
real_type x2,
real_type y2,
real_type theta2,
real_type kappa2,
real_type s1[],
real_type s2[] 
)
+
+

Intersect the parametric arc

+

+\[ x = x_1+\frac{\sin(\kappa_1 s+\theta_1)-sin(\theta_1)}{\kappa_1} \] +

+

+\[ y = y_1+\frac{\cos(\theta_1)-\cos(\kappa_1 s+\theta_1)}{\kappa_1} \] +

+

with the parametric arc

+\[ x = x_2+\frac{\sin(\kappa_2 s+\theta_2)-sin(\theta_2)}{\kappa_2} \] +

+

+\[ y = y_2+\frac{\cos(\theta_2)-\cos(\kappa_2 s+\theta_2)}{\kappa_2} \] +

+
Parameters
+ + + + + + + + + + + +
x1x-origin of the first arc
y1y-origin of the first arc
theta1initial angle of the first arc
kappa1curvature of the first arc
x2x-origin of the second arc
y2y-origin of the second arc
theta2initial angle of the second arc
kappa2curvature of the second arc
s1parameter2 of intersection for the first circle arc
s2parameter2 of intersection for the second circle arc
+
+
+
Returns
the number of solution 0, 1 or 2
+ +
+
+ +

◆ isCounterClockwise()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::isCounterClockwise (real_type const P1[2],
real_type const P2[2],
real_type const P3[2] 
)
+
+

return +1 = CounterClockwise return -1 = Clockwise return 0 = flat

+

CounterClockwise: the path P1->P2->P3 turns Counter-Clockwise, i.e., the point P3 is located "on the left" of the line P1-P2. Clockwise: the path turns Clockwise, i.e., the point P3 lies "on the right" of the line P1-P2. flat: the point P3 is located on the line segment [P1 P2].

+

Algorithm from FileExchage geom2d adapated from Sedgewick's book.

+ +
+
+ +

◆ isPointInTriangle()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::isPointInTriangle (real_type const pt[2],
real_type const P1[2],
real_type const P2[2],
real_type const P3[2] 
)
+
+

return +1 = Inside return -1 = Outsize return 0 = on border

+ +
+
+ +

◆ pointInsideCircle()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::pointInsideCircle (real_type x0,
real_type y0,
real_type c0,
real_type s0,
real_type k,
real_type qx,
real_type qy 
)
+
+inline
+
+

check if point (qx,qy) is inside the circle passing from (x0,y0) with tangent direction (c0,s0) and curvature k

Returns
true if point is inside
+
Parameters
+ + + +
c0cos(theta0)
s0sin(theta0)
+
+
+ +
+
+ +

◆ projectPointOnCircle()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
real_type G2lib::projectPointOnCircle (real_type x0,
real_type y0,
real_type theta0,
real_type k,
real_type qx,
real_type qy 
)
+
+

project point (qx,qy) to the circle passing from (x0,y0) with tangent direction (c0,s0) and curvature k

+ +
+
+ +

◆ projectPointOnCircleArc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
real_type G2lib::projectPointOnCircleArc (real_type x0,
real_type y0,
real_type c0,
real_type s0,
real_type k,
real_type L,
real_type qx,
real_type qy 
)
+
+

project point (qx,qy) to the circle arc passing from (x0,y0) with tangent direction (c0,s0) curvature k length L

+
Parameters
+ + + +
c0cos(theta0)
s0sin(theta0)
+
+
+ +
+
+ +

◆ solveLinearQuadratic()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::solveLinearQuadratic (real_type A,
real_type B,
real_type C,
real_type a,
real_type b,
real_type c,
real_type x[],
real_type y[] 
)
+
+

Solve the nonlinear system

+

+\[ A x + B y = C \] +

+

+\[ a x^2 + b y^2 = c \] +

+
Parameters
+ + + + + + + +
Afirst parameter of the linear equation
Bsecond parameter of the linear equation
Cthird parameter of the linear equation
afirst parameter of the quadratic equation
bsecond parameter of the quadratic equation
cthird parameter of the quadratic equation
+
+
+
Returns
the number of solution 0, 1 or 2
+ +
+
+ +

◆ solveLinearQuadratic2()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::solveLinearQuadratic2 (real_type A,
real_type B,
real_type C,
real_type x[],
real_type y[] 
)
+
+

Solve the nonlinear system

+

+\[ A x + B y = C \] +

+

+\[ x^2 + y^2 = 1 \] +

+
Parameters
+ + + + +
Afirst parameter of the linear equation
Bsecond parameter of the linear equation
Cthird parameter of the linear equation
+
+
+
Returns
the number of solution 0, 1 or 2
+ +
+
+

Variable Documentation

+ +

◆ CurveType_name

+ +
+
+ + + + +
char const * G2lib::CurveType_name
+
+Initial value:
= {
+
"LINE",
+
"POLYLINE",
+
"CIRCLE",
+
"BIARC",
+
"BIARC_LIST",
+
"CLOTHOID",
+
"CLOTHOID_LIST"
+
}
+
+
+
+
+ + + + diff --git a/docs/d4/db2/_generic_container_config_8hh_source.html b/docs/d4/db2/_generic_container_config_8hh_source.html new file mode 100644 index 00000000..75d41847 --- /dev/null +++ b/docs/d4/db2/_generic_container_config_8hh_source.html @@ -0,0 +1,166 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src/GenericContainerConfig.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerConfig.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2013 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 //
+
21 // file: GenericContainerConfig.hh
+
22 //
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef GENERIC_CONTAINER_CONFIG_HH
+
27 #define GENERIC_CONTAINER_CONFIG_HH
+
28 
+
29 // check if compiler is C++11
+
30 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || \
+
31  (defined(__cplusplus) && __cplusplus >= 201103L)
+
32 #else
+
33  #error "must use a compiler >= c++11"
+
34 #endif
+
35 
+
36 #ifndef GENERIC_CONTAINER_API_DLL
+
37  #ifdef GENERIC_CONTAINER_ON_WINDOWS
+
38  #ifdef GENERIC_CONTAINER_EXPORT
+
39  #define GENERIC_CONTAINER_API_DLL __declspec(dllexport)
+
40  #elif defined(GENERIC_CONTAINER_IMPORT)
+
41  #define GENERIC_CONTAINER_API_DLL __declspec(dllimport)
+
42  #else
+
43  #define GENERIC_CONTAINER_API_DLL
+
44  #endif
+
45  #elif defined(__GNUC__) || defined(__clang__)
+
46  #define GENERIC_CONTAINER_API_DLL __attribute__((visibility("default")))
+
47  #else
+
48  #define GENERIC_CONTAINER_API_DLL
+
49  #endif
+
50 #endif
+
51 
+
52 // Standard types
+
53 #ifdef GENERIC_CONTAINER_ON_WINDOWS
+
54  // se in windows includo PRIMA windows.h per evitare conflitti!
+
55  #ifndef WIN32_LEAN_AND_MEAN
+
56  #define WIN32_LEAN_AND_MEAN
+
57  #endif
+
58  #include <windows.h>
+
59  #ifdef _MSC_VER
+
60  #include <stdint.h>
+
61  #else
+
62  typedef __int8 int8_t;
+
63  typedef __int16 int16_t;
+
64  typedef __int32 int32_t;
+
65  typedef __int64 int64_t;
+
66  typedef unsigned __int8 uint8_t;
+
67  typedef unsigned __int16 uint16_t;
+
68  typedef unsigned __int32 uint32_t;
+
69  typedef unsigned __int64 uint64_t;
+
70  #endif
+
71 #else
+
72  #include <cstdint>
+
73 #endif
+
74 
+
75 #endif
+
76 
+
77 //
+
78 // eof: GenericContainerConfig.hh
+
79 //
+
+ + + + diff --git a/docs/d4/df9/structc__complex__type-members.html b/docs/d4/df9/structc__complex__type-members.html new file mode 100644 index 00000000..1c9145bd --- /dev/null +++ b/docs/d4/df9/structc__complex__type-members.html @@ -0,0 +1,88 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
c_complex_type Member List
+
+
+ +

This is the complete list of members for c_complex_type, including all inherited members.

+ + + +
imag (defined in c_complex_type)c_complex_type
real (defined in c_complex_type)c_complex_type
+ + + + diff --git a/docs/d5/d1e/class_g2lib_1_1_a_a_b_btree.html b/docs/d5/d1e/class_g2lib_1_1_a_a_b_btree.html new file mode 100644 index 00000000..aaf6b8d1 --- /dev/null +++ b/docs/d5/d1e/class_g2lib_1_1_a_a_b_btree.html @@ -0,0 +1,268 @@ + + + + + + + +Clothoids: G2lib::AABBtree Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::AABBtree Class Reference
+
+
+ +

Class to manage AABB tree. + More...

+ +

#include <AABBtree.hxx>

+ + + + + + + + + + + + +

+Public Types

+typedef BBox const * PtrBBox
 
+typedef AABBtreePtrAABB
 
+typedef pair< PtrBBox, PtrBBox > PairPtrBBox
 
+typedef vector< PtrBBox > VecPtrBBox
 
+typedef vector< PairPtrBBox > VecPairPtrBBox
 
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void clear ()
 initialized AABB tree
 
+bool empty () const
 check if AABB tree is empty
 
+void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
void build (vector< PtrBBox > const &bboxes)
 build AABB tree given a list of bbox More...
 
+void print (ostream_type &stream, int level=0) const
 
template<typename COLLISION_fun >
bool collision (AABBtree const &tree, COLLISION_fun ifun, bool swap_tree=false) const
 
void intersect (AABBtree const &tree, VecPairPtrBBox &intersectionList, bool swap_tree=false) const
 
+void min_distance (real_type x, real_type y, VecPtrBBox &candidateList) const
 
+

Detailed Description

+

Class to manage AABB tree.

+

Member Function Documentation

+ +

◆ build()

+ +
+
+ + + + + + + + +
void G2lib::AABBtree::build (vector< PtrBBox > const & bboxes)
+
+ +

build AABB tree given a list of bbox

+

pBBox = make_shared<BBox>( bboxes, 0, 0 );

+ +
+
+ +

◆ collision()

+ +
+
+
+template<typename COLLISION_fun >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::AABBtree::collision (AABBtree const & tree,
COLLISION_fun ifun,
bool swap_tree = false 
) const
+
+inline
+
+

Check if two AABB tree collide

+
Parameters
+ + + + +
[in]treean AABB tree that is used to check collision
[in]ifunfunction the check if the contents of two bbox (curve) collide
[in]swap_treeif true exchange the tree in computation
+
+
+
Returns
true if the two tree collides
+ +
+
+ +

◆ intersect()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::AABBtree::intersect (AABBtree const & tree,
VecPairPtrBBox & intersectionList,
bool swap_tree = false 
) const
+
+

Compute all the intersection of AABB trees

+
Parameters
+ + + + +
[in]treean AABB tree that is used to check collision
[out]intersectionListlist of pair bbox that overlaps
[in]swap_treeif true exchange the tree in computation
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.map b/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.map new file mode 100644 index 00000000..ae88ee7b --- /dev/null +++ b/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.md5 b/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.md5 new file mode 100644 index 00000000..e595ef60 --- /dev/null +++ b/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.md5 @@ -0,0 +1 @@ +1ae77f1173832a01e6e62dfdbbe66cb7 \ No newline at end of file diff --git a/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.png b/docs/d5/d43/class_g2lib_1_1_clothoid_curve__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b4108a177aaae4b73c5aa3deaeb8326fd110af57 GIT binary patch literal 4410 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 aW$+Zvr zsQea57uqTN_Igh_S7bHNr(vJm+K;-}=pylT$ zEh8gS*~>9m?Y!C>1>J8ylOH#;(0p)gm4ZjmZ5y<*?RTO?mk-&lYuNfGXPB+KKO6;qA92|F7S!S&7uS zxjAF`I{|8oWVIKI5ps$gVdJ{(I?If-v6^#UFrdBgKV1d`q22SQ^FHb~qfx0qGX!Ly MYpheH{owI`0I9fcV*mgE literal 0 HcmV?d00001 diff --git a/docs/d5/d44/namespace_polynomial_roots.html b/docs/d5/d44/namespace_polynomial_roots.html new file mode 100644 index 00000000..fea0f470 --- /dev/null +++ b/docs/d5/d44/namespace_polynomial_roots.html @@ -0,0 +1,132 @@ + + + + + + + +Clothoids: PolynomialRoots Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
PolynomialRoots Namespace Reference
+
+
+ +

implementation of Flocke algorithm for roots of 3rd and 4th degree polynomials +More...

+ + + + + + + + + + + +

+Classes

class  Quadratic
 Quadratic polynomial class. More...
 
class  Cubic
 Cubic polynomial class. More...
 
class  Quartic
 Quartic polynomial class. More...
 
+ + + + + + + +

+Typedefs

+typedef double valueType
 
+typedef int indexType
 
+typedef std::complex< valueType > complexType
 
+ + + + + + + + + + +

+Functions

+int roots (valueType const op[], indexType Degree, valueType zeror[], valueType zeroi[])
 find roots of a generic polinomial using Jenkins-Traub method
 
+valueType evalPoly (valueType const op[], indexType Degree, valueType x)
 evaluate real polynomial
 
+std::complex< valueType > evalPolyC (valueType const op[], indexType Degree, std::complex< valueType > const &x)
 evaluate real polynomial with complex value
 
+

Detailed Description

+

implementation of Flocke algorithm for roots of 3rd and 4th degree polynomials

+
+ + + + diff --git a/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.map b/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.map new file mode 100644 index 00000000..45f7b3db --- /dev/null +++ b/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.md5 b/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.md5 new file mode 100644 index 00000000..39e854bc --- /dev/null +++ b/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.md5 @@ -0,0 +1 @@ +cbb12215eef85513f7b9ce52ccdb82c6 \ No newline at end of file diff --git a/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.png b/docs/d5/d54/class_g2lib_1_1_line_segment__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..80f43e0f25f40762522dea943ffff5b7a20575d4 GIT binary patch literal 4223 zcmchbXH*kix5pEZCcQ{+0ci?IC;<$HB1ka?kRlJANE1SnA~i^P=^)BOmm<9*y<>z> zB?tl{y$DhhKq*Rn=eh6wa__pI@64JxYfU-l?7jc{x93c(0ZN-=)36+&k(QPFxXtV)`qP-q# z#JCEqqt1X;nB~E$Pra@GwW5#irzC+5zqv=Mn^Ez$DtQ$ahixY+*pvCaKRHXv3y&f+ zgA{LiV4Dn!(jmzdW!!9s^xYh%mk^D0zgC~+O8XAC7Y0>RLMxbof)|CBK+EYk-(}i- z@FoT3+E*8cJc?X0^vfl(8MpUh)F%$4S2&4fd!B9Dzp*$0rjuDdCB{yWWgCUt3njj- zOiIudy(A?{SW}+tVEG4pJ%~-53id2u6mpFR?0-(&J^u$-sr zJ|ua(|L(;)V)>yhuP2*72PcE&7^bz5+Q)U-WLYlXBK{W~%*vF&nZs^d;aAP$$^H#Q z_jPu6q2SzXnTqJEA4&C#Bf@m!H~R+T3Q0;mW^|&z#%gkLGx1FAf?8>H{oG5yH$Vsp zKmV8_b;&aJRZZ}kP)YYo`i$Kbb4Ed{vok@1@zqn)eCj9AJ~9Pr4+ZvC%3Upgb{_QK z+Rp0@FIiDX%B5YgTjI$Zf9H}}PR^F&d|fP~GtykbK7bjOtj@IYlT#pL@=(o~14Q*g zsOKI7iH!fN^%AYTkV;(+nXQ71PDe8vRG|`g8}%nVY>z4XQ#XbtQW{bMHNV87HYkPe zj$$Kou&DftIXkO#A_9T~>UpUp3xhRNdPX*8&>c8yEDXQfM~!w6~&o}4RN50p~> z2-r#&{GtM@LikZC2LIZRg2Zr=8cjvXR=gC2R7eZB7Mz|fY^*BvpwE+laDrY?Fgwkh zeSb>K#Zm=-epD;R49R+L`p-P-o^k!F^+2@LJ36ek>HBq3PcRd+ktO)}Y`mWxPkoQR zvyV{zGh|sG^~bzKJw|gJQ#EB>J61yhLAOV!g)Z|G5!iR@wA%Q9*D=e=y0_D>bB3ii z2CI^JkUgXJl6N6Cr8mvq>q=s3T96yP??2sdirJF6tA{L($>!YiahFHqHJ9%;9jV2L z2@Fz*f_-I2Z~ER@yYEn4Wz_zGz_#dbc>1Ho*S*OGs2CZEV`RY>(|b|*Gsxmlk~X^ z&!`~AQ`;XusVCPJp~>S8E9dN5i4 zaL4D)m`iy?`PDv)3A3F%&5zBtAh(MF*K0m3b#;ReAV(|bY$MaVmnQ{&+r@wIi3RcE zBmRotzw3w}l!t`l_+pYqe*B2>L5!|iAVVpVApC)HLfH5ERM}y*Z+AUWbA4;U#zLLn z4N6tSmyn&tMgM zkUFv{6&FNZyYUDqxC*;XvbfQWIY^fl7KJ~+4|Z7Cc)!fHt`g=9--+PC6L1$CG38T6 zZ&?`;YIJ;u_jL8)Q>tgZ&b&noobNR# ziYMH*itb}mEbdU!pI&^>(yle6Vz89!ZgAV$9?TdL#m6VjFgDuHng&W7dNe!>;{wR?QFA) z#a9cZD)br%CDNOij&|9{NNZNJM^;*fCMHc%yS$a{h{s6&RT`n79; z`c|QM#_oo(35_Y60^PxdsuKzS>buTtFD@)JgO#uA0TBatr&^O2`%kUWf$I9)kJByS z`9H$;-{t84Jb#A$uhp=kN*3Pvh~(rjd03iHvxF7BBGLaMFKuVKcF)WRD4-nD zmdiOW77zRhl^Ol71eOesb=V|Dxgx9r|!XGpTs1_T7CoXmUMJ2=#NEFq+=J2%s6 zOG=_XBhC_5SJ7EnS)f+z#a+1HZhm=r?Ch+$-|n}tKJ-U>*}9+;5^S!~djmB*JUl-N zZyC2ny;b_y?z=NMGO~sXBe!h#DPQnitl1PQ$;#rEm6a8jl)MRngh8M7?-N^=e&Sj6 zJy-EG+TG#dWIskSd%Hu<%sTv}9;Qnd*VnT&%#6IdAN}4;(oB+F+NwR0;8<8u5qGi_ z`hnorbw=vQK#I2f8g*-op0)|i;e-1z-MG;=S#DHbTkAAcVZy8YyvXWk@m8ATUp?tI z*m8@I_H)1C+bmb^~qu`<@JZcQsvHTq@Uz@(K#dr_~|^0>P}>big;hPs7_= z&d$ybJF~g7xV^po-n^QB&W)CMjP&*OWn*Wr5B~GKh2gKZ=OV9EFO?D#6N7&d6c0DY zBMb{4fSI_t_0Z^oxxwF;XM4IRR6hnrULa=^e4yn>$m&brk~3>@&-rd{ZOxyVnVD2C zHL>XF-fJ%l4LSAs`RiAvvbU&&ghZ8fS5{OMB}h+C&#c`?;+4uzYT#<;@vLiEMO;P2 ze5+SP<&)a>$(*#b2Y!Cd!o+G7T&A2;#=Rie(9n>*qvOvW+B?bV>Cr>>=$~stYwPRK zpkvHqBcquHCq_UZ4*dyS$UMY?gN(mx?{rtSSzY+{wo7in53cL9v=&6UQ0JD6;ZL6o zO;UqMZ3A94K#1ewu5a(`a3O+~)YaAJL$5B@Ha6ftQ*S$`uv2rfZkZ!Nqyl zQyMKp|1)CCOm_%eL_`D_9Lyvj@Og8*kT1ZZq-(rB5il(-K3>^>U$DcExVk-6`4$nv z4Jd22$(2jdomV@FcV+5{&HC?y@4Rq7IxRyTef^C@#YNlo;ndy5u53A{Q6?4^fM#Sb zKmWXO;|6B7F?N7IC;<@cn>TO#_qtAa$@|cC2BxO{mltP4fb0p1OGQ;x37wrP&F%|& zSS+HcsR=Q+@9P2hqF6rqQ~R8IPgh6BwkMJ%`0~#N=%%QstkWp3 zc6ZvA+Th@zprmAiU2oLu#-MsUnVA$0}sUkBLzYZnd|E6kXiDvV`BzyQc~J>YC0@2=Job8U4cjF5zYfw z`||SgL()R_Yhi7)3@2~TzC&S4&<^!1pBz26Jhh35a?o+r_mUT+`K{L6w6q`o3u9xr zPj^0yl;&ZF>m5Gn=<2E)vJL#b8jHO+W#;1}>I@7Fbi^7l2A+_J{%-Qzb>`JTZjU(1 z0lDZs#KXfA58ws^V`XLSEzpWLYjkD?l4EzS<<0mQt> zLW_qDC_JLiL!uwwdimSY+q>a2EO@~}d(0i$hsQJV^N(`a1g|iq`$wyY^CF z^+F!V!`-D1OY4*&hDJsaQ!ahBOeNOc!I@xk%EoDoVtDv`j!zyUWOJrL%%kflO}MPO zyd0R9_vLv&eM5ut^EK*)ju%w<+OPN}EnAb%&x3E>z8#XLial5A>+6#yW+Fuk3JQW} z*QyK#es#K2Dgs}mkEWhTTQEvZfK)Gk3yY=}tU zX`!RReuzcy;X|;}3lcBDL`j?O`C?3Pu!^#>vh_|^67aUc0&J3^;VA*^TF)qydPan<5H*L9(QyB+rJq zp?AJkBeP+NWo6+f$LQJv`xvI3aH z7>xa&pX)#|hNAJ*s9Y5wx-=(?LA4~)q|K_V zs_HP1Fj2D3nSaDcp-b}l0-pl`OZ5L*sjnsdxB@d0JQ%{QNCChf1(2>5O0!18HvHcs C1sIC} literal 0 HcmV?d00001 diff --git a/docs/d5/d7a/class_g2lib_1_1_solve2x2-members.html b/docs/d5/d7a/class_g2lib_1_1_solve2x2-members.html new file mode 100644 index 00000000..e1f55c7e --- /dev/null +++ b/docs/d5/d7a/class_g2lib_1_1_solve2x2-members.html @@ -0,0 +1,93 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::Solve2x2 Member List
+
+
+ +

This is the complete list of members for G2lib::Solve2x2, including all inherited members.

+ + + + +
factorize(real_type A[2][2]) (defined in G2lib::Solve2x2)G2lib::Solve2x2
solve(real_type const b[2], real_type x[2]) const (defined in G2lib::Solve2x2)G2lib::Solve2x2
Solve2x2() (defined in G2lib::Solve2x2)G2lib::Solve2x2inline
+ + + + diff --git a/docs/d5/d81/class_utils_1_1_simple_semaphore.html b/docs/d5/d81/class_utils_1_1_simple_semaphore.html new file mode 100644 index 00000000..ebb4324c --- /dev/null +++ b/docs/d5/d81/class_utils_1_1_simple_semaphore.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Utils::SimpleSemaphore Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::SimpleSemaphore Class Reference
+
+
+ + + + + + + + +

+Public Member Functions

+void green () noexcept
 
+void red () noexcept
 
+void wait () noexcept
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d5/d94/class_g2lib_1_1_g2solve3arc-members.html b/docs/d5/d94/class_g2lib_1_1_g2solve3arc-members.html new file mode 100644 index 00000000..151435c7 --- /dev/null +++ b/docs/d5/d94/class_g2lib_1_1_g2solve3arc-members.html @@ -0,0 +1,135 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::G2solve3arc Member List
+
+
+ +

This is the complete list of members for G2lib::G2solve3arc, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
build(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1, real_type Dmax=0, real_type dmax=0)G2lib::G2solve3arc
build_fixed_length(real_type s0, real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type s1, real_type x1, real_type y1, real_type theta1, real_type kappa1)G2lib::G2solve3arc
curvatureMinMax(real_type &kMin, real_type &kMax) constG2lib::G2solve3arc
curvatureTotalVariation() constG2lib::G2solve3arcinline
deltaTheta() constG2lib::G2solve3arcinline
eval(real_type s, real_type &theta, real_type &kappa, real_type &x, real_type &y) constG2lib::G2solve3arc
eval(real_type s, real_type &x, real_type &y) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_D(real_type s, real_type &x_D, real_type &y_D) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
G2solve3arc() (defined in G2lib::G2solve3arc)G2lib::G2solve3arcinline
getS0() constG2lib::G2solve3arcinline
getS1() constG2lib::G2solve3arcinline
getSM() constG2lib::G2solve3arcinline
integralCurvature2() constG2lib::G2solve3arcinline
integralJerk2() constG2lib::G2solve3arcinline
integralSnap2() constG2lib::G2solve3arcinline
kappaBegin() constG2lib::G2solve3arcinline
kappaEnd() constG2lib::G2solve3arcinline
operator<< (defined in G2lib::G2solve3arc)G2lib::G2solve3arcfriend
reverse() (defined in G2lib::G2solve3arc)G2lib::G2solve3arcinline
rotate(real_type angle, real_type cx, real_type cy) (defined in G2lib::G2solve3arc)G2lib::G2solve3arcinline
setMaxIter(int miter) (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
setTolerance(real_type tol) (defined in G2lib::G2solve3arc)G2lib::G2solve3arc
theta(real_type s) constG2lib::G2solve3arc
theta_D(real_type s) constG2lib::G2solve3arc
theta_DD(real_type s) constG2lib::G2solve3arc
theta_DDD(real_type s) constG2lib::G2solve3arc
thetaBegin() constG2lib::G2solve3arcinline
thetaEnd() constG2lib::G2solve3arcinline
thetaMinMax(real_type &thMin, real_type &thMax) constG2lib::G2solve3arc
thetaTotalVariation() constG2lib::G2solve3arcinline
totalLength() constG2lib::G2solve3arcinline
translate(real_type tx, real_type ty) (defined in G2lib::G2solve3arc)G2lib::G2solve3arcinline
X(real_type s) constG2lib::G2solve3arc
xBegin() constG2lib::G2solve3arcinline
xEnd() constG2lib::G2solve3arcinline
Y(real_type s) constG2lib::G2solve3arc
yBegin() constG2lib::G2solve3arcinline
yEnd() constG2lib::G2solve3arcinline
~G2solve3arc() (defined in G2lib::G2solve3arc)G2lib::G2solve3arcinline
+ + + + diff --git a/docs/d5/de3/_trace_8hxx_source.html b/docs/d5/de3/_trace_8hxx_source.html new file mode 100644 index 00000000..d9992b06 --- /dev/null +++ b/docs/d5/de3/_trace_8hxx_source.html @@ -0,0 +1,234 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/Trace.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Trace.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef TRACE_dot_HH
+
27 #define TRACE_dot_HH
+
28 
+
29 #ifndef UTILS_ERROR0
+
30  #define UTILS_ERROR0(MSG) \
+
31  throw Utils::Runtime_Error( MSG, __FILE__, __LINE__ )
+
32 #endif
+
33 
+
34 #ifndef UTILS_ASSERT0
+
35  #define UTILS_ASSERT0(COND,MSG) if ( !(COND) ) UTILS_ERROR0( MSG )
+
36 #endif
+
37 
+
38 #ifndef UTILS_WARNING0
+
39  #define UTILS_WARNING0(COND,MSG) if ( !(COND) ) std::cerr << MSG
+
40 #endif
+
41 
+
42 #ifndef UTILS_ERROR
+
43  #define UTILS_ERROR(...) \
+
44  throw Utils::Runtime_Error( fmt::format(__VA_ARGS__), __FILE__, __LINE__ )
+
45 #endif
+
46 
+
47 #ifndef UTILS_ASSERT
+
48  #define UTILS_ASSERT(COND,...) if ( !(COND) ) UTILS_ERROR( __VA_ARGS__ )
+
49 #endif
+
50 
+
51 #ifndef UTILS_WARNING
+
52  #define UTILS_WARNING(COND,...) if ( !(COND) ) fmt::print( __VA_ARGS__ )
+
53 #endif
+
54 
+
55 #ifndef UTILS_ERROR_TRACE0
+
56  #define UTILS_ERROR_TRACE0(MSG) \
+
57  throw Utils::Runtime_TraceError( MSG, __FILE__, __LINE__ )
+
58 #endif
+
59 
+
60 #ifndef UTILS_ASSERT_TRACE0
+
61  #define UTILS_ASSERT_TRACE0(COND,MSG) if ( !(COND) ) UTILS_ERROR_TRACE0( MSG )
+
62 #endif
+
63 
+
64 #ifndef UTILS_ERROR_TRACE
+
65  #define UTILS_ERROR_TRACE(...) \
+
66  throw Utils::Runtime_TraceError( fmt::format(__VA_ARGS__), __FILE__, __LINE__ )
+
67 #endif
+
68 
+
69 #ifndef UTILS_ASSERT_TRACE
+
70  #define UTILS_ASSERT_TRACE(COND,...) if ( !(COND) ) UTILS_ERROR_TRACE( __VA_ARGS__ )
+
71 #endif
+
72 
+
73 #ifdef UTILS_NO_DEBUG
+
74  #ifndef UTILS_ASSERT0_DEBUG
+
75  #define UTILS_ASSERT0_DEBUG(COND,MSG)
+
76  #endif
+
77  #ifndef UTILS_ASSERT_DEBUG
+
78  #define UTILS_ASSERT_DEBUG(COND,...)
+
79  #endif
+
80 #else
+
81  #ifndef UTILS_ASSERT0_DEBUG
+
82  #define UTILS_ASSERT0_DEBUG(COND,MSG) UTILS_ASSERT0(COND,MSG)
+
83  #endif
+
84  #ifndef UTILS_ASSERT_DEBUG
+
85  #define UTILS_ASSERT_DEBUG(COND,...) UTILS_ASSERT(COND,__VA_ARGS__)
+
86  #endif
+
87 #endif
+
88 
+
89 #ifdef __GNUC__
+
90 #pragma GCC diagnostic push
+
91 #pragma GCC diagnostic ignored "-Wpadded"
+
92 #endif
+
93 #ifdef __clang__
+
94 #pragma clang diagnostic push
+
95 #pragma clang diagnostic ignored "-Wpadded"
+
96 #endif
+
97 
+
98 namespace Utils {
+
99 
+
100  typedef std::basic_ostream<char> ostream_type;
+
101 
+
102  void
+
103  printTrace(
+
104  int line,
+
105  char const file[],
+
106  std::string const & msg,
+
107  ostream_type & stream
+
108  );
+
109 
+
110  class Runtime_TraceError : public std::runtime_error {
+
111  private:
+
112  std::string
+
113  grab_backtrace(
+
114  std::string const & reason,
+
115  char const file[],
+
116  int line
+
117  ) const;
+
118 
+
119  public:
+
120  explicit
+
121  Runtime_TraceError( std::string const & reason, char const file[], int line )
+
122  : std::runtime_error( grab_backtrace( reason, file, line ) )
+
123  { }
+
124 
+
125  virtual const char* what() const noexcept override;
+
126  };
+
127 
+
128  class Runtime_Error : public std::runtime_error {
+
129  public:
+
130  explicit
+
131  Runtime_Error( std::string const & reason, char const file[], int line )
+
132  : std::runtime_error( fmt::format( "\n{}\nOn File:{}:{}\n", reason, file, line ) )
+
133  { }
+
134 
+
135  explicit
+
136  Runtime_Error( char const reason[], char const file[], int line )
+
137  : std::runtime_error( fmt::format( "\n{}\nOn File:{}:{}\n", reason, file, line ) )
+
138  { }
+
139 
+
140  virtual const char* what() const noexcept override;
+
141  };
+
142 
+
143 }
+
144 
+
145 #endif
+
146 
+
Definition: Trace.hxx:128
+
Definition: Trace.hxx:110
+
Definition: Console.cc:31
+
void printTrace(int line, char const file[], std::string const &reason, ostream_type &stream)
print a trace stack used in debug
Definition: Trace.cc:112
+
+ + + + diff --git a/docs/d5/de4/class_generic_container_namespace_1_1mat__type.html b/docs/d5/de4/class_generic_container_namespace_1_1mat__type.html new file mode 100644 index 00000000..2b8a765b --- /dev/null +++ b/docs/d5/de4/class_generic_container_namespace_1_1mat__type.html @@ -0,0 +1,155 @@ + + + + + + + +Clothoids: GenericContainerNamespace::mat_type< TYPE > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
GenericContainerNamespace::mat_type< TYPE > Class Template Reference
+
+
+
+Inheritance diagram for GenericContainerNamespace::mat_type< TYPE >:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for GenericContainerNamespace::mat_type< TYPE >:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+GENERIC_CONTAINER_API_DLL mat_type (unsigned nr, unsigned nc)
 
+GENERIC_CONTAINER_API_DLL void resize (unsigned nr, unsigned nc)
 
+GENERIC_CONTAINER_API_DLL void getColumn (unsigned nc, std::vector< TYPE > &C) const
 
+GENERIC_CONTAINER_API_DLL void getRow (unsigned nr, std::vector< TYPE > &R) const
 
+GENERIC_CONTAINER_API_DLL void getColumn (unsigned nc, TYPE *C) const
 
+GENERIC_CONTAINER_API_DLL void getRow (unsigned nr, TYPE *R) const
 
+GENERIC_CONTAINER_API_DLL unsigned numRows () const
 
+GENERIC_CONTAINER_API_DLL unsigned numCols () const
 
+GENERIC_CONTAINER_API_DLL TYPE const & operator() (unsigned i, unsigned j) const
 
+GENERIC_CONTAINER_API_DLL TYPE & operator() (unsigned i, unsigned j)
 
+GENERIC_CONTAINER_API_DLL void info (ostream_type &stream) const
 
+TYPE * data ()
 
+TYPE const * data () const
 
+
The documentation for this class was generated from the following files:
    +
  • submodules/GenericContainer/src/GenericContainer.hh
  • +
  • submodules/GenericContainer/src/GenericContainer.cc
  • +
+
+ + + + diff --git a/docs/d5/ded/class_polynomial_roots_1_1_quadratic.html b/docs/d5/ded/class_polynomial_roots_1_1_quadratic.html new file mode 100644 index 00000000..c7f113d9 --- /dev/null +++ b/docs/d5/ded/class_polynomial_roots_1_1_quadratic.html @@ -0,0 +1,423 @@ + + + + + + + +Clothoids: PolynomialRoots::Quadratic Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
PolynomialRoots::Quadratic Class Reference
+
+
+ +

Quadratic polynomial class. + More...

+ +

#include <PolynomialRoots.hh>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Quadratic (valueType _a, valueType _b, valueType _c)
 
void setup (valueType _a, valueType _b, valueType _c)
 compute the roots of quadratic polynomial \( a x^2 + b x + c \) More...
 
+indexType numRoots () const
 number of found roots
 
+bool complexRoots () const
 are roots complex?
 
+bool doubleRoot () const
 are roots a double root?
 
indexType getRealRoots (valueType r[]) const
 get the real roots More...
 
indexType getPositiveRoots (valueType r[]) const
 get positive real roots More...
 
indexType getNegativeRoots (valueType r[]) const
 get negative real roots More...
 
+valueType real_root0 () const
 first real root
 
+valueType real_root1 () const
 second real root
 
+complexType root0 () const
 
+complexType root1 () const
 
+void getRoot0 (valueType &re, valueType &im) const
 
+void getRoot0 (complexType &r) const
 
+void getRoot1 (valueType &re, valueType &im) const
 
+void getRoot1 (complexType &r) const
 
valueType eval (valueType x) const
 evalute the quadratic polynomial More...
 
complexType eval (complexType const &x) const
 evalute the quadratic polynomial More...
 
void eval (valueType x, valueType &p, valueType &dp) const
 evalute the polynomial with its derivative More...
 
+void info (std::ostream &s) const
 print info of the roots of the polynomial
 
+bool check (std::ostream &s) const
 check tolerenace and quality of the computed roots
 
+

Detailed Description

+

Quadratic polynomial class.

+

Member Function Documentation

+ +

◆ eval() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
complexType PolynomialRoots::Quadratic::eval (complexType const & x) const
+
+inline
+
+ +

evalute the quadratic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \), x complex
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ eval() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
valueType PolynomialRoots::Quadratic::eval (valueType x) const
+
+inline
+
+ +

evalute the quadratic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \)
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ eval() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void PolynomialRoots::Quadratic::eval (valueType x,
valueType & p,
valueType & dp 
) const
+
+ +

evalute the polynomial with its derivative

+
Parameters
+ + + + +
xvalue where compute \( p(x) \)
pvalue \( p(x) \)
dpvalue \( p'(x) \)
+
+
+ +
+
+ +

◆ getNegativeRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quadratic::getNegativeRoots (valueType r[]) const
+
+ +

get negative real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of negative real roots, 0, 1 or 2
+ +
+
+ +

◆ getPositiveRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quadratic::getPositiveRoots (valueType r[]) const
+
+ +

get positive real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of positive real roots, 0, 1 or 2
+ +
+
+ +

◆ getRealRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quadratic::getRealRoots (valueType r[]) const
+
+ +

get the real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of real roots, 0, 1 or 2
+ +
+
+ +

◆ setup()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void PolynomialRoots::Quadratic::setup (valueType _a,
valueType _b,
valueType _c 
)
+
+inline
+
+ +

compute the roots of quadratic polynomial \( a x^2 + b x + c \)

+
Parameters
+ + + + +
[in]_acoefficient of \( x^2 \)
[in]_bcoefficient of \( x \)
[in]_ccoefficient of \( x^0 \)
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • submodules/quarticRootsFlocke/src/PolynomialRoots.hh
  • +
  • submodules/quarticRootsFlocke/src/PolynomialRoots-1-Quadratic.cc
  • +
+
+ + + + diff --git a/docs/d6/d2e/class_utils_1_1_thread_pool-members.html b/docs/d6/d2e/class_utils_1_1_thread_pool-members.html new file mode 100644 index 00000000..38b90003 --- /dev/null +++ b/docs/d6/d2e/class_utils_1_1_thread_pool-members.html @@ -0,0 +1,100 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::ThreadPool Member List
+
+
+ +

This is the complete list of members for Utils::ThreadPool, including all inherited members.

+ + + + + + + + + + + +
get_id(unsigned i) const (defined in Utils::ThreadPool)Utils::ThreadPoolinline
get_thread(unsigned i) const (defined in Utils::ThreadPool)Utils::ThreadPoolinline
get_thread(unsigned i) (defined in Utils::ThreadPool)Utils::ThreadPoolinline
resize(unsigned numThreads) (defined in Utils::ThreadPool)Utils::ThreadPoolinline
run(unsigned nt, Func &&func, Args &&... args)Utils::ThreadPoolinline
size() const (defined in Utils::ThreadPool)Utils::ThreadPoolinline
start_all() (defined in Utils::ThreadPool)Utils::ThreadPoolinline
stop_all() (defined in Utils::ThreadPool)Utils::ThreadPoolinline
ThreadPool(unsigned nthread=std::max(unsigned(1), unsigned(std::thread::hardware_concurrency() -1))) (defined in Utils::ThreadPool)Utils::ThreadPoolinline
wait_all() (defined in Utils::ThreadPool)Utils::ThreadPoolinline
+ + + + diff --git a/docs/d6/d33/structc__complex__type.html b/docs/d6/d33/structc__complex__type.html new file mode 100644 index 00000000..e9b29bcb --- /dev/null +++ b/docs/d6/d33/structc__complex__type.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: c_complex_type Struct Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
c_complex_type Struct Reference
+
+
+ + + + + + +

+Public Attributes

+double real
 
+double imag
 
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/docs/d6/d39/class_utils_1_1_simple_semaphore-members.html b/docs/d6/d39/class_utils_1_1_simple_semaphore-members.html new file mode 100644 index 00000000..c3d7cfa7 --- /dev/null +++ b/docs/d6/d39/class_utils_1_1_simple_semaphore-members.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::SimpleSemaphore Member List
+
+
+ +

This is the complete list of members for Utils::SimpleSemaphore, including all inherited members.

+ + + + + +
green() noexcept (defined in Utils::SimpleSemaphore)Utils::SimpleSemaphoreinline
red() noexcept (defined in Utils::SimpleSemaphore)Utils::SimpleSemaphoreinline
SimpleSemaphore() noexcept (defined in Utils::SimpleSemaphore)Utils::SimpleSemaphoreinline
wait() noexcept (defined in Utils::SimpleSemaphore)Utils::SimpleSemaphoreinline
+ + + + diff --git a/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.map b/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.map new file mode 100644 index 00000000..11a811f0 --- /dev/null +++ b/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.md5 b/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.md5 new file mode 100644 index 00000000..2a95f81a --- /dev/null +++ b/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.md5 @@ -0,0 +1 @@ +90cef031480a56439c8e7e77298287b4 \ No newline at end of file diff --git a/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.png b/docs/d6/d54/class_utils_1_1_runtime___trace_error__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..de6f9cacefd28777d8f58cbe6d7c2f728de8f60f GIT binary patch literal 4188 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 literal 0 HcmV?d00001 diff --git a/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.map b/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.map new file mode 100644 index 00000000..4017c5f8 --- /dev/null +++ b/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.md5 b/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.md5 new file mode 100644 index 00000000..c9fad857 --- /dev/null +++ b/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.md5 @@ -0,0 +1 @@ +fc0e2b2628585b8599856af9dc65e36e \ No newline at end of file diff --git a/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.png b/docs/d6/d7c/class_utils_1_1_runtime___error__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cceacf2ce674240526c4c039dd0812f4dc2aac GIT binary patch literal 3707 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 R1iDGk18qaCS`Ap_e*myqE&Kog literal 0 HcmV?d00001 diff --git a/docs/d6/dde/class_utils_1_1_wait_worker.html b/docs/d6/dde/class_utils_1_1_wait_worker.html new file mode 100644 index 00000000..9c5d1e0d --- /dev/null +++ b/docs/d6/dde/class_utils_1_1_wait_worker.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Utils::WaitWorker Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::WaitWorker Class Reference
+
+
+ + + + + + + + +

+Public Member Functions

+void wait ()
 
+void enter ()
 
+void leave ()
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d6/de4/class_utils_1_1_malloc-members.html b/docs/d6/de4/class_utils_1_1_malloc-members.html new file mode 100644 index 00000000..1f3288ce --- /dev/null +++ b/docs/d6/de4/class_utils_1_1_malloc-members.html @@ -0,0 +1,100 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Malloc< T > Member List
+
+
+ +

This is the complete list of members for Utils::Malloc< T >, including all inherited members.

+ + + + + + + + + + + +
allocate(size_t n)Utils::Malloc< T >inline
free(void)Utils::Malloc< T >
is_empty() constUtils::Malloc< T >inline
malloc(size_t n) (defined in Utils::Malloc< T >)Utils::Malloc< T >inline
Malloc(std::string const &name)Utils::Malloc< T >explicit
must_be_empty(char const where[]) constUtils::Malloc< T >
operator()(size_t sz)Utils::Malloc< T >inline
size(void) constUtils::Malloc< T >inline
valueType typedef (defined in Utils::Malloc< T >)Utils::Malloc< T >
~Malloc()Utils::Malloc< T >
+ + + + diff --git a/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.map b/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.map new file mode 100644 index 00000000..6afbf3ba --- /dev/null +++ b/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.md5 b/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.md5 new file mode 100644 index 00000000..1a5bf1ac --- /dev/null +++ b/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.md5 @@ -0,0 +1 @@ +2b75e2707b36f993010c796a06659499 \ No newline at end of file diff --git a/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.png b/docs/d6/dec/class_generic_container_namespace_1_1mat__type__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..59f22c9f2cb6b602951653dd46787e048fce56db GIT binary patch literal 6297 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 + + + + + + +Clothoids: submodules/Utils/src/Utils/Utils.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef UTILS_dot_HXX
+
27 #define UTILS_dot_HXX
+
28 
+
29 // select computer architecture
+
30 #if defined(__APPLE__) && defined(__MACH__)
+
31  // osx architecture
+
32  #define UTILS_OS_OSX 1
+
33  #if defined(__i386__)
+
34  #define UTILS_ARCH32 1
+
35  #elif defined(__x86_64__)
+
36  #define UTILS_ARCH64 1
+
37  #endif
+
38 #elif defined(__unix__)
+
39  // linux architecture
+
40  #define UTILS_OS_LINUX 1
+
41  #if defined(__i386__)
+
42  #define UTILS_ARCH32 1
+
43  #elif defined(__x86_64__)
+
44  #define UTILS_ARCH64 1
+
45  #endif
+
46 #elif defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64)
+
47  // windows architecture
+
48  #define UTILS_OS_WINDOWS 1
+
49  #if defined(_M_X64) || defined(_M_AMD64)
+
50  #define UTILS_ARCH64 1
+
51  #else
+
52  #define UTILS_ARCH32 1
+
53  #endif
+
54  #ifndef WIN32_LEAN_AND_MEAN
+
55  #define WIN32_LEAN_AND_MEAN
+
56  #endif
+
57  #include <windows.h>
+
58  // workaround for windows that may define min and max as macros
+
59  #ifdef min
+
60  #undef min
+
61  #endif
+
62  #ifdef max
+
63  #undef max
+
64  #endif
+
65 #else
+
66  #error "unsupported OS!"
+
67 #endif
+
68 
+
69 // check if compiler is C++11
+
70 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || \
+
71  (defined(__cplusplus) && __cplusplus > 199711L)
+
72 #else
+
73  #error "Lapack Wrapper must be compiled using C++ >= C++11"
+
74 #endif
+
75 
+
76 #define UTILS_PURE_VIRTUAL = 0
+
77 #ifndef UTILS_OS_WINDOWS
+
78  #define UTILS_OVERRIDE override
+
79  #define UTILS_CONSTEXPR constexpr
+
80 #else
+
81  #define UTILS_OVERRIDE
+
82  #define UTILS_CONSTEXPR
+
83 #endif
+
84 
+
85 #include "rang.hpp"
+
86 
+
87 #include "fmt/printf.h"
+
88 #include "fmt/chrono.h"
+
89 #include "fmt/ostream.h"
+
90 
+
91 #ifndef UTILS_OS_WINDOWS
+
92 #include "zstream/izstream.hpp"
+
93 #include "zstream/ozstream.hpp"
+
94 #endif
+
95 
+
96 #include <string>
+
97 #include <iostream>
+
98 #include <iomanip>
+
99 #include <sstream>
+
100 #include <cstdlib>
+
101 #include <cmath>
+
102 #include <cstdint>
+
103 #include <stdexcept>
+
104 #include <mutex>
+
105 #include <atomic>
+
106 
+
107 #include "Trace.hxx"
+
108 #include "Console.hxx"
+
109 #include "Malloc.hxx"
+
110 #include "Numbers.hxx"
+
111 #include "TicToc.hxx"
+
112 #include "ThreadPool.hxx"
+
113 
+
114 namespace Utils {
+
115 
+
116  std::string basename( char const filename[] );
+
117 
+
118  template <typename T_int, typename T_real>
+
119  void
+
120  searchInterval(
+
121  T_int npts,
+
122  T_real const X[],
+
123  T_real & x,
+
124  T_int & lastInterval,
+
125  bool closed,
+
126  bool can_extend
+
127  );
+
128 
+
129  extern template void searchInterval(
+
130  int32_t npts,
+
131  float const X[],
+
132  float & x,
+
133  int32_t & lastInterval,
+
134  bool closed,
+
135  bool can_extend
+
136  );
+
137 
+
138  extern template void searchInterval(
+
139  int32_t npts,
+
140  double const X[],
+
141  double & x,
+
142  int32_t & lastInterval,
+
143  bool closed,
+
144  bool can_extend
+
145  );
+
146 
+
147  extern template void searchInterval(
+
148  int64_t npts,
+
149  float const X[],
+
150  float & x,
+
151  int64_t & lastInterval,
+
152  bool closed,
+
153  bool can_extend
+
154  );
+
155 
+
156  extern template void searchInterval(
+
157  int64_t npts,
+
158  double const X[],
+
159  double & x,
+
160  int64_t & lastInterval,
+
161  bool closed,
+
162  bool can_extend
+
163  );
+
164 
+
165 }
+
166 
+
167 #endif
+
168 
+
Definition: Console.cc:31
+
+ + + + diff --git a/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.map b/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.map new file mode 100644 index 00000000..a0e717de --- /dev/null +++ b/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.md5 b/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.md5 new file mode 100644 index 00000000..7a3149be --- /dev/null +++ b/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.md5 @@ -0,0 +1 @@ +48714bbb7909fe9f8dcf57a480562119 \ No newline at end of file diff --git a/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.png b/docs/d6/df1/class_g2lib_1_1_clothoid_list__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e6be4d4419ffb32bc399d3e8a5d366ed2f3f31e1 GIT binary patch literal 4080 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 literal 0 HcmV?d00001 diff --git a/docs/d6/df5/_triangle2_d_8hxx_source.html b/docs/d6/df5/_triangle2_d_8hxx_source.html new file mode 100644 index 00000000..ca46f9da --- /dev/null +++ b/docs/d6/df5/_triangle2_d_8hxx_source.html @@ -0,0 +1,303 @@ + + + + + + + +Clothoids: src/Clothoids/Triangle2D.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Triangle2D.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  /*\
+
28  | _____ _ _ ____ ____
+
29  | |_ _| __(_) __ _ _ __ __ _| | ___|___ \| _ \
+
30  | | || '__| |/ _` | '_ \ / _` | |/ _ \ __) | | | |
+
31  | | || | | | (_| | | | | (_| | | __// __/| |_| |
+
32  | |_||_| |_|\__,_|_| |_|\__, |_|\___|_____|____/
+
33  | |___/
+
34  \*/
+
36 
+
37  class Triangle2D {
+
38  real_type m_p1[2], m_p2[2], m_p3[2];
+
39  real_type m_s0;
+
40  real_type m_s1;
+
41  int_type m_icurve;
+
42 
+
43  public:
+
44 
+
45  Triangle2D( Triangle2D const & t )
+
46  { *this = t; }
+
47 
+
48  Triangle2D( ) {
+
49  m_p1[0] = m_p1[1] = m_p2[0] = m_p2[1] = m_p3[0] = m_p3[1] = 0;
+
50  m_s0 = 0;
+
51  m_s1 = 0;
+
52  m_icurve = 0;
+
53  }
+
54 
+
55  Triangle2D(
+
56  real_type x1, real_type y1,
+
57  real_type x2, real_type y2,
+
58  real_type x3, real_type y3,
+
59  real_type s0, real_type s1,
+
60  int_type icurve
+
61  ) {
+
62  m_p1[0] = x1; m_p1[1] = y1;
+
63  m_p2[0] = x2; m_p2[1] = y2;
+
64  m_p3[0] = x3; m_p3[1] = y3;
+
65  m_s0 = s0;
+
66  m_s1 = s1;
+
67  m_icurve = icurve;
+
68  }
+
69 
+
70  Triangle2D(
+
71  real_type const p1[2],
+
72  real_type const p2[2],
+
73  real_type const p3[2],
+
74  real_type s0,
+
75  real_type s1,
+
76  int_type icurve
+
77  ) {
+
78  m_p1[0] = p1[0]; m_p1[1] = p1[1];
+
79  m_p2[0] = p2[0]; m_p2[1] = p2[1];
+
80  m_p3[0] = p3[0]; m_p3[1] = p3[1];
+
81  m_s0 = s0;
+
82  m_s1 = s1;
+
83  m_icurve = icurve;
+
84  }
+
85 
+
86  ~Triangle2D() {}
+
87 
+
88  Triangle2D const &
+
89  operator = ( Triangle2D const & t ) {
+
90  m_p1[0] = t.m_p1[0]; m_p1[1] = t.m_p1[1];
+
91  m_p2[0] = t.m_p2[0]; m_p2[1] = t.m_p2[1];
+
92  m_p3[0] = t.m_p3[0]; m_p3[1] = t.m_p3[1];
+
93  m_s0 = t.m_s0;
+
94  m_s1 = t.m_s1;
+
95  m_icurve = t.m_icurve;
+
96  return *this;
+
97  }
+
98 
+
99  void
+
100  build(
+
101  real_type const p1[2],
+
102  real_type const p2[2],
+
103  real_type const p3[2],
+
104  real_type s0,
+
105  real_type s1,
+
106  int_type icurve
+
107  ) {
+
108  m_p1[0] = p1[0]; m_p1[1] = p1[1];
+
109  m_p2[0] = p2[0]; m_p2[1] = p2[1];
+
110  m_p3[0] = p3[0]; m_p3[1] = p3[1];
+
111  m_s0 = s0;
+
112  m_s1 = s1;
+
113  m_icurve = icurve;
+
114  }
+
115 
+
116  void
+
117  build(
+
118  real_type x1, real_type y1,
+
119  real_type x2, real_type y2,
+
120  real_type x3, real_type y3,
+
121  real_type s0,
+
122  real_type s1,
+
123  int_type icurve
+
124  ) {
+
125  m_p1[0] = x1; m_p1[1] = y1;
+
126  m_p2[0] = x2; m_p2[1] = y2;
+
127  m_p3[0] = x3; m_p3[1] = y3;
+
128  m_s0 = s0;
+
129  m_s1 = s1;
+
130  m_icurve = icurve;
+
131  }
+
132 
+
133  int_type Icurve() const { return m_icurve; }
+
134 
+
135  real_type x1() const { return m_p1[0]; }
+
136  real_type y1() const { return m_p1[1]; }
+
137 
+
138  real_type x2() const { return m_p2[0]; }
+
139  real_type y2() const { return m_p2[1]; }
+
140 
+
141  real_type x3() const { return m_p3[0]; }
+
142  real_type y3() const { return m_p3[1]; }
+
143 
+
144  real_type S0() const { return m_s0; }
+
145  real_type S1() const { return m_s1; }
+
146 
+
147  void
+
148  translate( real_type tx, real_type ty ) {
+
149  m_p1[0] += tx; m_p2[0] += tx; m_p3[0] += tx;
+
150  m_p1[1] += ty; m_p2[1] += ty; m_p3[1] += ty;
+
151  }
+
152 
+
153  void
+
154  rotate( real_type angle, real_type cx, real_type cy );
+
155 
+
156  void
+
157  scale( real_type sc ) {
+
158  m_p1[0] *= sc; m_p1[1] *= sc;
+
159  m_p2[0] *= sc; m_p2[1] *= sc;
+
160  m_p3[0] *= sc; m_p3[1] *= sc;
+
161  }
+
162 
+
163  void
+
164  bbox(
+
165  real_type & xmin, real_type & ymin,
+
166  real_type & xmax, real_type & ymax
+
167  ) const {
+
168  minmax3( m_p1[0], m_p2[0], m_p3[0], xmin, xmax );
+
169  minmax3( m_p1[1], m_p2[1], m_p3[1], ymin, ymax );
+
170  }
+
171 
+
172  real_type baricenterX() const { return (m_p1[0]+m_p2[0]+m_p3[0])/3; }
+
173  real_type baricenterY() const { return (m_p1[1]+m_p2[1]+m_p3[1])/3; }
+
174 
+
175  real_type const * P1() const { return m_p1; }
+
176  real_type const * P2() const { return m_p2; }
+
177  real_type const * P3() const { return m_p3; }
+
178 
+
179  bool overlap( Triangle2D const & ) const;
+
180 
+
186  int_type
+ +
188  return G2lib::isCounterClockwise( m_p1, m_p2, m_p3 );
+
189  }
+
190 
+
196  int_type
+
197  isInside( real_type x, real_type y ) const {
+
198  real_type const pt[2] = {x,y};
+
199  return isPointInTriangle( pt, m_p1, m_p2, m_p3 );
+
200  }
+
201 
+
202  int_type
+
203  isInside( real_type const pt[2] ) const {
+
204  return isPointInTriangle( pt, m_p1, m_p2, m_p3 );
+
205  }
+
206 
+
207  real_type
+
208  distMin( real_type x, real_type y ) const;
+
209 
+
210  real_type
+
211  distMax( real_type x, real_type y ) const;
+
212 
+
213  void
+
214  info( ostream_type & stream ) const
+
215  { stream << "Triangle2D\n" << *this << '\n'; }
+
216 
+
217  friend
+
218  ostream_type &
+
219  operator << ( ostream_type & stream, Triangle2D const & c );
+
220 
+
221  };
+
222 
+
223 }
+
224 
+
Class to manage Triangle for BB of clothoid curve.
Definition: Triangle2D.hxx:37
+
int_type isInside(real_type x, real_type y) const
Definition: Triangle2D.hxx:197
+
int_type isCounterClockwise() const
Definition: Triangle2D.hxx:187
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
int_type isPointInTriangle(real_type const point[2], real_type const p1[2], real_type const p2[2], real_type const p3[2])
Definition: G2lib.cc:642
+
int_type isCounterClockwise(real_type const P1[2], real_type const P2[2], real_type const P3[2])
Definition: G2lib.cc:546
+
void minmax3(real_type a, real_type b, real_type c, real_type &vmin, real_type &vmax)
return minumum and maximum of three numbers
Definition: G2lib.hxx:125
+
+ + + + diff --git a/docs/d6/df9/class_utils_1_1_spin_lock__barrier-members.html b/docs/d6/df9/class_utils_1_1_spin_lock__barrier-members.html new file mode 100644 index 00000000..e8a4f2cf --- /dev/null +++ b/docs/d6/df9/class_utils_1_1_spin_lock__barrier-members.html @@ -0,0 +1,97 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::SpinLock_barrier Member List
+
+
+ +

This is the complete list of members for Utils::SpinLock_barrier, including all inherited members.

+ + + + + + + + +
count_down() (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrierinline
count_down_and_wait() (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrierinline
operator=(const SpinLock_barrier &)=delete (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrier
setup(unsigned count) (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrierinline
SpinLock_barrier(const SpinLock_barrier &)=delete (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrier
SpinLock_barrier() (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrierinlineexplicit
wait() (defined in Utils::SpinLock_barrier)Utils::SpinLock_barrierinline
+ + + + diff --git a/docs/d7/d02/class_g2lib_1_1_clothoid_list.html b/docs/d7/d02/class_g2lib_1_1_clothoid_list.html new file mode 100644 index 00000000..af889f1e --- /dev/null +++ b/docs/d7/d02/class_g2lib_1_1_clothoid_list.html @@ -0,0 +1,2437 @@ + + + + + + + +Clothoids: G2lib::ClothoidList Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::ClothoidList Class Reference
+
+
+ +

Class to manage a list of clothoid curves (not necessarily G2 or G1 connected) + More...

+ +

#include <ClothoidList.hxx>

+
+Inheritance diagram for G2lib::ClothoidList:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::ClothoidList:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ClothoidList (ClothoidList const &s)
 
+void init ()
 
+void reserve (int_type n)
 
+void copy (ClothoidList const &L)
 
+ClothoidList const & operator= (ClothoidList const &s)
 
ClothoidList (LineSegment const &LS)
 
ClothoidList (CircleArc const &C)
 
ClothoidList (Biarc const &B)
 
ClothoidList (BiarcList const &BL)
 
ClothoidList (ClothoidCurve const &CL)
 
ClothoidList (PolyLine const &PL)
 
ClothoidList (BaseCurve const &C)
 
+void push_back (LineSegment const &c)
 
+void push_back (CircleArc const &c)
 
+void push_back (Biarc const &c)
 
+void push_back (BiarcList const &c)
 
+void push_back (ClothoidCurve const &c)
 
+void push_back (PolyLine const &c)
 
+void push_back (real_type kappa0, real_type dkappa, real_type L)
 
+void push_back (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type dkappa, real_type L)
 
+void push_back_G1 (real_type x1, real_type y1, real_type theta1)
 
+void push_back_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
 
+bool is_closed () const
 
+void make_closed ()
 
+void make_open ()
 
+real_type closure_gap_x () const
 
+real_type closure_gap_y () const
 
+real_type closure_gap_tx () const
 
+real_type closure_gap_ty () const
 
+bool closure_check (real_type tol_xy=1e-6, real_type tol_tg=1e-6) const
 
+bool build_G1 (int_type n, real_type const x[], real_type const y[])
 
+bool build_G1 (int_type n, real_type const x[], real_type const y[], real_type const theta[])
 
+bool build (real_type x0, real_type y0, real_type theta0, int_type n, real_type const s[], real_type const kappa[])
 
+bool build (real_type x0, real_type y0, real_type theta0, vector< real_type > const &s, vector< real_type > const &kappa)
 
+bool build_raw (int_type n, real_type const x[], real_type const y[], real_type const abscissa[], real_type const theta[], real_type const kappa[])
 
+bool build_raw (vector< real_type > const &x, vector< real_type > const &y, vector< real_type > const &abscissa, vector< real_type > const &theta, vector< real_type > const &kappa)
 
+ClothoidCurve const & get (int_type idx) const
 
+ClothoidCurve const & getAtS (real_type s) const
 
+int_type numSegment () const
 
+void wrap_in_range (real_type &s) const
 
+int_type findAtS (real_type &s) const
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type offs) const UTILS_OVERRIDE
 
+real_type segment_length (int_type nseg) const
 
+real_type segment_length_ISO (int_type nseg, real_type offs) const
 
+real_type segment_length_SAE (int_type nseg, real_type offs) const
 
+void bbTriangles_ISO (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void bbTriangles_SAE (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void bbTriangles (std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void build_AABBtree_ISO (real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
+virtual real_type thetaBegin () const UTILS_OVERRIDE
 
+virtual real_type thetaEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type xEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type tx_End () const UTILS_OVERRIDE
 
+virtual real_type ty_End () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type nx_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type theta (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void tg (real_type s, real_type &tg_x, real_type &tg_y) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type s, real_type &tg_x_D, real_type &tg_y_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const UTILS_OVERRIDE
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual real_type X_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void scale (real_type sc) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
+void trim (real_type s_begin, real_type s_end, ClothoidList &newCL) const
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
int_type closestSegment (real_type qx, real_type qy) const
 
int_type closestPointInRange_ISO (real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
 
int_type closestPointInRange_SAE (real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
 
int_type closestPointInSRange_ISO (real_type qx, real_type qy, real_type s_begin, real_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
 
int_type closestPointInSRange_SAE (real_type qx, real_type qy, int_type s_begin, int_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
 
+virtual void info (ostream_type &stream) const UTILS_OVERRIDE
 
+void getSK (real_type s[], real_type kappa[]) const
 
+void getSK (std::vector< real_type > &s, std::vector< real_type > &kappa) const
 
+void getSTK (real_type s[], real_type theta[], real_type kappa[]) const
 
+void getSTK (std::vector< real_type > &s, std::vector< real_type > &theta, std::vector< real_type > &kappa) const
 
+void getXY (real_type x[], real_type y[]) const
 
+void getDeltaTheta (real_type deltaTheta[]) const
 
+void getDeltaKappa (real_type deltaKappa[]) const
 
int_type findST1 (real_type x, real_type y, real_type &s, real_type &t) const
 Find parametric coordinate. More...
 
int_type findST1 (int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const
 Find parametric coordinate. More...
 
+bool collision (ClothoidList const &C) const
 
+bool collision_ISO (real_type offs, ClothoidList const &CL, real_type offs_C) const
 
+void intersect (ClothoidList const &CL, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, ClothoidList const &CL, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const
 
void export_table (ostream_type &stream) const
 Save Clothoid list to a stream. More...
 
void export_ruby (ostream_type &stream) const
 Save Clothoid list to a stream. More...
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + +

+Friends

+ostream_type & operator<< (ostream_type &stream, ClothoidList const &CL)
 
+

Detailed Description

+

Class to manage a list of clothoid curves (not necessarily G2 or G1 connected)

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidList::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlinevirtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidList::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
n >= 0 point is projected orthogonal, n is the number of the segment at minimum distance
+ -(n+1) minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
n > 0 point is projected orthogonal, n-1 is the number of the segment at minimum distance
+ -(n+1) minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPointInRange_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPointInRange_ISO (real_type qx,
real_type qy,
int_type icurve_begin,
int_type icurve_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
int_type & icurve 
) const
+
+
Parameters
+ + + + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
icurve_beginindex of the initial segment
icurve_endindex of the past to the last segment
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
+
+
+
Returns
1 point is projected orthogonal
+ 0 = more than one projection (first returned)
+ -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPointInRange_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPointInRange_SAE (real_type qx,
real_type qy,
int_type icurve_begin,
int_type icurve_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
int_type & icurve 
) const
+
+inline
+
+
Parameters
+ + + + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
icurve_beginindex of the initial segment
icurve_endindex of the past to the last segment
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
+
+
+
Returns
1 point is projected orthogonal
+ 0 = more than one projection (first returned)
+ -1 = minimum point is not othogonal projection to curve
+
+ +
+
+ +

◆ closestPointInSRange_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPointInSRange_ISO (real_type qx,
real_type qy,
real_type s_begin,
real_type s_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
int_type & icurve 
) const
+
+
Parameters
+ + + + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
s_begininitial curvilinear coordinate of the search range
s_endfinal curvilinear coordinate of the search range
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
+
+
+ +
+
+ +

◆ closestPointInSRange_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestPointInSRange_SAE (real_type qx,
real_type qy,
int_type s_begin,
int_type s_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
int_type & icurve 
) const
+
+inline
+
+
Parameters
+ + + + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
s_begininitial curvilinear coordinate of the search range
s_endfinal curvilinear coordinate of the search range
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
+
+
+ +
+
+ +

◆ closestSegment()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::closestSegment (real_type qx,
real_type qy 
) const
+
+
Parameters
+ + + +
qxx-coordinate of the point
qyy-coordinate of the point
+
+
+
Returns
the segment at minimal distance from point (qx,qy)
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidList::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+virtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidList::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+virtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidList::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+virtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidList::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+virtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ export_ruby()

+ +
+
+ + + + + + + + +
void G2lib::ClothoidList::export_ruby (ostream_type & stream) const
+
+ +

Save Clothoid list to a stream.

+
Parameters
+ + +
streamstreamstream to save
+
+
+ +
+
+ +

◆ export_table()

+ +
+
+ + + + + + + + +
void G2lib::ClothoidList::export_table (ostream_type & stream) const
+
+ +

Save Clothoid list to a stream.

+
Parameters
+ + +
streamstream to save
+
+
+ +
+
+ +

◆ findST1() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::findST1 (int_type ibegin,
int_type iend,
real_type x,
real_type y,
real_type & s,
real_type & t 
) const
+
+ +

Find parametric coordinate.

+
Parameters
+ + + + + + + +
ibegininitial segment to compute the distance
iendfinal segment to compute the distance
xx-coordinate point
yy-coordinate point
svalue \( s \)
tvalue \( t \)
+
+
+
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if (x,y) cannot be projected orthogonally on the segment
+ +
+
+ +

◆ findST1() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidList::findST1 (real_type x,
real_type y,
real_type & s,
real_type & t 
) const
+
+ +

Find parametric coordinate.

+
Parameters
+ + + + + +
xx-coordinate point
yy-coordinate point
svalue \( s \)
tvalue \( t \)
+
+
+
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if (x,y) cannot be projected orthogonally on the segment
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::ClothoidList::length () const
+
+virtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidList::length_ISO (real_type offs) const
+
+virtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d7/d32/_polynomial_roots-_utils_8hh_source.html b/docs/d7/d32/_polynomial_roots-_utils_8hh_source.html new file mode 100644 index 00000000..b41c1c1f --- /dev/null +++ b/docs/d7/d32/_polynomial_roots-_utils_8hh_source.html @@ -0,0 +1,229 @@ + + + + + + + +Clothoids: submodules/quarticRootsFlocke/src/PolynomialRoots-Utils.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolynomialRoots-Utils.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2014 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 #ifndef RPOLY_HH
+
21 #define RPOLY_HH
+
22 
+
23 #include <utility>
+
24 #include <cstdlib>
+
25 #include <cmath>
+
26 #include <complex>
+
27 #include <iostream>
+
28 #include <limits>
+
29 
+
30 /*
+
31 ..
+
32 .. N. FLOCKE
+
33 .. Algorithm 954: An Accurate and Efficient Cubic and Quartic Equation Solver
+
34 .. for Physical Applications
+
35 .. ACM TOMS, Vol. 41, No. 4, 2015.
+
36 .. DOI: http://dx.doi.org/10.1145/2699468
+
37 ..
+
38 */
+
39 
+
40 namespace PolynomialRoots {
+
41 
+
42  typedef double valueType;
+
43  typedef int indexType;
+
44  typedef std::complex<valueType> complexType;
+
45 
+
46  static int const bitsValueType = std::numeric_limits<valueType>::digits;
+
47  static valueType const splitFactor = (long(1)<<(bitsValueType-1))+1;
+
48 
+
49  /*
+
50  || _ _ _
+
51  || _ _| |_(_) |___
+
52  || | | | | __| | / __|
+
53  || | |_| | |_| | \__ \
+
54  || \__,_|\__|_|_|___/
+
55  */
+
56  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
57  // a + b = x + err
+
58  static
+
59  inline
+
60  void
+
61  TwoSum(
+
62  valueType a,
+
63  valueType b,
+
64  valueType & x,
+
65  valueType & err
+
66  ) {
+
67  x = a+b;
+
68  valueType z = x-a;
+
69  err = (a-(x-z))+(b-z);
+
70  }
+
71 
+
72  static
+
73  inline
+
74  void
+
75  TwoSum(
+
76  complexType a,
+
77  complexType b,
+
78  complexType & x,
+
79  complexType & err
+
80  ) {
+
81  valueType s1, e1, s2, e2;
+
82  TwoSum( a.real(), b.real(), s1, e1 );
+
83  TwoSum( a.imag(), b.imag(), s2, e2 );
+
84  x = complexType(s1,s2);
+
85  err = complexType(e1,e2);
+
86  }
+
87 
+
88  // a = x + y
+
89  static
+
90  inline
+
91  void
+
92  Split( valueType a, valueType & x, valueType & y ) {
+
93  valueType c = splitFactor*a;
+
94  x = c-(c-a);
+
95  y = a-x;
+
96  }
+
97 
+
98  // a * b = x + err
+
99  static
+
100  inline
+
101  void
+
102  TwoProduct(
+
103  valueType a,
+
104  valueType b,
+
105  valueType & x,
+
106  valueType & err
+
107  ) {
+
108  valueType a1, a2, b1, b2;
+
109  Split( a, a1, a2 );
+
110  Split( b, b1, b2 );
+
111  x = a*b;
+
112  err = a2*b2-(((x-a1*b1)-a2*b1)-a1*b2);
+
113  }
+
114 
+
115  static
+
116  inline
+
117  void
+
118  TwoProduct(
+
119  complexType a,
+
120  complexType b,
+
121  complexType & p,
+
122  complexType & e,
+
123  complexType & f,
+
124  complexType & g
+
125  ) {
+
126  valueType z1, z2, z3, z4, z5, z6, h1, h2, h3, h4, h5, h6;
+
127  TwoProduct(a.real(), b.real(), z1, h1 );
+
128  TwoProduct(a.imag(), b.imag(), z2, h2 );
+
129  TwoProduct(a.real(), b.imag(), z3, h3 );
+
130  TwoProduct(a.imag(), b.real(), z4, h4 );
+
131  TwoSum(z1, -z2, z5, h5);
+
132  TwoSum(z3, z4, z6, h6);
+
133  p = complexType(z5,z6);
+
134  e = complexType(h1,h3);
+
135  f = complexType(-h2,h4);
+
136  g = complexType(h5,h6);
+
137  }
+
138 
+
139 }
+
140 
+
141 #endif
+
implementation of Flocke algorithm for roots of 3rd and 4th degree polynomials
Definition: PolynomialRoots-1-Quadratic.cc:26
+
+ + + + diff --git a/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.map b/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.map new file mode 100644 index 00000000..45f7b3db --- /dev/null +++ b/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.md5 b/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.md5 new file mode 100644 index 00000000..39e854bc --- /dev/null +++ b/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.md5 @@ -0,0 +1 @@ +cbb12215eef85513f7b9ce52ccdb82c6 \ No newline at end of file diff --git a/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.png b/docs/d7/d38/class_g2lib_1_1_line_segment__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..80f43e0f25f40762522dea943ffff5b7a20575d4 GIT binary patch literal 4223 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 C1sIC} literal 0 HcmV?d00001 diff --git a/docs/d7/d79/class_generic_container_namespace_1_1_generic_container_explorer-members.html b/docs/d7/d79/class_generic_container_namespace_1_1_generic_container_explorer-members.html new file mode 100644 index 00000000..9ec55f65 --- /dev/null +++ b/docs/d7/d79/class_generic_container_namespace_1_1_generic_container_explorer-members.html @@ -0,0 +1,105 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerNamespace::GenericContainerExplorer Member List
+
+
+ +

This is the complete list of members for GenericContainerNamespace::GenericContainerExplorer, including all inherited members.

+ + + + + + + + + + + + + + + + +
check(int data_type) const (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
check_no_data(int data_type) const (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
GenericContainerExplorer() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
init_map_key() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
mem_ptr() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
mem_ptr() const (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
next_map_key() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
pop() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
push(GenericContainer *gc) (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
push_map_position(char const pos[]) (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
push_vector_position(unsigned pos) (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
reset() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
top() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
top() const (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
~GenericContainerExplorer() (defined in GenericContainerNamespace::GenericContainerExplorer)GenericContainerNamespace::GenericContainerExplorerinline
+ + + + diff --git a/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.map b/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.map new file mode 100644 index 00000000..211c606a --- /dev/null +++ b/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.md5 b/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.md5 new file mode 100644 index 00000000..9076cba9 --- /dev/null +++ b/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.md5 @@ -0,0 +1 @@ +c0a93a496e8b10369be8eb3584f1cdec \ No newline at end of file diff --git a/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.png b/docs/d7/d9c/class_g2lib_1_1_poly_line__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8ac135a3d2c8eaf46300dc2f61317033a7f84a GIT binary patch literal 3933 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 literal 0 HcmV?d00001 diff --git a/docs/d7/db2/class_polynomial_roots_1_1_cubic-members.html b/docs/d7/db2/class_polynomial_roots_1_1_cubic-members.html new file mode 100644 index 00000000..4f4b5660 --- /dev/null +++ b/docs/d7/db2/class_polynomial_roots_1_1_cubic-members.html @@ -0,0 +1,117 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolynomialRoots::Cubic Member List
+
+
+ +

This is the complete list of members for PolynomialRoots::Cubic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
check(std::ostream &s) constPolynomialRoots::Cubic
complexRoots() constPolynomialRoots::Cubicinline
Cubic() (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
Cubic(valueType _a, valueType _b, valueType _c, valueType _d) (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
doubleRoot() constPolynomialRoots::Cubicinline
eval(valueType x) constPolynomialRoots::Cubicinline
eval(complexType const &x) constPolynomialRoots::Cubicinline
eval(valueType x, valueType &p, valueType &dp) constPolynomialRoots::Cubic
getNegativeRoots(valueType r[]) constPolynomialRoots::Cubic
getPositiveRoots(valueType r[]) constPolynomialRoots::Cubic
getRealRoots(valueType r[]) constPolynomialRoots::Cubic
getRoot0(valueType &re, valueType &im) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
getRoot0(complexType &r) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
getRoot1(valueType &re, valueType &im) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
getRoot1(complexType &r) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
getRoot2(valueType &re, valueType &im) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
getRoot2(complexType &r) const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
info(std::ostream &s) constPolynomialRoots::Cubic
numRoots() constPolynomialRoots::Cubicinline
real_root0() constPolynomialRoots::Cubicinline
real_root1() constPolynomialRoots::Cubicinline
real_root2() constPolynomialRoots::Cubicinline
root0() const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
root1() const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
root2() const (defined in PolynomialRoots::Cubic)PolynomialRoots::Cubicinline
setup(valueType _a, valueType _b, valueType _c, valueType _d)PolynomialRoots::Cubicinline
tripleRoot() constPolynomialRoots::Cubicinline
+ + + + diff --git a/docs/d7/dc1/_clothoids_8hh_source.html b/docs/d7/dc1/_clothoids_8hh_source.html new file mode 100644 index 00000000..44374610 --- /dev/null +++ b/docs/d7/dc1/_clothoids_8hh_source.html @@ -0,0 +1,161 @@ + + + + + + + +Clothoids: src/Clothoids.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Clothoids.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2018 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Paolo Bevilacqua and Enrico Bertolazzi |
+
14  | |
+
15  | (1) Dipartimento di Ingegneria e Scienza dell'Informazione |
+
16  | (2) Dipartimento di Ingegneria Industriale |
+
17  | |
+
18  | Universita` degli Studi di Trento |
+
19  | email: paolo.bevilacqua@unitn.it |
+
20  | email: enrico.bertolazzi@unitn.it |
+
21  | |
+
22 \*--------------------------------------------------------------------------*/
+
23 
+
27 
+
28 #pragma once
+
29 
+
30 #ifndef CLOTHOIDS_dot_HH
+
31 #define CLOTHOIDS_dot_HH
+
32 
+
33 #include "Utils.hh"
+
34 
+
35 #include <string>
+
36 #include <fstream>
+
37 #include <iostream>
+
38 #include <iomanip>
+
39 #include <cmath>
+
40 
+
41 #include <vector>
+
42 #include <map>
+
43 #include <utility>
+
44 #include <algorithm>
+
45 #include <iterator>
+
46 
+
47 // check if compiler is C++11
+
48 #ifndef G2LIB_DO_NOT_USE_CXX11
+
49  #define G2LIB_USE_CXX11
+
50 #endif
+
51 
+
52 #ifdef G2LIB_USE_CXX11
+
53 #include <memory> // shared_ptr
+
54 #endif
+
55 
+
56 namespace G2lib {
+
57  using Utils::ostream_type;
+
58  typedef double real_type;
+
59  typedef int int_type;
+
60 }
+
61 
+
62 #include "Clothoids/G2lib.hxx"
+
63 #include "Clothoids/Triangle2D.hxx"
+
64 #include "Clothoids/AABBtree.hxx"
+
65 #include "Clothoids/Fresnel.hxx"
+
66 #include "Clothoids/Line.hxx"
+
67 #include "Clothoids/Circle.hxx"
+
68 #include "Clothoids/Biarc.hxx"
+
69 #include "Clothoids/Clothoid.hxx"
+
70 #include "Clothoids/PolyLine.hxx"
+
71 #include "Clothoids/BiarcList.hxx"
+
72 #include "Clothoids/ClothoidList.hxx"
+
73 #include "Clothoids/ClothoidAsyPlot.hxx"
+
74 
+
75 #endif
+
76 
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/d7/dd9/class_g2lib_1_1_circle_arc.html b/docs/d7/dd9/class_g2lib_1_1_circle_arc.html new file mode 100644 index 00000000..b085fc5f --- /dev/null +++ b/docs/d7/dd9/class_g2lib_1_1_circle_arc.html @@ -0,0 +1,1767 @@ + + + + + + + +Clothoids: G2lib::CircleArc Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::CircleArc Class Reference
+
+
+ +

Class to manage Clothoid Curve. + More...

+ +

#include <Circle.hxx>

+
+Inheritance diagram for G2lib::CircleArc:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::CircleArc:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

CircleArc (CircleArc const &s)
 
CircleArc (real_type x0, real_type y0, real_type theta0, real_type k, real_type L)
 construct a circle curve with the standard parameters
 
CircleArc (LineSegment const &LS)
 construct a circle curve with the standard parameters
 
+void copy (CircleArc const &c)
 
CircleArc (BaseCurve const &C)
 
+CircleArc const & operator= (CircleArc const &s)
 
+void build (real_type x0, real_type y0, real_type theta0, real_type k, real_type L)
 construct a circle with the standard parameters
 
+bool build_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1)
 build a circle by solving the hermite G1 problem
 
+bool build_3P (real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)
 build a circle passing by 3 points
 
+bool bbTriangle (real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) const
 get the bounding box triangle (if angle variation less that pi/3)
 
+bool bbTriangle_ISO (real_type offs, real_type &x0, real_type &y0, real_type &x1, real_type &y1, real_type &x2, real_type &y2) const
 get the bounding box triangle (if angle variation less that pi/3)
 
+bool bbTriangle_SAE (real_type offs, real_type &_x0, real_type &_y0, real_type &_x1, real_type &_y1, real_type &_x2, real_type &_y2) const
 get the bounding box triangle (if angle variation less that pi/3)
 
+bool bbTriangle (real_type p0[2], real_type p1[2], real_type p2[2]) const
 
+bool bbTriangle_ISO (real_type offs, real_type p0[2], real_type p1[2], real_type p2[2]) const
 
+bool bbTriangle_SAE (real_type offs, real_type p0[2], real_type p1[2], real_type p2[2]) const
 
+bool bbTriangle (Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const
 
+bool bbTriangle_ISO (real_type offs, Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const
 
+bool bbTriangle_SAE (real_type offs, Triangle2D &t, real_type ss0=0, real_type ss1=0, int_type icurve=0) const
 
+void bbTriangles (std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles_ISO (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles_SAE (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type thetaBegin () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type theta (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type) const UTILS_OVERRIDE
 
+virtual void evaluate (real_type s, real_type &th, real_type &kappa, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual real_type tx (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void tg (real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void scale (real_type s) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
+virtual void info (ostream_type &stream) const UTILS_OVERRIDE
 
+bool collision (CircleArc const &) const
 
+bool collision_ISO (real_type offs, CircleArc const &C, real_type offs_obj) const
 
+void intersect (CircleArc const &obj, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, CircleArc const &C, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const
 
+real_type sinTheta0 () const
 
+real_type cosTheta0 () const
 
+real_type curvature () const
 
+real_type lenTolerance (real_type tol) const
 
+real_type delta_theta () const
 
+real_type thetaTotalVariation () const
 
+real_type thetaMinMax (real_type &thMin, real_type &thMax) const
 
+real_type deltaTheta () const
 
+void changeCurvilinearOrigin (real_type s0, real_type newL)
 
+void center (real_type &cx, real_type &cy) const
 
+real_type ray () const
 
+void paramNURBS (int_type &n_knots, int_type &n_pnts) const
 
+void toNURBS (real_type knots[], real_type Poly[][3]) const
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type thetaEnd () const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+virtual real_type xEnd () const
 
+virtual real_type yEnd () const
 
+virtual real_type xBegin_ISO (real_type offs) const
 
+virtual real_type yBegin_ISO (real_type offs) const
 
+virtual real_type xEnd_ISO (real_type offs) const
 
+virtual real_type yEnd_ISO (real_type offs) const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+virtual real_type tx_End () const
 
+virtual real_type ty_End () const
 
+virtual real_type nx_End_ISO () const
 
+virtual real_type ny_End_ISO () const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual real_type X_ISO (real_type s, real_type offs) const
 
+virtual real_type Y_ISO (real_type s, real_type offs) const
 
+virtual real_type X_ISO_D (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_D (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DD (real_type s, real_type offs) const
 
+virtual real_type X_ISO_DDD (real_type s, real_type offs) const
 
+virtual real_type Y_ISO_DDD (real_type s, real_type offs) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + + + + + +

+Friends

+class Biarc
 
+class ClothoidCurve
 
+ostream_type & operator<< (ostream_type &stream, CircleArc const &c)
 
+

Detailed Description

+

Class to manage Clothoid Curve.

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::CircleArc::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::CircleArc::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::CircleArc::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::CircleArc::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+virtualinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+virtualinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented in G2lib::LineSegment, G2lib::PolyLine, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+virtualinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+virtualinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented in G2lib::PolyLine, G2lib::LineSegment, G2lib::ClothoidList, G2lib::ClothoidCurve, G2lib::BiarcList, and G2lib::Biarc.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::CircleArc::length () const
+
+inlinevirtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::CircleArc::length_ISO (real_type offs) const
+
+inlinevirtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d7/df9/class_utils_1_1_tic_toc.html b/docs/d7/df9/class_utils_1_1_tic_toc.html new file mode 100644 index 00000000..52eb472a --- /dev/null +++ b/docs/d7/df9/class_utils_1_1_tic_toc.html @@ -0,0 +1,109 @@ + + + + + + + +Clothoids: Utils::TicToc Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::TicToc Class Reference
+
+
+ + + + + + + + + + +

+Public Member Functions

+void tic ()
 
+void toc ()
 
+real_type elapsed_s () const
 
+real_type elapsed_ms () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d8/d20/class_utils_1_1_barrier.html b/docs/d8/d20/class_utils_1_1_barrier.html new file mode 100644 index 00000000..7579fb3a --- /dev/null +++ b/docs/d8/d20/class_utils_1_1_barrier.html @@ -0,0 +1,109 @@ + + + + + + + +Clothoids: Utils::Barrier Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Barrier Class Reference
+
+
+ + + + + + + + + + +

+Public Member Functions

+void setup (int nthreads)
 
+void count_down ()
 
+void wait ()
 
+void count_down_and_wait ()
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d8/d68/_generic_container_8hh_source.html b/docs/d8/d68/_generic_container_8hh_source.html new file mode 100644 index 00000000..a90ccb40 --- /dev/null +++ b/docs/d8/d68/_generic_container_8hh_source.html @@ -0,0 +1,1436 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src/GenericContainer.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainer.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2013 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 //
+
21 // file: GenericContainer.hh
+
22 //
+
23 
+
24 #ifndef GENERIC_CONTAINER_HH
+
25 #define GENERIC_CONTAINER_HH
+
26 
+
27 #ifdef __clang__
+
28 #pragma clang diagnostic push
+
29 #pragma clang diagnostic ignored "-Wpadded"
+
30 #pragma clang diagnostic ignored "-Wc++98-compat"
+
31 #pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+
32 #pragma clang diagnostic ignored "-Wpoison-system-directories"
+
33 #endif
+
34 
+
35 #include <iostream>
+
36 #include <string>
+
37 #include <complex>
+
38 #include <map>
+
39 #include <deque>
+
40 #include <vector>
+
41 #include <sstream>
+
42 #include <stdexcept>
+
43 
+
44 #include "GenericContainerConfig.hh"
+
45 
+
46 #ifndef GC_DO_ERROR
+
47  #define GC_DO_ERROR(MSG) { \
+
48  std::ostringstream ost; \
+
49  GenericContainerNamespace::backtrace( ost ); \
+
50  ost << "in GenericContainer: " << MSG << '\n'; \
+
51  GenericContainer::exception( ost.str().c_str() ); \
+
52  }
+
53 #endif
+
54 
+
55 #ifndef GC_ASSERT
+
56  #define GC_ASSERT(COND,MSG) if ( !(COND) ) GC_DO_ERROR(MSG)
+
57 #endif
+
58 
+
59 #ifndef GC_WARNING
+
60  #define GC_WARNING(COND,MSG) \
+
61  if ( !(COND) ) { \
+
62  std::cout << "On line: " << __LINE__ \
+
63  << " file: " << __FILE__ \
+
64  << " in GenericContainer\nWARNING: " << MSG << '\n'; \
+
65  }
+
66 #endif
+
67 
+
68 #ifdef __GNUC__
+
69  #define GC_NO_RETURN __attribute__ ((noreturn))
+
70 #else
+
71  #define GC_NO_RETURN
+
72 #endif
+
73 
+
74 namespace GenericContainerNamespace {
+
75 
+
76  typedef std::basic_ostream<char> ostream_type;
+
77 
+
78  void backtrace( ostream_type & );
+
79 
+
80  #ifndef _MSC_VER
+
81  using std::int32_t;
+
82  using std::int64_t;
+
83  using std::uint32_t;
+
84  using std::uint64_t;
+
85  #endif
+
86 
+
87  class GenericContainer;
+
88 
+
89  typedef void* pointer_type;
+
90  typedef bool bool_type;
+
91  typedef int32_t int_type;
+
92  typedef int64_t long_type;
+
93  typedef double real_type;
+
94  typedef std::complex<real_type> complex_type;
+
95  typedef std::string string_type;
+
96 
+
97  typedef std::vector<pointer_type> vec_pointer_type;
+
98  typedef std::vector<bool_type> vec_bool_type;
+
99  typedef std::vector<int_type> vec_int_type;
+
100  typedef std::vector<long_type> vec_long_type;
+
101  typedef std::vector<real_type> vec_real_type;
+
102  typedef std::vector<complex_type> vec_complex_type;
+
103  typedef std::vector<string_type> vec_string_type;
+
104 
+
105  typedef std::vector<GenericContainer> vector_type;
+
106  typedef std::map<string_type,GenericContainer> map_type;
+
107 
+
108  // ---------------------------------------------------------------------------
+
109 
+
110  typedef uint32_t uint_type;
+
111  typedef uint64_t ulong_type;
+
112 
+
113  typedef std::vector<uint_type> vec_uint_type;
+
114  typedef std::vector<ulong_type> vec_ulong_type;
+
115 
+
116  // ---------------------------------------------------------------------------
+
117  template <typename TYPE>
+
118  class mat_type : public std::vector<TYPE> {
+
119  unsigned m_numRows;
+
120  unsigned m_numCols;
+
121  typedef typename std::vector<TYPE>::size_type size_type;
+
122  public:
+
123 
+
124  GENERIC_CONTAINER_API_DLL
+
125  mat_type()
+
126  : m_numRows(0)
+
127  , m_numCols(0)
+
128  {}
+
129 
+
130  GENERIC_CONTAINER_API_DLL
+
131  mat_type( unsigned nr, unsigned nc )
+
132  : m_numRows(nr)
+
133  , m_numCols(nc)
+
134  { std::vector<TYPE>::resize(size_type(nr*nc)); }
+
135 
+
136  GENERIC_CONTAINER_API_DLL
+
137  void
+
138  resize( unsigned nr, unsigned nc ) {
+
139  m_numRows = nr;
+
140  m_numCols = nc;
+
141  std::vector<TYPE>::resize(size_type(nr*nc));
+
142  }
+
143 
+
144  GENERIC_CONTAINER_API_DLL
+
145  void
+
146  getColumn( unsigned nc, std::vector<TYPE> & C ) const;
+
147 
+
148  GENERIC_CONTAINER_API_DLL
+
149  void
+
150  getRow( unsigned nr, std::vector<TYPE> & R ) const;
+
151 
+
152  GENERIC_CONTAINER_API_DLL
+
153  void
+
154  getColumn( unsigned nc, TYPE * C ) const;
+
155 
+
156  GENERIC_CONTAINER_API_DLL
+
157  void
+
158  getRow( unsigned nr, TYPE * R ) const;
+
159 
+
160  GENERIC_CONTAINER_API_DLL unsigned numRows() const { return m_numRows; }
+
161  GENERIC_CONTAINER_API_DLL unsigned numCols() const { return m_numCols; }
+
162 
+
163  GENERIC_CONTAINER_API_DLL
+
164  TYPE const & operator () ( unsigned i, unsigned j ) const;
+
165 
+
166  GENERIC_CONTAINER_API_DLL
+
167  TYPE & operator () ( unsigned i, unsigned j );
+
168 
+
169  GENERIC_CONTAINER_API_DLL
+
170  void
+
171  info( ostream_type & stream ) const;
+
172 
+
173  TYPE * data() { return &std::vector<TYPE>::front(); }
+
174  TYPE const * data() const { return &std::vector<TYPE>::front(); }
+
175  };
+
176 
+
177  // ---------------------------------------------------------------------------
+
178 
+
179  #ifndef GENERIC_CONTAINER_ON_WINDOWS
+
180  extern template class mat_type<int_type>;
+
181  extern template class mat_type<long_type>;
+
182  extern template class mat_type<real_type>;
+
183  extern template class mat_type<complex_type>;
+
184  #endif
+
185 
+ + + + +
190 
+
191  // ---------------------------------------------------------------------------
+
192 
+
193  GENERIC_CONTAINER_API_DLL
+
194  ostream_type & operator << ( ostream_type & s, vec_pointer_type const & v );
+
195 
+
196  GENERIC_CONTAINER_API_DLL
+
197  ostream_type & operator << ( ostream_type & s, vec_bool_type const & v );
+
198 
+
199  template <typename TYPE>
+
200  GENERIC_CONTAINER_API_DLL
+
201  ostream_type & operator << ( ostream_type & s, std::vector<TYPE> const & v );
+
202 
+
203  template <typename TYPE>
+
204  GENERIC_CONTAINER_API_DLL
+
205  ostream_type & operator << ( ostream_type & s, mat_type<TYPE> const & );
+
206 
+
207  // ---------------------------------------------------------------------------
+
208 
+
210  enum TypeAllowed {
+
211  // simple type
+
212  GC_NOTYPE=0,
+
213  GC_POINTER,
+
214  GC_BOOL,
+
215  GC_INTEGER,
+
216  GC_LONG,
+
217  GC_REAL,
+
218  GC_COMPLEX,
+
219  GC_STRING,
+
220 
+
221  // vector type
+
222  GC_VEC_POINTER,
+
223  GC_VEC_BOOL,
+
224  GC_VEC_INTEGER,
+
225  GC_VEC_LONG,
+
226  GC_VEC_REAL,
+
227  GC_VEC_COMPLEX,
+
228  GC_VEC_STRING,
+
229 
+
230  // matrix type
+
231  GC_MAT_INTEGER,
+
232  GC_MAT_LONG,
+
233  GC_MAT_REAL,
+
234  GC_MAT_COMPLEX,
+
235 
+
236  // complex type
+
237  GC_VECTOR,
+
238  GC_MAP
+
239  };
+
240 
+ +
267  public:
+
268  // import type
+
269  typedef GenericContainerNamespace::pointer_type pointer_type;
+
270  typedef GenericContainerNamespace::bool_type bool_type;
+
271  typedef GenericContainerNamespace::int_type int_type;
+
272  typedef GenericContainerNamespace::uint_type uint_type;
+
273  typedef GenericContainerNamespace::long_type long_type;
+
274  typedef GenericContainerNamespace::ulong_type ulong_type;
+
275  typedef GenericContainerNamespace::real_type real_type;
+
276  typedef GenericContainerNamespace::complex_type complex_type;
+
277  typedef GenericContainerNamespace::string_type string_type;
+
278  typedef GenericContainerNamespace::vec_pointer_type vec_pointer_type;
+
279  typedef GenericContainerNamespace::vec_bool_type vec_bool_type;
+
280  typedef GenericContainerNamespace::vec_int_type vec_int_type;
+
281  typedef GenericContainerNamespace::vec_uint_type vec_uint_type;
+
282  typedef GenericContainerNamespace::vec_long_type vec_long_type;
+
283  typedef GenericContainerNamespace::vec_ulong_type vec_ulong_type;
+
284  typedef GenericContainerNamespace::vec_real_type vec_real_type;
+
285  typedef GenericContainerNamespace::vec_complex_type vec_complex_type;
+
286  typedef GenericContainerNamespace::vec_string_type vec_string_type;
+
287  typedef GenericContainerNamespace::vector_type vector_type;
+
288  typedef GenericContainerNamespace::map_type map_type;
+ + + + +
293 
+
294  private:
+
295 
+
297  typedef union {
+
298  pointer_type p;
+
299  bool_type b;
+
300  int_type i;
+
301  long_type l;
+
302  real_type r;
+
303  complex_type * c;
+
304  string_type * s;
+
305 
+
306  vec_pointer_type * v_p;
+
307  vec_bool_type * v_b;
+
308  vec_int_type * v_i;
+
309  vec_long_type * v_l;
+
310  vec_real_type * v_r;
+
311  vec_complex_type * v_c;
+
312  vec_string_type * v_s;
+
313 
+
314  mat_int_type * m_i;
+
315  mat_long_type * m_l;
+
316  mat_real_type * m_r;
+
317  mat_complex_type * m_c;
+
318 
+
319  vector_type * v;
+
320  map_type * m;
+
321 
+
322  } DataStorage;
+
323 
+
324  DataStorage m_data;
+
325  TypeAllowed m_data_type;
+
326 
+
327  void allocate_string();
+
328  void allocate_complex();
+
329 
+
330  void allocate_vec_pointer( unsigned sz );
+
331  void allocate_vec_bool( unsigned sz );
+
332  void allocate_vec_int( unsigned sz );
+
333  void allocate_vec_long( unsigned sz );
+
334  void allocate_vec_real( unsigned sz );
+
335  void allocate_vec_complex( unsigned sz );
+
336  void allocate_mat_int( unsigned nr, unsigned nc );
+
337  void allocate_mat_long( unsigned nr, unsigned nc );
+
338  void allocate_mat_real( unsigned nr, unsigned nc );
+
339  void allocate_mat_complex( unsigned nr, unsigned nc );
+
340  void allocate_vec_string( unsigned sz );
+
341 
+
342  void allocate_vector( unsigned sz );
+
343  void allocate_map();
+
344 
+
345  void ck(char const [],TypeAllowed) const;
+
346  int ck(TypeAllowed) const;
+
347  void ck_or_set(char const [], TypeAllowed);
+
348 
+
349  #ifdef GENERIC_CONTAINER_ON_WINDOWS
+
350  bool simple_data() const;
+
351  bool simple_vec_data() const;
+
352  #else
+
353  bool simple_data() const { return m_data_type <= GC_STRING; }
+
354  bool simple_vec_data() const { return m_data_type <= GC_VEC_STRING; }
+
355  #endif
+
356 
+
357  public:
+
358 
+
360  GENERIC_CONTAINER_API_DLL
+ +
362 
+
364  GENERIC_CONTAINER_API_DLL
+
365  ~GenericContainer() { clear(); }
+
366 
+
368  GENERIC_CONTAINER_API_DLL
+
369  void clear();
+
370 
+
372 
+
373  GENERIC_CONTAINER_API_DLL
+
375  pointer_type & set_pointer( pointer_type value );
+
376 
+
378  GENERIC_CONTAINER_API_DLL
+
379  GenericContainer & free_pointer();
+
380 
+
382  GENERIC_CONTAINER_API_DLL
+
383  bool_type & set_bool( bool_type value );
+
384 
+
386  GENERIC_CONTAINER_API_DLL
+
387  int_type & set_int( int_type value );
+
388 
+
390  GENERIC_CONTAINER_API_DLL
+
391  long_type & set_long( long_type value );
+
392 
+
394  GENERIC_CONTAINER_API_DLL
+
395  real_type & set_real( real_type value );
+
396 
+
398  GENERIC_CONTAINER_API_DLL
+
399  complex_type & set_complex( complex_type & value );
+
400 
+
402  GENERIC_CONTAINER_API_DLL
+
403  complex_type & set_complex( real_type r, real_type i );
+
404 
+
406  GENERIC_CONTAINER_API_DLL
+
407  string_type & set_string( string_type const & value );
+
409 
+
411 
+
412 
+
417  GENERIC_CONTAINER_API_DLL
+
418  vec_pointer_type & set_vec_pointer( unsigned sz = 0 );
+
419 
+
425  GENERIC_CONTAINER_API_DLL
+
426  vec_pointer_type & set_vec_pointer( vec_pointer_type const & v );
+
427 
+
433  GENERIC_CONTAINER_API_DLL
+
434  vec_bool_type & set_vec_bool( unsigned sz = 0 );
+
435 
+
441  GENERIC_CONTAINER_API_DLL
+
442  vec_bool_type & set_vec_bool( vec_bool_type const & v );
+
443 
+
449  GENERIC_CONTAINER_API_DLL
+
450  vec_int_type & set_vec_int( unsigned sz = 0 );
+
451 
+
457  GENERIC_CONTAINER_API_DLL
+
458  vec_int_type & set_vec_int( vec_int_type const & v );
+
459 
+
465  GENERIC_CONTAINER_API_DLL
+
466  vec_long_type & set_vec_long( unsigned sz = 0 );
+
467 
+
473  GENERIC_CONTAINER_API_DLL
+
474  vec_long_type & set_vec_long( vec_long_type const & v );
+
475 
+
481  GENERIC_CONTAINER_API_DLL
+
482  vec_real_type & set_vec_real( unsigned sz = 0 );
+
483 
+
489  GENERIC_CONTAINER_API_DLL
+
490  vec_real_type & set_vec_real( vec_real_type const & v );
+
491 
+
492 
+
498  GENERIC_CONTAINER_API_DLL
+
499  vec_complex_type & set_vec_complex( unsigned sz = 0 );
+
500 
+
506  GENERIC_CONTAINER_API_DLL
+
507  vec_complex_type & set_vec_complex( vec_complex_type const & v );
+
508 
+
514  GENERIC_CONTAINER_API_DLL
+
515  vec_string_type & set_vec_string( unsigned sz = 0 );
+
516 
+
522  GENERIC_CONTAINER_API_DLL
+
523  vec_string_type & set_vec_string( vec_string_type const & v );
+
524 
+
530  GENERIC_CONTAINER_API_DLL
+
531  mat_int_type & set_mat_int( unsigned nr = 0, unsigned nc = 0 );
+
532 
+
538  GENERIC_CONTAINER_API_DLL
+
539  mat_int_type & set_mat_int( mat_int_type const & m );
+
540 
+
546  GENERIC_CONTAINER_API_DLL
+
547  mat_long_type & set_mat_long( unsigned nr = 0, unsigned nc = 0 );
+
548 
+
554  GENERIC_CONTAINER_API_DLL
+
555  mat_long_type & set_mat_long( mat_long_type const & m );
+
556 
+
562  GENERIC_CONTAINER_API_DLL
+
563  mat_real_type & set_mat_real( unsigned nr = 0, unsigned nc = 0 );
+
564 
+
570  GENERIC_CONTAINER_API_DLL
+
571  mat_real_type & set_mat_real( mat_real_type const & m );
+
572 
+
578  GENERIC_CONTAINER_API_DLL
+
579  mat_complex_type & set_mat_complex( unsigned nr = 0, unsigned nc = 0 );
+
580 
+
586  GENERIC_CONTAINER_API_DLL
+
587  mat_complex_type & set_mat_complex( mat_complex_type const & m );
+
588 
+
590  GENERIC_CONTAINER_API_DLL
+
591  void push_bool( bool );
+
592 
+
594  GENERIC_CONTAINER_API_DLL
+
595  void push_int( int_type );
+
596 
+
598  GENERIC_CONTAINER_API_DLL
+
599  void push_long( long_type );
+
600 
+
602  GENERIC_CONTAINER_API_DLL
+
603  void push_real( real_type );
+
604 
+
606  GENERIC_CONTAINER_API_DLL
+
607  void push_complex( complex_type & );
+
608 
+
610  GENERIC_CONTAINER_API_DLL
+
611  void push_complex( real_type re, real_type im );
+
612 
+
614  GENERIC_CONTAINER_API_DLL
+
615  void push_string( string_type const & );
+
616 
+
618 
+
620 
+
621 
+
625  GENERIC_CONTAINER_API_DLL
+
626  vector_type & set_vector( unsigned sz = 0 );
+
627 
+
629  GENERIC_CONTAINER_API_DLL
+
630  map_type & set_map();
+
632 
+
634 
+
635 
+
637 
+
663  GENERIC_CONTAINER_API_DLL
+
664  TypeAllowed get_type() const { return m_data_type; }
+
665 
+
667  GENERIC_CONTAINER_API_DLL
+
668  char const * get_type_name() const;
+
669 
+
671  GENERIC_CONTAINER_API_DLL
+
672  GenericContainer const & info( ostream_type & stream ) const;
+
673 
+
677  GENERIC_CONTAINER_API_DLL
+
678  unsigned get_num_elements() const;
+
679 
+
680  GENERIC_CONTAINER_API_DLL
+
681  unsigned get_numRows() const;
+
682 
+
683  GENERIC_CONTAINER_API_DLL
+
684  unsigned get_numCols() const;
+
685 
+
687  GENERIC_CONTAINER_API_DLL
+
688  real_type get_number() const;
+
689 
+
690  GENERIC_CONTAINER_API_DLL
+
691  complex_type get_complex_number() const;
+
692 
+
693  GENERIC_CONTAINER_API_DLL
+
694  void get_complex_number( real_type & re, real_type & im ) const;
+
695 
+
696  GENERIC_CONTAINER_API_DLL
+
697  void * get_pvoid( char const msg[] = nullptr ) const;
+
698 
+
699  GENERIC_CONTAINER_API_DLL
+
700  void ** get_ppvoid( char const msg[] = nullptr ) const;
+
701 
+
702  GENERIC_CONTAINER_API_DLL
+
703  int_type const * get_int_pointer() const;
+
704 
+
705  GENERIC_CONTAINER_API_DLL
+
706  int_type * get_int_pointer();
+
707 
+
708  GENERIC_CONTAINER_API_DLL
+
709  long_type const * get_long_pointer() const;
+
710 
+
711  GENERIC_CONTAINER_API_DLL
+
712  long_type * get_long_pointer();
+
713 
+
714  GENERIC_CONTAINER_API_DLL
+
715  real_type const * get_real_pointer() const;
+
716 
+
717  GENERIC_CONTAINER_API_DLL
+
718  real_type * get_real_pointer();
+
719 
+
720  GENERIC_CONTAINER_API_DLL
+
721  complex_type const * get_complex_pointer() const;
+
722 
+
723  GENERIC_CONTAINER_API_DLL
+
724  complex_type * get_complex_pointer();
+
725 
+
726  template <typename T>
+
727  GENERIC_CONTAINER_API_DLL
+
728  void
+
729  get_value( T & v, char const msg[] = "" ) const;
+
730 
+
731  #ifdef GENERIC_CONTAINER_ON_WINDOWS
+
732  template <typename T>
+
733  T& get_pointer()
+
734  { ck("get_pointer",GC_POINTER); return *static_cast<T*>(get_ppvoid()); }
+
735 
+
736  template <typename T>
+
737  T get_pointer() const
+
738  { ck("get_pointer",GC_POINTER); return static_cast<T>(get_pvoid()); }
+
739  #else
+
740  template <typename T>
+
741  T& get_pointer()
+
742  { ck("get_pointer",GC_POINTER); return *static_cast<T*>(&(m_data.p)); }
+
743 
+
744  template <typename T>
+
745  T get_pointer() const
+
746  { ck("get_pointer",GC_POINTER); return static_cast<T>(m_data.p); }
+
747  #endif
+
748 
+
749  GENERIC_CONTAINER_API_DLL
+
750  bool_type
+
751  get_map_bool( char const msg[] ) const {
+
752  bool_type ret = false;
+
753  if ( exists(msg) ) ret = (*this)(msg).get_bool();
+
754  return ret;
+
755  }
+
756 
+
757  GENERIC_CONTAINER_API_DLL
+
758  bool_type & get_bool( char const msg[] = nullptr );
+
759 
+
760  GENERIC_CONTAINER_API_DLL
+
761  bool_type const & get_bool( char const msg[] = nullptr ) const;
+
763 
+
764  GENERIC_CONTAINER_API_DLL
+
765  int_type & get_int( char const msg[] = nullptr );
+
766 
+
767  GENERIC_CONTAINER_API_DLL
+
768  int_type const & get_int( char const msg[] = nullptr ) const;
+
770 
+
771  GENERIC_CONTAINER_API_DLL
+
772  long_type & get_long( char const msg[] = nullptr );
+
773 
+
774  GENERIC_CONTAINER_API_DLL
+
775  long_type const & get_long( char const msg[] = nullptr ) const;
+
777 
+
778  GENERIC_CONTAINER_API_DLL
+
779  int_type get_as_int( char const msg[] = nullptr ) const;
+
780 
+
781  GENERIC_CONTAINER_API_DLL
+
782  uint_type get_as_uint( char const msg[] = nullptr ) const;
+
783 
+
784  GENERIC_CONTAINER_API_DLL
+
785  long_type get_as_long( char const msg[] = nullptr ) const;
+
786 
+
787  GENERIC_CONTAINER_API_DLL
+
788  ulong_type get_as_ulong( char const msg[] = nullptr ) const;
+
789 
+
790  GENERIC_CONTAINER_API_DLL
+
791  real_type & get_real( char const msg[] = nullptr );
+
792 
+
793  GENERIC_CONTAINER_API_DLL
+
794  real_type const & get_real( char const msg[] = nullptr ) const;
+
796 
+
797  GENERIC_CONTAINER_API_DLL
+
798  complex_type & get_complex( char const msg[] = nullptr );
+
799 
+
800  GENERIC_CONTAINER_API_DLL
+
801  complex_type const & get_complex( char const msg[] = nullptr ) const;
+
803 
+
804  GENERIC_CONTAINER_API_DLL
+
805  string_type & get_string( char const msg[] = nullptr );
+
806 
+
807  GENERIC_CONTAINER_API_DLL
+
808  string_type const & get_string( char const msg[] = nullptr ) const;
+
810 
+
811 
+
813 
+
814  GENERIC_CONTAINER_API_DLL
+
815  vector_type & get_vector( char const msg[] = nullptr );
+
816 
+
817  GENERIC_CONTAINER_API_DLL
+
818  vector_type const & get_vector( char const msg[] = nullptr ) const;
+
820 
+
821  GENERIC_CONTAINER_API_DLL
+
822  vec_pointer_type & get_vec_pointer( char const msg[] = nullptr );
+
823 
+
824  GENERIC_CONTAINER_API_DLL
+
825  vec_pointer_type const & get_vec_pointer( char const msg[] = nullptr ) const;
+
827 
+
828  GENERIC_CONTAINER_API_DLL
+
829  vec_bool_type & get_vec_bool( char const msg[] = nullptr );
+
830 
+
831  GENERIC_CONTAINER_API_DLL
+
832  vec_bool_type const & get_vec_bool( char const msg[] = nullptr ) const;
+
834 
+
835  GENERIC_CONTAINER_API_DLL
+
836  vec_int_type & get_vec_int( char const msg[] = nullptr );
+
837 
+
838  GENERIC_CONTAINER_API_DLL
+
839  vec_int_type const & get_vec_int( char const msg[] = nullptr ) const;
+
841 
+
842  GENERIC_CONTAINER_API_DLL
+
843  vec_long_type & get_vec_long( char const msg[] = nullptr );
+
844 
+
845  GENERIC_CONTAINER_API_DLL
+
846  vec_long_type const & get_vec_long( char const msg[] = nullptr ) const;
+
848 
+
849  GENERIC_CONTAINER_API_DLL
+
850  vec_real_type & get_vec_real( char const msg[] = nullptr );
+
851 
+
852  GENERIC_CONTAINER_API_DLL
+
853  vec_real_type const & get_vec_real( char const msg[] = nullptr ) const;
+
855 
+
856  GENERIC_CONTAINER_API_DLL
+
857  vec_complex_type & get_vec_complex( char const msg[] = nullptr );
+
858 
+
859  GENERIC_CONTAINER_API_DLL
+
860  vec_complex_type const & get_vec_complex( char const msg[] = nullptr ) const;
+
862 
+
863  GENERIC_CONTAINER_API_DLL
+
864  mat_int_type & get_mat_int( char const msg[] = nullptr );
+
865 
+
866  GENERIC_CONTAINER_API_DLL
+
867  mat_int_type const & get_mat_int( char const msg[] = nullptr ) const;
+
869 
+
870  GENERIC_CONTAINER_API_DLL
+
871  mat_long_type & get_mat_long( char const msg[] = nullptr );
+
872 
+
873  GENERIC_CONTAINER_API_DLL
+
874  mat_long_type const & get_mat_long( char const msg[] = nullptr ) const;
+
876 
+
877  GENERIC_CONTAINER_API_DLL
+
878  mat_real_type & get_mat_real( char const msg[] = nullptr );
+
879 
+
880  GENERIC_CONTAINER_API_DLL
+
881  mat_real_type const & get_mat_real( char const msg[] = nullptr ) const;
+
883 
+
884  GENERIC_CONTAINER_API_DLL
+
885  mat_complex_type & get_mat_complex( char const msg[] = nullptr );
+
886 
+
887  GENERIC_CONTAINER_API_DLL
+
888  mat_complex_type const & get_mat_complex( char const msg[] = nullptr ) const;
+
890 
+
891  GENERIC_CONTAINER_API_DLL
+
892  vec_string_type & get_vec_string( char const msg[] = nullptr );
+
893 
+
894  GENERIC_CONTAINER_API_DLL
+
895  vec_string_type const & get_vec_string( char const msg[] = nullptr ) const;
+
897 
+
898 
+
900  GENERIC_CONTAINER_API_DLL
+
901  void copyto_vec_int( vec_int_type & v, char const msg[] = "" ) const;
+
902 
+
903  GENERIC_CONTAINER_API_DLL
+
904  void copyto_vec_uint( vec_uint_type & v, char const msg[] = "" ) const;
+
905 
+
906  GENERIC_CONTAINER_API_DLL
+
907  void copyto_vec_long( vec_long_type & v, char const msg[] = "" ) const;
+
908 
+
909  GENERIC_CONTAINER_API_DLL
+
910  void copyto_vec_ulong( vec_ulong_type & v, char const msg[] = "" ) const;
+
911 
+
912  GENERIC_CONTAINER_API_DLL
+
913  void copyto_vec_real( vec_real_type & v, char const msg[] = "" ) const;
+
914 
+
915  GENERIC_CONTAINER_API_DLL
+
916  void copyto_vec_complex( vec_complex_type & v, char const msg[] = "" ) const;
+
917 
+
918  GENERIC_CONTAINER_API_DLL
+
919  void copyto_vec_string( vec_string_type & v, char const msg[] = "" ) const;
+
921 
+
923 
+
924  GENERIC_CONTAINER_API_DLL
+
926  real_type get_number_at( unsigned i ) const;
+
927 
+
928  GENERIC_CONTAINER_API_DLL
+
929  complex_type get_complex_number_at( unsigned i ) const;
+
930 
+
931  GENERIC_CONTAINER_API_DLL
+
932  void get_complex_number_at( unsigned i, real_type & re, real_type & im ) const;
+
933 
+
934  template <typename T>
+
935  T& get_pointer_at( unsigned i )
+
936  { return (*this)[i].get_pointer<T>(); }
+
937 
+
938  template <typename T>
+
939  T get_pointer_at( unsigned i ) const
+
940  { return (*this)[i].get_pointer<T>(); }
+
942 
+
943  GENERIC_CONTAINER_API_DLL
+
944  bool_type get_bool_at( unsigned i );
+
945 
+
946  GENERIC_CONTAINER_API_DLL
+
947  bool_type get_bool_at( unsigned i, char const msg[] ) const;
+
949 
+
950  GENERIC_CONTAINER_API_DLL
+
951  int_type & get_int_at( unsigned i );
+
952 
+
953  GENERIC_CONTAINER_API_DLL
+
954  int_type const & get_int_at( unsigned i, char const msg[] ) const;
+
956 
+
957  GENERIC_CONTAINER_API_DLL
+
958  long_type & get_long_at( unsigned i );
+
959 
+
960  GENERIC_CONTAINER_API_DLL
+
961  long_type const & get_long_at( unsigned i, char const msg[] ) const;
+
963 
+
964  GENERIC_CONTAINER_API_DLL
+
965  real_type & get_real_at( unsigned i );
+
966 
+
967  GENERIC_CONTAINER_API_DLL
+
968  real_type const & get_real_at( unsigned i, char const msg[] ) const;
+
970 
+
971  GENERIC_CONTAINER_API_DLL
+
972  complex_type & get_complex_at( unsigned i );
+
973 
+
974  GENERIC_CONTAINER_API_DLL
+
975  complex_type const & get_complex_at( unsigned i, char const msg[] ) const;
+
977 
+
978  GENERIC_CONTAINER_API_DLL
+
979  int_type & get_int_at( unsigned i, unsigned j );
+
980 
+
981  GENERIC_CONTAINER_API_DLL
+
982  int_type const & get_int_at( unsigned i, unsigned j, char const msg[] ) const;
+
984 
+
985  GENERIC_CONTAINER_API_DLL
+
986  long_type & get_long_at( unsigned i, unsigned j );
+
987 
+
988  GENERIC_CONTAINER_API_DLL
+
989  long_type const & get_long_at( unsigned i, unsigned j, char const msg[] ) const;
+
991 
+
992  GENERIC_CONTAINER_API_DLL
+
993  real_type & get_real_at( unsigned i, unsigned j );
+
994 
+
995  GENERIC_CONTAINER_API_DLL
+
996  real_type const & get_real_at( unsigned i, unsigned j, char const msg[] ) const;
+
998 
+
999  GENERIC_CONTAINER_API_DLL
+
1000  complex_type & get_complex_at( unsigned i, unsigned j );
+
1001 
+
1002  GENERIC_CONTAINER_API_DLL
+
1003  complex_type const & get_complex_at( unsigned i, unsigned j, char const msg[] ) const;
+
1005 
+
1006  GENERIC_CONTAINER_API_DLL
+
1007  string_type & get_string_at( unsigned i );
+
1008 
+
1009  GENERIC_CONTAINER_API_DLL
+
1010  string_type const & get_string_at( unsigned i, char const msg[] ) const;
+
1012 
+
1013  GENERIC_CONTAINER_API_DLL
+
1014  GenericContainer & get_gc_at( unsigned i );
+
1015 
+
1016  GENERIC_CONTAINER_API_DLL
+
1017  GenericContainer const & get_gc_at( unsigned i, char const msg[] ) const;
+
1019 
+
1020 
+
1022 
+
1023  GENERIC_CONTAINER_API_DLL
+
1024  map_type & get_map( char const msg[] = nullptr );
+
1025 
+
1026  GENERIC_CONTAINER_API_DLL
+
1027  map_type const & get_map( char const msg[] = nullptr ) const;
+
1029 
+
1030 
+
1032 
+
1033 
+
1034  GENERIC_CONTAINER_API_DLL
+
1035  GenericContainer & operator [] ( unsigned i );
+
1036 
+
1037  GENERIC_CONTAINER_API_DLL
+
1038  GenericContainer const & operator [] ( unsigned i ) const;
+
1044  GENERIC_CONTAINER_API_DLL
+
1045  GenericContainer & operator [] ( std::string const & s );
+
1046 
+
1047  GENERIC_CONTAINER_API_DLL
+
1048  GenericContainer const & operator [] ( std::string const & s ) const;
+
1054  GENERIC_CONTAINER_API_DLL
+
1055  GenericContainer & operator () ( unsigned i, char const msg[] = nullptr );
+
1056 
+
1057  GENERIC_CONTAINER_API_DLL
+
1058  GenericContainer const & operator () ( unsigned i, char const msg[] = nullptr ) const;
+
1059 
+
1065  GENERIC_CONTAINER_API_DLL
+
1066  GenericContainer & operator () ( std::string const & s, char const msg[] = nullptr );
+
1067  GENERIC_CONTAINER_API_DLL
+
1068  GenericContainer const & operator () ( std::string const & s, char const msg[] = nullptr ) const;
+
1069 
+
1076 
+
1078 
+
1079 
+
1081  GENERIC_CONTAINER_API_DLL
+
1082  void set( bool const & a ) { this->set_bool(a); }
+
1083 
+
1085  GENERIC_CONTAINER_API_DLL
+
1086  void set( uint_type const & a ) { this->set_int(int_type(a)); }
+
1087 
+
1089  GENERIC_CONTAINER_API_DLL
+
1090  void set( int_type const & a ) { this->set_int(a); }
+
1091 
+
1093  GENERIC_CONTAINER_API_DLL
+
1094  void set( ulong_type const & a ) { this->set_long(long_type(a)); }
+
1095 
+
1097  GENERIC_CONTAINER_API_DLL
+
1098  void set( long_type const & a ) { this->set_long(a); }
+
1099 
+
1101  GENERIC_CONTAINER_API_DLL
+
1102  void set( float const & a ) { this->set_real(real_type(a)); }
+
1103 
+
1105  GENERIC_CONTAINER_API_DLL
+
1106  void set( double const & a ) { this->set_real(real_type(a)); }
+
1107 
+
1109  GENERIC_CONTAINER_API_DLL
+
1110  void set( std::complex<float> const & a )
+
1111  { this->set_complex(real_type(a.real()),real_type(a.imag())); }
+
1112 
+
1114  GENERIC_CONTAINER_API_DLL
+
1115  void set( std::complex<double> const & a )
+
1116  { this->set_complex(real_type(a.real()),real_type(a.imag())); }
+
1117 
+
1119  GENERIC_CONTAINER_API_DLL
+
1120  void set( char const a[] ) { this->set_string(a); }
+
1121 
+
1123  GENERIC_CONTAINER_API_DLL
+
1124  void set( std::string const & a ) { this->set_string(a); }
+
1125 
+
1127  GENERIC_CONTAINER_API_DLL
+
1128  void set( pointer_type a ) { this->set_pointer(a); }
+
1129 
+
1131 
+
1134 
+
1135 
+
1137  GENERIC_CONTAINER_API_DLL
+
1138  GenericContainer & operator = ( bool const & a )
+
1139  { this->set_bool(a); return * this; }
+
1140 
+
1142  GENERIC_CONTAINER_API_DLL
+
1143  GenericContainer & operator = ( uint_type const & a )
+
1144  { this->set_int(int_type(a)); return * this; }
+
1145 
+
1147  GENERIC_CONTAINER_API_DLL
+
1148  GenericContainer & operator = ( int_type const & a )
+
1149  { this->set_int(a); return * this; }
+
1150 
+
1152  GENERIC_CONTAINER_API_DLL
+
1153  GenericContainer & operator = ( ulong_type const & a )
+
1154  { this->set_long(long_type(a)); return * this; }
+
1155 
+
1157  GENERIC_CONTAINER_API_DLL
+
1158  GenericContainer & operator = ( long_type const & a )
+
1159  { this->set_long(a); return * this; }
+
1160 
+
1162  GENERIC_CONTAINER_API_DLL
+
1163  GenericContainer & operator = ( float const & a )
+
1164  { this->set_real(real_type(a)); return * this; }
+
1165 
+
1167  GENERIC_CONTAINER_API_DLL
+
1168  GenericContainer & operator = ( double const & a )
+
1169  { this->set_real(real_type(a)); return * this; }
+
1170 
+
1172  GENERIC_CONTAINER_API_DLL
+
1173  GenericContainer & operator = ( std::complex<float> const & a )
+
1174  { this->set_complex(real_type(a.real()),real_type(a.imag())); return * this; }
+
1175 
+
1177  GENERIC_CONTAINER_API_DLL
+
1178  GenericContainer & operator = ( std::complex<double> const & a )
+
1179  { this->set_complex(real_type(a.real()),real_type(a.imag())); return * this; }
+
1180 
+
1182  GENERIC_CONTAINER_API_DLL
+
1183  GenericContainer & operator = ( vec_bool_type const & a );
+
1184 
+
1186  GENERIC_CONTAINER_API_DLL
+
1187  GenericContainer & operator = ( vec_int_type const & a );
+
1188 
+
1190  GENERIC_CONTAINER_API_DLL
+
1191  GenericContainer & operator = ( vec_long_type const & a );
+
1192 
+
1194  GENERIC_CONTAINER_API_DLL
+
1195  GenericContainer & operator = ( vec_real_type const & a );
+
1196 
+
1198  GENERIC_CONTAINER_API_DLL
+
1199  GenericContainer & operator = ( vec_complex_type const & a );
+
1200 
+
1202  GENERIC_CONTAINER_API_DLL
+
1203  GenericContainer & operator = ( vec_string_type const & a );
+
1204 
+
1206  GENERIC_CONTAINER_API_DLL
+
1207  GenericContainer & operator = ( mat_int_type const & a );
+
1208 
+
1210  GENERIC_CONTAINER_API_DLL
+
1211  GenericContainer & operator = ( mat_long_type const & a );
+
1212 
+
1214  GENERIC_CONTAINER_API_DLL
+
1215  GenericContainer & operator = ( mat_real_type const & a );
+
1216 
+
1218  GENERIC_CONTAINER_API_DLL
+
1219  GenericContainer & operator = ( mat_complex_type const & a );
+
1220 
+
1222  GENERIC_CONTAINER_API_DLL
+
1223  GenericContainer & operator = ( char const a[] )
+
1224  { this->set_string(a); return * this; }
+
1225 
+
1227  GENERIC_CONTAINER_API_DLL
+
1228  GenericContainer & operator = ( std::string const & a )
+
1229  { this->set_string(a); return * this; }
+
1230 
+
1232  GENERIC_CONTAINER_API_DLL
+
1233  GenericContainer & operator = ( pointer_type a )
+
1234  { this->set_pointer(a); return * this; }
+
1235 
+
1237  GENERIC_CONTAINER_API_DLL
+
1238  GenericContainer const & operator = ( GenericContainer const & a )
+
1239  { this->load( a ); return * this; }
+
1240 
+
1242  GENERIC_CONTAINER_API_DLL
+
1243  void load( GenericContainer const & a );
+
1245 
+
1247 
+
1248  GENERIC_CONTAINER_API_DLL
+
1250  GenericContainer const & promote_to_int();
+
1251 
+
1253  GENERIC_CONTAINER_API_DLL
+
1254  GenericContainer const & promote_to_long();
+
1255 
+
1257  GENERIC_CONTAINER_API_DLL
+
1258  GenericContainer const & promote_to_real();
+
1259 
+
1261  GENERIC_CONTAINER_API_DLL
+
1262  GenericContainer const & promote_to_complex();
+
1263 
+
1265  GENERIC_CONTAINER_API_DLL
+
1266  GenericContainer const & promote_to_vec_int();
+
1267 
+
1269  GENERIC_CONTAINER_API_DLL
+
1270  GenericContainer const & promote_to_vec_long();
+
1271 
+
1273  GENERIC_CONTAINER_API_DLL
+
1274  GenericContainer const & promote_to_vec_real();
+
1275 
+
1277  GENERIC_CONTAINER_API_DLL
+
1278  GenericContainer const & promote_to_vec_complex();
+
1279 
+
1281  GENERIC_CONTAINER_API_DLL
+
1282  GenericContainer const & promote_to_mat_int();
+
1283 
+
1285  GENERIC_CONTAINER_API_DLL
+
1286  GenericContainer const & promote_to_mat_long();
+
1287 
+
1289  GENERIC_CONTAINER_API_DLL
+
1290  GenericContainer const & promote_to_mat_real();
+
1291 
+
1293  GENERIC_CONTAINER_API_DLL
+
1294  GenericContainer const & promote_to_mat_complex();
+
1295 
+
1297  GENERIC_CONTAINER_API_DLL
+
1298  GenericContainer const & promote_to_vector();
+
1299 
+
1301 
+
1303 
+
1304 
+
1306  GENERIC_CONTAINER_API_DLL
+
1307  GenericContainer( bool const & a )
+
1308  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1309 
+
1311  GENERIC_CONTAINER_API_DLL
+
1312  GenericContainer( uint_type const & a )
+
1313  : m_data_type(GC_NOTYPE) { *this = a; }
+
1314 
+
1316  GENERIC_CONTAINER_API_DLL
+
1317  GenericContainer( int_type const & a )
+
1318  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1319 
+
1321  GENERIC_CONTAINER_API_DLL
+
1322  GenericContainer( ulong_type const & a )
+
1323  : m_data_type(GC_NOTYPE) { *this = a; }
+
1324 
+
1326  GENERIC_CONTAINER_API_DLL
+
1327  GenericContainer( long_type const & a )
+
1328  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1329 
+
1331  GENERIC_CONTAINER_API_DLL
+
1332  GenericContainer( float const & a )
+
1333  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1334 
+
1336  GENERIC_CONTAINER_API_DLL
+
1337  GenericContainer( double const & a )
+
1338  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1339 
+
1341  GENERIC_CONTAINER_API_DLL
+
1342  GenericContainer( std::complex<float> const & a )
+
1343  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1344 
+
1346  GENERIC_CONTAINER_API_DLL
+
1347  GenericContainer( std::complex<double> const & a )
+
1348  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1349 
+
1351  GENERIC_CONTAINER_API_DLL
+
1352  GenericContainer( char const a[] )
+
1353  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1354 
+
1356  GENERIC_CONTAINER_API_DLL
+
1357  GenericContainer( std::string const & a )
+
1358  : m_data_type(GC_NOTYPE) { this->operator=(a); }
+
1359 
+
1361  GENERIC_CONTAINER_API_DLL
+
1362  GenericContainer( pointer_type a )
+
1363  : m_data_type(GC_NOTYPE) { this->set_pointer(a); }
+
1364 
+
1366  GENERIC_CONTAINER_API_DLL
+ +
1368  : m_data_type(GC_NOTYPE) { this->load(gc); }
+
1370 
+
1372 
+
1374  GENERIC_CONTAINER_API_DLL
+
1375  bool exists( std::string const & s ) const;
+
1376 
+
1377  GENERIC_CONTAINER_API_DLL
+
1378  bool get_if_exists( char const field[], bool & value ) const;
+
1379 
+
1380  GENERIC_CONTAINER_API_DLL
+
1381  bool get_if_exists( char const field[], int_type & value ) const;
+
1382 
+
1383  GENERIC_CONTAINER_API_DLL
+
1384  bool get_if_exists( char const field[], uint_type & value ) const;
+
1385 
+
1386  GENERIC_CONTAINER_API_DLL
+
1387  bool get_if_exists( char const field[], long_type & value ) const;
+
1388 
+
1389  GENERIC_CONTAINER_API_DLL
+
1390  bool get_if_exists( char const field[], ulong_type & value ) const;
+
1391 
+
1392  GENERIC_CONTAINER_API_DLL
+
1393  bool get_if_exists( char const field[], real_type & value ) const;
+
1394 
+
1395  GENERIC_CONTAINER_API_DLL
+
1396  bool get_if_exists( char const field[], complex_type & value ) const;
+
1397 
+
1398  GENERIC_CONTAINER_API_DLL
+
1399  bool get_if_exists( char const field[], string_type & value ) const;
+
1401 
+
1403 
+
1404 
+
1406  GENERIC_CONTAINER_API_DLL
+
1407  void
+
1408  print_content_types(
+
1409  ostream_type & stream,
+
1410  std::string const & prefix = "",
+
1411  std::string const & indent = " "
+
1412  ) const;
+
1413 
+
1415  GENERIC_CONTAINER_API_DLL
+
1416  void
+
1417  dump(
+
1418  ostream_type & stream,
+
1419  std::string const & prefix = "",
+
1420  std::string const & indent = " "
+
1421  ) const;
+
1422 
+
1423  GENERIC_CONTAINER_API_DLL
+
1424  void
+
1425  print(
+
1426  ostream_type & stream,
+
1427  std::string const & prefix = "",
+
1428  std::string const & indent = " "
+
1429  ) const {
+
1430  this->dump( stream, prefix, indent );
+
1431  }
+
1432 
+
1434  GENERIC_CONTAINER_API_DLL
+
1435  void to_yaml( ostream_type &, std::string const & prefix = "" ) const;
+
1436 
+
1460  GENERIC_CONTAINER_API_DLL
+
1461  GenericContainer const &
+
1462  writeFormattedData( ostream_type & stream, char const delimiter = '\t' ) const;
+
1463 
+
1480  GENERIC_CONTAINER_API_DLL
+
1481  GenericContainer &
+
1482  readFormattedData(
+
1483  std::istream & stream,
+
1484  char const commentChars[] = "#%",
+
1485  char const delimiters[] = " \t"
+
1486  );
+
1487 
+
1488  GENERIC_CONTAINER_API_DLL
+
1489  GenericContainer &
+
1490  readFormattedData(
+
1491  char const fname[],
+
1492  char const commentChars[] = "#%",
+
1493  char const delimiters[] = " \t"
+
1494  );
+
1495 
+
1496  GENERIC_CONTAINER_API_DLL
+
1497  static
+
1498  void
+
1499  exception( char const msg[] ) GC_NO_RETURN;
+
1500 
+
1501  };
+
1502 
+
1503  // -------------------------------------------------------
+
1504  // support functions
+
1505  GENERIC_CONTAINER_API_DLL
+
1506  void
+
1507  writeTable(
+
1508  vec_string_type const & headers,
+
1509  vector_type const & data,
+
1510  ostream_type & stream,
+
1511  char const delimiter = '\t'
+
1512  );
+
1513 
+
1514  GENERIC_CONTAINER_API_DLL
+
1515  void
+
1516  writeTable(
+
1517  vec_string_type const & headers,
+
1518  mat_real_type const & data,
+
1519  ostream_type & stream,
+
1520  char const delimiter = '\t'
+
1521  );
+
1522 
+
1523  GENERIC_CONTAINER_API_DLL
+
1524  void
+
1525  writeTableFormatted(
+
1526  vec_string_type const & headers,
+
1527  vector_type const & data,
+
1528  ostream_type & stream
+
1529  );
+
1530 
+
1531  GENERIC_CONTAINER_API_DLL
+
1532  void
+
1533  writeTableFormatted(
+
1534  vec_string_type const & headers,
+
1535  mat_real_type const & data,
+
1536  ostream_type & stream
+
1537  );
+
1538 
+
1539  // -------------------------------------------------------
+ +
1541  private:
+
1542  enum {
+
1543  GENERIC_CONTAINER_OK = 0,
+
1544  GENERIC_CONTAINER_BAD_TYPE = 1,
+
1545  GENERIC_CONTAINER_NO_DATA = 2,
+
1546  GENERIC_CONTAINER_NOT_EMPTY = 3,
+
1547  GENERIC_CONTAINER_BAD_HEAD = 4
+
1548  };
+
1549 
+
1550  GenericContainer data;
+
1551  std::deque<GenericContainer*> head;
+
1552 
+
1553  map_type * ptr_map;
+
1554  map_type::iterator map_iterator;
+
1555 
+
1556  public:
+
1557 
+
1558  GENERIC_CONTAINER_API_DLL GenericContainerExplorer() { head.push_back(&data); }
+
1559  GENERIC_CONTAINER_API_DLL ~GenericContainerExplorer() {}
+
1560 
+ +
1562  top() {
+
1563  GC_ASSERT(
+
1564  head.size() > 0,
+
1565  "GenericContainerExplorer::top() empty stack!"
+
1566  )
+
1567  GC_ASSERT(
+
1568  head.back() != nullptr,
+
1569  "GenericContainerExplorer::top() bad top pointer!"
+
1570  )
+
1571  return head.back();
+
1572  }
+
1573 
+
1574  GenericContainer const *
+
1575  top() const {
+
1576  GC_ASSERT(
+
1577  head.size() > 0,
+
1578  "GenericContainerExplorer::top() empty stack!"
+
1579  )
+
1580  GC_ASSERT(
+
1581  head.back() != nullptr,
+
1582  "GenericContainerExplorer::top() bad top pointer!"
+
1583  )
+
1584  return head.back();
+
1585  }
+
1586 
+
1587  void * mem_ptr() { return &data; }
+
1588  void const * mem_ptr() const { return &data; }
+
1589 
+
1590  GENERIC_CONTAINER_API_DLL
+
1591  int
+
1592  check( int data_type ) const {
+
1593  if ( head.empty() ) return GENERIC_CONTAINER_BAD_HEAD;
+
1594  if ( data_type == head.back()->get_type() ) {
+
1595  if ( head.back() == nullptr ) return GENERIC_CONTAINER_NO_DATA;
+
1596  return GENERIC_CONTAINER_OK;
+
1597  } else {
+
1598  return GENERIC_CONTAINER_BAD_TYPE;
+
1599  }
+
1600  }
+
1601 
+
1602  GENERIC_CONTAINER_API_DLL
+
1603  int
+
1604  check_no_data( int data_type ) const {
+
1605  if ( head.empty() ) return GENERIC_CONTAINER_BAD_HEAD;
+
1606  if ( GC_NOTYPE == head.back()->get_type() ||
+
1607  data_type == head.back()->get_type() ) return GENERIC_CONTAINER_OK;
+
1608  return GENERIC_CONTAINER_NOT_EMPTY;
+
1609  }
+
1610 
+
1611  GENERIC_CONTAINER_API_DLL
+
1612  int
+
1613  pop() {
+
1614  if ( head.empty() ) return GENERIC_CONTAINER_NO_DATA;
+
1615  head.pop_back();
+
1616  return GENERIC_CONTAINER_OK;
+
1617  }
+
1618 
+
1619  GENERIC_CONTAINER_API_DLL
+
1620  int
+
1621  push( GenericContainer * gc ) {
+
1622  head.push_back( gc );
+
1623  return GENERIC_CONTAINER_OK;
+
1624  }
+
1625 
+
1626  GENERIC_CONTAINER_API_DLL
+
1627  int
+
1628  push_vector_position( unsigned pos ) {
+
1629  int ok = check( GC_VECTOR );
+
1630  if ( ok == GENERIC_CONTAINER_OK ) {
+
1631  GenericContainer * gc = &((*head.back())[pos]);
+
1632  head.push_back( gc );
+
1633  }
+
1634  return ok;
+
1635  }
+
1636 
+
1637  GENERIC_CONTAINER_API_DLL
+
1638  int
+
1639  push_map_position( char const pos[] ) {
+
1640  int ok = check( GC_MAP );
+
1641  if ( ok == GENERIC_CONTAINER_OK ) {
+
1642  GenericContainer * gc = &((*head.back())[pos]);
+
1643  head.push_back( gc );
+
1644  }
+
1645  return ok;
+
1646  }
+
1647 
+
1648  GENERIC_CONTAINER_API_DLL
+
1649  int
+
1650  init_map_key() {
+
1651  int ok = check( GC_MAP );
+
1652  if ( ok == GENERIC_CONTAINER_OK ) {
+
1653  ptr_map = &head.back()->get_map();
+
1654  map_iterator = ptr_map->begin();
+
1655  }
+
1656  return ok;
+
1657  }
+
1658 
+
1659  GENERIC_CONTAINER_API_DLL
+
1660  char const *
+
1661  next_map_key() {
+
1662  if ( map_iterator != ptr_map->end() )
+
1663  return map_iterator++->first.c_str();
+
1664  else
+
1665  return nullptr;
+
1666  }
+
1667 
+
1668  GENERIC_CONTAINER_API_DLL
+
1669  int
+
1670  reset() {
+
1671  if ( head.empty() ) return GENERIC_CONTAINER_NO_DATA;
+
1672  while ( head.size() > 1 ) head.pop_back();
+
1673  return GENERIC_CONTAINER_OK;
+
1674  }
+
1675 
+
1676  };
+
1677 }
+
1678 
+
1679 // do not define alias GC if use X11
+
1680 #ifndef XlibSpecificationRelease
+
1681 namespace GC = GenericContainerNamespace;
+
1682 #endif
+
1683 
+
1684 #ifdef __clang__
+
1685 #pragma clang diagnostic pop
+
1686 #endif
+
1687 
+
1688 #endif
+
1689 
+
1690 //
+
1691 // eof: GenericContainer.hh
+
1692 //
+
Definition: GenericContainer.hh:1540
+
GenericContainer is a class which permit to store eterogeneous data:
Definition: GenericContainer.hh:266
+
GENERIC_CONTAINER_API_DLL GenericContainer(float const &a)
Construct a generic container storing a floating point number.
Definition: GenericContainer.hh:1332
+
GENERIC_CONTAINER_API_DLL void set(std::string const &a)
Assign a string to the generic container.
Definition: GenericContainer.hh:1124
+
GENERIC_CONTAINER_API_DLL void set(char const a[])
Assign a string to the generic container.
Definition: GenericContainer.hh:1120
+
GENERIC_CONTAINER_API_DLL void set(std::complex< float > const &a)
Assign a floating point number to the generic container.
Definition: GenericContainer.hh:1110
+
GENERIC_CONTAINER_API_DLL GenericContainer(std::string const &a)
Construct a generic container storing a string.
Definition: GenericContainer.hh:1357
+
GENERIC_CONTAINER_API_DLL void set(bool const &a)
Assign a boolean to the generic container.
Definition: GenericContainer.hh:1082
+
GENERIC_CONTAINER_API_DLL void set(int_type const &a)
Assign an integer to the generic container.
Definition: GenericContainer.hh:1090
+
GENERIC_CONTAINER_API_DLL GenericContainer(ulong_type const &a)
Construct a generic container storing an integer.
Definition: GenericContainer.hh:1322
+
GENERIC_CONTAINER_API_DLL GenericContainer(double const &a)
Construct a generic container storing a floating point number.
Definition: GenericContainer.hh:1337
+
GENERIC_CONTAINER_API_DLL void set(double const &a)
Assign a floating point number to the generic container.
Definition: GenericContainer.hh:1106
+
GENERIC_CONTAINER_API_DLL GenericContainer(int_type const &a)
Construct a generic container storing an integer.
Definition: GenericContainer.hh:1317
+
GENERIC_CONTAINER_API_DLL GenericContainer(GenericContainer const &gc)
Construct a generic container copying container gc
Definition: GenericContainer.hh:1367
+
GENERIC_CONTAINER_API_DLL GenericContainer(std::complex< double > const &a)
Construct a generic container storing a complex floating point number.
Definition: GenericContainer.hh:1347
+
GENERIC_CONTAINER_API_DLL TypeAllowed get_type() const
Return an integer representing the type of data stored.
Definition: GenericContainer.hh:664
+
GENERIC_CONTAINER_API_DLL void set(ulong_type const &a)
Assign an integer to the generic container.
Definition: GenericContainer.hh:1094
+
GENERIC_CONTAINER_API_DLL GenericContainer(uint_type const &a)
Construct a generic container storing an integer.
Definition: GenericContainer.hh:1312
+
GENERIC_CONTAINER_API_DLL void set(uint_type const &a)
Assign an integer to the generic container.
Definition: GenericContainer.hh:1086
+
GENERIC_CONTAINER_API_DLL GenericContainer(pointer_type a)
Construct a generic container storing a pointer.
Definition: GenericContainer.hh:1362
+
GENERIC_CONTAINER_API_DLL GenericContainer(std::complex< float > const &a)
Construct a generic container storing a complex floating point number.
Definition: GenericContainer.hh:1342
+
T get_pointer_at(unsigned i) const
Return i-th generic pointer (if fails issue an error).
Definition: GenericContainer.hh:939
+
GENERIC_CONTAINER_API_DLL GenericContainer(bool const &a)
Construct a generic container storing a boolean.
Definition: GenericContainer.hh:1307
+
GENERIC_CONTAINER_API_DLL GenericContainer(long_type const &a)
Construct a generic container storing an integer.
Definition: GenericContainer.hh:1327
+
GENERIC_CONTAINER_API_DLL GenericContainer(char const a[])
Construct a generic container storing a string.
Definition: GenericContainer.hh:1352
+
GENERIC_CONTAINER_API_DLL void set(float const &a)
Assign a floating point number to the generic container.
Definition: GenericContainer.hh:1102
+
GENERIC_CONTAINER_API_DLL void set(pointer_type a)
Assign a pointer to the generic container.
Definition: GenericContainer.hh:1128
+
GENERIC_CONTAINER_API_DLL void set(std::complex< double > const &a)
Assign a floating point number to the generic container.
Definition: GenericContainer.hh:1115
+
GENERIC_CONTAINER_API_DLL ~GenericContainer()
destroy the instance of GenericContainer
Definition: GenericContainer.hh:365
+
GENERIC_CONTAINER_API_DLL void set(long_type const &a)
Assign an integer to the generic container.
Definition: GenericContainer.hh:1098
+
Definition: GenericContainer.hh:118
+
+ + + + diff --git a/docs/d8/d7c/class_g2lib_1_1_triangle2_d.html b/docs/d8/d7c/class_g2lib_1_1_triangle2_d.html new file mode 100644 index 00000000..97d3e9ac --- /dev/null +++ b/docs/d8/d7c/class_g2lib_1_1_triangle2_d.html @@ -0,0 +1,267 @@ + + + + + + + +Clothoids: G2lib::Triangle2D Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::Triangle2D Class Reference
+
+
+ +

Class to manage Triangle for BB of clothoid curve. + More...

+ +

#include <Triangle2D.hxx>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Triangle2D (Triangle2D const &t)
 
Triangle2D (real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, real_type s0, real_type s1, int_type icurve)
 
Triangle2D (real_type const p1[2], real_type const p2[2], real_type const p3[2], real_type s0, real_type s1, int_type icurve)
 
+Triangle2D const & operator= (Triangle2D const &t)
 
+void build (real_type const p1[2], real_type const p2[2], real_type const p3[2], real_type s0, real_type s1, int_type icurve)
 
+void build (real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, real_type s0, real_type s1, int_type icurve)
 
+int_type Icurve () const
 
+real_type x1 () const
 
+real_type y1 () const
 
+real_type x2 () const
 
+real_type y2 () const
 
+real_type x3 () const
 
+real_type y3 () const
 
+real_type S0 () const
 
+real_type S1 () const
 
+void translate (real_type tx, real_type ty)
 
+void rotate (real_type angle, real_type cx, real_type cy)
 
+void scale (real_type sc)
 
+void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+real_type baricenterX () const
 
+real_type baricenterY () const
 
+real_type const * P1 () const
 
+real_type const * P2 () const
 
+real_type const * P3 () const
 
+bool overlap (Triangle2D const &) const
 
int_type isCounterClockwise () const
 
int_type isInside (real_type x, real_type y) const
 
+int_type isInside (real_type const pt[2]) const
 
+real_type distMin (real_type x, real_type y) const
 
+real_type distMax (real_type x, real_type y) const
 
+void info (ostream_type &stream) const
 
+ + + +

+Friends

+ostream_type & operator<< (ostream_type &stream, Triangle2D const &c)
 
+

Detailed Description

+

Class to manage Triangle for BB of clothoid curve.

+

Member Function Documentation

+ +

◆ isCounterClockwise()

+ +
+
+ + + + + +
+ + + + + + + +
int_type G2lib::Triangle2D::isCounterClockwise () const
+
+inline
+
+

return +1 = CounterClockwise return -1 = Clockwise return 0 = degenerate triangle

+ +
+
+ +

◆ isInside()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int_type G2lib::Triangle2D::isInside (real_type x,
real_type y 
) const
+
+inline
+
+

return +1 = inside return -1 = outside return 0 = on the border

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d8/d7d/class_utils_1_1_runtime___trace_error.html b/docs/d8/d7d/class_utils_1_1_runtime___trace_error.html new file mode 100644 index 00000000..1160f0fa --- /dev/null +++ b/docs/d8/d7d/class_utils_1_1_runtime___trace_error.html @@ -0,0 +1,122 @@ + + + + + + + +Clothoids: Utils::Runtime_TraceError Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Runtime_TraceError Class Reference
+
+
+
+Inheritance diagram for Utils::Runtime_TraceError:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for Utils::Runtime_TraceError:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + +

+Public Member Functions

Runtime_TraceError (std::string const &reason, char const file[], int line)
 
+virtual const char * what () const noexcept override
 
+
The documentation for this class was generated from the following files:
    +
  • submodules/Utils/src/Utils/Trace.hxx
  • +
  • submodules/Utils/src/Trace.cc
  • +
+
+ + + + diff --git a/docs/d8/d87/_console_8hxx_source.html b/docs/d8/d87/_console_8hxx_source.html new file mode 100644 index 00000000..fe1f7079 --- /dev/null +++ b/docs/d8/d87/_console_8hxx_source.html @@ -0,0 +1,262 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/Console.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Console.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2020 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 #pragma once
+
25 
+
26 #ifndef CONSOLE_dot_HXX
+
27 #define CONSOLE_dot_HXX
+
28 
+
29 namespace Utils {
+
30 
+
31  typedef std::basic_ostream<char> ostream_type;
+
32 
+
33  std::string basename( char const filename[] );
+
34 
+
35  class Console {
+
36 
+
37  mutable std::mutex m_message_mutex; // mutex for critical section
+
38 
+
39  public:
+
40  class Console_style {
+
41  public:
+
42  rang::style s;
+
43  rang::fg f;
+
44  rang::bg b;
+
45  };
+
46 
+
47  private:
+
48 
+
49  ostream_type * m_stream;
+
50 
+
51  // 0 only fatal, error
+
52  // 1 + warning
+
53  // 2
+
54  int m_level;
+
55 
+
56  Console_style m_message_style;
+
57  Console_style m_warning_style;
+
58  Console_style m_error_style;
+
59  Console_style m_fatal_style;
+
60 
+
61  Console() = delete;
+
62  Console( Console const & ) = delete;
+
63 
+
64  public:
+
65 
+
66  Console( ostream_type * stream = &std::cout, int level = 4 );
+
67 
+
68  void changeLevel( int new_level );
+
69  void changeStream( ostream_type * new_stream );
+
70  int getLevel() const { return m_level; }
+
71 
+
72  ostream_type * getStream() const { return m_stream; }
+
73 
+
74  Console const & flush() const { m_stream->flush(); return *this; }
+
75 
+
76  Console const &
+
77  message( std::string const & msg, int msg_level = 4 ) const;
+
78 
+
79  Console const &
+
80  semaphore( unsigned ryg, std::string const & msg, int msg_level = 0 ) const;
+
81 
+
82  Console const &
+
83  warning( std::string const & msg ) const; // level >= 2
+
84 
+
85  Console const &
+
86  error( std::string const & msg ) const; // level >= 1
+
87 
+
88  Console const &
+
89  fatal( std::string const & msg ) const; // level >= 0
+
90 
+
91  Console const & black ( std::string const & msg, int msg_level = 0 ) const;
+
92  Console const & red ( std::string const & msg, int msg_level = 0 ) const;
+
93  Console const & green ( std::string const & msg, int msg_level = 0 ) const;
+
94  Console const & yellow ( std::string const & msg, int msg_level = 0 ) const;
+
95  Console const & blue ( std::string const & msg, int msg_level = 0 ) const;
+
96  Console const & magenta ( std::string const & msg, int msg_level = 0 ) const;
+
97  Console const & cyan ( std::string const & msg, int msg_level = 0 ) const;
+
98  Console const & gray ( std::string const & msg, int msg_level = 0 ) const;
+
99 
+
100  Console const & black_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
101  Console const & red_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
102  Console const & green_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
103  Console const & yellow_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
104  Console const & blue_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
105  Console const & magenta_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
106  Console const & cyan_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
107  Console const & gray_reversed ( std::string const & msg, int msg_level = 0 ) const;
+
108 
+
109  void
+
110  setMessageStyle(
+
111  rang::style const & s,
+
112  rang::fg const & f,
+
113  rang::bg const & b
+
114  ) {
+
115  m_message_style.s = s;
+
116  m_message_style.f = f;
+
117  m_message_style.b = b;
+
118  }
+
119 
+
120  void
+
121  setWarningStyle(
+
122  rang::style const & s,
+
123  rang::fg const & f,
+
124  rang::bg const & b
+
125  ) {
+
126  m_warning_style.s = s;
+
127  m_warning_style.f = f;
+
128  m_warning_style.b = b;
+
129  }
+
130 
+
131  void
+
132  setErrorStyle(
+
133  rang::style const & s,
+
134  rang::fg const & f,
+
135  rang::bg const & b
+
136  ) {
+
137  m_error_style.s = s;
+
138  m_error_style.f = f;
+
139  m_error_style.b = b;
+
140  }
+
141 
+
142  void
+
143  setFatalStyle(
+
144  rang::style const & s,
+
145  rang::fg const & f,
+
146  rang::bg const & b
+
147  ) {
+
148  m_fatal_style.s = s;
+
149  m_fatal_style.f = f;
+
150  m_fatal_style.b = b;
+
151  }
+
152 
+
154  void
+
155  setOff() const {
+
156  #ifndef UTILS_OS_WINDOWS
+
157  rang::setControlMode( rang::control::Off );
+
158  #endif
+
159  }
+
160 
+
162  void
+
163  setAuto() const {
+
164  #ifdef UTILS_OS_WINDOWS
+
165  rang::setWinTermMode( rang::winTerm::Auto );
+
166  #else
+
167  rang::setControlMode( rang::control::Auto );
+
168  #endif
+
169  }
+
170 
+
171  };
+
172 }
+
173 
+
174 #endif
+
175 
+
Definition: Console.hxx:40
+
Definition: Console.hxx:35
+
void setAuto() const
set coloring automatic
Definition: Console.hxx:163
+
void setOff() const
set off coloring
Definition: Console.hxx:155
+
Definition: Console.cc:31
+
+ + + + diff --git a/docs/d8/d89/_poly_line_8hxx_source.html b/docs/d8/d89/_poly_line_8hxx_source.html new file mode 100644 index 00000000..dfc7b91e --- /dev/null +++ b/docs/d8/d89/_poly_line_8hxx_source.html @@ -0,0 +1,616 @@ + + + + + + + +Clothoids: src/Clothoids/PolyLine.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolyLine.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 namespace G2lib {
+
25 
+
26  /*\
+
27  | ____ _ _ _
+
28  | | _ \ ___ | |_ _| | (_)_ __ ___
+
29  | | |_) / _ \| | | | | | | | '_ \ / _ \
+
30  | | __/ (_) | | |_| | |___| | | | | __/
+
31  | |_| \___/|_|\__, |_____|_|_| |_|\___|
+
32  | |___/
+
33  \*/
+
34 
+
35  class CircleArc;
+
36  class Biarc;
+
37  class BiarcList;
+
38  class ClothoidCurve;
+
39  class ClothoidList;
+
40 
+
42  class PolyLine : public BaseCurve {
+
43  friend class ClothoidList;
+
44  friend class BiarcList;
+
45  private:
+
46  vector<LineSegment> m_polylineList;
+
47  vector<real_type> m_s0;
+
48  real_type m_xe;
+
49  real_type m_ye;
+
50 
+
51  mutable Utils::BinarySearch<int_type> m_lastInterval;
+
52 
+
53  mutable bool m_aabb_done;
+
54  mutable AABBtree m_aabb_tree;
+
55 
+
56  class Collision_list {
+
57  PolyLine const * pPL1;
+
58  PolyLine const * pPL2;
+
59  public:
+
60  Collision_list( PolyLine const * _pPL1, PolyLine const * _pPL2 )
+
61  : pPL1(_pPL1)
+
62  , pPL2(_pPL2)
+
63  {}
+
64 
+
65  bool
+
66  operator () ( BBox::PtrBBox ptr1, BBox::PtrBBox ptr2 ) const {
+
67  LineSegment const & LS1 = pPL1->m_polylineList[size_t(ptr1->Ipos())];
+
68  LineSegment const & LS2 = pPL2->m_polylineList[size_t(ptr2->Ipos())];
+
69  return LS1.collision( LS2 );
+
70  }
+
71  };
+
72 
+
73  void
+
74  resetLastInterval() {
+
75  bool ok;
+
76  int_type & lastInterval = *m_lastInterval.search( std::this_thread::get_id(), ok );
+
77  lastInterval = 0;
+
78  }
+
79 
+
80  public:
+
81 
+
82  //explicit
+
83  PolyLine()
+
84  : BaseCurve(G2LIB_POLYLINE)
+
85  , m_aabb_done(false)
+
86  { this->resetLastInterval(); }
+
87 
+
88  void
+
89  init();
+
90 
+
91  void
+
92  copy( PolyLine const & l );
+
93 
+
94  //explicit
+
95  PolyLine( PolyLine const & PL )
+
96  : BaseCurve(G2LIB_POLYLINE)
+
97  , m_aabb_done(false)
+
98  { this->resetLastInterval(); copy(PL); }
+
99 
+
100  int_type
+
101  findAtS( real_type & s ) const;
+
102 
+
103  explicit PolyLine( LineSegment const & LS );
+
104  explicit PolyLine( CircleArc const & C, real_type tol );
+
105  explicit PolyLine( Biarc const & B, real_type tol );
+
106  explicit PolyLine( ClothoidCurve const & B, real_type tol );
+
107  explicit PolyLine( ClothoidList const & B, real_type tol );
+
108  explicit PolyLine( BaseCurve const & C );
+
109 
+
110  PolyLine const & operator = ( PolyLine const & s )
+
111  { copy(s); return *this; }
+
112 
+
113  LineSegment const &
+
114  getSegment( int_type n ) const;
+
115 
+
116  int_type
+
117  numSegment() const
+
118  { return int_type(m_polylineList.size()); }
+
119 
+
120  int_type
+
121  numPoints() const
+
122  { return int_type(m_s0.size()); }
+
123 
+
124  void polygon( real_type x[], real_type y[]) const;
+
125  void init( real_type x0, real_type y0 );
+
126  void push_back( real_type x, real_type y );
+
127  void push_back( LineSegment const & C );
+
128  void push_back( CircleArc const & C, real_type tol );
+
129  void push_back( Biarc const & C, real_type tol );
+
130  void push_back( ClothoidCurve const & C, real_type tol );
+
131  void push_back( ClothoidList const & L, real_type tol );
+
132 
+
133  void
+
134  build(
+
135  real_type const x[],
+
136  real_type const y[],
+
137  int_type npts
+
138  );
+
139 
+
140  void build( LineSegment const & L );
+
141  void build( CircleArc const & C, real_type tol );
+
142  void build( Biarc const & B, real_type tol );
+
143  void build( ClothoidCurve const & C, real_type tol );
+
144  void build( ClothoidList const & CL, real_type tol );
+
145 
+
146  virtual
+
147  void
+
148  bbox(
+
149  real_type & xmin,
+
150  real_type & ymin,
+
151  real_type & xmax,
+
152  real_type & ymax
+
153  ) const UTILS_OVERRIDE;
+
154 
+
155  virtual
+
156  void
+ +
158  real_type /* offs */,
+
159  real_type & /* xmin */,
+
160  real_type & /* ymin */,
+
161  real_type & /* xmax */,
+
162  real_type & /* ymax */
+
163  ) const UTILS_OVERRIDE {
+
164  UTILS_ERROR0( "PolyLine::bbox( offs ... ) not available!\n" );
+
165  }
+
166 
+
167  virtual
+
168  real_type
+
169  length() const UTILS_OVERRIDE
+
170  { return m_s0.back(); }
+
171 
+
172  virtual
+
173  real_type
+
174  length_ISO( real_type ) const UTILS_OVERRIDE {
+
175  UTILS_ERROR0( "PolyLine::length( offs ) not available!\n" );
+
176  return 0;
+
177  }
+
178 
+
179  virtual
+
180  real_type
+
181  xBegin() const UTILS_OVERRIDE
+
182  { return m_polylineList.front().xBegin(); }
+
183 
+
184  virtual
+
185  real_type
+
186  yBegin() const UTILS_OVERRIDE
+
187  { return m_polylineList.front().yBegin(); }
+
188 
+
189  virtual
+
190  real_type
+
191  xEnd() const UTILS_OVERRIDE
+
192  { return m_polylineList.back().xEnd(); }
+
193 
+
194  virtual
+
195  real_type
+
196  yEnd() const UTILS_OVERRIDE
+
197  { return m_polylineList.back().yEnd(); }
+
198 
+
199  virtual
+
200  real_type
+
201  X( real_type s ) const UTILS_OVERRIDE {
+
202  int_type idx = this->findAtS( s );
+
203  real_type ss = m_s0[size_t(idx)];
+
204  return m_polylineList[size_t(idx)].X(s-ss);
+
205  }
+
206 
+
207  virtual
+
208  real_type
+
209  X_D( real_type s ) const UTILS_OVERRIDE {
+
210  int_type idx = this->findAtS( s );
+
211  return m_polylineList[size_t(idx)].m_c0;
+
212  }
+
213 
+
214  virtual
+
215  real_type
+
216  X_DD( real_type ) const UTILS_OVERRIDE
+
217  { return 0; }
+
218 
+
219  virtual
+
220  real_type
+
221  X_DDD( real_type ) const UTILS_OVERRIDE
+
222  { return 0; }
+
223 
+
224  virtual
+
225  real_type
+
226  Y( real_type s ) const UTILS_OVERRIDE {
+
227  int_type idx = this->findAtS( s );
+
228  real_type ss = m_s0[size_t(idx)];
+
229  return m_polylineList[size_t(idx)].Y(s-ss);
+
230  }
+
231 
+
232  virtual
+
233  real_type
+
234  Y_D( real_type s ) const UTILS_OVERRIDE {
+
235  int_type idx = this->findAtS( s );
+
236  return m_polylineList[size_t(idx)].m_s0;
+
237  }
+
238 
+
239  virtual
+
240  real_type
+
241  Y_DD( real_type ) const UTILS_OVERRIDE
+
242  { return 0; }
+
243 
+
244  virtual
+
245  real_type
+
246  Y_DDD( real_type ) const UTILS_OVERRIDE
+
247  { return 0; }
+
248 
+
249  virtual
+
250  real_type
+
251  theta( real_type s ) const UTILS_OVERRIDE;
+
252 
+
253  virtual
+
254  real_type
+
255  theta_D( real_type s ) const UTILS_OVERRIDE;
+
256 
+
257  virtual
+
258  real_type
+
259  theta_DD( real_type s ) const UTILS_OVERRIDE;
+
260 
+
261  virtual
+
262  real_type
+
263  theta_DDD( real_type s ) const UTILS_OVERRIDE;
+
264 
+
265  virtual
+
266  void
+
267  eval(
+
268  real_type s,
+
269  real_type & x,
+
270  real_type & y
+
271  ) const UTILS_OVERRIDE {
+
272  int_type idx = this->findAtS( s );
+
273  real_type ss = m_s0[size_t(idx)];
+
274  m_polylineList[size_t(idx)].eval( s-ss, x, y );
+
275  }
+
276 
+
277  virtual
+
278  void
+
279  eval_D(
+
280  real_type s,
+
281  real_type & x_D,
+
282  real_type & y_D
+
283  ) const UTILS_OVERRIDE {
+
284  int_type idx = this->findAtS( s );
+
285  real_type ss = m_s0[size_t(idx)];
+
286  m_polylineList[size_t(idx)].eval_D( s-ss, x_D, y_D );
+
287  }
+
288 
+
289  virtual
+
290  void
+
291  eval_DD(
+
292  real_type,
+
293  real_type & x_DD,
+
294  real_type & y_DD
+
295  ) const UTILS_OVERRIDE
+
296  { x_DD = y_DD = 0; }
+
297 
+
298  virtual
+
299  void
+
300  eval_DDD(
+
301  real_type,
+
302  real_type & x_DDD,
+
303  real_type & y_DDD
+
304  ) const UTILS_OVERRIDE
+
305  { x_DDD = y_DDD = 0; }
+
306 
+
307  // ---
+
308 
+
309  virtual
+
310  void
+ +
312  real_type s,
+
313  real_type offs,
+
314  real_type & x,
+
315  real_type & y
+
316  ) const UTILS_OVERRIDE {
+
317  int_type idx = this->findAtS( s );
+
318  real_type ss = m_s0[size_t(idx)];
+
319  m_polylineList[size_t(idx)].eval_ISO( s-ss, offs, x, y );
+
320  }
+
321 
+
322  virtual
+
323  void
+ +
325  real_type s,
+
326  real_type offs,
+
327  real_type & x_D,
+
328  real_type & y_D
+
329  ) const UTILS_OVERRIDE {
+
330  int_type idx = this->findAtS( s );
+
331  real_type ss = m_s0[size_t(idx)];
+
332  m_polylineList[size_t(idx)].eval_ISO_D( s-ss, offs, x_D, y_D );
+
333  }
+
334 
+
335  virtual
+
336  void
+ +
338  real_type,
+
339  real_type,
+
340  real_type & x_DD,
+
341  real_type & y_DD
+
342  ) const UTILS_OVERRIDE
+
343  { x_DD = y_DD = 0; }
+
344 
+
345  virtual
+
346  void
+ +
348  real_type,
+
349  real_type,
+
350  real_type & x_DDD,
+
351  real_type & y_DDD
+
352  ) const UTILS_OVERRIDE
+
353  { x_DDD = y_DDD = 0; }
+
354 
+
355  /*\
+
356  | _ __
+
357  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
358  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
359  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
360  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
361  \*/
+
362 
+
363  virtual
+
364  void
+
365  translate( real_type tx, real_type ty ) UTILS_OVERRIDE {
+
366  std::vector<LineSegment>::iterator il;
+
367  for ( il = m_polylineList.begin(); il != m_polylineList.end(); ++il )
+
368  il->translate( tx, ty );
+
369  }
+
370 
+
371  virtual
+
372  void
+
373  rotate(
+
374  real_type angle,
+
375  real_type cx,
+
376  real_type cy
+
377  ) UTILS_OVERRIDE {
+
378  std::vector<LineSegment>::iterator il;
+
379  for ( il = m_polylineList.begin(); il != m_polylineList.end(); ++il )
+
380  il->rotate( angle, cx, cy );
+
381  }
+
382 
+
383  virtual
+
384  void
+
385  reverse() UTILS_OVERRIDE;
+
386 
+
387  virtual
+
388  void
+
389  scale( real_type sc ) UTILS_OVERRIDE;
+
390 
+
391  virtual
+
392  void
+
393  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE;
+
394 
+
395  virtual
+
396  void
+
397  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE;
+
398 
+
399  void
+
400  trim( real_type s_begin, real_type s_end, PolyLine & newPL ) const;
+
401 
+
412  virtual
+
413  int_type
+ +
415  real_type x,
+
416  real_type y,
+
417  real_type & X,
+
418  real_type & Y,
+
419  real_type & S,
+
420  real_type & T,
+
421  real_type & DST
+
422  ) const UTILS_OVERRIDE;
+
423 
+
424  virtual
+
425  int_type
+ +
427  real_type /* x */,
+
428  real_type /* y */,
+
429  real_type /* offs */,
+
430  real_type & /* X */,
+
431  real_type & /* Y */,
+
432  real_type & /* S */,
+
433  real_type & /* T */,
+
434  real_type & /* DST */
+
435  ) const UTILS_OVERRIDE {
+
436  UTILS_ERROR( "PolyLine::closestPoint( ... offs ... ) not available!\n" );
+
437  }
+
438 
+
439  /*\
+
440  | _ _ _ _
+
441  | ___ ___ | | (_)___(_) ___ _ __
+
442  | / __/ _ \| | | / __| |/ _ \| '_ \
+
443  | | (_| (_) | | | \__ \ | (_) | | | |
+
444  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
445  \*/
+
446 
+
447  bool
+
448  collision( PolyLine const & C ) const;
+
449 
+
450  bool
+
451  collision_ISO(
+
452  real_type offs,
+
453  PolyLine const & CL,
+
454  real_type offs_CL
+
455  ) const {
+
456  UTILS_ASSERT0(
+
457  Utils::isZero(offs) && Utils::isZero(offs_CL),
+
458  "PolyLine::collision( offs ... ) not available!\n"
+
459  );
+
460  return this->collision( CL );
+
461  }
+
462 
+
463  /*\
+
464  | _ _ _
+
465  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
466  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
467  | | | | | | || __/ | \__ \ __/ (__| |_
+
468  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
469  \*/
+
470 
+
471  void
+
472  intersect(
+
473  PolyLine const & pl,
+
474  std::vector<real_type> & s1,
+
475  std::vector<real_type> & s2
+
476  ) const;
+
477 
+
478  void
+
479  intersect(
+
480  PolyLine const & pl,
+
481  IntersectList & ilist,
+
482  bool swap_s_vals
+
483  ) const;
+
484 
+
485  void
+
486  intersect_ISO(
+
487  real_type offs,
+
488  PolyLine const & pl,
+
489  real_type offs_pl,
+
490  IntersectList & ilist,
+
491  bool swap_s_vals
+
492  ) {
+
493  UTILS_ASSERT0(
+
494  Utils::isZero(offs) && Utils::isZero(offs_pl),
+
495  "PolyLine::intersect( offs ... ) not available!\n"
+
496  );
+
497  this->intersect( pl, ilist, swap_s_vals );
+
498  }
+
499 
+
500  virtual
+
501  void
+
502  info( ostream_type & stream ) const UTILS_OVERRIDE
+
503  { stream << "PolyLine\n" << *this << '\n'; }
+
504 
+
505  friend
+
506  ostream_type &
+
507  operator << ( ostream_type & stream, PolyLine const & P );
+
508 
+
509  void
+
510  build_AABBtree( AABBtree & aabb ) const;
+
511 
+
512  void
+
513  build_AABBtree() const {
+
514  if ( !m_aabb_done ) {
+
515  this->build_AABBtree( m_aabb_tree );
+
516  m_aabb_done = true;
+
517  }
+
518  }
+
519 
+
520  };
+
521 
+
522 }
+
523 
+
Class to manage AABB tree.
Definition: AABBtree.hxx:163
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Compute biarc fitting by Hemite data.
Definition: Biarc.hxx:40
+
Class to manage a list of biarc Curve (not necessarily G2 or G1 connected)
Definition: BiarcList.hxx:39
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
Class to manage Clothoid Curve.
Definition: Clothoid.hxx:37
+
Class to manage a list of clothoid curves (not necessarily G2 or G1 connected)
Definition: ClothoidList.hxx:571
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
Class to manage a collection of straight segment.
Definition: PolyLine.hxx:42
+
virtual real_type length_ISO(real_type) const UTILS_OVERRIDE
Definition: PolyLine.hxx:174
+
virtual int_type closestPoint_ISO(real_type x, real_type y, real_type &X, real_type &Y, real_type &S, real_type &T, real_type &DST) const UTILS_OVERRIDE
compute the point at minimum distance from a point [x,y] and the line segment
Definition: PolyLine.cc:606
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: PolyLine.hxx:311
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: PolyLine.hxx:324
+
virtual real_type length() const UTILS_OVERRIDE
Definition: PolyLine.hxx:169
+
virtual void eval_ISO_DDD(real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: PolyLine.hxx:347
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: PolyLine.cc:204
+
virtual void bbox_ISO(real_type, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDE
Definition: PolyLine.hxx:157
+
virtual void eval_ISO_DD(real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: PolyLine.hxx:337
+ +
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/d8/d9e/class_polynomial_roots_1_1_quadratic-members.html b/docs/d8/d9e/class_polynomial_roots_1_1_quadratic-members.html new file mode 100644 index 00000000..35155659 --- /dev/null +++ b/docs/d8/d9e/class_polynomial_roots_1_1_quadratic-members.html @@ -0,0 +1,112 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolynomialRoots::Quadratic Member List
+
+
+ +

This is the complete list of members for PolynomialRoots::Quadratic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
check(std::ostream &s) constPolynomialRoots::Quadratic
complexRoots() constPolynomialRoots::Quadraticinline
doubleRoot() constPolynomialRoots::Quadraticinline
eval(valueType x) constPolynomialRoots::Quadraticinline
eval(complexType const &x) constPolynomialRoots::Quadraticinline
eval(valueType x, valueType &p, valueType &dp) constPolynomialRoots::Quadratic
getNegativeRoots(valueType r[]) constPolynomialRoots::Quadratic
getPositiveRoots(valueType r[]) constPolynomialRoots::Quadratic
getRealRoots(valueType r[]) constPolynomialRoots::Quadratic
getRoot0(valueType &re, valueType &im) const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
getRoot0(complexType &r) const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
getRoot1(valueType &re, valueType &im) const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
getRoot1(complexType &r) const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
info(std::ostream &s) constPolynomialRoots::Quadratic
numRoots() constPolynomialRoots::Quadraticinline
Quadratic() (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
Quadratic(valueType _a, valueType _b, valueType _c) (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
real_root0() constPolynomialRoots::Quadraticinline
real_root1() constPolynomialRoots::Quadraticinline
root0() const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
root1() const (defined in PolynomialRoots::Quadratic)PolynomialRoots::Quadraticinline
setup(valueType _a, valueType _b, valueType _c)PolynomialRoots::Quadraticinline
+ + + + diff --git a/docs/d8/dc6/class_g2lib_1_1_clothoid_list-members.html b/docs/d8/dc6/class_g2lib_1_1_clothoid_list-members.html new file mode 100644 index 00000000..59fd76e5 --- /dev/null +++ b/docs/d8/dc6/class_g2lib_1_1_clothoid_list-members.html @@ -0,0 +1,304 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::ClothoidList Member List
+
+
+ +

This is the complete list of members for G2lib::ClothoidList, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::ClothoidListinlinevirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
bbTriangles(std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
bbTriangles_ISO(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
bbTriangles_SAE(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
build(real_type x0, real_type y0, real_type theta0, int_type n, real_type const s[], real_type const kappa[]) (defined in G2lib::ClothoidList)G2lib::ClothoidList
build(real_type x0, real_type y0, real_type theta0, vector< real_type > const &s, vector< real_type > const &kappa) (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
build_AABBtree_ISO(real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
build_G1(int_type n, real_type const x[], real_type const y[]) (defined in G2lib::ClothoidList)G2lib::ClothoidList
build_G1(int_type n, real_type const x[], real_type const y[], real_type const theta[]) (defined in G2lib::ClothoidList)G2lib::ClothoidList
build_raw(int_type n, real_type const x[], real_type const y[], real_type const abscissa[], real_type const theta[], real_type const kappa[]) (defined in G2lib::ClothoidList)G2lib::ClothoidList
build_raw(vector< real_type > const &x, vector< real_type > const &y, vector< real_type > const &abscissa, vector< real_type > const &theta, vector< real_type > const &kappa) (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPointInRange_ISO(real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) constG2lib::ClothoidList
closestPointInRange_SAE(real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) constG2lib::ClothoidListinline
closestPointInSRange_ISO(real_type qx, real_type qy, real_type s_begin, real_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) constG2lib::ClothoidList
closestPointInSRange_SAE(real_type qx, real_type qy, int_type s_begin, int_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) constG2lib::ClothoidListinline
closestSegment(real_type qx, real_type qy) constG2lib::ClothoidList
closure_check(real_type tol_xy=1e-6, real_type tol_tg=1e-6) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
closure_gap_tx() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
closure_gap_ty() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
closure_gap_x() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
closure_gap_y() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
ClothoidList() (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
ClothoidList(ClothoidList const &s) (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
ClothoidList(LineSegment const &LS) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(CircleArc const &C) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(Biarc const &B) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(BiarcList const &BL) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(ClothoidCurve const &CL) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(PolyLine const &PL) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
ClothoidList(BaseCurve const &C) (defined in G2lib::ClothoidList)G2lib::ClothoidListexplicit
collision(ClothoidList const &C) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, ClothoidList const &CL, real_type offs_C) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(ClothoidList const &L) (defined in G2lib::ClothoidList)G2lib::ClothoidList
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
export_ruby(ostream_type &stream) constG2lib::ClothoidList
export_table(ostream_type &stream) constG2lib::ClothoidList
findAtS(real_type &s) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
findST1(real_type x, real_type y, real_type &s, real_type &t) constG2lib::ClothoidList
findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) constG2lib::ClothoidList
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
get(int_type idx) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getAtS(real_type s) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getDeltaKappa(real_type deltaKappa[]) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getDeltaTheta(real_type deltaTheta[]) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getSK(real_type s[], real_type kappa[]) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getSK(std::vector< real_type > &s, std::vector< real_type > &kappa) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
getSTK(real_type s[], real_type theta[], real_type kappa[]) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
getSTK(std::vector< real_type > &s, std::vector< real_type > &theta, std::vector< real_type > &kappa) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
getXY(real_type x[], real_type y[]) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
init() (defined in G2lib::ClothoidList)G2lib::ClothoidList
intersect(ClothoidList const &CL, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, ClothoidList const &CL, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
is_closed() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::ClothoidListvirtual
length_ISO(real_type offs) const UTILS_OVERRIDEG2lib::ClothoidListvirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
make_closed() (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
make_open() (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
numSegment() const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::ClothoidList)G2lib::ClothoidListfriend
operator=(ClothoidList const &s) (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
push_back(LineSegment const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(CircleArc const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(Biarc const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(BiarcList const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(ClothoidCurve const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(PolyLine const &c) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(real_type kappa0, real_type dkappa, real_type L) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type dkappa, real_type L) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back_G1(real_type x1, real_type y1, real_type theta1) (defined in G2lib::ClothoidList)G2lib::ClothoidList
push_back_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1) (defined in G2lib::ClothoidList)G2lib::ClothoidList
reserve(int_type n) (defined in G2lib::ClothoidList)G2lib::ClothoidList
reverse() UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
scale(real_type sc) UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
segment_length(int_type nseg) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
segment_length_ISO(int_type nseg, real_type offs) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
segment_length_SAE(int_type nseg, real_type offs) const (defined in G2lib::ClothoidList)G2lib::ClothoidListinline
tg(real_type s, real_type &tg_x, real_type &tg_y) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tg_D(real_type s, real_type &tg_x_D, real_type &tg_y_D) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tg_DD(real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tg_DDD(real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
theta(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
theta_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
theta_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
theta_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
thetaBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
thetaEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
trim(real_type s_begin, real_type s_end, ClothoidList &newCL) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
tx(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
tx_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tx_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tx_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
tx_End() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
ty(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
ty_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
ty_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
ty_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
ty_End() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
type() constG2lib::BaseCurveinline
wrap_in_range(real_type &s) const (defined in G2lib::ClothoidList)G2lib::ClothoidList
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
xBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
xEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_ISO_D(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_ISO_DD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_ISO_DDD(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListvirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
yBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
yEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
~ClothoidList() UTILS_OVERRIDE (defined in G2lib::ClothoidList)G2lib::ClothoidListinlinevirtual
+ + + + diff --git a/docs/d8/dec/class_polynomial_roots_1_1_quartic.html b/docs/d8/dec/class_polynomial_roots_1_1_quartic.html new file mode 100644 index 00000000..46af185c --- /dev/null +++ b/docs/d8/dec/class_polynomial_roots_1_1_quartic.html @@ -0,0 +1,416 @@ + + + + + + + +Clothoids: PolynomialRoots::Quartic Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
PolynomialRoots::Quartic Class Reference
+
+
+ +

Quartic polynomial class. + More...

+ +

#include <PolynomialRoots.hh>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Quartic (valueType _a, valueType _b, valueType _c, valueType _d, valueType _e)
 
void setup (valueType _a, valueType _b, valueType _c, valueType _d, valueType _e)
 compute the roots of quartic polynomial \( a x^4 + b x^3 + c x^2 + d x + e \) More...
 
+indexType numRoots () const
 number of found roots
 
+indexType numRealRoots () const
 number of real roots
 
+indexType numComplexRoots () const
 number of complex roots
 
indexType getRealRoots (valueType r[]) const
 get the real roots More...
 
indexType getPositiveRoots (valueType r[]) const
 get positive real roots More...
 
indexType getNegativeRoots (valueType r[]) const
 get negative real roots More...
 
+valueType real_root0 () const
 first real real
 
+valueType real_root1 () const
 second real real
 
+valueType real_root2 () const
 third real real
 
+valueType real_root3 () const
 fourth real real
 
+complexType root0 () const
 
+complexType root1 () const
 
+complexType root2 () const
 
+complexType root3 () const
 
+void getRoot0 (valueType &re, valueType &im) const
 
+void getRoot0 (complexType &r) const
 
+void getRoot1 (valueType &re, valueType &im) const
 
+void getRoot1 (complexType &r) const
 
+void getRoot2 (valueType &re, valueType &im) const
 
+void getRoot2 (complexType &r) const
 
+void getRoot3 (valueType &re, valueType &im) const
 
+void getRoot3 (complexType &r) const
 
valueType eval (valueType x) const
 evalute the quartic polynomial More...
 
complexType eval (complexType const &x) const
 evalute the quartic polynomial More...
 
+void info (std::ostream &s) const
 print info of the roots of the polynomial
 
+bool check (std::ostream &s) const
 check tolerenace and quality of the computed roots
 
+

Detailed Description

+

Quartic polynomial class.

+

Member Function Documentation

+ +

◆ eval() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
complexType PolynomialRoots::Quartic::eval (complexType const & x) const
+
+inline
+
+ +

evalute the quartic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \), x complex
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ eval() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
valueType PolynomialRoots::Quartic::eval (valueType x) const
+
+inline
+
+ +

evalute the quartic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \), x complex
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ getNegativeRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quartic::getNegativeRoots (valueType r[]) const
+
+ +

get negative real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of negative real roots, 0, 1, 2, 3 or 4
+ +
+
+ +

◆ getPositiveRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quartic::getPositiveRoots (valueType r[]) const
+
+ +

get positive real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of positive real roots, 0, 1, 2, 3 or 4
+ +
+
+ +

◆ getRealRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Quartic::getRealRoots (valueType r[]) const
+
+ +

get the real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of real roots, 0, 1, 2, 3 or 4
+ +
+
+ +

◆ setup()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void PolynomialRoots::Quartic::setup (valueType _a,
valueType _b,
valueType _c,
valueType _d,
valueType _e 
)
+
+inline
+
+ +

compute the roots of quartic polynomial \( a x^4 + b x^3 + c x^2 + d x + e \)

+
Parameters
+ + + + + + +
[in]_acoefficient of \( x^4 \)
[in]_bcoefficient of \( x^3 \)
[in]_ccoefficient of \( x^2 \)
[in]_dcoefficient of \( x \)
[in]_ecoefficient of \( x^0 \)
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • submodules/quarticRootsFlocke/src/PolynomialRoots.hh
  • +
  • submodules/quarticRootsFlocke/src/PolynomialRoots-3-Quartic.cc
  • +
+
+ + + + diff --git a/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.map b/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.map new file mode 100644 index 00000000..e5c6cd77 --- /dev/null +++ b/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.md5 b/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.md5 new file mode 100644 index 00000000..6d2203af --- /dev/null +++ b/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.md5 @@ -0,0 +1 @@ +88d65bbf7e0f001ff91c0a17cc2d94eb \ No newline at end of file diff --git a/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.png b/docs/d8/df3/class_g2lib_1_1_biarc_list__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..cffb952462cd0ff8a313314f311dc4b4f09894f5 GIT binary patch literal 3991 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 literal 0 HcmV?d00001 diff --git a/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.map b/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.map new file mode 100644 index 00000000..6afbf3ba --- /dev/null +++ b/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.md5 b/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.md5 new file mode 100644 index 00000000..1a5bf1ac --- /dev/null +++ b/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.md5 @@ -0,0 +1 @@ +2b75e2707b36f993010c796a06659499 \ No newline at end of file diff --git a/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.png b/docs/d8/dfc/class_generic_container_namespace_1_1mat__type__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..59f22c9f2cb6b602951653dd46787e048fce56db GIT binary patch literal 6297 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 + + + + + + +Clothoids: G2lib::LineSegment Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::LineSegment Class Reference
+
+
+ +

Class to manage a straight segment. + More...

+ +

#include <Line.hxx>

+
+Inheritance diagram for G2lib::LineSegment:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::LineSegment:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

LineSegment (LineSegment const &s)
 
LineSegment (BaseCurve const &C)
 
LineSegment (real_type _x0, real_type _y0, real_type _theta0, real_type _L)
 construct a circle curve with the standard parameters
 
+void copy (LineSegment const &c)
 
+LineSegment const & operator= (LineSegment const &s)
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type) const UTILS_OVERRIDE
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type tx_End () const UTILS_OVERRIDE
 
+virtual real_type ty_End () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type nx_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type xEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type theta (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type tx (real_type) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type) const UTILS_OVERRIDE
 
+virtual void tg (real_type, real_type &tx, real_type &ty) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual real_type X_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_D (real_type, real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_D (real_type, real_type) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DD (real_type, real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DD (real_type, real_type) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DDD (real_type, real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DDD (real_type, real_type) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type, real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void scale (real_type sc) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 compute the point at minimum distance from a point [x,y] and the line segment More...
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
+virtual void info (ostream_type &stream) const UTILS_OVERRIDE
 
+void build (real_type x0, real_type y0, real_type theta0, real_type L)
 
+void build_2P (real_type _x0, real_type _y0, real_type _x1, real_type _y1)
 construct a clothoid with the standard parameters
 
+void build_2P (real_type const p0[2], real_type const p1[2])
 construct a clothoid with the standard parameters
 
+void p1p2 (real_type p1[2], real_type p2[2]) const
 
+bool intersect (LineSegment const &S, real_type &s1, real_type &s2) const
 
+bool intersect_ISO (real_type offs, LineSegment const &S, real_type S_offs, real_type &s1, real_type &s2) const
 
+void intersect (LineSegment const &LS, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, LineSegment const &LS, real_type offs_LS, IntersectList &ilist, bool swap_s_vals) const
 
+bool collision (LineSegment const &S) const
 
+bool collision_ISO (real_type offs, LineSegment const &S, real_type S_offs) const
 
+void paramNURBS (int_type &n_knots, int_type &n_pnts) const
 
+void toNURBS (real_type knots[], real_type Poly[][3]) const
 
+virtual void toBS (real_type knots[], real_type Poly[][2]) const
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type thetaBegin () const
 
+virtual real_type thetaEnd () const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + + + + + + + +

+Friends

+class CircleArc
 
+class PolyLine
 
+class ClothoidCurve
 
+ostream_type & operator<< (ostream_type &stream, LineSegment const &c)
 
+

Detailed Description

+

Class to manage a straight segment.

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::LineSegment::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::LineSegment::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::LineSegment::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+ +

compute the point at minimum distance from a point [x,y] and the line segment

+
Parameters
+ + + + + + + + +
qxx-coordinate
qyy-coordinate
xx-coordinate of the closest point
yy-coordinate of the closest point
sparam of the closest point
tsigned distance if projection is orthogonal to segment
dstsigned distance from the segment
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::LineSegment::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::LineSegment::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlinevirtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::LineSegment::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlinevirtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::LineSegment::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlinevirtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::LineSegment::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlinevirtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::LineSegment::length () const
+
+inlinevirtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::LineSegment::length_ISO (real_type offs) const
+
+inlinevirtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.map b/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.map new file mode 100644 index 00000000..a0e717de --- /dev/null +++ b/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.md5 b/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.md5 new file mode 100644 index 00000000..7a3149be --- /dev/null +++ b/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.md5 @@ -0,0 +1 @@ +48714bbb7909fe9f8dcf57a480562119 \ No newline at end of file diff --git a/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.png b/docs/d9/d1f/class_g2lib_1_1_clothoid_list__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e6be4d4419ffb32bc399d3e8a5d366ed2f3f31e1 GIT binary patch literal 4080 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 literal 0 HcmV?d00001 diff --git a/docs/d9/d24/_base_curve__using_8hxx_source.html b/docs/d9/d24/_base_curve__using_8hxx_source.html new file mode 100644 index 00000000..cd6cf248 --- /dev/null +++ b/docs/d9/d24/_base_curve__using_8hxx_source.html @@ -0,0 +1,212 @@ + + + + + + + +Clothoids: src/Clothoids/BaseCurve_using.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BaseCurve_using.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2018 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Paolo Bevilacqua and Enrico Bertolazzi |
+
14  | |
+
15  | (1) Dipartimento di Ingegneria e Scienza dell'Informazione |
+
16  | (2) Dipartimento di Ingegneria Industriale |
+
17  | |
+
18  | Universita` degli Studi di Trento |
+
19  | email: paolo.bevilacqua@unitn.it |
+
20  | email: enrico.bertolazzi@unitn.it |
+
21  | |
+
22 \*--------------------------------------------------------------------------*/
+
23 
+
27 
+
28 using BaseCurve::thetaBegin;
+
29 using BaseCurve::thetaEnd;
+
30 
+
31 using BaseCurve::xBegin;
+
32 using BaseCurve::yBegin;
+
33 using BaseCurve::xEnd;
+
34 using BaseCurve::yEnd;
+
35 
+
36 using BaseCurve::xBegin_ISO;
+
37 using BaseCurve::yBegin_ISO;
+
38 using BaseCurve::xEnd_ISO;
+
39 using BaseCurve::yEnd_ISO;
+
40 
+
41 using BaseCurve::xBegin_SAE;
+
42 using BaseCurve::yBegin_SAE;
+
43 using BaseCurve::xEnd_SAE;
+
44 using BaseCurve::yEnd_SAE;
+
45 
+
46 using BaseCurve::tx_Begin;
+
47 using BaseCurve::ty_Begin;
+
48 using BaseCurve::tx_End;
+
49 using BaseCurve::ty_End;
+
50 
+
51 
+
52 #ifdef G2LIB_COMPATIBILITY_MODE
+
53 using BaseCurve::nx_Begin;
+
54 using BaseCurve::ny_Begin;
+
55 using BaseCurve::nx_End;
+
56 using BaseCurve::ny_End;
+
57 #endif
+
58 
+
59 using BaseCurve::nx_Begin_ISO;
+
60 using BaseCurve::ny_Begin_ISO;
+
61 using BaseCurve::nx_End_ISO;
+
62 using BaseCurve::ny_End_ISO;
+
63 
+
64 using BaseCurve::nx_Begin_SAE;
+
65 using BaseCurve::ny_Begin_SAE;
+
66 using BaseCurve::nx_End_SAE;
+
67 using BaseCurve::ny_End_SAE;
+
68 
+
69 using BaseCurve::X;
+
70 using BaseCurve::X_D;
+
71 using BaseCurve::X_DD;
+
72 using BaseCurve::X_DDD;
+
73 
+
74 using BaseCurve::Y;
+
75 using BaseCurve::Y_D;
+
76 using BaseCurve::Y_DD;
+
77 using BaseCurve::Y_DDD;
+
78 
+
79 using BaseCurve::X_SAE;
+
80 using BaseCurve::X_SAE_D;
+
81 using BaseCurve::X_SAE_DD;
+
82 using BaseCurve::X_SAE_DDD;
+
83 
+
84 using BaseCurve::Y_SAE;
+
85 using BaseCurve::Y_SAE_D;
+
86 using BaseCurve::Y_SAE_DD;
+
87 using BaseCurve::Y_SAE_DDD;
+
88 
+
89 using BaseCurve::X_ISO;
+
90 using BaseCurve::X_ISO_D;
+
91 using BaseCurve::X_ISO_DD;
+
92 using BaseCurve::X_ISO_DDD;
+
93 
+
94 using BaseCurve::Y_ISO;
+
95 using BaseCurve::Y_ISO_D;
+
96 using BaseCurve::Y_ISO_DD;
+
97 using BaseCurve::Y_ISO_DDD;
+
98 
+
99 #ifdef G2LIB_COMPATIBILITY_MODE
+
100 using BaseCurve::evaluate;
+
101 #endif
+
102 using BaseCurve::evaluate_ISO;
+
103 using BaseCurve::evaluate_SAE;
+
104 
+
105 using BaseCurve::eval;
+
106 using BaseCurve::eval_D;
+
107 using BaseCurve::eval_DD;
+
108 using BaseCurve::eval_DDD;
+
109 
+
110 using BaseCurve::eval_ISO;
+
111 using BaseCurve::eval_ISO_D;
+
112 using BaseCurve::eval_ISO_DD;
+
113 using BaseCurve::eval_ISO_DDD;
+
114 
+
115 using BaseCurve::eval_SAE;
+
116 using BaseCurve::eval_SAE_D;
+
117 using BaseCurve::eval_SAE_DD;
+
118 using BaseCurve::eval_SAE_DDD;
+
119 
+
120 #ifdef G2LIB_COMPATIBILITY_MODE
+
121 using BaseCurve::closestPoint;
+
122 using BaseCurve::distance;
+
123 #endif
+
124 using BaseCurve::closestPoint_ISO;
+
125 using BaseCurve::closestPoint_SAE;
+
126 using BaseCurve::distance_ISO;
+
127 using BaseCurve::distance_SAE;
+
128 
+
+ + + + diff --git a/docs/d9/d76/class_g2lib_1_1_triangle2_d-members.html b/docs/d9/d76/class_g2lib_1_1_triangle2_d-members.html new file mode 100644 index 00000000..ce9cbcea --- /dev/null +++ b/docs/d9/d76/class_g2lib_1_1_triangle2_d-members.html @@ -0,0 +1,124 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::Triangle2D Member List
+
+
+ +

This is the complete list of members for G2lib::Triangle2D, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
baricenterX() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
baricenterY() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
build(real_type const p1[2], real_type const p2[2], real_type const p3[2], real_type s0, real_type s1, int_type icurve) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
build(real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, real_type s0, real_type s1, int_type icurve) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
distMax(real_type x, real_type y) const (defined in G2lib::Triangle2D)G2lib::Triangle2D
distMin(real_type x, real_type y) const (defined in G2lib::Triangle2D)G2lib::Triangle2D
Icurve() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
info(ostream_type &stream) const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
isCounterClockwise() constG2lib::Triangle2Dinline
isInside(real_type x, real_type y) constG2lib::Triangle2Dinline
isInside(real_type const pt[2]) const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
operator<< (defined in G2lib::Triangle2D)G2lib::Triangle2Dfriend
operator=(Triangle2D const &t) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
overlap(Triangle2D const &) const (defined in G2lib::Triangle2D)G2lib::Triangle2D
P1() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
P2() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
P3() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
rotate(real_type angle, real_type cx, real_type cy) (defined in G2lib::Triangle2D)G2lib::Triangle2D
S0() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
S1() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
scale(real_type sc) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
translate(real_type tx, real_type ty) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
Triangle2D(Triangle2D const &t) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
Triangle2D() (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
Triangle2D(real_type x1, real_type y1, real_type x2, real_type y2, real_type x3, real_type y3, real_type s0, real_type s1, int_type icurve) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
Triangle2D(real_type const p1[2], real_type const p2[2], real_type const p3[2], real_type s0, real_type s1, int_type icurve) (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
x1() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
x2() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
x3() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
y1() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
y2() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
y3() const (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
~Triangle2D() (defined in G2lib::Triangle2D)G2lib::Triangle2Dinline
+ + + + diff --git a/docs/d9/d8c/_clothoid_asy_plot_8hxx_source.html b/docs/d9/d8c/_clothoid_asy_plot_8hxx_source.html new file mode 100644 index 00000000..997f79e4 --- /dev/null +++ b/docs/d9/d8c/_clothoid_asy_plot_8hxx_source.html @@ -0,0 +1,178 @@ + + + + + + + +Clothoids: src/Clothoids/ClothoidAsyPlot.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ClothoidAsyPlot.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi and Marco Frego |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | email: marco.frego@unitn.it |
+
18  | |
+
19 \*--------------------------------------------------------------------------*/
+
20 
+
22 
+
23 namespace G2lib {
+
24 
+
25  using std::string;
+
26  using std::ofstream;
+
27 
+
28  class AsyPlot {
+
29  public:
+
30  AsyPlot( string filename, bool showAxes );
+
31  ~AsyPlot();
+
32 
+
33  void
+
34  drawClothoid(
+
35  ClothoidCurve const& c,
+
36  std::string const & penna="black",
+
37  real_type offset = 0
+
38  ) const;
+
39 
+
40  void dot( real_type x, real_type y, string const & penna="black" ) const;
+
41  void triangle(Triangle2D const & t, string const & penna="black" ) const;
+
42 
+
43  void
+
44  drawRect(
+
45  real_type x0, real_type y0,
+
46  real_type x1, real_type y1,
+
47  real_type x2, real_type y2,
+
48  real_type x3, real_type y3,
+
49  string const & penna="black"
+
50  ) const;
+
51 
+
52  void
+
53  drawLine(
+
54  real_type x0, real_type y0,
+
55  real_type x1, real_type y1,
+
56  std::string const & penna="black"
+
57  ) const;
+
58 
+
59  void
+
60  label(
+
61  string const & text,
+
62  real_type x,
+
63  real_type y,
+
64  string const & placement = "",
+
65  string const & penna = "black"
+
66  ) const;
+
67 
+
68  void
+
69  displayAxes(
+
70  string const & labX,
+
71  string const & labY,
+
72  real_type xmin,
+
73  real_type xmax,
+
74  real_type ymin,
+
75  real_type ymax
+
76  ) const;
+
77 
+
78  private:
+
79  mutable ofstream file;
+
80  string filename;
+
81  bool showAxes;
+
82  bool openFile();
+
83  bool closeFile();
+
84  void initFile();
+
85  void displayAxes() const;
+
86  void compileFile();
+
87  };
+
88 }
+
Definition: ClothoidAsyPlot.hxx:28
+
Class to manage Clothoid Curve.
Definition: Clothoid.hxx:37
+
Class to manage Triangle for BB of clothoid curve.
Definition: Triangle2D.hxx:37
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/d9/d96/class_utils_1_1_binary_search.html b/docs/d9/d96/class_utils_1_1_binary_search.html new file mode 100644 index 00000000..8d26ce75 --- /dev/null +++ b/docs/d9/d96/class_utils_1_1_binary_search.html @@ -0,0 +1,103 @@ + + + + + + + +Clothoids: Utils::BinarySearch< DATA > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::BinarySearch< DATA > Class Template Reference
+
+
+ + + + + + +

+Public Member Functions

+void clear ()
 
+DATA * search (std::thread::id const &id, bool &ok) const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/d9/dcc/rang_8hpp_source.html b/docs/d9/dcc/rang_8hpp_source.html new file mode 100644 index 00000000..4e8a0dd2 --- /dev/null +++ b/docs/d9/dcc/rang_8hpp_source.html @@ -0,0 +1,589 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/rang.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
rang.hpp
+
+
+
1 #ifndef RANG_DOT_HPP
+
2 #define RANG_DOT_HPP
+
3 
+
4 #if defined(__unix__) || defined(__unix) || defined(__linux__)
+
5 #define OS_LINUX
+
6 #elif defined(WIN32) || defined(_WIN32) || defined(_WIN64)
+
7 #define OS_WIN
+
8 #elif defined(__APPLE__) || defined(__MACH__)
+
9 #define OS_MAC
+
10 #else
+
11 #error Unknown Platform
+
12 #endif
+
13 
+
14 #if defined(OS_LINUX) || defined(OS_MAC)
+
15 #include <unistd.h>
+
16 
+
17 #elif defined(OS_WIN)
+
18 
+
19 #if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600)
+
20 #error \
+
21  "Please include rang.hpp before any windows system headers or set _WIN32_WINNT at least to _WIN32_WINNT_VISTA"
+
22 #elif !defined(_WIN32_WINNT)
+
23 #define _WIN32_WINNT _WIN32_WINNT_VISTA
+
24 #endif
+
25 
+
26 #include <windows.h>
+
27 #include <io.h>
+
28 #include <memory>
+
29 
+
30 // Only defined in windows 10 onwards, redefining in lower windows since it
+
31 // doesn't gets used in lower versions
+
32 // https://docs.microsoft.com/en-us/windows/console/getconsolemode
+
33 #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
+
34 #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
+
35 #endif
+
36 
+
37 #endif
+
38 
+
39 #include <algorithm>
+
40 #include <atomic>
+
41 #include <cstdlib>
+
42 #include <cstring>
+
43 #include <iostream>
+
44 
+
45 namespace rang {
+
46 
+
47 /* For better compability with most of terminals do not use any style settings
+
48  * except of reset, bold and reversed.
+
49  * Note that on Windows terminals bold style is same as fgB color.
+
50  */
+
51 enum class style {
+
52  reset = 0,
+
53  bold = 1,
+
54  dim = 2,
+
55  italic = 3,
+
56  underline = 4,
+
57  blink = 5,
+
58  rblink = 6,
+
59  reversed = 7,
+
60  conceal = 8,
+
61  crossed = 9
+
62 };
+
63 
+
64 enum class fg {
+
65  black = 30,
+
66  red = 31,
+
67  green = 32,
+
68  yellow = 33,
+
69  blue = 34,
+
70  magenta = 35,
+
71  cyan = 36,
+
72  gray = 37,
+
73  reset = 39
+
74 };
+
75 
+
76 enum class bg {
+
77  black = 40,
+
78  red = 41,
+
79  green = 42,
+
80  yellow = 43,
+
81  blue = 44,
+
82  magenta = 45,
+
83  cyan = 46,
+
84  gray = 47,
+
85  reset = 49
+
86 };
+
87 
+
88 enum class fgB {
+
89  black = 90,
+
90  red = 91,
+
91  green = 92,
+
92  yellow = 93,
+
93  blue = 94,
+
94  magenta = 95,
+
95  cyan = 96,
+
96  gray = 97
+
97 };
+
98 
+
99 enum class bgB {
+
100  black = 100,
+
101  red = 101,
+
102  green = 102,
+
103  yellow = 103,
+
104  blue = 104,
+
105  magenta = 105,
+
106  cyan = 106,
+
107  gray = 107
+
108 };
+
109 
+
110 enum class control { // Behaviour of rang function calls
+
111  Off = 0, // toggle off rang style/color calls
+
112  Auto = 1, // (Default) autodect terminal and colorize if needed
+
113  Force = 2 // force ansi color output to non terminal streams
+
114 };
+
115 // Use rang::setControlMode to set rang control mode
+
116 
+
117 enum class winTerm { // Windows Terminal Mode
+
118  Auto = 0, // (Default) automatically detects wheter Ansi or Native API
+
119  Ansi = 1, // Force use Ansi API
+
120  Native = 2 // Force use Native API
+
121 };
+
122 // Use rang::setWinTermMode to explicitly set terminal API for Windows
+
123 // Calling rang::setWinTermMode have no effect on other OS
+
124 
+
125 namespace rang_implementation {
+
126 
+
127  inline std::atomic<control> &controlMode() noexcept
+
128  {
+
129  static std::atomic<control> value(control::Auto);
+
130  return value;
+
131  }
+
132 
+
133  inline std::atomic<winTerm> &winTermMode() noexcept
+
134  {
+
135  static std::atomic<winTerm> termMode(winTerm::Auto);
+
136  return termMode;
+
137  }
+
138 
+
139  inline bool supportsColor() noexcept
+
140  {
+
141 #if defined(OS_LINUX) || defined(OS_MAC)
+
142 
+
143  static const bool result = [] {
+
144  const char *Terms[]
+
145  = { "ansi", "color", "console", "cygwin", "gnome",
+
146  "konsole", "kterm", "linux", "msys", "putty",
+
147  "rxvt", "screen", "vt100", "xterm" };
+
148 
+
149  const char *env_p = std::getenv("TERM");
+
150  if (env_p == nullptr) {
+
151  return false;
+
152  }
+
153  return std::any_of(std::begin(Terms), std::end(Terms),
+
154  [&](const char *term) {
+
155  return std::strstr(env_p, term) != nullptr;
+
156  });
+
157  }();
+
158 
+
159 #elif defined(OS_WIN)
+
160  // All windows versions support colors through native console methods
+
161  static constexpr bool result = true;
+
162 #endif
+
163  return result;
+
164  }
+
165 
+
166 #ifdef OS_WIN
+
167 
+
168 
+
169  inline bool isMsysPty(int fd) noexcept
+
170  {
+
171  // Dynamic load for binary compability with old Windows
+
172  const auto ptrGetFileInformationByHandleEx
+
173  = reinterpret_cast<decltype(&GetFileInformationByHandleEx)>(
+
174  GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")),
+
175  "GetFileInformationByHandleEx"));
+
176  if (!ptrGetFileInformationByHandleEx) {
+
177  return false;
+
178  }
+
179 
+
180  HANDLE h = reinterpret_cast<HANDLE>(_get_osfhandle(fd));
+
181  if (h == INVALID_HANDLE_VALUE) {
+
182  return false;
+
183  }
+
184 
+
185  // Check that it's a pipe:
+
186  if (GetFileType(h) != FILE_TYPE_PIPE) {
+
187  return false;
+
188  }
+
189 
+
190  // POD type is binary compatible with FILE_NAME_INFO from WinBase.h
+
191  // It have the same alignment and used to avoid UB in caller code
+
192  struct MY_FILE_NAME_INFO {
+
193  DWORD FileNameLength;
+
194  WCHAR FileName[MAX_PATH];
+
195  };
+
196 
+
197  auto pNameInfo = std::unique_ptr<MY_FILE_NAME_INFO>(
+
198  new (std::nothrow) MY_FILE_NAME_INFO());
+
199  if (!pNameInfo) {
+
200  return false;
+
201  }
+
202 
+
203  // Check pipe name is template of
+
204  // {"cygwin-","msys-"}XXXXXXXXXXXXXXX-ptyX-XX
+
205  if (!ptrGetFileInformationByHandleEx(h, FileNameInfo, pNameInfo.get(),
+
206  sizeof(MY_FILE_NAME_INFO))) {
+
207  return false;
+
208  }
+
209  std::wstring name(pNameInfo->FileName, pNameInfo->FileNameLength / sizeof(WCHAR));
+
210  if ((name.find(L"msys-") == std::wstring::npos
+
211  && name.find(L"cygwin-") == std::wstring::npos)
+
212  || name.find(L"-pty") == std::wstring::npos) {
+
213  return false;
+
214  }
+
215 
+
216  return true;
+
217  }
+
218 
+
219 #endif
+
220 
+
221  inline bool isTerminal(const std::streambuf *osbuf) noexcept
+
222  {
+
223  using std::cerr;
+
224  using std::clog;
+
225  using std::cout;
+
226 #if defined(OS_LINUX) || defined(OS_MAC)
+
227  if (osbuf == cout.rdbuf()) {
+
228  static const bool cout_term = isatty(fileno(stdout)) != 0;
+
229  return cout_term;
+
230  } else if (osbuf == cerr.rdbuf() || osbuf == clog.rdbuf()) {
+
231  static const bool cerr_term = isatty(fileno(stderr)) != 0;
+
232  return cerr_term;
+
233  }
+
234 #elif defined(OS_WIN)
+
235  if (osbuf == cout.rdbuf()) {
+
236  static const bool cout_term
+
237  = (_isatty(_fileno(stdout)) || isMsysPty(_fileno(stdout)));
+
238  return cout_term;
+
239  } else if (osbuf == cerr.rdbuf() || osbuf == clog.rdbuf()) {
+
240  static const bool cerr_term
+
241  = (_isatty(_fileno(stderr)) || isMsysPty(_fileno(stderr)));
+
242  return cerr_term;
+
243  }
+
244 #endif
+
245  return false;
+
246  }
+
247 
+
248  template <typename T>
+
249  using enableStd = typename std::enable_if<
+
250  std::is_same<T, rang::style>::value || std::is_same<T, rang::fg>::value
+
251  || std::is_same<T, rang::bg>::value || std::is_same<T, rang::fgB>::value
+
252  || std::is_same<T, rang::bgB>::value,
+
253  std::ostream &>::type;
+
254 
+
255 
+
256 #ifdef OS_WIN
+
257 
+
258  struct SGR { // Select Graphic Rendition parameters for Windows console
+
259  BYTE fgColor; // foreground color (0-15) lower 3 rgb bits + intense bit
+
260  BYTE bgColor; // background color (0-15) lower 3 rgb bits + intense bit
+
261  BYTE bold; // emulated as FOREGROUND_INTENSITY bit
+
262  BYTE underline; // emulated as BACKGROUND_INTENSITY bit
+
263  BOOLEAN inverse; // swap foreground/bold & background/underline
+
264  BOOLEAN conceal; // set foreground/bold to background/underline
+
265  };
+
266 
+
267  enum class AttrColor : BYTE { // Color attributes for console screen buffer
+
268  black = 0,
+
269  red = 4,
+
270  green = 2,
+
271  yellow = 6,
+
272  blue = 1,
+
273  magenta = 5,
+
274  cyan = 3,
+
275  gray = 7
+
276  };
+
277 
+
278  inline HANDLE getConsoleHandle(const std::streambuf *osbuf) noexcept
+
279  {
+
280  if (osbuf == std::cout.rdbuf()) {
+
281  static const HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
+
282  return hStdout;
+
283  } else if (osbuf == std::cerr.rdbuf() || osbuf == std::clog.rdbuf()) {
+
284  static const HANDLE hStderr = GetStdHandle(STD_ERROR_HANDLE);
+
285  return hStderr;
+
286  }
+
287  return INVALID_HANDLE_VALUE;
+
288  }
+
289 
+
290  inline bool setWinTermAnsiColors(const std::streambuf *osbuf) noexcept
+
291  {
+
292  HANDLE h = getConsoleHandle(osbuf);
+
293  if (h == INVALID_HANDLE_VALUE) {
+
294  return false;
+
295  }
+
296  DWORD dwMode = 0;
+
297  if (!GetConsoleMode(h, &dwMode)) {
+
298  return false;
+
299  }
+
300  dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
+
301  if (!SetConsoleMode(h, dwMode)) {
+
302  return false;
+
303  }
+
304  return true;
+
305  }
+
306 
+
307  inline bool supportsAnsi(const std::streambuf *osbuf) noexcept
+
308  {
+
309  using std::cerr;
+
310  using std::clog;
+
311  using std::cout;
+
312  if (osbuf == cout.rdbuf()) {
+
313  static const bool cout_ansi
+
314  = (isMsysPty(_fileno(stdout)) || setWinTermAnsiColors(osbuf));
+
315  return cout_ansi;
+
316  } else if (osbuf == cerr.rdbuf() || osbuf == clog.rdbuf()) {
+
317  static const bool cerr_ansi
+
318  = (isMsysPty(_fileno(stderr)) || setWinTermAnsiColors(osbuf));
+
319  return cerr_ansi;
+
320  }
+
321  return false;
+
322  }
+
323 
+
324  inline const SGR &defaultState() noexcept
+
325  {
+
326  static const SGR defaultSgr = []() -> SGR {
+
327  CONSOLE_SCREEN_BUFFER_INFO info;
+
328  WORD attrib = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
+
329  if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),
+
330  &info)
+
331  || GetConsoleScreenBufferInfo(GetStdHandle(STD_ERROR_HANDLE),
+
332  &info)) {
+
333  attrib = info.wAttributes;
+
334  }
+
335  SGR sgr = { 0, 0, 0, 0, FALSE, FALSE };
+
336  sgr.fgColor = attrib & 0x0F;
+
337  sgr.bgColor = (attrib & 0xF0) >> 4;
+
338  return sgr;
+
339  }();
+
340  return defaultSgr;
+
341  }
+
342 
+
343  inline BYTE ansi2attr(BYTE rgb) noexcept
+
344  {
+
345  static const AttrColor rev[8]
+
346  = { AttrColor::black, AttrColor::red, AttrColor::green,
+
347  AttrColor::yellow, AttrColor::blue, AttrColor::magenta,
+
348  AttrColor::cyan, AttrColor::gray };
+
349  return static_cast<BYTE>(rev[rgb]);
+
350  }
+
351 
+
352  inline void setWinSGR(rang::bg col, SGR &state) noexcept
+
353  {
+
354  if (col != rang::bg::reset) {
+
355  state.bgColor = ansi2attr(static_cast<BYTE>(col) - 40);
+
356  } else {
+
357  state.bgColor = defaultState().bgColor;
+
358  }
+
359  }
+
360 
+
361  inline void setWinSGR(rang::fg col, SGR &state) noexcept
+
362  {
+
363  if (col != rang::fg::reset) {
+
364  state.fgColor = ansi2attr(static_cast<BYTE>(col) - 30);
+
365  } else {
+
366  state.fgColor = defaultState().fgColor;
+
367  }
+
368  }
+
369 
+
370  inline void setWinSGR(rang::bgB col, SGR &state) noexcept
+
371  {
+
372  state.bgColor = (BACKGROUND_INTENSITY >> 4)
+
373  | ansi2attr(static_cast<BYTE>(col) - 100);
+
374  }
+
375 
+
376  inline void setWinSGR(rang::fgB col, SGR &state) noexcept
+
377  {
+
378  state.fgColor
+
379  = FOREGROUND_INTENSITY | ansi2attr(static_cast<BYTE>(col) - 90);
+
380  }
+
381 
+
382  inline void setWinSGR(rang::style style, SGR &state) noexcept
+
383  {
+
384  switch (style) {
+
385  case rang::style::reset: state = defaultState(); break;
+
386  case rang::style::bold: state.bold = FOREGROUND_INTENSITY; break;
+
387  case rang::style::underline:
+
388  case rang::style::blink:
+
389  state.underline = BACKGROUND_INTENSITY;
+
390  break;
+
391  case rang::style::reversed: state.inverse = TRUE; break;
+
392  case rang::style::conceal: state.conceal = TRUE; break;
+
393  default: break;
+
394  }
+
395  }
+
396 
+
397  inline SGR &current_state() noexcept
+
398  {
+
399  static SGR state = defaultState();
+
400  return state;
+
401  }
+
402 
+
403  inline WORD SGR2Attr(const SGR &state) noexcept
+
404  {
+
405  WORD attrib = 0;
+
406  if (state.conceal) {
+
407  if (state.inverse) {
+
408  attrib = (state.fgColor << 4) | state.fgColor;
+
409  if (state.bold)
+
410  attrib |= FOREGROUND_INTENSITY | BACKGROUND_INTENSITY;
+
411  } else {
+
412  attrib = (state.bgColor << 4) | state.bgColor;
+
413  if (state.underline)
+
414  attrib |= FOREGROUND_INTENSITY | BACKGROUND_INTENSITY;
+
415  }
+
416  } else if (state.inverse) {
+
417  attrib = (state.fgColor << 4) | state.bgColor;
+
418  if (state.bold) attrib |= BACKGROUND_INTENSITY;
+
419  if (state.underline) attrib |= FOREGROUND_INTENSITY;
+
420  } else {
+
421  attrib = state.fgColor | (state.bgColor << 4) | state.bold
+
422  | state.underline;
+
423  }
+
424  return attrib;
+
425  }
+
426 
+
427  template <typename T>
+
428  inline void setWinColorAnsi(std::ostream &os, T const value)
+
429  {
+
430  os << "\033[" << static_cast<int>(value) << "m";
+
431  }
+
432 
+
433  template <typename T>
+
434  inline void setWinColorNative(std::ostream &os, T const value)
+
435  {
+
436  const HANDLE h = getConsoleHandle(os.rdbuf());
+
437  if (h != INVALID_HANDLE_VALUE) {
+
438  setWinSGR(value, current_state());
+
439  // Out all buffered text to console with previous settings:
+
440  os.flush();
+
441  SetConsoleTextAttribute(h, SGR2Attr(current_state()));
+
442  }
+
443  }
+
444 
+
445  template <typename T>
+
446  inline enableStd<T> setColor(std::ostream &os, T const value)
+
447  {
+
448  if (winTermMode() == winTerm::Auto) {
+
449  if (supportsAnsi(os.rdbuf())) {
+
450  setWinColorAnsi(os, value);
+
451  } else {
+
452  setWinColorNative(os, value);
+
453  }
+
454  } else if (winTermMode() == winTerm::Ansi) {
+
455  setWinColorAnsi(os, value);
+
456  } else {
+
457  setWinColorNative(os, value);
+
458  }
+
459  return os;
+
460  }
+
461 #else
+
462  template <typename T>
+
463  inline enableStd<T> setColor(std::ostream &os, T const value)
+
464  {
+
465  return os << "\033[" << static_cast<int>(value) << "m";
+
466  }
+
467 #endif
+
468 } // namespace rang_implementation
+
469 
+
470 template <typename T>
+
471 inline rang_implementation::enableStd<T> operator<<(std::ostream &os,
+
472  const T value)
+
473 {
+
474  const control option = rang_implementation::controlMode();
+
475  switch (option) {
+
476  case control::Auto:
+
477  return rang_implementation::supportsColor()
+
478  && rang_implementation::isTerminal(os.rdbuf())
+
479  ? rang_implementation::setColor(os, value)
+
480  : os;
+
481  case control::Force: return rang_implementation::setColor(os, value);
+
482  default: return os;
+
483  }
+
484 }
+
485 
+
486 inline void setWinTermMode(const rang::winTerm value) noexcept
+
487 {
+
488  rang_implementation::winTermMode() = value;
+
489 }
+
490 
+
491 inline void setControlMode(const control value) noexcept
+
492 {
+
493  rang_implementation::controlMode() = value;
+
494 }
+
495 
+
496 } // namespace rang
+
497 
+
498 #undef OS_LINUX
+
499 #undef OS_WIN
+
500 #undef OS_MAC
+
501 
+
502 #endif /* ifndef RANG_DOT_HPP */
+
+ + + + diff --git a/docs/d9/df7/class_polynomial_roots_1_1_cubic.html b/docs/d9/df7/class_polynomial_roots_1_1_cubic.html new file mode 100644 index 00000000..c257642f --- /dev/null +++ b/docs/d9/df7/class_polynomial_roots_1_1_cubic.html @@ -0,0 +1,447 @@ + + + + + + + +Clothoids: PolynomialRoots::Cubic Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
PolynomialRoots::Cubic Class Reference
+
+
+ +

Cubic polynomial class. + More...

+ +

#include <PolynomialRoots.hh>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Cubic (valueType _a, valueType _b, valueType _c, valueType _d)
 
void setup (valueType _a, valueType _b, valueType _c, valueType _d)
 compute the roots of cubic polynomial \( a x^3 + b x^2 + c x + d \) More...
 
+indexType numRoots () const
 number of found roots
 
+bool complexRoots () const
 has complex roots?
 
+bool doubleRoot () const
 has a double root?
 
+bool tripleRoot () const
 has a triple root?
 
indexType getRealRoots (valueType r[]) const
 get the real roots More...
 
indexType getPositiveRoots (valueType r[]) const
 get positive real roots More...
 
indexType getNegativeRoots (valueType r[]) const
 get negative real roots More...
 
+valueType real_root0 () const
 first real real
 
+valueType real_root1 () const
 second real real
 
+valueType real_root2 () const
 third real real
 
+complexType root0 () const
 
+complexType root1 () const
 
+complexType root2 () const
 
+void getRoot0 (valueType &re, valueType &im) const
 
+void getRoot0 (complexType &r) const
 
+void getRoot1 (valueType &re, valueType &im) const
 
+void getRoot1 (complexType &r) const
 
+void getRoot2 (valueType &re, valueType &im) const
 
+void getRoot2 (complexType &r) const
 
valueType eval (valueType x) const
 evalute the cubic polynomial More...
 
complexType eval (complexType const &x) const
 evalute the cubic polynomial More...
 
void eval (valueType x, valueType &p, valueType &dp) const
 evalute the polynomial with its derivative More...
 
+void info (std::ostream &s) const
 print info of the roots of the polynomial
 
+bool check (std::ostream &s) const
 check tolerenace and quality of the computed roots
 
+

Detailed Description

+

Cubic polynomial class.

+

Member Function Documentation

+ +

◆ eval() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
complexType PolynomialRoots::Cubic::eval (complexType const & x) const
+
+inline
+
+ +

evalute the cubic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \), x complex
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ eval() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
valueType PolynomialRoots::Cubic::eval (valueType x) const
+
+inline
+
+ +

evalute the cubic polynomial

+
Parameters
+ + +
xvalue where compute \( p(x) \)
+
+
+
Returns
the value \( p(x) \)
+ +
+
+ +

◆ eval() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void PolynomialRoots::Cubic::eval (valueType x,
valueType & p,
valueType & dp 
) const
+
+ +

evalute the polynomial with its derivative

+
Parameters
+ + + + +
xvalue where compute \( p(x) \)
pvalue \( p(x) \)
dpvalue \( p'(x) \)
+
+
+ +
+
+ +

◆ getNegativeRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Cubic::getNegativeRoots (valueType r[]) const
+
+ +

get negative real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of negative real roots, 0, 1, 2 or 3
+ +
+
+ +

◆ getPositiveRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Cubic::getPositiveRoots (valueType r[]) const
+
+ +

get positive real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of positive real roots, 0, 1, 2 or 3
+ +
+
+ +

◆ getRealRoots()

+ +
+
+ + + + + + + + +
indexType PolynomialRoots::Cubic::getRealRoots (valueType r[]) const
+
+ +

get the real roots

+
Parameters
+ + +
[out]rvector that will be filled with the real roots
+
+
+
Returns
the total number of real roots, 0, 1, 2 or 3
+ +
+
+ +

◆ setup()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void PolynomialRoots::Cubic::setup (valueType _a,
valueType _b,
valueType _c,
valueType _d 
)
+
+inline
+
+ +

compute the roots of cubic polynomial \( a x^3 + b x^2 + c x + d \)

+
Parameters
+ + + + + +
[in]_acoefficient of \( x^3 \)
[in]_bcoefficient of \( x^2 \)
[in]_ccoefficient of \( x \)
[in]_dcoefficient of \( x^0 \)
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • submodules/quarticRootsFlocke/src/PolynomialRoots.hh
  • +
  • submodules/quarticRootsFlocke/src/PolynomialRoots-2-Cubic.cc
  • +
+
+ + + + diff --git a/docs/da/d14/class_g2lib_1_1_g2solve2arc-members.html b/docs/da/d14/class_g2lib_1_1_g2solve2arc-members.html new file mode 100644 index 00000000..177de2f8 --- /dev/null +++ b/docs/da/d14/class_g2lib_1_1_g2solve2arc-members.html @@ -0,0 +1,98 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::G2solve2arc Member List
+
+
+ +

This is the complete list of members for G2lib::G2solve2arc, including all inherited members.

+ + + + + + + + + +
build(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1) (defined in G2lib::G2solve2arc)G2lib::G2solve2arc
G2solve2arc() (defined in G2lib::G2solve2arc)G2lib::G2solve2arcinline
getS0() const (defined in G2lib::G2solve2arc)G2lib::G2solve2arcinline
getS1() const (defined in G2lib::G2solve2arc)G2lib::G2solve2arcinline
setMaxIter(int tol) (defined in G2lib::G2solve2arc)G2lib::G2solve2arc
setTolerance(real_type tol) (defined in G2lib::G2solve2arc)G2lib::G2solve2arc
solve() (defined in G2lib::G2solve2arc)G2lib::G2solve2arc
~G2solve2arc() (defined in G2lib::G2solve2arc)G2lib::G2solve2arcinline
+ + + + diff --git a/docs/da/d45/class_utils_1_1_runtime___trace_error-members.html b/docs/da/d45/class_utils_1_1_runtime___trace_error-members.html new file mode 100644 index 00000000..bb316bf6 --- /dev/null +++ b/docs/da/d45/class_utils_1_1_runtime___trace_error-members.html @@ -0,0 +1,92 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Runtime_TraceError Member List
+
+
+ +

This is the complete list of members for Utils::Runtime_TraceError, including all inherited members.

+ + + +
Runtime_TraceError(std::string const &reason, char const file[], int line) (defined in Utils::Runtime_TraceError)Utils::Runtime_TraceErrorinlineexplicit
what() const noexcept override (defined in Utils::Runtime_TraceError)Utils::Runtime_TraceErrorvirtual
+ + + + diff --git a/docs/da/d58/class_polynomial_roots_1_1_quartic-members.html b/docs/da/d58/class_polynomial_roots_1_1_quartic-members.html new file mode 100644 index 00000000..e3d048a4 --- /dev/null +++ b/docs/da/d58/class_polynomial_roots_1_1_quartic-members.html @@ -0,0 +1,119 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolynomialRoots::Quartic Member List
+
+
+ +

This is the complete list of members for PolynomialRoots::Quartic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
check(std::ostream &s) constPolynomialRoots::Quartic
eval(valueType x) constPolynomialRoots::Quarticinline
eval(complexType const &x) constPolynomialRoots::Quarticinline
getNegativeRoots(valueType r[]) constPolynomialRoots::Quartic
getPositiveRoots(valueType r[]) constPolynomialRoots::Quartic
getRealRoots(valueType r[]) constPolynomialRoots::Quartic
getRoot0(valueType &re, valueType &im) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot0(complexType &r) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot1(valueType &re, valueType &im) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot1(complexType &r) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot2(valueType &re, valueType &im) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot2(complexType &r) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot3(valueType &re, valueType &im) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
getRoot3(complexType &r) const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
info(std::ostream &s) constPolynomialRoots::Quartic
numComplexRoots() constPolynomialRoots::Quarticinline
numRealRoots() constPolynomialRoots::Quarticinline
numRoots() constPolynomialRoots::Quarticinline
Quartic() (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
Quartic(valueType _a, valueType _b, valueType _c, valueType _d, valueType _e) (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
real_root0() constPolynomialRoots::Quarticinline
real_root1() constPolynomialRoots::Quarticinline
real_root2() constPolynomialRoots::Quarticinline
real_root3() constPolynomialRoots::Quarticinline
root0() const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
root1() const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
root2() const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
root3() const (defined in PolynomialRoots::Quartic)PolynomialRoots::Quarticinline
setup(valueType _a, valueType _b, valueType _c, valueType _d, valueType _e)PolynomialRoots::Quarticinline
+ + + + diff --git a/docs/da/d80/_polynomial_roots_8hh_source.html b/docs/da/d80/_polynomial_roots_8hh_source.html new file mode 100644 index 00000000..de94d2db --- /dev/null +++ b/docs/da/d80/_polynomial_roots_8hh_source.html @@ -0,0 +1,755 @@ + + + + + + + +Clothoids: submodules/quarticRootsFlocke/src/PolynomialRoots.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
PolynomialRoots.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2014 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
20 #ifndef POLYNOMIAL_ROOTS_HH
+
21 #define POLYNOMIAL_ROOTS_HH
+
22 
+
23 #include <cmath>
+
24 #include <cfloat>
+
25 #include <complex>
+
26 #include <iostream>
+
27 
+
100 namespace PolynomialRoots {
+
101 
+
102  typedef double valueType;
+
103  typedef int indexType;
+
104  typedef std::complex<valueType> complexType;
+
105 
+
107  static
+
108  inline
+
109  bool
+
110  isZero( valueType x )
+
111  { return FP_ZERO == std::fpclassify(x); }
+
112 
+
114  static
+
115  inline
+
116  bool
+
117  isInfinite( valueType x )
+
118  { return FP_INFINITE == std::fpclassify(x); }
+
119 
+
121  static
+
122  inline
+
123  bool
+
124  isNaN( valueType x )
+
125  { return FP_NAN == std::fpclassify(x); }
+
126 
+
128  static
+
129  inline
+
130  bool
+
131  isRegular( valueType x )
+
132  { return !( FP_INFINITE == std::fpclassify(x) ||
+
133  FP_NAN == std::fpclassify(x) ); }
+
134 
+
136  valueType
+
137  evalPoly(
+
138  valueType const op[],
+
139  indexType Degree,
+
140  valueType x
+
141  );
+
142 
+
144  std::complex<valueType>
+
145  evalPolyC(
+
146  valueType const op[],
+
147  indexType Degree,
+
148  std::complex<valueType> const & x
+
149  );
+
150 
+
152  int
+
153  roots(
+
154  valueType const op[],
+
155  indexType Degree,
+
156  valueType zeror[],
+
157  valueType zeroi[]
+
158  );
+
159 
+
160  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
161  /*\
+
162  | ___ _ _ _
+
163  | / _ \ _ _ __ _ __| |_ __ __ _| |_(_) ___
+
164  | | | | | | | |/ _` |/ _` | '__/ _` | __| |/ __|
+
165  | | |_| | |_| | (_| | (_| | | | (_| | |_| | (__
+
166  | \__\_\\__,_|\__,_|\__,_|_| \__,_|\__|_|\___|
+
167  |
+
168  | A * x^2 + B * x + C
+
169  \*/
+
171  class Quadratic {
+
172  valueType ABC[3];
+
173  valueType r0, r1;
+
174  indexType nrts;
+
175  bool cplx;
+
176  bool dblx;
+
177 
+
178  void findRoots();
+
179 
+
180  public:
+
181 
+
182  Quadratic() : nrts(0), cplx(false), dblx(false) {}
+
183  Quadratic( valueType _a, valueType _b, valueType _c )
+
184  : nrts(0), cplx(false), dblx(false) {
+
185  valueType & A = ABC[0];
+
186  valueType & B = ABC[1];
+
187  valueType & C = ABC[2];
+
188  A = _a; B = _b; C = _c;
+
189  findRoots();
+
190  }
+
191 
+
193 
+
200  void
+
201  setup( valueType _a, valueType _b, valueType _c ) {
+
202  valueType & A = ABC[0];
+
203  valueType & B = ABC[1];
+
204  valueType & C = ABC[2];
+
205  A = _a; B = _b; C = _c;
+
206  findRoots();
+
207  }
+
208 
+
209  indexType numRoots() const { return nrts; }
+
210  bool complexRoots() const { return cplx; }
+
211  bool doubleRoot() const { return dblx; }
+
212 
+
214 
+
218  indexType getRealRoots( valueType r[] ) const;
+
219 
+
221 
+
225  indexType getPositiveRoots( valueType r[] ) const;
+
226 
+
228 
+
232  indexType getNegativeRoots( valueType r[] ) const;
+
233 
+
234  valueType real_root0() const { return r0; }
+
235  valueType real_root1() const { return r1; }
+
236 
+
237  complexType
+
238  root0() const
+
239  { return cplx ? complexType(r0,r1) : complexType(r0,0); }
+
240 
+
241  complexType
+
242  root1() const
+
243  { return cplx ? complexType(r0,-r1) : complexType(r1,0); }
+
244 
+
245  void
+
246  getRoot0( valueType & re, valueType & im ) const {
+
247  if ( cplx ) { re = r0; im = r1; }
+
248  else { re = r0; im = 0; }
+
249  }
+
250 
+
251  void
+
252  getRoot0( complexType & r ) const {
+
253  if ( cplx ) r = complexType(r0,r1);
+
254  else r = complexType(r0,0);
+
255  }
+
256 
+
257  void
+
258  getRoot1( valueType & re, valueType & im ) const {
+
259  if ( cplx ) { re = r0; im = -r1; }
+
260  else { re = r1; im = 0; }
+
261  }
+
262 
+
263  void
+
264  getRoot1( complexType & r ) const {
+
265  if ( cplx ) r = complexType(r0,-r1);
+
266  else r = complexType(r1,0);
+
267  }
+
268 
+
270 
+
274  valueType
+
275  eval( valueType x ) const
+
276  { return evalPoly( ABC, 2, x ); }
+
277 
+
279 
+
283  complexType
+
284  eval( complexType const & x ) const
+
285  { return evalPolyC( ABC, 2, x ); }
+
286 
+
288 
+
293  void eval( valueType x, valueType & p, valueType & dp ) const;
+
294 
+
296  void
+
297  info( std::ostream & s ) const;
+
298 
+
300  bool
+
301  check( std::ostream & s ) const;
+
302 
+
303  };
+
304 
+
305  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
306  /*\
+
307  | ____ _ _
+
308  | / ___| _| |__ (_) ___
+
309  | | | | | | | '_ \| |/ __|
+
310  | | |__| |_| | |_) | | (__
+
311  | \____\__,_|_.__/|_|\___|
+
312  |
+
313  | A * x^3 + B * x^2 + C * x + D
+
314  \*/
+
316  class Cubic {
+
317  valueType ABCD[4];
+
318  valueType r0, r1, r2;
+
319  indexType nrts, iter;
+
320  bool cplx; // complex root
+
321  bool dblx; // double root
+
322  bool trpx; // triple root
+
323 
+
324  void findRoots();
+
325 
+
326  public:
+
327 
+
328  Cubic() : nrts(0), iter(0), cplx(false), trpx(false) {}
+
329  Cubic( valueType _a, valueType _b, valueType _c, valueType _d )
+
330  : nrts(0), iter(0), cplx(false), trpx(false) {
+
331  valueType & A = ABCD[0];
+
332  valueType & B = ABCD[1];
+
333  valueType & C = ABCD[2];
+
334  valueType & D = ABCD[3];
+
335  A = _a; B = _b; C = _c; D = _d;
+
336  findRoots();
+
337  }
+
338 
+
340 
+
348  void
+
349  setup( valueType _a, valueType _b, valueType _c, valueType _d ) {
+
350  valueType & A = ABCD[0];
+
351  valueType & B = ABCD[1];
+
352  valueType & C = ABCD[2];
+
353  valueType & D = ABCD[3];
+
354  A = _a; B = _b; C = _c; D = _d;
+
355  findRoots();
+
356  }
+
357 
+
358  indexType numRoots() const { return nrts; }
+
359  bool complexRoots() const { return cplx; }
+
360  bool doubleRoot() const { return dblx; }
+
361  bool tripleRoot() const { return trpx; }
+
362 
+
364 
+
368  indexType getRealRoots( valueType r[] ) const;
+
369 
+
371 
+
375  indexType getPositiveRoots( valueType r[] ) const;
+
376 
+
378 
+
382  indexType getNegativeRoots( valueType r[] ) const;
+
383 
+
384  valueType real_root0() const { return r0; }
+
385  valueType real_root1() const { return r1; }
+
386  valueType real_root2() const { return r2; }
+
387 
+
388  complexType
+
389  root0() const
+
390  { return cplx ? complexType(r0,r1) : complexType(r0,0); }
+
391 
+
392  complexType
+
393  root1() const
+
394  { return cplx ? complexType(r0,-r1) : complexType(r1,0); }
+
395 
+
396  complexType
+
397  root2() const
+
398  { return complexType(r2,0); }
+
399 
+
400  void
+
401  getRoot0( valueType & re, valueType & im ) const {
+
402  if ( cplx ) { re = r0; im = r1; }
+
403  else { re = r0; im = 0; }
+
404  }
+
405 
+
406  void
+
407  getRoot0( complexType & r ) const {
+
408  if ( cplx ) r = complexType(r0,r1);
+
409  else r = complexType(r0,0);
+
410  }
+
411 
+
412  void
+
413  getRoot1( valueType & re, valueType & im ) const {
+
414  if ( cplx ) { re = r0; im = -r1; }
+
415  else { re = r1; im = 0; }
+
416  }
+
417 
+
418  void
+
419  getRoot1( complexType & r ) const {
+
420  if ( cplx ) r = complexType(r0,-r1);
+
421  else r = complexType(r1,0);
+
422  }
+
423 
+
424  void
+
425  getRoot2( valueType & re, valueType & im ) const
+
426  { re = r2; im = 0; }
+
427 
+
428  void
+
429  getRoot2( complexType & r ) const
+
430  { r = complexType(r2,0); }
+
431 
+
433 
+
437  valueType
+
438  eval( valueType x ) const
+
439  { return evalPoly( ABCD, 3, x ); }
+
440 
+
442 
+
446  complexType
+
447  eval( complexType const & x ) const
+
448  { return evalPolyC( ABCD, 3, x ); }
+
449 
+
451 
+
456  void eval( valueType x, valueType & p, valueType & dp ) const;
+
457 
+
459  void
+
460  info( std::ostream & s ) const;
+
461 
+
463  bool
+
464  check( std::ostream & s ) const;
+
465 
+
466  };
+
467 
+
468  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
469  /*\
+
470  | ___ _ _
+
471  | / _ \ _ _ __ _ _ __| |_(_) ___
+
472  | | | | | | | |/ _` | '__| __| |/ __|
+
473  | | |_| | |_| | (_| | | | |_| | (__
+
474  | \__\_\\__,_|\__,_|_| \__|_|\___|
+
475  |
+
476  | A * x^3 + B * x^2 + C * x + D
+
477  \*/
+
479  class Quartic {
+
480  valueType ABCDE[5];
+
481  valueType r0, r1, r2, r3;
+
482  indexType iter, nreal, ncplx;
+
483 
+
484  void findRoots();
+
485 
+
486  bool cplx0() const { return ncplx > 0; }
+
487  bool cplx1() const { return ncplx > 0; }
+
488  bool cplx2() const { return ncplx > 2; }
+
489  bool cplx3() const { return ncplx > 2; }
+
490 
+
491  public:
+
492 
+
493  Quartic() : iter(0), nreal(0), ncplx(0) {}
+
494  Quartic(
+
495  valueType _a,
+
496  valueType _b,
+
497  valueType _c,
+
498  valueType _d,
+
499  valueType _e
+
500  )
+
501  : iter(0), nreal(0), ncplx(0) {
+
502  valueType & A = ABCDE[0];
+
503  valueType & B = ABCDE[1];
+
504  valueType & C = ABCDE[2];
+
505  valueType & D = ABCDE[3];
+
506  valueType & E = ABCDE[4];
+
507  A = _a; B = _b; C = _c; D = _d; E = _e;
+
508  findRoots();
+
509  }
+
510 
+
512 
+
521  void
+ +
523  valueType _a,
+
524  valueType _b,
+
525  valueType _c,
+
526  valueType _d,
+
527  valueType _e
+
528  ) {
+
529  valueType & A = ABCDE[0];
+
530  valueType & B = ABCDE[1];
+
531  valueType & C = ABCDE[2];
+
532  valueType & D = ABCDE[3];
+
533  valueType & E = ABCDE[4];
+
534  A = _a; B = _b; C = _c; D = _d; E = _e;
+
535  findRoots();
+
536  }
+
537 
+
538  indexType numRoots() const { return nreal+ncplx; }
+
539  indexType numRealRoots() const { return nreal; }
+
540  indexType numComplexRoots() const { return ncplx; }
+
541 
+
543 
+
547  indexType getRealRoots( valueType r[] ) const;
+
548 
+
550 
+
554  indexType getPositiveRoots( valueType r[] ) const;
+
555 
+
557 
+
561  indexType getNegativeRoots( valueType r[] ) const;
+
562 
+
563  valueType real_root0() const { return r0; }
+
564  valueType real_root1() const { return r1; }
+
565  valueType real_root2() const { return r2; }
+
566  valueType real_root3() const { return r3; }
+
567 
+
568  complexType
+
569  root0() const
+
570  { return cplx0() ? complexType(r0,r1) : complexType(r0,0); }
+
571 
+
572  complexType
+
573  root1() const
+
574  { return cplx1() ? complexType(r0,-r1) : complexType(r1,0); }
+
575 
+
576  complexType
+
577  root2() const
+
578  { return cplx2() ? complexType(r2,r3) : complexType(r2,0); }
+
579 
+
580  complexType
+
581  root3() const
+
582  { return cplx3() ? complexType(r2,-r3) : complexType(r3,0); }
+
583 
+
584  void
+
585  getRoot0( valueType & re, valueType & im ) const {
+
586  if ( cplx0() ) { re = r0; im = r1; }
+
587  else { re = r0; im = 0; }
+
588  }
+
589 
+
590  void
+
591  getRoot0( complexType & r ) const {
+
592  if ( cplx0() ) r = complexType(r0,r1);
+
593  else r = complexType(r0,0);
+
594  }
+
595 
+
596  void
+
597  getRoot1( valueType & re, valueType & im ) const {
+
598  if ( cplx1() ) { re = r0; im = -r1; }
+
599  else { re = r1; im = 0; }
+
600  }
+
601 
+
602  void
+
603  getRoot1( complexType & r ) const {
+
604  if ( cplx1() ) r = complexType(r0,-r1);
+
605  else r = complexType(r1,0);
+
606  }
+
607 
+
608  void
+
609  getRoot2( valueType & re, valueType & im ) const {
+
610  if ( cplx2() ) { re = r2; im = r3; }
+
611  else { re = r2; im = 0; }
+
612  }
+
613 
+
614  void
+
615  getRoot2( complexType & r ) const {
+
616  if ( cplx2() ) r = complexType(r2,r3);
+
617  else r = complexType(r2,0);
+
618  }
+
619 
+
620  void
+
621  getRoot3( valueType & re, valueType & im ) const {
+
622  if ( cplx3() ) { re = r2; im = -r3; }
+
623  else { re = r3; im = 0; }
+
624  }
+
625 
+
626  void
+
627  getRoot3( complexType & r ) const {
+
628  if ( cplx3() ) r = complexType(r2,-r3);
+
629  else r = complexType(r3,0);
+
630  }
+
631 
+
633 
+
637  valueType
+
638  eval( valueType x ) const
+
639  { return evalPoly( ABCDE, 4, x ); }
+
640 
+
642 
+
646  complexType
+
647  eval( complexType const & x ) const
+
648  { return evalPolyC( ABCDE, 4, x ); }
+
649 
+
651  void
+
652  info( std::ostream & s ) const;
+
653 
+
655  bool
+
656  check( std::ostream & s ) const;
+
657 
+
658  };
+
659 
+
660  /*\
+
661  | _ _ _ _ _
+
662  | | | | | |_(_) |___
+
663  | | | | | __| | / __|
+
664  | | |_| | |_| | \__ \
+
665  | \___/ \__|_|_|___/
+
666  \*/
+
667 
+
668  // x^3 + a*x^2 + b*x + c
+
669  static
+
670  inline
+
671  valueType
+
672  evalMonicCubic(
+
673  valueType x,
+
674  valueType a,
+
675  valueType b,
+
676  valueType c
+
677  ) {
+
678  valueType p;
+
679  p = x + a;
+
680  p = p * x + b;
+
681  p = p * x + c;
+
682  return p;
+
683  }
+
684 
+
685  static
+
686  inline
+
687  void
+
688  evalMonicCubic(
+
689  valueType x,
+
690  valueType a,
+
691  valueType b,
+
692  valueType c,
+
693  valueType & p,
+
694  valueType & dp
+
695  ) {
+
696  p = x + a;
+
697  dp = x + p;
+
698  p = p * x + b;
+
699  dp = dp * x + p;
+
700  p = p * x + c;
+
701  }
+
702 
+
703  // 3*x^2 + 2*a*x + b
+
704  // 6*x + 2*a
+
705  static
+
706  inline
+
707  void
+
708  evalMonicCubic(
+
709  valueType x,
+
710  valueType a,
+
711  valueType b,
+
712  valueType c,
+
713  valueType & p,
+
714  valueType & dp,
+
715  valueType & ddp
+
716  ) {
+
717  p = x + a;
+
718  dp = x + p; // 2*x + a
+
719  p = p * x + b; // x^2 + a * x + b
+
720  ddp = 2*(x + dp);
+
721  dp = dp * x + p;
+
722  p = p * x + c;
+
723  }
+
724 
+
725  // x^4 + a*x^3 + b*x^2 + c*x + d
+
726  static
+
727  inline
+
728  valueType
+
729  evalMonicQuartic(
+
730  valueType x,
+
731  valueType a,
+
732  valueType b,
+
733  valueType c,
+
734  valueType d
+
735  ) {
+
736  valueType p;
+
737  p = x + a; // x + a
+
738  p = p * x + b; // x^2+ a*x + b
+
739  p = p * x + c; // x^3+ a*x^2 + b*x + c
+
740  p = p * x + d; // x^4+ a*x^3 + b*x^2 + c*x + d
+
741  return p;
+
742  }
+
743 
+
744  static
+
745  inline
+
746  void
+
747  evalMonicQuartic(
+
748  valueType x,
+
749  valueType a,
+
750  valueType b,
+
751  valueType c,
+
752  valueType d,
+
753  valueType & p,
+
754  valueType & dp
+
755  ) {
+
756  p = x + a; // x + a
+
757  dp = x + p; // 2*x + a
+
758  p = p * x + b; // x^2+ a*x + b
+
759  dp = dp * x + p; // 3*x^2 + 2*a*x + b
+
760  p = p * x + c; // x^3+ a*x^2 + b*x + c
+
761  dp = dp * x + p; // 4*x^3 + 3*a*x^2 + 2*b*x + c
+
762  p = p * x + d; // x^4+ a*x^3 + b*x^2 + c*x + d
+
763  }
+
764 
+
765  static
+
766  inline
+
767  void
+
768  evalMonicQuartic(
+
769  valueType x,
+
770  valueType a,
+
771  valueType b,
+
772  valueType c,
+
773  valueType d,
+
774  valueType & p,
+
775  valueType & dp,
+
776  valueType & ddp
+
777  ) {
+
778  // p_{n+1}(x) = x * p_{n}(x) + b_{n}
+
779  // p'_{n+1}(x) = x * p'_{n}(x) + p_{n}(x)
+
780  // p''_{n+1}(x) = x * p''_{n}(x) + 2*p'_{n}(x)
+
781  // ddp = 0;
+
782  // dp = 1;
+
783  p = x + a; // x + a
+
784 
+
785  ddp = 2;
+
786  dp = x + p;
+
787  p = p * x + b;
+
788 
+
789  ddp = ddp * x + 2 * dp;
+
790  dp = dp * x + p;
+
791  p = p * x + c;
+
792 
+
793  ddp = ddp * x + 2 * dp;
+
794  dp = dp * x + p;
+
795  p = p * x + d;
+
796  }
+
797 
+
798 }
+
799 
+
800 #endif
+
Cubic polynomial class.
Definition: PolynomialRoots.hh:316
+
valueType real_root2() const
third real real
Definition: PolynomialRoots.hh:386
+
bool doubleRoot() const
has a double root?
Definition: PolynomialRoots.hh:360
+
indexType getNegativeRoots(valueType r[]) const
get negative real roots
Definition: PolynomialRoots-2-Cubic.cc:61
+
indexType numRoots() const
number of found roots
Definition: PolynomialRoots.hh:358
+
bool complexRoots() const
has complex roots?
Definition: PolynomialRoots.hh:359
+
bool check(std::ostream &s) const
check tolerenace and quality of the computed roots
Definition: PolynomialRoots-2-Cubic.cc:458
+
indexType getRealRoots(valueType r[]) const
get the real roots
Definition: PolynomialRoots-2-Cubic.cc:35
+
valueType real_root0() const
first real real
Definition: PolynomialRoots.hh:384
+
complexType eval(complexType const &x) const
evalute the cubic polynomial
Definition: PolynomialRoots.hh:447
+
bool tripleRoot() const
has a triple root?
Definition: PolynomialRoots.hh:361
+
void setup(valueType _a, valueType _b, valueType _c, valueType _d)
compute the roots of cubic polynomial
Definition: PolynomialRoots.hh:349
+
valueType real_root1() const
second real real
Definition: PolynomialRoots.hh:385
+
valueType eval(valueType x) const
evalute the cubic polynomial
Definition: PolynomialRoots.hh:438
+
indexType getPositiveRoots(valueType r[]) const
get positive real roots
Definition: PolynomialRoots-2-Cubic.cc:48
+
void info(std::ostream &s) const
print info of the roots of the polynomial
Definition: PolynomialRoots-2-Cubic.cc:435
+
Quadratic polynomial class.
Definition: PolynomialRoots.hh:171
+
indexType getRealRoots(valueType r[]) const
get the real roots
Definition: PolynomialRoots-1-Quadratic.cc:32
+
indexType numRoots() const
number of found roots
Definition: PolynomialRoots.hh:209
+
void setup(valueType _a, valueType _b, valueType _c)
compute the roots of quadratic polynomial
Definition: PolynomialRoots.hh:201
+
bool check(std::ostream &s) const
check tolerenace and quality of the computed roots
Definition: PolynomialRoots-1-Quadratic.cc:162
+
indexType getNegativeRoots(valueType r[]) const
get negative real roots
Definition: PolynomialRoots-1-Quadratic.cc:52
+
complexType eval(complexType const &x) const
evalute the quadratic polynomial
Definition: PolynomialRoots.hh:284
+
bool complexRoots() const
are roots complex?
Definition: PolynomialRoots.hh:210
+
valueType real_root1() const
second real root
Definition: PolynomialRoots.hh:235
+
indexType getPositiveRoots(valueType r[]) const
get positive real roots
Definition: PolynomialRoots-1-Quadratic.cc:42
+
void info(std::ostream &s) const
print info of the roots of the polynomial
Definition: PolynomialRoots-1-Quadratic.cc:139
+
bool doubleRoot() const
are roots a double root?
Definition: PolynomialRoots.hh:211
+
valueType eval(valueType x) const
evalute the quadratic polynomial
Definition: PolynomialRoots.hh:275
+
valueType real_root0() const
first real root
Definition: PolynomialRoots.hh:234
+
Quartic polynomial class.
Definition: PolynomialRoots.hh:479
+
indexType numComplexRoots() const
number of complex roots
Definition: PolynomialRoots.hh:540
+
complexType eval(complexType const &x) const
evalute the quartic polynomial
Definition: PolynomialRoots.hh:647
+
valueType real_root0() const
first real real
Definition: PolynomialRoots.hh:563
+
indexType numRoots() const
number of found roots
Definition: PolynomialRoots.hh:538
+
void setup(valueType _a, valueType _b, valueType _c, valueType _d, valueType _e)
compute the roots of quartic polynomial
Definition: PolynomialRoots.hh:522
+
valueType eval(valueType x) const
evalute the quartic polynomial
Definition: PolynomialRoots.hh:638
+
void info(std::ostream &s) const
print info of the roots of the polynomial
Definition: PolynomialRoots-3-Quartic.cc:658
+
indexType getNegativeRoots(valueType r[]) const
get negative real roots
Definition: PolynomialRoots-3-Quartic.cc:52
+
valueType real_root2() const
third real real
Definition: PolynomialRoots.hh:565
+
valueType real_root1() const
second real real
Definition: PolynomialRoots.hh:564
+
indexType getRealRoots(valueType r[]) const
get the real roots
Definition: PolynomialRoots-3-Quartic.cc:32
+
bool check(std::ostream &s) const
check tolerenace and quality of the computed roots
Definition: PolynomialRoots-3-Quartic.cc:686
+
valueType real_root3() const
fourth real real
Definition: PolynomialRoots.hh:566
+
indexType getPositiveRoots(valueType r[]) const
get positive real roots
Definition: PolynomialRoots-3-Quartic.cc:42
+
indexType numRealRoots() const
number of real roots
Definition: PolynomialRoots.hh:539
+
implementation of Flocke algorithm for roots of 3rd and 4th degree polynomials
Definition: PolynomialRoots-1-Quadratic.cc:26
+
valueType evalPoly(valueType const op[], indexType Degree, valueType x)
evaluate real polynomial
Definition: PolynomialRoots-Utils.cc:45
+
std::complex< valueType > evalPolyC(valueType const op[], indexType Degree, std::complex< valueType > const &x)
evaluate real polynomial with complex value
Definition: PolynomialRoots-Utils.cc:71
+
int roots(valueType const op[], indexType Degree, valueType zeror[], valueType zeroi[])
find roots of a generic polinomial using Jenkins-Traub method
Definition: PolynomialRoots-Jenkins-Traub.cc:673
+
+ + + + diff --git a/docs/da/d83/_fresnel_8hxx_source.html b/docs/da/d83/_fresnel_8hxx_source.html new file mode 100644 index 00000000..5fdfc927 --- /dev/null +++ b/docs/da/d83/_fresnel_8hxx_source.html @@ -0,0 +1,492 @@ + + + + + + + +Clothoids: src/Clothoids/Fresnel.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Fresnel.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
28 
+
29  /*\
+
30  | _____ _
+
31  | | ___| __ ___ ___ _ __ ___| |
+
32  | | |_ | '__/ _ \/ __| '_ \ / _ \ |
+
33  | | _|| | | __/\__ \ | | | __/ |
+
34  | |_| |_| \___||___/_| |_|\___|_|
+
35  \*/
+
37 
+
44  void
+
45  FresnelCS(
+
46  real_type x,
+
47  real_type & C,
+
48  real_type & S
+
49  );
+
50 
+
52 
+
59  void
+
60  FresnelCS(
+
61  int_type nk,
+
62  real_type x,
+
63  real_type C[],
+
64  real_type S[]
+
65  );
+
66 
+
79  void
+ +
81  int_type nk,
+
82  real_type a,
+
83  real_type b,
+
84  real_type c,
+
85  real_type intC[],
+
86  real_type intS[]
+
87  );
+
88 
+
100  void
+ +
102  real_type a,
+
103  real_type b,
+
104  real_type c,
+
105  real_type & intC,
+
106  real_type & intS
+
107  );
+
108 
+
109  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
110 
+
112  class ClothoidData {
+
113  public:
+
114 
+
115  real_type x0;
+
116  real_type y0;
+
117  real_type theta0;
+
118  real_type kappa0;
+
119  real_type dk;
+
120 
+
121  ClothoidData()
+
122  : x0(0)
+
123  , y0(0)
+
124  , theta0(0)
+
125  , kappa0(0)
+
126  , dk(0)
+
127  {}
+
128 
+
129  real_type
+
130  deltaTheta( real_type s ) const
+
131  { return s*(kappa0 + 0.5*s*dk); }
+
132 
+
134  real_type theta
+
135  ( real_type s ) const
+
136  { return theta0 + s*(kappa0 + 0.5*s*dk); }
+
137 
+
138  real_type theta_D ( real_type s ) const { return kappa0 + s*dk; }
+
139  real_type theta_DD ( real_type ) const { return dk; }
+
140  real_type theta_DDD( real_type ) const { return 0; }
+
141 
+
143  real_type kappa ( real_type s ) const { return kappa0 + s*dk; }
+
144  real_type kappa_D ( real_type ) const { return dk; }
+
145  real_type kappa_DD ( real_type ) const { return 0; }
+
146  real_type kappa_DDD( real_type ) const { return 0; }
+
147 
+
148  real_type X( real_type s ) const;
+
149  real_type Y( real_type s ) const;
+
150  real_type X_D( real_type s ) const;
+
151  real_type Y_D( real_type s ) const;
+
152  real_type X_DD( real_type s ) const;
+
153  real_type Y_DD( real_type s ) const;
+
154  real_type X_DDD( real_type s ) const;
+
155  real_type Y_DDD( real_type s ) const;
+
156 
+
157  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
158  real_type X_ISO ( real_type s, real_type offs ) const;
+
159  real_type Y_ISO ( real_type s, real_type offs ) const;
+
160  real_type X_ISO_D ( real_type s, real_type offs ) const;
+
161  real_type Y_ISO_D ( real_type s, real_type offs ) const;
+
162  real_type X_ISO_DD ( real_type s, real_type offs ) const;
+
163  real_type Y_ISO_DD ( real_type s, real_type offs ) const;
+
164  real_type X_ISO_DDD( real_type s, real_type offs ) const;
+
165  real_type Y_ISO_DDD( real_type s, real_type offs ) const;
+
166 
+
167  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
168 
+
169  real_type X_SAE ( real_type s, real_type offs ) const;
+
170  real_type Y_SAE ( real_type s, real_type offs ) const;
+
171  real_type X_SAE_D ( real_type s, real_type offs ) const;
+
172  real_type Y_SAE_D ( real_type s, real_type offs ) const;
+
173  real_type X_SAE_DD ( real_type s, real_type offs ) const;
+
174  real_type Y_SAE_DD ( real_type s, real_type offs ) const;
+
175  real_type X_SAE_DDD( real_type s, real_type offs ) const;
+
176  real_type Y_SAE_DDD( real_type s, real_type offs ) const;
+
177 
+
178  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
179 
+
180  real_type tg0_x() const { return cos(this->theta0); }
+
181  real_type tg0_y() const { return sin(this->theta0); }
+
182 
+
183  real_type tg_x( real_type s ) const { return cos(this->theta(s)); }
+
184  real_type tg_y( real_type s ) const { return sin(this->theta(s)); }
+
185 
+
186  real_type tg_x_D( real_type s ) const;
+
187  real_type tg_y_D( real_type s ) const;
+
188 
+
189  real_type tg_x_DD( real_type s ) const;
+
190  real_type tg_y_DD( real_type s ) const;
+
191 
+
192  real_type tg_x_DDD( real_type s ) const;
+
193  real_type tg_y_DDD( real_type s ) const;
+
194 
+
195  real_type nor0_x_ISO() const { return -this->tg0_y(); }
+
196  real_type nor0_y_ISO() const { return this->tg0_x(); }
+
197 
+
198  real_type nor_x_ISO( real_type s ) const { return -this->tg_y(s); }
+
199  real_type nor_y_ISO( real_type s ) const { return this->tg_x(s); }
+
200 
+
201  real_type nor_x_ISO_D( real_type s ) const { return -this->tg_y_D(s); }
+
202  real_type nor_y_ISO_D( real_type s ) const { return this->tg_x_D(s); }
+
203 
+
204  real_type nor_x_ISO_DD( real_type s ) const { return -this->tg_y_DD(s); }
+
205  real_type nor_y_ISO_DD( real_type s ) const { return this->tg_x_DD(s); }
+
206 
+
207  real_type nor_x_ISO_DDD( real_type s ) const { return -this->tg_y_DDD(s); }
+
208  real_type nor_y_ISO_DDD( real_type s ) const { return this->tg_x_DDD(s); }
+
209 
+
210  real_type nor0_x_SAE() const { return this->tg0_y(); }
+
211  real_type nor0_y_SAE() const { return -this->tg0_x(); }
+
212 
+
213  real_type nor_x_SAE( real_type s ) const { return this->tg_y(s); }
+
214  real_type nor_y_SAE( real_type s ) const { return -this->tg_x(s); }
+
215 
+
216  real_type nor_x_SAE_D( real_type s ) const { return this->tg_y_D(s); }
+
217  real_type nor_y_SAE_D( real_type s ) const { return -this->tg_x_D(s); }
+
218 
+
219  real_type nor_x_SAE_DD( real_type s ) const { return this->tg_y_DD(s); }
+
220  real_type nor_y_SAE_DD( real_type s ) const { return -this->tg_x_DD(s); }
+
221 
+
222  real_type nor_x_SAE_DDD( real_type s ) const { return this->tg_y_DDD(s); }
+
223  real_type nor_y_SAE_DDD( real_type s ) const { return -this->tg_x_DDD(s); }
+
224 
+
225  void tg( real_type s, real_type & tx, real_type & ty ) const;
+
226  void tg_D( real_type s, real_type & tx, real_type & ty ) const;
+
227  void tg_DD( real_type s, real_type & tx, real_type & ty ) const;
+
228  void tg_DDD( real_type s, real_type & tx, real_type & ty ) const;
+
229 
+
230  void nor_ISO( real_type s, real_type & nx, real_type & ny ) const;
+
231  void nor_ISO_D( real_type s, real_type & nx_D, real_type & ny_D ) const;
+
232  void nor_ISO_DD( real_type s, real_type & nx_DD, real_type & ny_DD ) const;
+
233  void nor_ISO_DDD( real_type s, real_type & nx_DDD, real_type & ny_DDD ) const;
+
234 
+
235  void nor_SAE( real_type s, real_type & nx, real_type & ny ) const;
+
236  void nor_SAE_D( real_type s, real_type & nx_D, real_type & ny_D ) const;
+
237  void nor_SAE_DD( real_type s, real_type & nx_DD, real_type & ny_DD ) const;
+
238  void nor_SAE_DDD( real_type s, real_type & nx_DDD, real_type & ny_DDD ) const;
+
239 
+
240  void
+
241  evaluate(
+
242  real_type s,
+
243  real_type & theta,
+
244  real_type & kappa,
+
245  real_type & x,
+
246  real_type & y
+
247  ) const;
+
248 
+
249  void
+
250  eval(
+
251  real_type s,
+
252  real_type & x,
+
253  real_type & y
+
254  ) const;
+
255 
+
256  void
+
257  eval_D(
+
258  real_type s,
+
259  real_type & x_D,
+
260  real_type & y_D
+
261  ) const;
+
262 
+
263  void
+
264  eval_DD(
+
265  real_type s,
+
266  real_type & x_DD,
+
267  real_type & y_DD
+
268  ) const;
+
269 
+
270  void
+
271  eval_DDD(
+
272  real_type s,
+
273  real_type & x_DDD,
+
274  real_type & y_DDD
+
275  ) const;
+
276 
+
277  void
+
278  eval_ISO(
+
279  real_type s,
+
280  real_type offs,
+
281  real_type & x,
+
282  real_type & y
+
283  ) const;
+
284 
+
285  void
+
286  eval_ISO_D(
+
287  real_type s,
+
288  real_type offs,
+
289  real_type & x_D,
+
290  real_type & y_D
+
291  ) const;
+
292 
+
293  void
+
294  eval_ISO_DD(
+
295  real_type s,
+
296  real_type offs,
+
297  real_type & x_DD,
+
298  real_type & y_DD
+
299  ) const;
+
300 
+
301  void
+
302  eval_ISO_DDD(
+
303  real_type s,
+
304  real_type offs,
+
305  real_type & x_DDD,
+
306  real_type & y_DDD
+
307  ) const;
+
308 
+
309  void
+
310  eval_SAE(
+
311  real_type s,
+
312  real_type offs,
+
313  real_type & x,
+
314  real_type & y
+
315  ) const {
+
316  this->eval_ISO( s, -offs, x, y );
+
317  }
+
318 
+
319  void
+
320  eval_SAE_D(
+
321  real_type s,
+
322  real_type offs,
+
323  real_type & x_D,
+
324  real_type & y_D
+
325  ) const {
+
326  this->eval_ISO_D( s, -offs, x_D, y_D );
+
327  }
+
328 
+
329  void
+
330  eval_DAE_DD(
+
331  real_type s,
+
332  real_type offs,
+
333  real_type & x_DD,
+
334  real_type & y_DD
+
335  ) const {
+
336  this->eval_ISO_DD( s, -offs, x_DD, y_DD );
+
337  }
+
338 
+
339  void
+
340  eval_SAE_DDD(
+
341  real_type s,
+
342  real_type offs,
+
343  real_type & x_DDD,
+
344  real_type & y_DDD
+
345  ) const {
+
346  this->eval_ISO_DDD( s, -offs, x_DDD, y_DDD );
+
347  }
+
348 
+
349  void
+
350  eval( real_type s, ClothoidData & C ) const;
+
351 
+
352  real_type c0x() const { return x0 - (sin(theta0)/kappa0); }
+
353  real_type c0y() const { return y0 + (cos(theta0)/kappa0); }
+
354 
+
355  void
+
356  Pinfinity( real_type & x, real_type & y, bool plus ) const;
+
357 
+
358  void
+
359  reverse( real_type L );
+
360 
+
361  void
+
362  reverse( real_type L, ClothoidData & out) const;
+
363 
+
364  void
+
365  rotate( real_type angle, real_type cx, real_type cy );
+
366 
+
367  void
+
368  origin_at( real_type s_origin );
+
369 
+
370  real_type
+
371  split_at_flex( ClothoidData & C0, ClothoidData & C1 ) const;
+
372 
+
373  real_type
+
374  aplus( real_type dtheta ) const;
+
375 
+
376  bool
+
377  bbTriangle(
+
378  real_type L,
+
379  real_type & xx0, real_type & yy0,
+
380  real_type & xx1, real_type & yy1,
+
381  real_type & xx2, real_type & yy2
+
382  ) const;
+
383 
+
384  bool
+
385  bbTriangle_ISO(
+
386  real_type L,
+
387  real_type offs,
+
388  real_type & xx0, real_type & yy0,
+
389  real_type & xx1, real_type & yy1,
+
390  real_type & xx2, real_type & yy2
+
391  ) const;
+
392 
+
393  bool
+
394  bbTriangle_SAE(
+
395  real_type L,
+
396  real_type offs,
+
397  real_type & xx0, real_type & yy0,
+
398  real_type & xx1, real_type & yy1,
+
399  real_type & xx2, real_type & yy2
+
400  ) const {
+
401  return this->bbTriangle_ISO( L, -offs, xx0, yy0, xx1, yy1, xx2, yy2 );
+
402  }
+
403 
+
404  int
+
405  build_G1(
+
406  real_type x0,
+
407  real_type y0,
+
408  real_type theta0,
+
409  real_type x1,
+
410  real_type y1,
+
411  real_type theta1,
+
412  real_type tol,
+
413  real_type & L,
+
414  bool compute_deriv = false,
+
415  real_type L_D[2] = nullptr,
+
416  real_type k_D[2] = nullptr,
+
417  real_type dk_D[2] = nullptr
+
418  );
+
419 
+
420  bool
+
421  build_forward(
+
422  real_type x0,
+
423  real_type y0,
+
424  real_type theta0,
+
425  real_type kappa0,
+
426  real_type x1,
+
427  real_type y1,
+
428  real_type tol,
+
429  real_type & L
+
430  );
+
431 
+
432  void
+
433  info( ostream_type & s ) const;
+
434 
+
435  };
+
436 
+
437 }
+
438 
+
data storage for clothoid type curve
Definition: Fresnel.hxx:112
+
real_type theta0
initial angle of the clothoid
Definition: Fresnel.hxx:117
+
real_type theta(real_type s) const
return angle at curvilinear coordinate s
Definition: Fresnel.hxx:135
+
real_type kappa(real_type s) const
return curvature at curvilinear coordinate s
Definition: Fresnel.hxx:143
+
real_type y0
initial y coordinate of the clothoid
Definition: Fresnel.hxx:116
+
real_type kappa0
initial curvature
Definition: Fresnel.hxx:118
+
real_type dk
curvature derivative
Definition: Fresnel.hxx:119
+
real_type x0
initial x coordinate of the clothoid
Definition: Fresnel.hxx:115
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
void GeneralizedFresnelCS(real_type a, real_type b, real_type c, real_type &intC, real_type &intS)
Compute the Fresnel integrals.
Definition: Fresnel.cc:555
+
void FresnelCS(real_type y, real_type &C, real_type &S)
Compute Fresnel integrals.
Definition: Fresnel.cc:144
+
+ + + + diff --git a/docs/da/da5/class_g2lib_1_1_g2solve2arc.html b/docs/da/da5/class_g2lib_1_1_g2solve2arc.html new file mode 100644 index 00000000..1624149a --- /dev/null +++ b/docs/da/da5/class_g2lib_1_1_g2solve2arc.html @@ -0,0 +1,123 @@ + + + + + + + +Clothoids: G2lib::G2solve2arc Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::G2solve2arc Class Reference
+
+
+ +

computation of the G2 fitting with 2 clothoid arc + More...

+ +

#include <ClothoidList.hxx>

+ + + + + + + + + + + + + + +

+Public Member Functions

+int build (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1)
 
+void setTolerance (real_type tol)
 
+void setMaxIter (int tol)
 
+int solve ()
 
+ClothoidCurve const & getS0 () const
 
+ClothoidCurve const & getS1 () const
 
+

Detailed Description

+

computation of the G2 fitting with 2 clothoid arc

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.map b/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.map new file mode 100644 index 00000000..211c606a --- /dev/null +++ b/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.md5 b/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.md5 new file mode 100644 index 00000000..9076cba9 --- /dev/null +++ b/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.md5 @@ -0,0 +1 @@ +c0a93a496e8b10369be8eb3584f1cdec \ No newline at end of file diff --git a/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.png b/docs/da/db4/class_g2lib_1_1_poly_line__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8ac135a3d2c8eaf46300dc2f61317033a7f84a GIT binary patch literal 3933 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 literal 0 HcmV?d00001 diff --git a/docs/da/dda/class_g2lib_1_1_g2solve_c_l_c.html b/docs/da/dda/class_g2lib_1_1_g2solve_c_l_c.html new file mode 100644 index 00000000..79401700 --- /dev/null +++ b/docs/da/dda/class_g2lib_1_1_g2solve_c_l_c.html @@ -0,0 +1,126 @@ + + + + + + + +Clothoids: G2lib::G2solveCLC Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::G2solveCLC Class Reference
+
+
+ +

computation of the G2 fitting with 2 clothoid and one line segment + More...

+ +

#include <ClothoidList.hxx>

+ + + + + + + + + + + + + + + + +

+Public Member Functions

+int build (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1)
 
+void setTolerance (real_type tol)
 
+void setMaxIter (int tol)
 
+int solve ()
 
+ClothoidCurve const & getS0 () const
 
+ClothoidCurve const & getSM () const
 
+ClothoidCurve const & getS1 () const
 
+

Detailed Description

+

computation of the G2 fitting with 2 clothoid and one line segment

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/da/dde/class_utils_1_1_binary_search-members.html b/docs/da/dde/class_utils_1_1_binary_search-members.html new file mode 100644 index 00000000..84bb14b4 --- /dev/null +++ b/docs/da/dde/class_utils_1_1_binary_search-members.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::BinarySearch< DATA > Member List
+
+
+ +

This is the complete list of members for Utils::BinarySearch< DATA >, including all inherited members.

+ + + + + +
BinarySearch() (defined in Utils::BinarySearch< DATA >)Utils::BinarySearch< DATA >inline
clear() (defined in Utils::BinarySearch< DATA >)Utils::BinarySearch< DATA >inline
search(std::thread::id const &id, bool &ok) const (defined in Utils::BinarySearch< DATA >)Utils::BinarySearch< DATA >inline
~BinarySearch() (defined in Utils::BinarySearch< DATA >)Utils::BinarySearch< DATA >inline
+ + + + diff --git a/docs/db/d6b/class_utils_1_1_runtime___error.html b/docs/db/d6b/class_utils_1_1_runtime___error.html new file mode 100644 index 00000000..caac9e00 --- /dev/null +++ b/docs/db/d6b/class_utils_1_1_runtime___error.html @@ -0,0 +1,125 @@ + + + + + + + +Clothoids: Utils::Runtime_Error Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Runtime_Error Class Reference
+
+
+
+Inheritance diagram for Utils::Runtime_Error:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for Utils::Runtime_Error:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + +

+Public Member Functions

Runtime_Error (std::string const &reason, char const file[], int line)
 
Runtime_Error (char const reason[], char const file[], int line)
 
+virtual const char * what () const noexcept override
 
+
The documentation for this class was generated from the following files:
    +
  • submodules/Utils/src/Utils/Trace.hxx
  • +
  • submodules/Utils/src/Trace.cc
  • +
+
+ + + + diff --git a/docs/db/d8d/class_utils_1_1_wait_worker-members.html b/docs/db/d8d/class_utils_1_1_wait_worker-members.html new file mode 100644 index 00000000..2fe333df --- /dev/null +++ b/docs/db/d8d/class_utils_1_1_wait_worker-members.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::WaitWorker Member List
+
+
+ +

This is the complete list of members for Utils::WaitWorker, including all inherited members.

+ + + + + +
enter() (defined in Utils::WaitWorker)Utils::WaitWorkerinline
leave() (defined in Utils::WaitWorker)Utils::WaitWorkerinline
wait() (defined in Utils::WaitWorker)Utils::WaitWorkerinline
WaitWorker() (defined in Utils::WaitWorker)Utils::WaitWorkerinline
+ + + + diff --git a/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.map b/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.map new file mode 100644 index 00000000..226156be --- /dev/null +++ b/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.md5 b/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.md5 new file mode 100644 index 00000000..3a9c9c86 --- /dev/null +++ b/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.md5 @@ -0,0 +1 @@ +597714d9fc8754b2cd9e54eb6004f315 \ No newline at end of file diff --git a/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.png b/docs/db/dce/class_g2lib_1_1_circle_arc__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e62e76663321d02266117df19241f4b41ffdc5ec GIT binary patch literal 3956 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 C%ThZ4 literal 0 HcmV?d00001 diff --git a/docs/db/dd5/_utils_8hh_source.html b/docs/db/dd5/_utils_8hh_source.html new file mode 100644 index 00000000..602d0ddd --- /dev/null +++ b/docs/db/dd5/_utils_8hh_source.html @@ -0,0 +1,141 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils.hh Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils.hh
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 #pragma once
+
24 
+
25 #ifndef UTILS_dot_HH
+
26 #define UTILS_dot_HH
+
27 
+
28 #ifdef __clang__
+
29 #pragma clang diagnostic push
+
30 #pragma clang diagnostic ignored "-Wc++98-compat"
+
31 #pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+
32 #pragma clang diagnostic ignored "-Wold-style-cast"
+
33 #pragma clang diagnostic ignored "-Wswitch-enum"
+
34 #pragma clang diagnostic ignored "-Wdocumentation"
+
35 #pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
+
36 #pragma clang diagnostic ignored "-Wglobal-constructors"
+
37 #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
+
38 #pragma clang diagnostic ignored "-Wweak-vtables"
+
39 #pragma clang diagnostic ignored "-Wshorten-64-to-32"
+
40 #pragma clang diagnostic ignored "-Wundefined-func-template"
+
41 #pragma clang diagnostic ignored "-Wdouble-promotion"
+
42 #pragma clang diagnostic ignored "-Wsigned-enum-bitfield"
+
43 #pragma clang diagnostic ignored "-Wsign-conversion"
+
44 #pragma clang diagnostic ignored "-Wweak-vtables"
+
45 #pragma clang diagnostic ignored "-Wunused-template"
+
46 #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
+
47 #pragma clang diagnostic ignored "-Wpadded"
+
48 #endif
+
49 
+
50 #include "Utils/Utils.hxx"
+
51 
+
52 #ifdef __clang__
+
53 #pragma clang diagnostic pop
+
54 #endif
+
55 
+
56 #endif
+
57 
+
+ + + + diff --git a/docs/dc/d27/class_g2lib_1_1_clothoid_curve.html b/docs/dc/d27/class_g2lib_1_1_clothoid_curve.html new file mode 100644 index 00000000..554ce1eb --- /dev/null +++ b/docs/dc/d27/class_g2lib_1_1_clothoid_curve.html @@ -0,0 +1,2640 @@ + + + + + + + +Clothoids: G2lib::ClothoidCurve Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::ClothoidCurve Class Reference
+
+
+ +

Class to manage Clothoid Curve. + More...

+ +

#include <Clothoid.hxx>

+
+Inheritance diagram for G2lib::ClothoidCurve:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::ClothoidCurve:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ClothoidCurve (ClothoidCurve const &s)
 
ClothoidCurve (real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)
 construct a clothoid with the standard parameters
 
ClothoidCurve (real_type const P0[], real_type theta0, real_type const P1[], real_type theta1)
 construct a clothoid by solving the hermite G1 problem
 
+void copy (ClothoidCurve const &c)
 
ClothoidCurve (LineSegment const &LS)
 
ClothoidCurve (CircleArc const &C)
 
ClothoidCurve (BaseCurve const &C)
 
+ClothoidCurve const & operator= (ClothoidCurve const &s)
 
+void build (real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)
 construct a clothoid with the standard parameters
 
int build_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol=1e-12)
 build a clothoid by solving the hermite G1 problem More...
 
int build_G1_D (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type L_D[2], real_type k_D[2], real_type dk_D[2], real_type tol=1e-12)
 build a clothoid by solving the hermite G1 problem More...
 
bool build_forward (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type tol=1e-12)
 build a clothoid by solving the forward problem More...
 
void build (LineSegment const &LS)
 build a clothoid from a line segment More...
 
void build (CircleArc const &C)
 build a clothoid from a line segment More...
 
+void Pinfinity (real_type &x, real_type &y, bool plus=true) const
 
+real_type dkappa () const
 
real_type thetaTotalVariation () const
 
+real_type thetaMinMax (real_type &thMin, real_type &thMax) const
 
real_type deltaTheta () const
 
+real_type curvatureMinMax (real_type &kMin, real_type &kMax) const
 
real_type curvatureTotalVariation () const
 
+real_type integralCurvature2 () const
 
+real_type integralJerk2 () const
 
+real_type integralSnap2 () const
 
void optimized_sample_ISO (real_type offs, int_type npts, real_type max_angle, std::vector< real_type > &s) const
 
+void optimized_sample_SAE (real_type offs, int_type npts, real_type max_angle, std::vector< real_type > &s) const
 
real_type closestPointBySample (real_type ds, real_type qx, real_type qy, real_type &X, real_type &Y, real_type &S) const
 Compute the point on clothoid at minimal distance from a given point. More...
 
+real_type distanceBySample (real_type ds, real_type qx, real_type qy, real_type &S) const
 
+real_type distanceBySample (real_type ds, real_type qx, real_type qy) const
 
+bool bbTriangle (real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 get the triangle bounding box (if angle variation less that pi/2)
 
+bool bbTriangle_ISO (real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 get the triangle bounding box (if angle variation less that pi/2)
 
+bool bbTriangle_SAE (real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 get the triangle bounding box (if angle variation less that pi/2)
 
+bool bbTriangle (Triangle2D &t, int_type icurve=0) const
 
+bool bbTriangle_ISO (real_type offs, Triangle2D &t, int_type icurve=0) const
 
+bool bbTriangle_SAE (real_type offs, Triangle2D &t, int_type icurve=0) const
 
+void bbTriangles_ISO (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles_SAE (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles (std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, int_type icurve=0) const
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type) const UTILS_OVERRIDE
 
+virtual real_type thetaBegin () const UTILS_OVERRIDE
 
+virtual real_type thetaEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type tx (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void tg (real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE
 
real_type theta (real_type s) const UTILS_OVERRIDE
 get clothoid angle at curvilinear cooordinate s More...
 
real_type theta_D (real_type s) const UTILS_OVERRIDE
 get clothoid angle derivative (=curvature) at curvilinear cooordinate s More...
 
real_type theta_DD (real_type) const UTILS_OVERRIDE
 get clothoid angle second derivative at curvilinear cooordinate s More...
 
real_type theta_DDD (real_type) const UTILS_OVERRIDE
 get clothoid angle third derivative at curvilinear cooordinate s More...
 
real_type X (real_type s) const UTILS_OVERRIDE
 clothoid X coordinate at curvilinear coordinate s More...
 
+real_type X_D (real_type s) const UTILS_OVERRIDE
 
+real_type X_DD (real_type s) const UTILS_OVERRIDE
 
+real_type X_DDD (real_type s) const UTILS_OVERRIDE
 
real_type Y (real_type s) const UTILS_OVERRIDE
 clothoid Y coordinate at curvilinear coordinate s More...
 
+real_type Y_D (real_type s) const UTILS_OVERRIDE
 
+real_type Y_DD (real_type s) const UTILS_OVERRIDE
 
+real_type Y_DDD (real_type s) const UTILS_OVERRIDE
 
real_type X_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 clothoid X coordinate at curvilinear coordinate s More...
 
+real_type X_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+real_type X_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+real_type X_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
real_type Y_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 clothoid Y coordinate at curvilinear coordinate s More...
 
+real_type Y_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+real_type Y_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+real_type Y_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void scale (real_type s) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
+void changeCurvilinearOrigin (real_type s0, real_type newL)
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
+void build_AABBtree_ISO (real_type offs, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100) const
 
bool approximate_collision_ISO (real_type offs, ClothoidCurve const &c, real_type c_offs, real_type max_angle, real_type max_size) const
 
+bool collision (ClothoidCurve const &C) const
 
+bool collision_ISO (real_type offs, ClothoidCurve const &C, real_type offs_C) const
 
+void intersect (ClothoidCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, ClothoidCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void info (ostream_type &stream) const UTILS_OVERRIDE
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+virtual real_type xBegin_ISO (real_type offs) const
 
+virtual real_type yBegin_ISO (real_type offs) const
 
+virtual real_type xEnd_ISO (real_type offs) const
 
+virtual real_type yEnd_ISO (real_type offs) const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+virtual real_type tx_End () const
 
+virtual real_type ty_End () const
 
+virtual real_type nx_End_ISO () const
 
+virtual real_type ny_End_ISO () const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + + + +

+Friends

+class ClothoidList
 
+ostream_type & operator<< (ostream_type &stream, ClothoidCurve const &c)
 
+

Detailed Description

+

Class to manage Clothoid Curve.

+

Member Function Documentation

+ +

◆ approximate_collision_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::ClothoidCurve::approximate_collision_ISO (real_type offs,
ClothoidCurve const & c,
real_type c_offs,
real_type max_angle,
real_type max_size 
) const
+
+
Parameters
+ + + +
max_anglemaximum angle variation
max_sizecurve offset
+
+
+ +
+
+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidCurve::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlinevirtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidCurve::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ build() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void G2lib::ClothoidCurve::build (CircleArc const & C)
+
+inline
+
+ +

build a clothoid from a line segment

+
Parameters
+ + +
Cline segment object
+
+
+ +
+
+ +

◆ build() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void G2lib::ClothoidCurve::build (LineSegment const & LS)
+
+inline
+
+ +

build a clothoid from a line segment

+
Parameters
+ + +
LSline segment object
+
+
+ +
+
+ +

◆ build_forward()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::ClothoidCurve::build_forward (real_type x0,
real_type y0,
real_type theta0,
real_type kappa0,
real_type x1,
real_type y1,
real_type tol = 1e-12 
)
+
+inline
+
+ +

build a clothoid by solving the forward problem

+
Parameters
+ + + + + + + +
x0initial x position \( x_0 \)
y0initial y position \( y_0 \)
theta0initial angle \( \theta_0 \)
kappa0initial curvature \( \kappa_0 \)
x1final x position \( x_1 \)
y1final y position \( y_1 \)
+
+
+ +
+
+ +

◆ build_G1()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int G2lib::ClothoidCurve::build_G1 (real_type x0,
real_type y0,
real_type theta0,
real_type x1,
real_type y1,
real_type theta1,
real_type tol = 1e-12 
)
+
+inline
+
+ +

build a clothoid by solving the hermite G1 problem

+
Parameters
+ + + + + + + +
x0initial x position \( x_0 \)
y0initial y position \( y_0 \)
theta0initial angle \( \theta_0 \)
x1final x position \( x_1 \)
y1final y position \( y_1 \)
theta1final angle \( \theta_1 \)
+
+
+
Returns
number of iteration performed
+ +
+
+ +

◆ build_G1_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int G2lib::ClothoidCurve::build_G1_D (real_type x0,
real_type y0,
real_type theta0,
real_type x1,
real_type y1,
real_type theta1,
real_type L_D[2],
real_type k_D[2],
real_type dk_D[2],
real_type tol = 1e-12 
)
+
+inline
+
+ +

build a clothoid by solving the hermite G1 problem

+
Parameters
+ + + + + + + +
x0initial x position \( x_0 \)
y0initial y position \( y_0 \)
theta0initial angle \( \theta_0 \)
x1final x position \( x_1 \)
y1final y position \( y_1 \)
theta1final angle \( \theta_1 \)
+
+
+
Returns
number of iteration performed
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidCurve::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::ClothoidCurve::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPointBySample()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
real_type G2lib::ClothoidCurve::closestPointBySample (real_type ds,
real_type qx,
real_type qy,
real_type & X,
real_type & Y,
real_type & S 
) const
+
+ +

Compute the point on clothoid at minimal distance from a given point.

+
Parameters
+ + + + + + +
qxx-coordinate of the given point
qyy-coordinate of the given point
Xx-coordinate of the point on clothoid at minimal distance
Yy-coordinate of the point on clothoid at minimal distance
Scurvilinear coordinate of the point (X,Y) on the clothoid
+
+
+
Returns
the distance of the
+ +
+
+ +

◆ curvatureTotalVariation()

+ +
+
+ + + + + + + +
real_type G2lib::ClothoidCurve::curvatureTotalVariation () const
+
+
Returns
clothoid total curvature variation
+ +
+
+ +

◆ deltaTheta()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::ClothoidCurve::deltaTheta () const
+
+inline
+
+
Returns
clothoid angle range
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidCurve::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlinevirtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidCurve::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlinevirtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidCurve::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlinevirtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::ClothoidCurve::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlinevirtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::ClothoidCurve::length () const
+
+inlinevirtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::ClothoidCurve::length_ISO (real_type offs) const
+
+inlinevirtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ optimized_sample_ISO()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::ClothoidCurve::optimized_sample_ISO (real_type offs,
int_type npts,
real_type max_angle,
std::vector< real_type > & s 
) const
+
+

Return a vector of optimized sample parameters

Parameters
+ + + + + +
offsoffset of the sampled curve
nptssuggested minimum number of sampled points
max_anglemaximum angle variation between two sampled points
svector of computed parameters
+
+
+ +
+
+ +

◆ theta()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::theta (real_type s) const
+
+inlinevirtual
+
+ +

get clothoid angle at curvilinear cooordinate s

+
Parameters
+ + +
scurvilinear cooordinate
+
+
+
Returns
angle (radiant) at curvilinear cooordinate s
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ theta_D()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::theta_D (real_type s) const
+
+inlinevirtual
+
+ +

get clothoid angle derivative (=curvature) at curvilinear cooordinate s

+
Parameters
+ + +
scurvilinear cooordinate
+
+
+
Returns
angle derivative (radiant/s) at curvilinear cooordinate s
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ theta_DD()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::theta_DD (real_type ) const
+
+inlinevirtual
+
+ +

get clothoid angle second derivative at curvilinear cooordinate s

+
Returns
angle second derivative (radiant/s^2) at curvilinear cooordinate s
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ theta_DDD()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::theta_DDD (real_type ) const
+
+inlinevirtual
+
+ +

get clothoid angle third derivative at curvilinear cooordinate s

+
Returns
angle third derivative (radiant/s^3) at curvilinear cooordinate s
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ thetaTotalVariation()

+ +
+
+ + + + + + + +
real_type G2lib::ClothoidCurve::thetaTotalVariation () const
+
+
Returns
clothoid total variation
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+ +

◆ X()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::X (real_type s) const
+
+inlinevirtual
+
+ +

clothoid X coordinate at curvilinear coordinate s

+
Parameters
+ + +
scurvilinear coordinate
+
+
+
Returns
clothoid X coordinate
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ X_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
real_type G2lib::ClothoidCurve::X_ISO (real_type s,
real_type offs 
) const
+
+inlinevirtual
+
+ +

clothoid X coordinate at curvilinear coordinate s

+
Parameters
+ + + +
scurvilinear coordinate
offslateral offset
+
+
+
Returns
clothoid X coordinate
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ Y()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::ClothoidCurve::Y (real_type s) const
+
+inlinevirtual
+
+ +

clothoid Y coordinate at curvilinear coordinate s

+
Parameters
+ + +
scurvilinear coordinate
+
+
+
Returns
clothoid Y coordinate
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ Y_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
real_type G2lib::ClothoidCurve::Y_ISO (real_type s,
real_type offs 
) const
+
+inlinevirtual
+
+ +

clothoid Y coordinate at curvilinear coordinate s

+
Parameters
+ + + +
scurvilinear coordinate
offslateral offset
+
+
+
Returns
clothoid Y coordinate
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • src/Clothoids/Clothoid.hxx
  • +
  • src/Clothoid.cc
  • +
  • src/ClothoidDistance.cc
  • +
+
+ + + + diff --git a/docs/dc/d2f/class_utils_1_1_barrier-members.html b/docs/dc/d2f/class_utils_1_1_barrier-members.html new file mode 100644 index 00000000..d119f1b3 --- /dev/null +++ b/docs/dc/d2f/class_utils_1_1_barrier-members.html @@ -0,0 +1,95 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Barrier Member List
+
+
+ +

This is the complete list of members for Utils::Barrier, including all inherited members.

+ + + + + + +
Barrier() (defined in Utils::Barrier)Utils::Barrierinline
count_down() (defined in Utils::Barrier)Utils::Barrierinline
count_down_and_wait() (defined in Utils::Barrier)Utils::Barrierinline
setup(int nthreads) (defined in Utils::Barrier)Utils::Barrierinline
wait() (defined in Utils::Barrier)Utils::Barrierinline
+ + + + diff --git a/docs/dc/d4f/_clothoid_8hxx_source.html b/docs/dc/d4f/_clothoid_8hxx_source.html new file mode 100644 index 00000000..39cc7133 --- /dev/null +++ b/docs/dc/d4f/_clothoid_8hxx_source.html @@ -0,0 +1,1158 @@ + + + + + + + +Clothoids: src/Clothoids/Clothoid.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Clothoid.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  using std::vector;
+
28 
+
29  /*\
+
30  | ____ _ _ _ _ _ ____
+
31  | / ___| | ___ | |_| |__ ___ (_) __| |/ ___| _ _ ____ _____
+
32  | | | | |/ _ \| __| '_ \ / _ \| |/ _` | | | | | | '__\ \ / / _ \
+
33  | | |___| | (_) | |_| | | | (_) | | (_| | |__| |_| | | \ V / __/
+
34  | \____|_|\___/ \__|_| |_|\___/|_|\__,_|\____\__,_|_| \_/ \___|
+
35  \*/
+
37  class ClothoidCurve : public BaseCurve {
+
38  friend class ClothoidList;
+
39  private:
+
40 
+
41  ClothoidData m_CD;
+
42  real_type m_L;
+
43 
+
44  void
+
45  optimized_sample_internal_ISO(
+
46  real_type s_begin,
+
47  real_type s_end,
+
48  real_type offs,
+
49  real_type ds,
+
50  real_type max_angle,
+
51  vector<real_type> & s
+
52  ) const;
+
53 
+
54  void
+
55  bbTriangles_internal_ISO(
+
56  real_type offs,
+
57  vector<Triangle2D> & tvec,
+
58  real_type s0,
+
59  real_type s1,
+
60  real_type max_angle,
+
61  real_type max_size,
+
62  int_type icurve
+
63  ) const;
+
64 
+
65  void
+
66  closestPoint_internal_ISO(
+
67  real_type s_begin,
+
68  real_type s_end,
+
69  real_type qx,
+
70  real_type qy,
+
71  real_type offs,
+
72  real_type & x,
+
73  real_type & y,
+
74  real_type & s,
+
75  real_type & dst
+
76  ) const;
+
77 
+
78  static int_type m_max_iter;
+
79  static real_type m_tolerance;
+
80 
+
81  mutable bool m_aabb_done;
+
82  mutable AABBtree m_aabb_tree;
+
83  mutable real_type m_aabb_offs;
+
84  mutable real_type m_aabb_max_angle;
+
85  mutable real_type m_aabb_max_size;
+
86  mutable vector<Triangle2D> m_aabb_tri;
+
87 
+
88  bool
+
89  aabb_intersect_ISO(
+
90  Triangle2D const & T1,
+
91  real_type offs,
+
92  ClothoidCurve const * pC,
+
93  Triangle2D const & T2,
+
94  real_type C_offs,
+
95  real_type & ss1,
+
96  real_type & ss2
+
97  ) const;
+
98 
+
99  class T2D_approximate_collision {
+
100  ClothoidCurve const * pC1;
+
101  ClothoidCurve const * pC2;
+
102  public:
+
103  T2D_approximate_collision(
+
104  ClothoidCurve const * _pC1,
+
105  ClothoidCurve const * _pC2
+
106  )
+
107  : pC1(_pC1)
+
108  , pC2(_pC2)
+
109  {}
+
110 
+
111  bool
+
112  operator () ( BBox::PtrBBox ptr1, BBox::PtrBBox ptr2 ) const {
+
113  Triangle2D const & T1 = pC1->m_aabb_tri[size_t(ptr1->Ipos())];
+
114  Triangle2D const & T2 = pC2->m_aabb_tri[size_t(ptr2->Ipos())];
+
115  return T1.overlap(T2);
+
116  }
+
117  };
+
118 
+
119  class T2D_collision_ISO {
+
120  ClothoidCurve const * pC1;
+
121  real_type const m_offs1;
+
122  ClothoidCurve const * pC2;
+
123  real_type const m_offs2;
+
124  public:
+
125  T2D_collision_ISO(
+
126  ClothoidCurve const * _pC1,
+
127  real_type const _offs1,
+
128  ClothoidCurve const * _pC2,
+
129  real_type const _offs2
+
130  )
+
131  : pC1(_pC1)
+
132  , m_offs1(_offs1)
+
133  , pC2(_pC2)
+
134  , m_offs2(_offs2)
+
135  {}
+
136 
+
137  bool
+
138  operator () ( BBox::PtrBBox ptr1, BBox::PtrBBox ptr2 ) const {
+
139  Triangle2D const & T1 = pC1->m_aabb_tri[size_t(ptr1->Ipos())];
+
140  Triangle2D const & T2 = pC2->m_aabb_tri[size_t(ptr2->Ipos())];
+
141  real_type ss1, ss2;
+
142  return pC1->aabb_intersect_ISO( T1, m_offs1, pC2, T2, m_offs2, ss1, ss2 );
+
143  }
+
144  };
+
145 
+
146  public:
+
147 
+
148  #include "BaseCurve_using.hxx"
+
149 
+
150  //explicit
+
151  ClothoidCurve()
+
152  : BaseCurve(G2LIB_CLOTHOID)
+
153  , m_aabb_done(false)
+
154  {
+
155  m_CD.x0 = 0;
+
156  m_CD.y0 = 0;
+
157  m_CD.theta0 = 0;
+
158  m_CD.kappa0 = 0;
+
159  m_CD.dk = 0;
+
160  m_L = 0;
+
161  }
+
162 
+
163  //explicit
+
164  ClothoidCurve( ClothoidCurve const & s )
+
165  : BaseCurve(G2LIB_CLOTHOID)
+
166  , m_aabb_done(false)
+
167  { copy(s); }
+
168 
+
170  explicit
+ +
172  real_type _x0,
+
173  real_type _y0,
+
174  real_type _theta0,
+
175  real_type _k,
+
176  real_type _dk,
+
177  real_type _L
+
178  )
+
179  : BaseCurve(G2LIB_CLOTHOID)
+
180  , m_aabb_done(false)
+
181  {
+
182  m_CD.x0 = _x0;
+
183  m_CD.y0 = _y0;
+
184  m_CD.theta0 = _theta0;
+
185  m_CD.kappa0 = _k;
+
186  m_CD.dk = _dk;
+
187  m_L = _L;
+
188  }
+
189 
+
191  explicit
+ +
193  real_type const P0[],
+
194  real_type theta0,
+
195  real_type const P1[],
+
196  real_type theta1
+
197  )
+
198  : BaseCurve(G2LIB_CLOTHOID)
+
199  , m_aabb_done(false)
+
200  {
+
201  build_G1( P0[0], P0[1], theta0, P1[0], P1[1], theta1 );
+
202  }
+
203 
+
204  void
+
205  copy( ClothoidCurve const & c ) {
+
206  m_CD = c.m_CD;
+
207  m_L = c.m_L;
+
208  m_aabb_done = false;
+
209  m_aabb_tree.clear();
+
210  }
+
211 
+
212  explicit
+
213  ClothoidCurve( LineSegment const & LS )
+
214  : BaseCurve(G2LIB_CLOTHOID)
+
215  , m_aabb_done(false)
+
216  {
+
217  m_CD.x0 = LS.m_x0;
+
218  m_CD.y0 = LS.m_y0;
+
219  m_CD.theta0 = LS.m_theta0;
+
220  m_CD.kappa0 = 0;
+
221  m_CD.dk = 0;
+
222  m_L = LS.m_L;
+
223  }
+
224 
+
225  explicit
+
226  ClothoidCurve( CircleArc const & C )
+
227  : BaseCurve(G2LIB_CLOTHOID)
+
228  , m_aabb_done(false)
+
229  {
+
230  m_CD.x0 = C.m_x0;
+
231  m_CD.y0 = C.m_y0;
+
232  m_CD.theta0 = C.m_theta0;
+
233  m_CD.kappa0 = C.m_k;
+
234  m_CD.dk = 0;
+
235  m_L = C.m_L;
+
236  }
+
237 
+
238  explicit
+
239  ClothoidCurve( BaseCurve const & C );
+
240 
+
241  ClothoidCurve const & operator = ( ClothoidCurve const & s )
+
242  { copy(s); return *this; }
+
243 
+
244  /*\
+
245  | _ _ _ _
+
246  | | |__ _ _(_) |__| |
+
247  | | '_ \ || | | / _` |
+
248  | |_.__/\_,_|_|_\__,_|
+
249  \*/
+
251  void
+ +
253  real_type _x0,
+
254  real_type _y0,
+
255  real_type _theta0,
+
256  real_type _k,
+
257  real_type _dk,
+
258  real_type _L
+
259  ) {
+
260  m_CD.x0 = _x0;
+
261  m_CD.y0 = _y0;
+
262  m_CD.theta0 = _theta0;
+
263  m_CD.kappa0 = _k;
+
264  m_CD.dk = _dk;
+
265  m_L = _L;
+
266  m_aabb_done = false;
+
267  m_aabb_tree.clear();
+
268  }
+
269 
+
281  int
+ +
283  real_type x0,
+
284  real_type y0,
+
285  real_type theta0,
+
286  real_type x1,
+
287  real_type y1,
+
288  real_type theta1,
+
289  real_type tol = 1e-12
+
290  ) {
+
291  m_aabb_done = false;
+
292  m_aabb_tree.clear();
+
293  return m_CD.build_G1( x0, y0, theta0, x1, y1, theta1, tol, m_L );
+
294  }
+
295 
+
307  int
+ +
309  real_type x0,
+
310  real_type y0,
+
311  real_type theta0,
+
312  real_type x1,
+
313  real_type y1,
+
314  real_type theta1,
+
315  real_type L_D[2],
+
316  real_type k_D[2],
+
317  real_type dk_D[2],
+
318  real_type tol = 1e-12
+
319  ) {
+
320  m_aabb_done = false;
+
321  m_aabb_tree.clear();
+
322  return m_CD.build_G1(
+
323  x0, y0, theta0, x1, y1, theta1, tol, m_L, true, L_D, k_D, dk_D
+
324  );
+
325  }
+
326 
+
337  bool
+ +
339  real_type x0,
+
340  real_type y0,
+
341  real_type theta0,
+
342  real_type kappa0,
+
343  real_type x1,
+
344  real_type y1,
+
345  real_type tol = 1e-12
+
346  ) {
+
347  m_aabb_done = false;
+
348  m_aabb_tree.clear();
+
349  return m_CD.build_forward( x0, y0, theta0, kappa0, x1, y1, tol, m_L );
+
350  }
+
351 
+
357  void
+
358  build( LineSegment const & LS ) {
+
359  m_CD.x0 = LS.m_x0;
+
360  m_CD.y0 = LS.m_y0;
+
361  m_CD.theta0 = LS.m_theta0;
+
362  m_CD.kappa0 = 0;
+
363  m_CD.dk = 0;
+
364  m_L = LS.m_L;
+
365  m_aabb_done = false;
+
366  m_aabb_tree.clear();
+
367  }
+
368 
+
374  void
+
375  build( CircleArc const & C ) {
+
376  m_CD.x0 = C.m_x0;
+
377  m_CD.y0 = C.m_y0;
+
378  m_CD.theta0 = C.m_theta0;
+
379  m_CD.kappa0 = C.m_k;
+
380  m_CD.dk = 0;
+
381  m_L = C.m_L;
+
382  m_aabb_done = false;
+
383  m_aabb_tree.clear();
+
384  }
+
385 
+
386  void
+
387  Pinfinity( real_type & x, real_type & y, bool plus = true ) const
+
388  { m_CD.Pinfinity( x, y, plus ); }
+
389 
+
390  real_type
+
391  dkappa() const
+
392  { return m_CD.dk; }
+
393 
+
397  real_type
+
398  thetaTotalVariation() const;
+
399 
+
400  real_type
+
401  thetaMinMax( real_type & thMin, real_type & thMax ) const;
+
402 
+
406  real_type
+
407  deltaTheta() const
+
408  { real_type thMin, thMax; return thetaMinMax( thMin, thMax ); }
+
409 
+
410  real_type
+
411  curvatureMinMax( real_type & kMin, real_type & kMax ) const;
+
412 
+
416  real_type curvatureTotalVariation() const;
+
417 
+
418  real_type integralCurvature2() const;
+
419 
+
420  real_type integralJerk2() const;
+
421 
+
422  real_type integralSnap2() const;
+
423 
+
431  void
+ +
433  real_type offs,
+
434  int_type npts,
+
435  real_type max_angle,
+
436  std::vector<real_type> & s
+
437  ) const;
+
438 
+
439  void
+
440  optimized_sample_SAE(
+
441  real_type offs,
+
442  int_type npts,
+
443  real_type max_angle,
+
444  std::vector<real_type> & s
+
445  ) const {
+
446  optimized_sample_ISO( -offs, npts, max_angle, s );
+
447  }
+
448 
+
449  /*\
+
450  | _ _ _
+
451  | __| (_)__| |_ __ _ _ _ __ ___
+
452  | / _` | (_-< _/ _` | ' \/ _/ -_)
+
453  | \__,_|_/__/\__\__,_|_||_\__\___|
+
454  \*/
+
466  real_type
+ +
468  real_type ds,
+
469  real_type qx,
+
470  real_type qy,
+
471  real_type & X,
+
472  real_type & Y,
+
473  real_type & S
+
474  ) const;
+
475 
+
476  real_type
+
477  distanceBySample(
+
478  real_type ds,
+
479  real_type qx,
+
480  real_type qy,
+
481  real_type & S
+
482  ) const {
+
483  real_type X, Y;
+
484  return closestPointBySample( ds, qx, qy, X, Y, S );
+
485  }
+
486 
+
487  real_type
+
488  distanceBySample(
+
489  real_type ds,
+
490  real_type qx,
+
491  real_type qy
+
492  ) const {
+
493  real_type X, Y, S;
+
494  return closestPointBySample( ds, qx, qy, X, Y, S );
+
495  }
+
496 
+
497  /*\
+
498  | _ _ _____ _ _
+
499  | | |__| |_|_ _| _(_)__ _ _ _ __ _| |___
+
500  | | '_ \ '_ \| || '_| / _` | ' \/ _` | / -_)
+
501  | |_.__/_.__/|_||_| |_\__,_|_||_\__, |_\___|
+
502  | |___/
+
503  \*/
+
504 
+
506  bool
+ +
508  real_type & xx0, real_type & yy0,
+
509  real_type & xx1, real_type & yy1,
+
510  real_type & xx2, real_type & yy2
+
511  ) const {
+
512  return m_CD.bbTriangle( m_L, xx0, yy0, xx1, yy1, xx2, yy2 );
+
513  }
+
514 
+
516  bool
+ +
518  real_type offs,
+
519  real_type & xx0, real_type & yy0,
+
520  real_type & xx1, real_type & yy1,
+
521  real_type & xx2, real_type & yy2
+
522  ) const {
+
523  return m_CD.bbTriangle_ISO( m_L, offs, xx0, yy0, xx1, yy1, xx2, yy2 );
+
524  }
+
525 
+
527  bool
+ +
529  real_type offs,
+
530  real_type & xx0, real_type & yy0,
+
531  real_type & xx1, real_type & yy1,
+
532  real_type & xx2, real_type & yy2
+
533  ) const {
+
534  return m_CD.bbTriangle_SAE( m_L, offs, xx0, yy0, xx1, yy1, xx2, yy2 );
+
535  }
+
536 
+
537  bool
+
538  bbTriangle( Triangle2D & t, int_type icurve = 0 ) const {
+
539  real_type x0, y0, x1, y1, x2, y2;
+
540  bool ok = m_CD.bbTriangle( m_L, x0, y0, x1, y1, x2, y2 );
+
541  if ( ok ) t.build( x0, y0, x1, y1, x2, y2, 0, 0, icurve );
+
542  return ok;
+
543  }
+
544 
+
545  bool
+
546  bbTriangle_ISO( real_type offs, Triangle2D & t, int_type icurve = 0 ) const {
+
547  real_type x0, y0, x1, y1, x2, y2;
+
548  bool ok = m_CD.bbTriangle_ISO( m_L, offs, x0, y0, x1, y1, x2, y2 );
+
549  if ( ok ) t.build( x0, y0, x1, y1, x2, y2, 0, 0, icurve );
+
550  return ok;
+
551  }
+
552 
+
553  bool
+
554  bbTriangle_SAE( real_type offs, Triangle2D & t, int_type icurve = 0 ) const {
+
555  real_type x0, y0, x1, y1, x2, y2;
+
556  bool ok = m_CD.bbTriangle_SAE( m_L, offs, x0, y0, x1, y1, x2, y2 );
+
557  if ( ok ) t.build( x0, y0, x1, y1, x2, y2, 0, 0, icurve );
+
558  return ok;
+
559  }
+
560 
+
561  void
+
562  bbTriangles_ISO(
+
563  real_type offs,
+
564  std::vector<Triangle2D> & tvec,
+
565  real_type max_angle = Utils::m_pi/6, // 30 degree
+
566  real_type max_size = 1e100,
+
567  int_type icurve = 0
+
568  ) const;
+
569 
+
570  void
+
571  bbTriangles_SAE(
+
572  real_type offs,
+
573  std::vector<Triangle2D> & tvec,
+
574  real_type max_angle = Utils::m_pi/6, // 30 degree
+
575  real_type max_size = 1e100,
+
576  int_type icurve = 0
+
577  ) const {
+
578  this->bbTriangles_ISO( -offs, tvec, max_angle, max_size, icurve );
+
579  }
+
580 
+
581  void
+
582  bbTriangles(
+
583  std::vector<Triangle2D> & tvec,
+
584  real_type max_angle = Utils::m_pi/6, // 30 degree
+
585  real_type max_size = 1e100,
+
586  int_type icurve = 0
+
587  ) const {
+
588  this->bbTriangles_ISO( 0, tvec, max_angle, max_size, icurve );
+
589  }
+
590 
+
591  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
592 
+
593  virtual
+
594  void
+ +
596  real_type & xmin,
+
597  real_type & ymin,
+
598  real_type & xmax,
+
599  real_type & ymax
+
600  ) const UTILS_OVERRIDE {
+
601  bbox_ISO( 0, xmin, ymin, xmax, ymax );
+
602  }
+
603 
+
604  virtual
+
605  void
+
606  bbox_ISO(
+
607  real_type offs,
+
608  real_type & xmin,
+
609  real_type & ymin,
+
610  real_type & xmax,
+
611  real_type & ymax
+
612  ) const UTILS_OVERRIDE;
+
613 
+
614  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
615 
+
616  virtual
+
617  real_type
+
618  length() const UTILS_OVERRIDE
+
619  { return m_L; }
+
620 
+
621  virtual
+
622  real_type
+
623  length_ISO( real_type ) const UTILS_OVERRIDE {
+
624  UTILS_ERROR0( "Offset length not available for Clothoids\n" );
+
625  return 0;
+
626  }
+
627 
+
628  virtual
+
629  real_type
+
630  thetaBegin() const UTILS_OVERRIDE
+
631  { return m_CD.theta0; }
+
632 
+
633  virtual
+
634  real_type
+
635  thetaEnd() const UTILS_OVERRIDE
+
636  { return m_CD.theta(m_L); }
+
637 
+
638  virtual
+
639  real_type
+
640  xBegin() const UTILS_OVERRIDE
+
641  { return m_CD.x0; }
+
642 
+
643  virtual
+
644  real_type
+
645  xEnd() const UTILS_OVERRIDE
+
646  { return m_CD.X(m_L); }
+
647 
+
648  virtual
+
649  real_type
+
650  yBegin() const UTILS_OVERRIDE
+
651  { return m_CD.y0; }
+
652 
+
653  virtual
+
654  real_type
+
655  yEnd() const UTILS_OVERRIDE
+
656  { return m_CD.Y(m_L); }
+
657 
+
658  virtual
+
659  real_type
+
660  tx_Begin() const UTILS_OVERRIDE
+
661  { return m_CD.tg0_x(); }
+
662 
+
663  virtual
+
664  real_type
+
665  ty_Begin() const UTILS_OVERRIDE
+
666  { return m_CD.tg0_y(); }
+
667 
+
668  virtual
+
669  real_type
+
670  nx_Begin_ISO() const UTILS_OVERRIDE
+
671  { return m_CD.nor0_x_ISO(); }
+
672 
+
673  virtual
+
674  real_type
+
675  ny_Begin_ISO() const UTILS_OVERRIDE
+
676  { return m_CD.nor0_y_ISO(); }
+
677 
+
678  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
679 
+
680  /*\
+
681  | _____ _ _ _
+
682  | |_ _| __ _ _ __ __| | | \ | |
+
683  | | | / _` | '_ \ / _` | | \| |
+
684  | | | | (_| | | | | (_| | | |\ |
+
685  | |_| \__,_|_| |_|\__,_| |_| \_|
+
686  \*/
+
687 
+
688  virtual
+
689  real_type
+
690  tx( real_type s ) const UTILS_OVERRIDE
+
691  { return m_CD.tg_x( s ); }
+
692 
+
693  virtual
+
694  real_type
+
695  ty( real_type s ) const UTILS_OVERRIDE
+
696  { return m_CD.tg_y( s ); }
+
697 
+
698  virtual
+
699  real_type
+
700  tx_D( real_type s ) const UTILS_OVERRIDE
+
701  { return m_CD.tg_x_D( s ); }
+
702 
+
703  virtual
+
704  real_type
+
705  ty_D( real_type s ) const UTILS_OVERRIDE
+
706  { return m_CD.tg_y_D( s ); }
+
707 
+
708  virtual
+
709  real_type
+
710  tx_DD( real_type s ) const UTILS_OVERRIDE
+
711  { return m_CD.tg_x_DD( s ); }
+
712 
+
713  virtual
+
714  real_type
+
715  ty_DD( real_type s ) const UTILS_OVERRIDE
+
716  { return m_CD.tg_y_DD( s ); }
+
717 
+
718  virtual
+
719  real_type
+
720  tx_DDD( real_type s ) const UTILS_OVERRIDE
+
721  { return m_CD.tg_x_DDD( s ); }
+
722 
+
723  virtual
+
724  real_type
+
725  ty_DDD( real_type s ) const UTILS_OVERRIDE
+
726  { return m_CD.tg_y_DDD( s ); }
+
727 
+
728  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
729 
+
730  virtual
+
731  void
+
732  tg(
+
733  real_type s,
+
734  real_type & tx,
+
735  real_type & ty
+
736  ) const UTILS_OVERRIDE
+
737  { m_CD.tg( s, tx, ty ); }
+
738 
+
739  virtual
+
740  void
+
741  tg_D(
+
742  real_type s,
+
743  real_type & tx_D,
+
744  real_type & ty_D
+
745  ) const UTILS_OVERRIDE
+
746  { m_CD.tg_D( s, tx_D, ty_D ); }
+
747 
+
748  virtual
+
749  void
+
750  tg_DD(
+
751  real_type s,
+
752  real_type & tx_DD,
+
753  real_type & ty_DD
+
754  ) const UTILS_OVERRIDE
+
755  { m_CD.tg_DD( s, tx_DD, ty_DD ); }
+
756 
+
757  virtual
+
758  void
+
759  tg_DDD(
+
760  real_type s,
+
761  real_type & tx_DDD,
+
762  real_type & ty_DDD
+
763  ) const UTILS_OVERRIDE
+
764  { m_CD.tg_DDD( s, tx_DDD, ty_DDD ); }
+
765 
+
766  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
767 
+
774  real_type
+
775  theta( real_type s ) const UTILS_OVERRIDE
+
776  { return m_CD.theta(s); }
+
777 
+
784  real_type
+
785  theta_D( real_type s ) const UTILS_OVERRIDE
+
786  { return m_CD.kappa(s); }
+
787 
+
793  real_type
+
794  theta_DD( real_type ) const UTILS_OVERRIDE
+
795  { return m_CD.dk; }
+
796 
+
802  real_type
+
803  theta_DDD( real_type ) const UTILS_OVERRIDE
+
804  { return 0; }
+
805 
+
806  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
807 
+
808  #ifdef G2LIB_COMPATIBILITY_MODE
+
809  virtual
+
810  void
+
811  evaluate(
+
812  real_type s,
+
813  real_type & th,
+
814  real_type & k,
+
815  real_type & x,
+
816  real_type & y
+
817  ) const UTILS_OVERRIDE
+
818  { m_CD.evaluate( s, th, k, x, y ); }
+
819  #endif
+
820 
+
821  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
822 
+
828  real_type
+
829  X( real_type s ) const UTILS_OVERRIDE
+
830  { return m_CD.X(s); }
+
831 
+
832  real_type
+
833  X_D( real_type s ) const UTILS_OVERRIDE
+
834  { return m_CD.X_D(s); }
+
835 
+
836  real_type
+
837  X_DD( real_type s ) const UTILS_OVERRIDE
+
838  { return m_CD.X_DD(s); }
+
839 
+
840  real_type
+
841  X_DDD( real_type s ) const UTILS_OVERRIDE
+
842  { return m_CD.X_DDD(s); }
+
843 
+
849  real_type
+
850  Y( real_type s ) const UTILS_OVERRIDE
+
851  { return m_CD.Y(s); }
+
852 
+
853  real_type
+
854  Y_D( real_type s ) const UTILS_OVERRIDE
+
855  { return m_CD.Y_D(s); }
+
856 
+
857  real_type
+
858  Y_DD ( real_type s ) const UTILS_OVERRIDE
+
859  { return m_CD.Y_DD(s); }
+
860 
+
861  real_type
+
862  Y_DDD( real_type s ) const UTILS_OVERRIDE
+
863  { return m_CD.Y_DDD(s); }
+
864 
+
871  real_type
+
872  X_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE
+
873  { return m_CD.X_ISO(s,offs); }
+
874 
+
875  real_type
+
876  X_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE
+
877  { return m_CD.X_ISO_D(s,offs); }
+
878 
+
879  real_type
+
880  X_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE
+
881  { return m_CD.X_ISO_DD(s,offs); }
+
882 
+
883  real_type
+
884  X_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE
+
885  { return m_CD.X_ISO_DDD(s,offs); }
+
886 
+
893  real_type
+
894  Y_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE
+
895  { return m_CD.Y_ISO(s,offs); }
+
896 
+
897  real_type
+
898  Y_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE
+
899  { return m_CD.Y_ISO_D(s,offs); }
+
900 
+
901  real_type
+
902  Y_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE
+
903  { return m_CD.Y_ISO_DD(s,offs); }
+
904 
+
905  real_type
+
906  Y_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE
+
907  { return m_CD.Y_ISO_DDD(s,offs); }
+
908 
+
909  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
910 
+
911  virtual
+
912  void
+
913  eval(
+
914  real_type s,
+
915  real_type & x,
+
916  real_type & y
+
917  ) const UTILS_OVERRIDE
+
918  { m_CD.eval( s, x, y ); }
+
919 
+
920  virtual
+
921  void
+
922  eval_D(
+
923  real_type s,
+
924  real_type & x_D,
+
925  real_type & y_D
+
926  ) const UTILS_OVERRIDE
+
927  { m_CD.eval_D( s, x_D, y_D ); }
+
928 
+
929  virtual
+
930  void
+
931  eval_DD(
+
932  real_type s,
+
933  real_type & x_DD,
+
934  real_type & y_DD
+
935  ) const UTILS_OVERRIDE
+
936  { m_CD.eval_DD( s, x_DD, y_DD ); }
+
937 
+
938  virtual
+
939  void
+
940  eval_DDD(
+
941  real_type s,
+
942  real_type & x_DDD,
+
943  real_type & y_DDD
+
944  ) const UTILS_OVERRIDE
+
945  { m_CD.eval_DDD( s, x_DDD, y_DDD ); }
+
946 
+
947  virtual
+
948  void
+ +
950  real_type s,
+
951  real_type offs,
+
952  real_type & x,
+
953  real_type & y
+
954  ) const UTILS_OVERRIDE
+
955  { m_CD.eval_ISO( s, offs, x, y ); }
+
956 
+
957  virtual
+
958  void
+ +
960  real_type s,
+
961  real_type offs,
+
962  real_type & x_D,
+
963  real_type & y_D
+
964  ) const UTILS_OVERRIDE
+
965  { m_CD.eval_ISO_D( s, offs, x_D, y_D ); }
+
966 
+
967  virtual
+
968  void
+ +
970  real_type s,
+
971  real_type offs,
+
972  real_type & x_DD,
+
973  real_type & y_DD
+
974  ) const UTILS_OVERRIDE
+
975  { m_CD.eval_ISO_DD( s, offs, x_DD, y_DD ); }
+
976 
+
977  virtual
+
978  void
+ +
980  real_type s,
+
981  real_type offs,
+
982  real_type & x_DDD,
+
983  real_type & y_DDD
+
984  ) const UTILS_OVERRIDE
+
985  { m_CD.eval_ISO_DDD( s, offs, x_DDD, y_DDD ); }
+
986 
+
987  /*\
+
988  | _ __
+
989  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
990  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
991  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
992  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
993  \*/
+
994 
+
995  virtual
+
996  void
+
997  translate( real_type tx, real_type ty ) UTILS_OVERRIDE
+
998  { m_CD.x0 += tx; m_CD.y0 += ty; }
+
999 
+
1000  virtual
+
1001  void
+
1002  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE
+
1003  { m_CD.rotate( angle, cx, cy ); }
+
1004 
+
1005  virtual
+
1006  void
+
1007  scale( real_type s ) UTILS_OVERRIDE {
+
1008  m_CD.kappa0 /= s;
+
1009  m_CD.dk /= s*s;
+
1010  m_L *= s;
+
1011  }
+
1012 
+
1013  virtual
+
1014  void
+
1015  reverse() UTILS_OVERRIDE
+
1016  { m_CD.reverse(m_L); }
+
1017 
+
1018  virtual
+
1019  void
+
1020  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE
+
1021  { m_CD.x0 = newx0; m_CD.y0 = newy0; }
+
1022 
+
1023  virtual
+
1024  void
+
1025  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE {
+
1026  m_CD.origin_at( s_begin );
+
1027  m_L = s_end - s_begin;
+
1028  }
+
1029 
+
1030  void
+
1031  changeCurvilinearOrigin( real_type s0, real_type newL ) {
+
1032  m_CD.origin_at( s0 );
+
1033  m_L = newL;
+
1034  }
+
1035 
+
1036  /*\
+
1037  | _ _ ____ _ _
+
1038  | ___| | ___ ___ ___ ___| |_| _ \ ___ (_)_ __ | |_
+
1039  | / __| |/ _ \/ __|/ _ \/ __| __| |_) / _ \| | '_ \| __|
+
1040  | | (__| | (_) \__ \ __/\__ \ |_| __/ (_) | | | | | |_
+
1041  | \___|_|\___/|___/\___||___/\__|_| \___/|_|_| |_|\__|
+
1042  \*/
+
1043 
+
1044  virtual
+
1045  int_type
+ +
1047  real_type qx,
+
1048  real_type qy,
+
1049  real_type & x,
+
1050  real_type & y,
+
1051  real_type & s,
+
1052  real_type & t,
+
1053  real_type & dst
+
1054  ) const UTILS_OVERRIDE;
+
1055 
+
1056  virtual
+
1057  int_type
+ +
1059  real_type qx,
+
1060  real_type qy,
+
1061  real_type offs,
+
1062  real_type & x,
+
1063  real_type & y,
+
1064  real_type & s,
+
1065  real_type & t,
+
1066  real_type & dst
+
1067  ) const UTILS_OVERRIDE;
+
1068 
+
1069  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1070  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1071 
+
1072  /*\
+
1073  | _ _ _ _
+
1074  | ___ ___ | | (_)___(_) ___ _ __
+
1075  | / __/ _ \| | | / __| |/ _ \| '_ \
+
1076  | | (_| (_) | | | \__ \ | (_) | | | |
+
1077  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
1078  \*/
+
1079 
+
1080  void
+
1081  build_AABBtree_ISO(
+
1082  real_type offs,
+
1083  real_type max_angle = Utils::m_pi/18, // 10 degree
+
1084  real_type max_size = 1e100
+
1085  ) const;
+
1086 
+
1087  // collision detection
+
1088  bool
+ +
1090  real_type offs,
+
1091  ClothoidCurve const & c,
+
1092  real_type c_offs,
+
1093  real_type max_angle,
+
1094  real_type max_size
+
1095  ) const;
+
1096 
+
1097  bool
+
1098  collision( ClothoidCurve const & C ) const;
+
1099 
+
1100  bool
+
1101  collision_ISO(
+
1102  real_type offs,
+
1103  ClothoidCurve const & C,
+
1104  real_type offs_C
+
1105  ) const;
+
1106 
+
1107  /*\
+
1108  | _ _ _
+
1109  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
1110  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
1111  | | | | | | || __/ | \__ \ __/ (__| |_
+
1112  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
1113  \*/
+
1114 
+
1115  void
+
1116  intersect(
+
1117  ClothoidCurve const & C,
+
1118  IntersectList & ilist,
+
1119  bool swap_s_vals
+
1120  ) const {
+
1121  intersect_ISO( 0, C, 0, ilist, swap_s_vals );
+
1122  }
+
1123 
+
1124  void
+
1125  intersect_ISO(
+
1126  real_type offs,
+
1127  ClothoidCurve const & C,
+
1128  real_type offs_C,
+
1129  IntersectList & ilist,
+
1130  bool swap_s_vals
+
1131  ) const;
+
1132 
+
1133  void
+
1134  info( ostream_type & stream ) const UTILS_OVERRIDE
+
1135  { stream << "Clothoid\n" << *this << '\n'; }
+
1136 
+
1137  friend
+
1138  ostream_type &
+
1139  operator << ( ostream_type & stream, ClothoidCurve const & c );
+
1140 
+
1141  };
+
1142 
+
1143 }
+
1144 
+
Class to manage AABB tree.
Definition: AABBtree.hxx:163
+
void clear()
initialized AABB tree
Definition: AABBtree.cc:143
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
Class to manage Clothoid Curve.
Definition: Clothoid.hxx:37
+
int build_G1_D(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type L_D[2], real_type k_D[2], real_type dk_D[2], real_type tol=1e-12)
build a clothoid by solving the hermite G1 problem
Definition: Clothoid.hxx:308
+
void build(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)
construct a clothoid with the standard parameters
Definition: Clothoid.hxx:252
+
real_type curvatureTotalVariation() const
Definition: Clothoid.cc:689
+
ClothoidCurve(real_type const P0[], real_type theta0, real_type const P1[], real_type theta1)
construct a clothoid by solving the hermite G1 problem
Definition: Clothoid.hxx:192
+
real_type theta_DD(real_type) const UTILS_OVERRIDE
get clothoid angle second derivative at curvilinear cooordinate s
Definition: Clothoid.hxx:794
+
bool bbTriangle_ISO(real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
get the triangle bounding box (if angle variation less that pi/2)
Definition: Clothoid.hxx:517
+
real_type X(real_type s) const UTILS_OVERRIDE
clothoid X coordinate at curvilinear coordinate s
Definition: Clothoid.hxx:829
+
real_type theta_DDD(real_type) const UTILS_OVERRIDE
get clothoid angle third derivative at curvilinear cooordinate s
Definition: Clothoid.hxx:803
+
void build(LineSegment const &LS)
build a clothoid from a line segment
Definition: Clothoid.hxx:358
+
ClothoidCurve(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)
construct a clothoid with the standard parameters
Definition: Clothoid.hxx:171
+
void build(CircleArc const &C)
build a clothoid from a line segment
Definition: Clothoid.hxx:375
+
virtual real_type length_ISO(real_type) const UTILS_OVERRIDE
Definition: Clothoid.hxx:623
+
real_type theta_D(real_type s) const UTILS_OVERRIDE
get clothoid angle derivative (=curvature) at curvilinear cooordinate s
Definition: Clothoid.hxx:785
+
virtual void eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: Clothoid.hxx:979
+
bool build_forward(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type tol=1e-12)
build a clothoid by solving the forward problem
Definition: Clothoid.hxx:338
+
bool bbTriangle(real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
get the triangle bounding box (if angle variation less that pi/2)
Definition: Clothoid.hxx:507
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: Clothoid.hxx:949
+
real_type closestPointBySample(real_type ds, real_type qx, real_type qy, real_type &X, real_type &Y, real_type &S) const
Compute the point on clothoid at minimal distance from a given point.
Definition: ClothoidDistance.cc:43
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Clothoid.hxx:618
+
real_type theta(real_type s) const UTILS_OVERRIDE
get clothoid angle at curvilinear cooordinate s
Definition: Clothoid.hxx:775
+
virtual void eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: Clothoid.hxx:969
+
real_type Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDE
clothoid Y coordinate at curvilinear coordinate s
Definition: Clothoid.hxx:894
+
real_type X_ISO(real_type s, real_type offs) const UTILS_OVERRIDE
clothoid X coordinate at curvilinear coordinate s
Definition: Clothoid.hxx:872
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Clothoid.hxx:595
+
real_type Y(real_type s) const UTILS_OVERRIDE
clothoid Y coordinate at curvilinear coordinate s
Definition: Clothoid.hxx:850
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: Clothoid.hxx:959
+
real_type deltaTheta() const
Definition: Clothoid.hxx:407
+
bool approximate_collision_ISO(real_type offs, ClothoidCurve const &c, real_type c_offs, real_type max_angle, real_type max_size) const
Definition: Clothoid.cc:376
+
void optimized_sample_ISO(real_type offs, int_type npts, real_type max_angle, std::vector< real_type > &s) const
Definition: Clothoid.cc:126
+
int build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol=1e-12)
build a clothoid by solving the hermite G1 problem
Definition: Clothoid.hxx:282
+
bool bbTriangle_SAE(real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
get the triangle bounding box (if angle variation less that pi/2)
Definition: Clothoid.hxx:528
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Clothoid.cc:260
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
Definition: ClothoidDistance.cc:484
+
real_type thetaTotalVariation() const
Definition: Clothoid.cc:634
+
data storage for clothoid type curve
Definition: Fresnel.hxx:112
+
real_type theta0
initial angle of the clothoid
Definition: Fresnel.hxx:117
+
real_type theta(real_type s) const
return angle at curvilinear coordinate s
Definition: Fresnel.hxx:135
+
real_type kappa(real_type s) const
return curvature at curvilinear coordinate s
Definition: Fresnel.hxx:143
+
real_type y0
initial y coordinate of the clothoid
Definition: Fresnel.hxx:116
+
real_type kappa0
initial curvature
Definition: Fresnel.hxx:118
+
real_type dk
curvature derivative
Definition: Fresnel.hxx:119
+
real_type x0
initial x coordinate of the clothoid
Definition: Fresnel.hxx:115
+
Class to manage a list of clothoid curves (not necessarily G2 or G1 connected)
Definition: ClothoidList.hxx:571
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
Class to manage Triangle for BB of clothoid curve.
Definition: Triangle2D.hxx:37
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/dc/d5d/class_g2lib_1_1_clothoid_data.html b/docs/dc/d5d/class_g2lib_1_1_clothoid_data.html new file mode 100644 index 00000000..f36e5e52 --- /dev/null +++ b/docs/dc/d5d/class_g2lib_1_1_clothoid_data.html @@ -0,0 +1,443 @@ + + + + + + + +Clothoids: G2lib::ClothoidData Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::ClothoidData Class Reference
+
+
+ +

data storage for clothoid type curve + More...

+ +

#include <Fresnel.hxx>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+real_type deltaTheta (real_type s) const
 
+real_type theta (real_type s) const
 return angle at curvilinear coordinate s
 
+real_type theta_D (real_type s) const
 
+real_type theta_DD (real_type) const
 
+real_type theta_DDD (real_type) const
 
+real_type kappa (real_type s) const
 return curvature at curvilinear coordinate s
 
+real_type kappa_D (real_type) const
 
+real_type kappa_DD (real_type) const
 
+real_type kappa_DDD (real_type) const
 
+real_type X (real_type s) const
 
+real_type Y (real_type s) const
 
+real_type X_D (real_type s) const
 
+real_type Y_D (real_type s) const
 
+real_type X_DD (real_type s) const
 
+real_type Y_DD (real_type s) const
 
+real_type X_DDD (real_type s) const
 
+real_type Y_DDD (real_type s) const
 
+real_type X_ISO (real_type s, real_type offs) const
 
+real_type Y_ISO (real_type s, real_type offs) const
 
+real_type X_ISO_D (real_type s, real_type offs) const
 
+real_type Y_ISO_D (real_type s, real_type offs) const
 
+real_type X_ISO_DD (real_type s, real_type offs) const
 
+real_type Y_ISO_DD (real_type s, real_type offs) const
 
+real_type X_ISO_DDD (real_type s, real_type offs) const
 
+real_type Y_ISO_DDD (real_type s, real_type offs) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
+real_type tg0_x () const
 
+real_type tg0_y () const
 
+real_type tg_x (real_type s) const
 
+real_type tg_y (real_type s) const
 
+real_type tg_x_D (real_type s) const
 
+real_type tg_y_D (real_type s) const
 
+real_type tg_x_DD (real_type s) const
 
+real_type tg_y_DD (real_type s) const
 
+real_type tg_x_DDD (real_type s) const
 
+real_type tg_y_DDD (real_type s) const
 
+real_type nor0_x_ISO () const
 
+real_type nor0_y_ISO () const
 
+real_type nor_x_ISO (real_type s) const
 
+real_type nor_y_ISO (real_type s) const
 
+real_type nor_x_ISO_D (real_type s) const
 
+real_type nor_y_ISO_D (real_type s) const
 
+real_type nor_x_ISO_DD (real_type s) const
 
+real_type nor_y_ISO_DD (real_type s) const
 
+real_type nor_x_ISO_DDD (real_type s) const
 
+real_type nor_y_ISO_DDD (real_type s) const
 
+real_type nor0_x_SAE () const
 
+real_type nor0_y_SAE () const
 
+real_type nor_x_SAE (real_type s) const
 
+real_type nor_y_SAE (real_type s) const
 
+real_type nor_x_SAE_D (real_type s) const
 
+real_type nor_y_SAE_D (real_type s) const
 
+real_type nor_x_SAE_DD (real_type s) const
 
+real_type nor_y_SAE_DD (real_type s) const
 
+real_type nor_x_SAE_DDD (real_type s) const
 
+real_type nor_y_SAE_DDD (real_type s) const
 
+void tg (real_type s, real_type &tx, real_type &ty) const
 
+void tg_D (real_type s, real_type &tx, real_type &ty) const
 
+void tg_DD (real_type s, real_type &tx, real_type &ty) const
 
+void tg_DDD (real_type s, real_type &tx, real_type &ty) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void evaluate (real_type s, real_type &theta, real_type &kappa, real_type &x, real_type &y) const
 
+void eval (real_type s, real_type &x, real_type &y) const
 
+void eval_D (real_type s, real_type &x_D, real_type &y_D) const
 
+void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const
 
+void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const
 
+void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const
 
+void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
+void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
+void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
+void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
+void eval_DAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
+void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+void eval (real_type s, ClothoidData &C) const
 
+real_type c0x () const
 
+real_type c0y () const
 
+void Pinfinity (real_type &x, real_type &y, bool plus) const
 
+void reverse (real_type L)
 
+void reverse (real_type L, ClothoidData &out) const
 
+void rotate (real_type angle, real_type cx, real_type cy)
 
+void origin_at (real_type s_origin)
 
+real_type split_at_flex (ClothoidData &C0, ClothoidData &C1) const
 
+real_type aplus (real_type dtheta) const
 
+bool bbTriangle (real_type L, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 
+bool bbTriangle_ISO (real_type L, real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 
+bool bbTriangle_SAE (real_type L, real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const
 
+int build_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol, real_type &L, bool compute_deriv=false, real_type L_D[2]=nullptr, real_type k_D[2]=nullptr, real_type dk_D[2]=nullptr)
 
+bool build_forward (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type tol, real_type &L)
 
+void info (ostream_type &s) const
 
+ + + + + + + + + + + + + + + + +

+Public Attributes

+real_type x0
 initial x coordinate of the clothoid
 
+real_type y0
 initial y coordinate of the clothoid
 
+real_type theta0
 initial angle of the clothoid
 
+real_type kappa0
 initial curvature
 
+real_type dk
 curvature derivative
 
+

Detailed Description

+

data storage for clothoid type curve

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.map b/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.map new file mode 100644 index 00000000..4017c5f8 --- /dev/null +++ b/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.md5 b/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.md5 new file mode 100644 index 00000000..c9fad857 --- /dev/null +++ b/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.md5 @@ -0,0 +1 @@ +fc0e2b2628585b8599856af9dc65e36e \ No newline at end of file diff --git a/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.png b/docs/dc/d74/class_utils_1_1_runtime___error__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cceacf2ce674240526c4c039dd0812f4dc2aac GIT binary patch literal 3707 zcmcha`9IX}*T=^$X(WSWCp#h8_r0={NHT*&$eMj8vP;(NOSU1AeaMg)+1D`0lAW=| zjF}PN_viEd;eOorA8J0 zGJZpto7&E-CZ)RSMoGqTj~Z_7bG9%L@^cNBz)47>=}#vI3xC>ieuiNO@<{J?MP_pK z>;Jy3WyYkQ3ch=@4e=#IU|)%E!wGP>Ktn?Vl(h!>oJ+tvR)nDv{2fZIc$bl{s9sPa zLcX#<*8SHP?z5}58V(NYooXSxku0%Xt-PcRwA$qSH{+@GCDJ|UXYIS*+bUg>FE52x z+9q;~wml)oBD<7SiD6N`Pj9Eop&%4Ps~g*&>$s=bnMl3|2&GUA*$n8?tyuH2=W^(W z_ZsP6QVo$PEbM5JmgemV!V*)wEvajefAMWC<8zP0p>4gJqchhvgzCh)7?;`5tXNiE z{7cx~L*}A>ljfV1R5=l8U66|3N>sr+J%%8Ki0Nc+h=S{86$W&8?;Ytm?K!W)s+H48EKM2+K+ z%wvEaS2%Wu$8SlL-IF%X_=+fnKV^1A=4c1_{8zm@zm=mXAEVR+kom z)MUVr-&5xRsl1-Wfl|nJgHOyjFU}X{{U?T1==R8d77a5^ju8$xJI**bxstgVgd>EU z%uouA;2?^Atcffu20ouGb8AnF!G!aYO=MAlZo6B7=%Bok4DbC3VLZ%D0?BOjSga0eh=)L6dGol45|d@l7C=aYCkW zUbmDZZ6>Ev+Zz8e@7pED#t(Lz%RQX@!XhF#ibF;)g;+#E9ImQAayMO>9`o>CK$W7U z-53*dRIhTm8VlJ+vIpG9WMWuaSTLyb4*6LqS@B@E+92NuVQy*f1=QQMyNFLs6_-s~ z=AN;Wh!ol#b*eUT4-I^&lPeaJVN9d%p>3qXi0yZDi7bxoBG;skxDvzjZ}!T_K}gTV zw#74wYk1O<*%h0Emz`U{RCG4yO>kl7(9nVC2$v<(+ax{_a$s%Phxn2`mdLQ#@!84{ zJl7a!ag02X%#)yveFPJg>O~2hgN&i>`Lx8n9(EHsF8OT38#iuzQD>nW@W(V2QPF3+ zrK1?5-L$)Z&JV&@lKHLQ37Jy;_#vLOx98efE|};8Y0A|fc!NNwBEqr^JT!GA*kAid ziyK3-#ED5?<^%j^NojbsU<7|_bH>e&zrZ^TJxm5Sxy{x<-}~GWljH9`>%p`W;BYho zp=0RkOb980QV_JccxOS`!>K87cndK)UPu`3?YYHEBd!G_GpiK*6-x23MDU^QR?ijj z=kX_+)(d@c@pf<&Zl)RI+nzH!c38ow!D1oD&6~~1!^88K_JpA?mb#2fYvm0ekA&(8 zRv6hE#;INOm+SFignp_@Y|3Q?G~zD}87`Hk{N?FsSmiZs>y?=Etsbg)yHOMKTH%4D zb3OB>FuC+ZeuWIrKM4Hs^`~phh^3*liB3IMPFr>_@JMy&mR~RB=5CG?J`qaR$l(1 zABCHaG4?z=v>nM;)OB>MK$XLt`&Y;G?iZR*q0tYGjOaiN{QAqMGtdKZKV5V4oSdB4 zq$Ku}fV)ys0ekf*!mHe29a~#&Mn=Y=Y)MU=C$RoYcXvM)#^9!Imi9$MBO{|rC)b9# zx_L|@oBTxSKEQ%S>IH3l$z|JfI^~n=cs!o$=kESKWtXc=&@3E2F*X+7Yj>pJ(n_R! z*zZ->Gu23Z;XJ^MbQ}oHVm}{*4qobQivcHO2T4s81 zC)<;n$pX)LEnmJA(#yKD9?fjS#mh@pJ^k?M(_CHU>gj=tzr?w(L9!+$CVTTODJ@H( zxw1>a4B_eN5FQ>kYvz3!r~F|2u>%N!KvY&$6_=OCynp}xLScW>69|@XJ9{|biL731}lj#KQmbFHYWP2g1k4w-9#uH$5xM`)F0WAZTB{Ao%#f z&t;a^WugO@8v=!|fCyL!~EBSX-MS7{zBUwpD1->a+$yrC-nTh@<2NRL7A_~$IowSZM~rC#U~)p5P0gmG4!F7 zc+*Jf=#3uOcYi@%#&x!9yj1r|t4Fa#VP^-NE}?hg5)H_E52pS`q%e!Q&+iR7tkZIv4- zP~J5O-Jal^n3$mSsp;#}DK{!K^!1e)9v%)p{vptTMY}8jHHl>D+kFEA2Vi@_L`=(_ z^^t1T>gk;?qao<&1P-L>5V_Td8MAVL~(W8=kVyi;9VT-=eR0kp$E^+%cjt5;{y zZG2l>Tb_bXJfP=C=4I8@317b4MWfNyItBgx_df?@No|f6I{w)hZftJ0tGDbQ8hZU8 z6p7zpRrz~jR@f|VXJ<#yojW`8*XL)*$jAV(sfOmo#85taH9Z*NQ?gTH3bBN?As^<)0$c7L30uV3-GLH23uJk)E5I({xS~kGvbXzP9Fp zK}$EknvW?FeC_KC7#9>0;+B-GNB$zCQ|iKE<^esd)VA**2i6ex+f(RN&cgZhGT*&_ zui@e%0@ObY=U2l#xo&1?u)3jPvc)_zQ$jT0C8E7uGIv-M+L>oz6A;a===&}wXD1bf z*DzwG>vobPF9&g~uH(P!MCR}0QKRY!5 z*#9M*y3T!x253$$Ea)2=f&rWySKq>xF&l$kFr%eu<(mN3=H^U5FH$cjZh!Wvg(62P zO-c#g5GblG@Kktlaq;8FkF+}+<1i-|m(q%gx7pd*>iF%KQ5*`2idCOJ@yWS-kz!n4o=VAm+2MH7kk=F>qo7w-D$x6 zZ)fzs&gwI3?aq@4J#JdfR`VnNy6UcrQ5B--R6X^|==2I$?Y|w`b@C{DSOiAN7PnkU R1iDGk18qaCS`Ap_e*myqE&Kog literal 0 HcmV?d00001 diff --git a/docs/dc/d87/class_utils_1_1_malloc.html b/docs/dc/d87/class_utils_1_1_malloc.html new file mode 100644 index 00000000..a394553f --- /dev/null +++ b/docs/dc/d87/class_utils_1_1_malloc.html @@ -0,0 +1,150 @@ + + + + + + + +Clothoids: Utils::Malloc< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Malloc< T > Class Template Reference
+
+
+ +

Allocate memory. + More...

+ +

#include <Malloc.hxx>

+ + + + +

+Public Types

+typedef T valueType
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Malloc (std::string const &name)
 malloc object constructor
 
~Malloc ()
 malloc object destructor
 
+void allocate (size_t n)
 allocate memory for n objects
 
+void free (void)
 free memory
 
+size_t size (void) const
 number of objects allocated
 
+T * operator() (size_t sz)
 get pointer of allocated memory for sz objets
 
+T * malloc (size_t n)
 
+bool is_empty () const
 true if you cannot get more memory pointers
 
+void must_be_empty (char const where[]) const
 return an error if memory is not complately used
 
+

Detailed Description

+

template<typename T>
+class Utils::Malloc< T >

+ +

Allocate memory.

+

The documentation for this class was generated from the following files:
    +
  • submodules/Utils/src/Utils/Malloc.hxx
  • +
  • submodules/Utils/src/Malloc.cc
  • +
+
+ + + + diff --git a/docs/dc/da2/class_generic_container_namespace_1_1mat__type-members.html b/docs/dc/da2/class_generic_container_namespace_1_1mat__type-members.html new file mode 100644 index 00000000..d99e7cc6 --- /dev/null +++ b/docs/dc/da2/class_generic_container_namespace_1_1mat__type-members.html @@ -0,0 +1,104 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainerNamespace::mat_type< TYPE > Member List
+
+
+ +

This is the complete list of members for GenericContainerNamespace::mat_type< TYPE >, including all inherited members.

+ + + + + + + + + + + + + + + +
data() (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
data() const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
getColumn(unsigned nc, std::vector< TYPE > &C) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
getColumn(unsigned nc, TYPE *C) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
getRow(unsigned nr, std::vector< TYPE > &R) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
getRow(unsigned nr, TYPE *R) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
info(ostream_type &stream) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
mat_type() (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
mat_type(unsigned nr, unsigned nc) (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
numCols() const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
numRows() const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
operator()(unsigned i, unsigned j) const (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
operator()(unsigned i, unsigned j) (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >
resize(unsigned nr, unsigned nc) (defined in GenericContainerNamespace::mat_type< TYPE >)GenericContainerNamespace::mat_type< TYPE >inline
+ + + + diff --git a/docs/dc/db9/class_g2lib_1_1_line_segment-members.html b/docs/dc/db9/class_g2lib_1_1_line_segment-members.html new file mode 100644 index 00000000..ffe00deb --- /dev/null +++ b/docs/dc/db9/class_g2lib_1_1_line_segment-members.html @@ -0,0 +1,255 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::LineSegment Member List
+
+
+ +

This is the complete list of members for G2lib::LineSegment, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::LineSegmentvirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::LineSegmentvirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
build(real_type x0, real_type y0, real_type theta0, real_type L) (defined in G2lib::LineSegment)G2lib::LineSegmentinline
build_2P(real_type _x0, real_type _y0, real_type _x1, real_type _y1)G2lib::LineSegment
build_2P(real_type const p0[2], real_type const p1[2])G2lib::LineSegmentinline
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
CircleArc (defined in G2lib::LineSegment)G2lib::LineSegmentfriend
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::LineSegmentvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::LineSegmentvirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
ClothoidCurve (defined in G2lib::LineSegment)G2lib::LineSegmentfriend
collision(LineSegment const &S) const (defined in G2lib::LineSegment)G2lib::LineSegment
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, LineSegment const &S, real_type S_offs) const (defined in G2lib::LineSegment)G2lib::LineSegment
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(LineSegment const &c) (defined in G2lib::LineSegment)G2lib::LineSegmentinline
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
eval_D(real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
eval_DD(real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
eval_DDD(real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
eval_ISO_D(real_type, real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
eval_ISO_DD(real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
eval_ISO_DDD(real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
intersect(LineSegment const &S, real_type &s1, real_type &s2) const (defined in G2lib::LineSegment)G2lib::LineSegment
intersect(LineSegment const &LS, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::LineSegment)G2lib::LineSegmentinline
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, LineSegment const &S, real_type S_offs, real_type &s1, real_type &s2) const (defined in G2lib::LineSegment)G2lib::LineSegment
intersect_ISO(real_type offs, LineSegment const &LS, real_type offs_LS, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::LineSegment)G2lib::LineSegmentinline
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
length_ISO(real_type) const UTILS_OVERRIDEG2lib::LineSegmentinlinevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
LineSegment() (defined in G2lib::LineSegment)G2lib::LineSegmentinline
LineSegment(LineSegment const &s) (defined in G2lib::LineSegment)G2lib::LineSegmentinline
LineSegment(BaseCurve const &C) (defined in G2lib::LineSegment)G2lib::LineSegmentexplicit
LineSegment(real_type _x0, real_type _y0, real_type _theta0, real_type _L)G2lib::LineSegmentinlineexplicit
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::LineSegment)G2lib::LineSegmentfriend
operator=(LineSegment const &s) (defined in G2lib::LineSegment)G2lib::LineSegmentinline
p1p2(real_type p1[2], real_type p2[2]) const (defined in G2lib::LineSegment)G2lib::LineSegmentinline
paramNURBS(int_type &n_knots, int_type &n_pnts) const (defined in G2lib::LineSegment)G2lib::LineSegment
PolyLine (defined in G2lib::LineSegment)G2lib::LineSegmentfriend
reverse() UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentvirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentvirtual
scale(real_type sc) UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tg(real_type, real_type &tx, real_type &ty) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tg_D(real_type, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tg_DD(real_type, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tg_DDD(real_type, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
theta(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
theta_D(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
theta_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
theta_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
thetaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
thetaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
toBS(real_type knots[], real_type Poly[][2]) const (defined in G2lib::LineSegment)G2lib::LineSegmentvirtual
toNURBS(real_type knots[], real_type Poly[][3]) const (defined in G2lib::LineSegment)G2lib::LineSegment
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx_D(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
tx_End() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty_D(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
ty_End() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_D(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_ISO_D(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_ISO_DD(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_ISO_DDD(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
xBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
xEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_D(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_ISO_D(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_ISO_DD(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_ISO_DDD(real_type, real_type) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
yBegin_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
yEnd_ISO(real_type offs) const UTILS_OVERRIDE (defined in G2lib::LineSegment)G2lib::LineSegmentinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
+ + + + diff --git a/docs/dc/dbb/_tic_toc_8hxx_source.html b/docs/dc/dbb/_tic_toc_8hxx_source.html new file mode 100644 index 00000000..9e5902db --- /dev/null +++ b/docs/dc/dbb/_tic_toc_8hxx_source.html @@ -0,0 +1,237 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils/TicToc.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TicToc.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | Via Sommarive 9, I-38123 Povo, Trento, Italy |
+
17  | email: enrico.bertolazzi@unitn.it |
+
18  | |
+
19 \*--------------------------------------------------------------------------*/
+
20 
+
24 
+
25 #pragma once
+
26 
+
27 #ifndef TIC_TOC_dot_HH
+
28 #define TIC_TOC_dot_HH
+
29 
+
30 #ifdef UTILS_OS_WINDOWS
+
31  #include <windows.h>
+
32 #else
+
33  #include <chrono>
+
34  #include <thread>
+
35 #endif
+
36 
+
37 namespace Utils {
+
38 
+
39 #ifdef UTILS_OS_WINDOWS
+
40  class TicToc {
+
41 
+
42  typedef double real_type;
+
43  LARGE_INTEGER m_frequency; // ticks per second
+
44  LARGE_INTEGER m_t1, m_t2; // ticks
+
45  real_type m_elapsed_time;
+
46 
+
47  TicToc( TicToc const & ) = delete;
+
48  TicToc const & operator = ( TicToc const & ) const = delete;
+
49 
+
50  public:
+
51 
+
52  TicToc()
+
53  : m_elapsed_time(0)
+
54  { QueryPerformanceFrequency(&m_frequency); tic(); }
+
55 
+
56  ~TicToc() {}
+
57 
+
58  void
+
59  tic()
+
60  { QueryPerformanceCounter(&m_t1); }
+
61 
+
62  void
+
63  toc() {
+
64  QueryPerformanceCounter(&m_t2);
+
65  m_elapsed_time = (m_t2.QuadPart - m_t1.QuadPart) * 1000.0 / m_frequency.QuadPart;;
+
66  }
+
67 
+
68  real_type
+
69  elapsed_s() const
+
70  { return 1e-3*m_elapsed_time; }
+
71 
+
72  real_type
+
73  elapsed_ms() const
+
74  { return m_elapsed_time; }
+
75 
+
76  };
+
77 
+
78  inline
+
79  void
+
80  sleep_for_seconds( unsigned s )
+
81  { Sleep(DWORD(s)*1000); }
+
82 
+
83  inline
+
84  void
+
85  sleep_for_milliseconds( unsigned ms )
+
86  { Sleep(DWORD(ms)); }
+
87 
+
88 #else
+
89 
+
90  class TicToc {
+
91 
+
92  typedef double real_type;
+
93  #ifdef TIC_TOC_USE_HRC
+
94  typedef std::chrono::high_resolution_clock clock;
+
95  #else
+
96  typedef std::chrono::steady_clock clock;
+
97  #endif
+
98 
+
99  using elapsed_resolution = std::chrono::microseconds;
+
100 
+
101  clock::time_point m_start_time;
+
102  clock::time_point m_stop_time;
+
103 
+
104  elapsed_resolution m_elapsed_time;
+
105 
+
106  TicToc( TicToc const & ) = delete;
+
107  TicToc const & operator = ( TicToc const & ) const = delete;
+
108 
+
109  public:
+
110 
+
111  TicToc()
+
112  : m_elapsed_time(0)
+
113  { this->tic(); }
+
114 
+
115  ~TicToc() {}
+
116 
+
117  void
+
118  tic()
+
119  { m_start_time = clock::now(); }
+
120 
+
121  void
+
122  toc() {
+
123  m_stop_time = clock::now();
+
124  m_elapsed_time = std::chrono::duration_cast<elapsed_resolution>(m_stop_time - m_start_time);
+
125  }
+
126 
+
127  real_type
+
128  elapsed_s() const
+
129  { return 1e-6*m_elapsed_time.count(); }
+
130 
+
131  real_type
+
132  elapsed_ms() const
+
133  { return 1e-3*m_elapsed_time.count(); }
+
134  };
+
135 
+
136  inline
+
137  void
+
138  sleep_for_seconds( unsigned s )
+
139  { std::this_thread::sleep_for(std::chrono::seconds(s)); }
+
140 
+
141  inline
+
142  void
+
143  sleep_for_milliseconds( unsigned ms )
+
144  { std::this_thread::sleep_for(std::chrono::milliseconds(ms)); }
+
145 
+
146 #endif
+
147 
+
148 }
+
149 
+
150 #endif
+
151 
+
Definition: TicToc.hxx:90
+
Definition: Console.cc:31
+
+ + + + diff --git a/docs/dc/dd9/_biarc_list_8hxx_source.html b/docs/dc/dd9/_biarc_list_8hxx_source.html new file mode 100644 index 00000000..3772d69a --- /dev/null +++ b/docs/dc/dd9/_biarc_list_8hxx_source.html @@ -0,0 +1,817 @@ + + + + + + + +Clothoids: src/Clothoids/BiarcList.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BiarcList.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  using std::vector;
+
28 
+
29  class ClothoidList;
+
30 
+
31  /*\
+
32  | ____ _ _ _ _
+
33  | | __ )(_) __ _ _ __ ___| | (_)___| |_
+
34  | | _ \| |/ _` | '__/ __| | | / __| __|
+
35  | | |_) | | (_| | | | (__| |___| \__ \ |_
+
36  | |____/|_|\__,_|_| \___|_____|_|___/\__|
+
37  \*/
+
39  class BiarcList : public BaseCurve {
+
40 
+
41  friend class ClothoidList;
+
42 
+
43  vector<real_type> m_s0;
+
44  vector<Biarc> m_biarcList;
+
45 
+
46  mutable Utils::BinarySearch<int_type> m_lastInterval;
+
47 
+
48  mutable bool m_aabb_done;
+
49  mutable AABBtree m_aabb_tree;
+
50  mutable real_type m_aabb_offs;
+
51  mutable real_type m_aabb_max_angle;
+
52  mutable real_type m_aabb_max_size;
+
53  mutable vector<Triangle2D> m_aabb_tri;
+
54 
+
55  class T2D_collision_list_ISO {
+
56  BiarcList const * m_pList1;
+
57  real_type const m_offs1;
+
58  BiarcList const * m_pList2;
+
59  real_type const m_offs2;
+
60  public:
+
61  T2D_collision_list_ISO(
+
62  BiarcList const * pList1,
+
63  real_type const offs1,
+
64  BiarcList const * pList2,
+
65  real_type const offs2
+
66  )
+
67  : m_pList1(pList1)
+
68  , m_offs1(offs1)
+
69  , m_pList2(pList2)
+
70  , m_offs2(offs2)
+
71  {}
+
72 
+
73  bool
+
74  operator () ( BBox::PtrBBox ptr1, BBox::PtrBBox ptr2 ) const {
+
75  Triangle2D const & T1 = m_pList1->m_aabb_tri[size_t(ptr1->Ipos())];
+
76  Triangle2D const & T2 = m_pList2->m_aabb_tri[size_t(ptr2->Ipos())];
+
77  Biarc const & C1 = m_pList1->get(T1.Icurve());
+
78  Biarc const & C2 = m_pList2->get(T2.Icurve());
+
79  return C1.collision_ISO( m_offs1, C2, m_offs2 );
+
80  }
+
81  };
+
82 
+
83  void
+
84  resetLastInterval() {
+
85  bool ok;
+
86  int_type & lastInterval = *m_lastInterval.search( std::this_thread::get_id(), ok );
+
87  lastInterval = 0;
+
88  }
+
89 
+
90  public:
+
91 
+
92  #include "BaseCurve_using.hxx"
+
93 
+
94  //explicit
+
95  BiarcList()
+
96  : BaseCurve(G2LIB_BIARC_LIST)
+
97  , m_aabb_done(false)
+
98  { this->resetLastInterval(); }
+
99 
+
100  virtual
+
101  ~BiarcList() UTILS_OVERRIDE {
+
102  m_s0.clear();
+
103  m_biarcList.clear();
+
104  m_aabb_tri.clear();
+
105  }
+
106 
+
107  //explicit
+
108  BiarcList( BiarcList const & s )
+
109  : BaseCurve(G2LIB_BIARC_LIST)
+
110  , m_aabb_done(false)
+
111  { this->resetLastInterval(); copy(s); }
+
112 
+
113  void init();
+
114  void reserve( int_type n );
+
115  void copy( BiarcList const & L );
+
116 
+
117  BiarcList const & operator = ( BiarcList const & s )
+
118  { copy(s); return *this; }
+
119 
+
120  explicit BiarcList( LineSegment const & LS );
+
121  explicit BiarcList( CircleArc const & C );
+
122  explicit BiarcList( Biarc const & C );
+
123  explicit BiarcList( PolyLine const & pl );
+
124  explicit BiarcList( BaseCurve const & C );
+
125 
+
126  void push_back( LineSegment const & c );
+
127  void push_back( CircleArc const & c );
+
128  void push_back( Biarc const & c );
+
129  void push_back( PolyLine const & c );
+
130 
+
131  void push_back_G1( real_type x1, real_type y1, real_type theta1 );
+
132  void push_back_G1( real_type x0, real_type y0, real_type theta0,
+
133  real_type x1, real_type y1, real_type theta1 );
+
134 
+
135  bool
+
136  build_G1(
+
137  int_type n,
+
138  real_type const x[],
+
139  real_type const y[]
+
140  );
+
141 
+
142  bool
+
143  build_G1(
+
144  int_type n,
+
145  real_type const x[],
+
146  real_type const y[],
+
147  real_type const theta[]
+
148  );
+
149 
+
150  Biarc const & get( int_type idx ) const;
+
151  Biarc const & getAtS( real_type s ) const;
+
152 
+
153  int_type numSegment() const { return int_type(m_biarcList.size()); }
+
154 
+
155  int_type
+
156  findAtS( real_type & s ) const;
+
157 
+
158  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
159 
+
160  virtual
+
161  real_type
+
162  length() const UTILS_OVERRIDE;
+
163 
+
164  virtual
+
165  real_type
+
166  length_ISO( real_type offs ) const UTILS_OVERRIDE;
+
167 
+
168  real_type
+
169  segment_length( int_type nseg ) const;
+
170 
+
171  real_type
+
172  segment_length_ISO( int_type nseg, real_type offs ) const;
+
173 
+
174  /*\
+
175  | _ _ _____ _ _
+
176  | | |__| |_|_ _| _(_)__ _ _ _ __ _| |___
+
177  | | '_ \ '_ \| || '_| / _` | ' \/ _` | / -_)
+
178  | |_.__/_.__/|_||_| |_\__,_|_||_\__, |_\___|
+
179  | |___/
+
180  \*/
+
181 
+
182  void
+
183  bbTriangles_ISO(
+
184  real_type offs,
+
185  std::vector<Triangle2D> & tvec,
+
186  real_type max_angle = Utils::m_pi/6, // 30 degree
+
187  real_type max_size = 1e100
+
188  ) const;
+
189 
+
190  void
+
191  bbTriangles_SAE(
+
192  real_type offs,
+
193  std::vector<Triangle2D> & tvec,
+
194  real_type max_angle = Utils::m_pi/6, // 30 degree
+
195  real_type max_size = 1e100
+
196  ) const {
+
197  bbTriangles_ISO( -offs, tvec, max_angle, max_size );
+
198  }
+
199 
+
200  void
+
201  bbTriangles(
+
202  std::vector<Triangle2D> & tvec,
+
203  real_type max_angle = Utils::m_pi/6, // 30 degree
+
204  real_type max_size = 1e100
+
205  ) const {
+
206  bbTriangles_ISO( 0, tvec, max_angle, max_size );
+
207  }
+
208 
+
209  void
+
210  build_AABBtree_ISO(
+
211  real_type offs,
+
212  real_type max_angle = Utils::m_pi/6, // 30 degree
+
213  real_type max_size = 1e100
+
214  ) const;
+
215 
+
216  void
+
217  build_AABBtree_SAE(
+
218  real_type offs,
+
219  real_type max_angle = Utils::m_pi/6, // 30 degree
+
220  real_type max_size = 1e100
+
221  ) const {
+
222  build_AABBtree_ISO( -offs, max_angle, max_size );
+
223  }
+
224 
+
225  /*\
+
226  | _ _
+
227  | | |__ | |__ _____ __
+
228  | | '_ \| '_ \ / _ \ \/ /
+
229  | | |_) | |_) | (_) > <
+
230  | |_.__/|_.__/ \___/_/\_\
+
231  \*/
+
232 
+
233  virtual
+
234  void
+ +
236  real_type & xmin,
+
237  real_type & ymin,
+
238  real_type & xmax,
+
239  real_type & ymax
+
240  ) const UTILS_OVERRIDE {
+
241  bbox_ISO( 0, xmin, ymin, xmax, ymax );
+
242  }
+
243 
+
244  virtual
+
245  void
+
246  bbox_ISO(
+
247  real_type offs,
+
248  real_type & xmin,
+
249  real_type & ymin,
+
250  real_type & xmax,
+
251  real_type & ymax
+
252  ) const UTILS_OVERRIDE;
+
253 
+
254  /*\
+
255  | ____ _ _______ _
+
256  | | __ ) ___ __ _(_)_ __ / / ____|_ __ __| |
+
257  | | _ \ / _ \/ _` | | '_ \ / /| _| | '_ \ / _` |
+
258  | | |_) | __/ (_| | | | | |/ / | |___| | | | (_| |
+
259  | |____/ \___|\__, |_|_| |_/_/ |_____|_| |_|\__,_|
+
260  | |___/
+
261  \*/
+
262 
+
263  virtual
+
264  real_type
+
265  thetaBegin() const UTILS_OVERRIDE
+
266  { return m_biarcList.front().thetaBegin(); }
+
267 
+
268  virtual
+
269  real_type
+
270  thetaEnd() const UTILS_OVERRIDE
+
271  { return m_biarcList.back().thetaEnd(); }
+
272 
+
273  virtual
+
274  real_type
+
275  xBegin() const UTILS_OVERRIDE
+
276  { return m_biarcList.front().xBegin(); }
+
277 
+
278  virtual
+
279  real_type
+
280  yBegin() const UTILS_OVERRIDE
+
281  { return m_biarcList.front().yBegin(); }
+
282 
+
283  virtual
+
284  real_type
+
285  xEnd() const UTILS_OVERRIDE
+
286  { return m_biarcList.back().xEnd(); }
+
287 
+
288  virtual
+
289  real_type
+
290  yEnd() const UTILS_OVERRIDE
+
291  { return m_biarcList.back().yEnd(); }
+
292 
+
293  virtual
+
294  real_type
+
295  xBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
296  { return m_biarcList.front().xBegin_ISO( offs ); }
+
297 
+
298  virtual
+
299  real_type
+
300  yBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
301  { return m_biarcList.front().yBegin_ISO( offs ); }
+
302 
+
303  virtual
+
304  real_type
+
305  xEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
306  { return m_biarcList.back().xEnd_ISO( offs ); }
+
307 
+
308  virtual
+
309  real_type
+
310  yEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
311  { return m_biarcList.back().yEnd_ISO( offs ); }
+
312 
+
313  virtual
+
314  real_type
+
315  tx_Begin() const UTILS_OVERRIDE
+
316  { return m_biarcList.front().tx_Begin(); }
+
317 
+
318  virtual
+
319  real_type
+
320  ty_Begin() const UTILS_OVERRIDE
+
321  { return m_biarcList.front().ty_Begin(); }
+
322 
+
323  virtual
+
324  real_type
+
325  tx_End() const UTILS_OVERRIDE
+
326  { return m_biarcList.back().tx_End(); }
+
327 
+
328  virtual
+
329  real_type
+
330  ty_End() const UTILS_OVERRIDE
+
331  { return m_biarcList.back().ty_End(); }
+
332 
+
333  virtual
+
334  real_type
+
335  nx_Begin_ISO() const UTILS_OVERRIDE
+
336  { return m_biarcList.front().nx_Begin_ISO(); }
+
337 
+
338  virtual
+
339  real_type
+
340  ny_Begin_ISO() const UTILS_OVERRIDE
+
341  { return m_biarcList.front().ny_Begin_ISO(); }
+
342 
+
343  virtual
+
344  real_type
+
345  nx_End_ISO() const UTILS_OVERRIDE
+
346  { return m_biarcList.back().nx_End_ISO(); }
+
347 
+
348  virtual
+
349  real_type
+
350  ny_End_ISO() const UTILS_OVERRIDE
+
351  { return m_biarcList.back().ny_End_ISO(); }
+
352 
+
353  /*\
+
354  | _ _ _
+
355  | | |_| |__ ___| |_ __ _
+
356  | | __| '_ \ / _ \ __/ _` |
+
357  | | |_| | | | __/ || (_| |
+
358  | \__|_| |_|\___|\__\__,_|
+
359  \*/
+
360 
+
361  virtual real_type theta( real_type s ) const UTILS_OVERRIDE;
+
362  virtual real_type theta_D( real_type s ) const UTILS_OVERRIDE;
+
363  virtual real_type theta_DD( real_type s ) const UTILS_OVERRIDE;
+
364  virtual real_type theta_DDD( real_type s ) const UTILS_OVERRIDE;
+
365 
+
366  /*\
+
367  | _____ _ _ _
+
368  | |_ _| __ _ _ __ __| | | \ | |
+
369  | | | / _` | '_ \ / _` | | \| |
+
370  | | | | (_| | | | | (_| | | |\ |
+
371  | |_| \__,_|_| |_|\__,_| |_| \_|
+
372  \*/
+
373 
+
374  virtual real_type tx( real_type s ) const UTILS_OVERRIDE;
+
375  virtual real_type ty( real_type s ) const UTILS_OVERRIDE;
+
376  virtual real_type tx_D( real_type s ) const UTILS_OVERRIDE;
+
377  virtual real_type ty_D( real_type s ) const UTILS_OVERRIDE;
+
378  virtual real_type tx_DD( real_type s ) const UTILS_OVERRIDE;
+
379  virtual real_type ty_DD( real_type s ) const UTILS_OVERRIDE;
+
380  virtual real_type tx_DDD( real_type s ) const UTILS_OVERRIDE;
+
381  virtual real_type ty_DDD( real_type s ) const UTILS_OVERRIDE;
+
382 
+
383  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
384 
+
385  virtual
+
386  void
+
387  tg(
+
388  real_type s,
+
389  real_type & tg_x,
+
390  real_type & tg_y
+
391  ) const UTILS_OVERRIDE;
+
392 
+
393  virtual
+
394  void
+
395  tg_D(
+
396  real_type s,
+
397  real_type & tg_x_D,
+
398  real_type & tg_y_D
+
399  ) const UTILS_OVERRIDE;
+
400 
+
401  virtual
+
402  void
+
403  tg_DD(
+
404  real_type s,
+
405  real_type & tg_x_DD,
+
406  real_type & tg_y_DD
+
407  ) const UTILS_OVERRIDE;
+
408 
+
409  virtual
+
410  void
+
411  tg_DDD(
+
412  real_type s,
+
413  real_type & tg_x_DDD,
+
414  real_type & tg_y_DDD
+
415  ) const UTILS_OVERRIDE;
+
416 
+
417  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
418 
+
419  virtual
+
420  void
+
421  evaluate(
+
422  real_type s,
+
423  real_type & th,
+
424  real_type & k,
+
425  real_type & x,
+
426  real_type & y
+
427  ) const UTILS_OVERRIDE;
+
428 
+
429  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
430 
+
431  virtual
+
432  void
+
433  evaluate_ISO(
+
434  real_type s,
+
435  real_type offs,
+
436  real_type & th,
+
437  real_type & k,
+
438  real_type & x,
+
439  real_type & y
+
440  ) const UTILS_OVERRIDE;
+
441 
+
442  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
443 
+
444  virtual real_type X( real_type s ) const UTILS_OVERRIDE;
+
445  virtual real_type Y( real_type s ) const UTILS_OVERRIDE;
+
446  virtual real_type X_D( real_type s ) const UTILS_OVERRIDE;
+
447  virtual real_type Y_D( real_type s ) const UTILS_OVERRIDE;
+
448  virtual real_type X_DD( real_type s ) const UTILS_OVERRIDE;
+
449  virtual real_type Y_DD( real_type s ) const UTILS_OVERRIDE;
+
450  virtual real_type X_DDD( real_type s ) const UTILS_OVERRIDE;
+
451  virtual real_type Y_DDD( real_type s ) const UTILS_OVERRIDE;
+
452 
+
453  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
454 
+
455  virtual
+
456  void
+
457  eval(
+
458  real_type s,
+
459  real_type & x,
+
460  real_type & y
+
461  ) const UTILS_OVERRIDE;
+
462 
+
463  virtual
+
464  void
+
465  eval_D(
+
466  real_type s,
+
467  real_type & x_D,
+
468  real_type & y_D
+
469  ) const UTILS_OVERRIDE;
+
470 
+
471  virtual
+
472  void
+
473  eval_DD(
+
474  real_type s,
+
475  real_type & x_DD,
+
476  real_type & y_DD
+
477  ) const UTILS_OVERRIDE;
+
478 
+
479  virtual
+
480  void
+
481  eval_DDD(
+
482  real_type s,
+
483  real_type & x_DDD,
+
484  real_type & y_DDD
+
485  ) const UTILS_OVERRIDE;
+
486 
+
487  /*\
+
488  | __ __ _
+
489  | ___ / _|/ _|___ ___| |_
+
490  | / _ \| |_| |_/ __|/ _ \ __|
+
491  | | (_) | _| _\__ \ __/ |_
+
492  | \___/|_| |_| |___/\___|\__|
+
493  \*/
+
494 
+
495  virtual
+
496  real_type
+
497  X_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
498 
+
499  virtual
+
500  real_type
+
501  Y_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
502 
+
503  virtual
+
504  real_type
+
505  X_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
506 
+
507  virtual
+
508  real_type
+
509  Y_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
510 
+
511  virtual
+
512  real_type
+
513  X_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
514 
+
515  virtual
+
516  real_type
+
517  Y_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
518 
+
519  virtual
+
520  real_type
+
521  X_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
522 
+
523  virtual
+
524  real_type
+
525  Y_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
526 
+
527  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
528 
+
529  virtual
+
530  void
+
531  eval_ISO(
+
532  real_type s,
+
533  real_type offs,
+
534  real_type & x,
+
535  real_type & y
+
536  ) const UTILS_OVERRIDE;
+
537 
+
538  virtual
+
539  void
+
540  eval_ISO_D(
+
541  real_type s,
+
542  real_type offs,
+
543  real_type & x_D,
+
544  real_type & y_D
+
545  ) const UTILS_OVERRIDE;
+
546 
+
547  virtual
+
548  void
+
549  eval_ISO_DD(
+
550  real_type s,
+
551  real_type offs,
+
552  real_type & x_DD,
+
553  real_type & y_DD
+
554  ) const UTILS_OVERRIDE;
+
555 
+
556  virtual
+
557  void
+
558  eval_ISO_DDD(
+
559  real_type s,
+
560  real_type offs,
+
561  real_type & x_DDD,
+
562  real_type & y_DDD
+
563  ) const UTILS_OVERRIDE;
+
564 
+
565  /*\
+
566  | _ __
+
567  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
568  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
569  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
570  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
571  \*/
+
572 
+
573  virtual
+
574  void
+
575  translate( real_type tx, real_type ty ) UTILS_OVERRIDE;
+
576 
+
577  virtual
+
578  void
+
579  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE;
+
580 
+
581  virtual
+
582  void
+
583  scale( real_type sc ) UTILS_OVERRIDE;
+
584 
+
585  virtual
+
586  void
+
587  reverse() UTILS_OVERRIDE;
+
588 
+
589  virtual
+
590  void
+
591  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE;
+
592 
+
593  virtual
+
594  void
+
595  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE;
+
596 
+
597  /*\
+
598  | _ _ _
+
599  | __| (_)___| |_ __ _ _ __ ___ ___
+
600  | / _` | / __| __/ _` | '_ \ / __/ _ \
+
601  | | (_| | \__ \ || (_| | | | | (_| __/
+
602  | \__,_|_|___/\__\__,_|_| |_|\___\___|
+
603  \*/
+
604 
+
617  virtual
+
618  int_type
+ +
620  real_type qx,
+
621  real_type qy,
+
622  real_type & x,
+
623  real_type & y,
+
624  real_type & s,
+
625  real_type & t,
+
626  real_type & dst
+
627  ) const UTILS_OVERRIDE;
+
628 
+
642  virtual
+
643  int_type // true if projection is unique and orthogonal
+ +
645  real_type qx,
+
646  real_type qy,
+
647  real_type offs,
+
648  real_type & x,
+
649  real_type & y,
+
650  real_type & s,
+
651  real_type & t,
+
652  real_type & dst
+
653  ) const UTILS_OVERRIDE;
+
654 
+
655  virtual
+
656  void
+
657  info( ostream_type & stream ) const UTILS_OVERRIDE
+
658  { stream << "BiarcList\n" << *this << '\n'; }
+
659 
+
660  friend
+
661  ostream_type &
+
662  operator << ( ostream_type & stream, BiarcList const & CL );
+
663 
+
664  void
+
665  getSTK(
+
666  real_type s[],
+
667  real_type theta[],
+
668  real_type kappa[]
+
669  ) const;
+
670 
+
671  void
+
672  getXY( real_type x[], real_type y[] ) const;
+
673 
+
685  int_type
+
686  findST1(
+
687  real_type x,
+
688  real_type y,
+
689  real_type & s,
+
690  real_type & t
+
691  ) const;
+
692 
+
705  int_type
+
706  findST1(
+
707  int_type ibegin,
+
708  int_type iend,
+
709  real_type x,
+
710  real_type y,
+
711  real_type & s,
+
712  real_type & t
+
713  ) const;
+
714 
+
715  /*\
+
716  | _ _ _ _
+
717  | ___ ___ | | (_)___(_) ___ _ __
+
718  | / __/ _ \| | | / __| |/ _ \| '_ \
+
719  | | (_| (_) | | | \__ \ | (_) | | | |
+
720  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
721  \*/
+
722 
+
723  bool
+
724  collision( BiarcList const & C ) const;
+
725 
+
726  bool
+
727  collision_ISO(
+
728  real_type offs,
+
729  BiarcList const & CL,
+
730  real_type offs_C
+
731  ) const;
+
732 
+
733  /*\
+
734  | _ _ _
+
735  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
736  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
737  | | | | | | || __/ | \__ \ __/ (__| |_
+
738  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
739  \*/
+
740 
+
741  void
+
742  intersect(
+
743  BiarcList const & CL,
+
744  IntersectList & ilist,
+
745  bool swap_s_vals
+
746  ) const {
+
747  intersect_ISO( 0, CL, 0, ilist, swap_s_vals );
+
748  }
+
749 
+
750  void
+
751  intersect_ISO(
+
752  real_type offs,
+
753  BiarcList const & CL,
+
754  real_type offs_obj,
+
755  IntersectList & ilist,
+
756  bool swap_s_vals
+
757  ) const;
+
758 
+
759  };
+
760 
+
761 }
+
762 
+
Class to manage AABB tree.
Definition: AABBtree.hxx:163
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Compute biarc fitting by Hemite data.
Definition: Biarc.hxx:40
+
Class to manage a list of biarc Curve (not necessarily G2 or G1 connected)
Definition: BiarcList.hxx:39
+
virtual void eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: BiarcList.cc:864
+
virtual real_type length() const UTILS_OVERRIDE
Definition: BiarcList.cc:329
+
int_type findST1(real_type x, real_type y, real_type &s, real_type &t) const
Find parametric coordinate.
Definition: BiarcList.cc:1252
+
virtual real_type length_ISO(real_type offs) const UTILS_OVERRIDE
Definition: BiarcList.cc:334
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: BiarcList.hxx:235
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: BiarcList.cc:822
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
Definition: BiarcList.cc:1193
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: BiarcList.cc:384
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: BiarcList.cc:836
+
virtual void eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: BiarcList.cc:850
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
Class to manage a list of clothoid curves (not necessarily G2 or G1 connected)
Definition: ClothoidList.hxx:571
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
Class to manage a collection of straight segment.
Definition: PolyLine.hxx:42
+
Class to manage Triangle for BB of clothoid curve.
Definition: Triangle2D.hxx:37
+ +
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/dd/d06/class_utils_1_1_runtime___error-members.html b/docs/dd/d06/class_utils_1_1_runtime___error-members.html new file mode 100644 index 00000000..d375a337 --- /dev/null +++ b/docs/dd/d06/class_utils_1_1_runtime___error-members.html @@ -0,0 +1,93 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils::Runtime_Error Member List
+
+
+ +

This is the complete list of members for Utils::Runtime_Error, including all inherited members.

+ + + + +
Runtime_Error(std::string const &reason, char const file[], int line) (defined in Utils::Runtime_Error)Utils::Runtime_Errorinlineexplicit
Runtime_Error(char const reason[], char const file[], int line) (defined in Utils::Runtime_Error)Utils::Runtime_Errorinlineexplicit
what() const noexcept override (defined in Utils::Runtime_Error)Utils::Runtime_Errorvirtual
+ + + + diff --git a/docs/dd/d68/class_utils_1_1_console_1_1_console__style.html b/docs/dd/d68/class_utils_1_1_console_1_1_console__style.html new file mode 100644 index 00000000..7859fedf --- /dev/null +++ b/docs/dd/d68/class_utils_1_1_console_1_1_console__style.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Utils::Console::Console_style Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
Utils::Console::Console_style Class Reference
+
+
+ + + + + + + + +

+Public Attributes

+rang::style s
 
+rang::fg f
 
+rang::bg b
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/dd/d79/class_g2lib_1_1_a_a_b_btree-members.html b/docs/dd/d79/class_g2lib_1_1_a_a_b_btree-members.html new file mode 100644 index 00000000..f110f57f --- /dev/null +++ b/docs/dd/d79/class_g2lib_1_1_a_a_b_btree-members.html @@ -0,0 +1,105 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::AABBtree Member List
+
+
+ +

This is the complete list of members for G2lib::AABBtree, including all inherited members.

+ + + + + + + + + + + + + + + + +
AABBtree() (defined in G2lib::AABBtree)G2lib::AABBtree
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const (defined in G2lib::AABBtree)G2lib::AABBtreeinline
build(vector< PtrBBox > const &bboxes)G2lib::AABBtree
clear()G2lib::AABBtree
collision(AABBtree const &tree, COLLISION_fun ifun, bool swap_tree=false) constG2lib::AABBtreeinline
empty() constG2lib::AABBtree
intersect(AABBtree const &tree, VecPairPtrBBox &intersectionList, bool swap_tree=false) constG2lib::AABBtree
min_distance(real_type x, real_type y, VecPtrBBox &candidateList) const (defined in G2lib::AABBtree)G2lib::AABBtree
PairPtrBBox typedef (defined in G2lib::AABBtree)G2lib::AABBtree
print(ostream_type &stream, int level=0) const (defined in G2lib::AABBtree)G2lib::AABBtree
PtrAABB typedef (defined in G2lib::AABBtree)G2lib::AABBtree
PtrBBox typedef (defined in G2lib::AABBtree)G2lib::AABBtree
VecPairPtrBBox typedef (defined in G2lib::AABBtree)G2lib::AABBtree
VecPtrBBox typedef (defined in G2lib::AABBtree)G2lib::AABBtree
~AABBtree() (defined in G2lib::AABBtree)G2lib::AABBtree
+ + + + diff --git a/docs/dd/d93/class_g2lib_1_1_clothoid_spline_g2-members.html b/docs/dd/d93/class_g2lib_1_1_clothoid_spline_g2-members.html new file mode 100644 index 00000000..e016b0cc --- /dev/null +++ b/docs/dd/d93/class_g2lib_1_1_clothoid_spline_g2-members.html @@ -0,0 +1,125 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::ClothoidSplineG2 Member List
+
+
+ +

This is the complete list of members for G2lib::ClothoidSplineG2, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
build(real_type const xvec[], real_type const yvec[], int_type npts) (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
ClothoidSplineG2() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
constraints(real_type const theta[], real_type c[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
gradient(real_type const theta[], real_type g[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
guess(real_type theta_guess[], real_type theta_min[], real_type theta_max[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
info(ostream_type &stream) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
jacobian(real_type const theta[], real_type vals[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
jacobian_nnz() const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
jacobian_pattern(int_type i[], int_type j[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
jacobian_pattern_matlab(real_type i[], real_type j[]) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
numConstraints() const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
numPnts() const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
numTheta() const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
objective(real_type const theta[], real_type &f) const (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
operator<< (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2friend
P1 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P2 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P3 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P4 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P5 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P6 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P7 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P8 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
P9 enum value (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
setP1(real_type theta0, real_type thetaN) (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP2() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP3() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP4() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP5() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP6() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP7() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP8() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
setP9() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
TargetType enum name (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2
~ClothoidSplineG2() (defined in G2lib::ClothoidSplineG2)G2lib::ClothoidSplineG2inline
+ + + + diff --git a/docs/dd/dd4/class_g2lib_1_1_biarc.html b/docs/dd/dd4/class_g2lib_1_1_biarc.html new file mode 100644 index 00000000..5b2c7d76 --- /dev/null +++ b/docs/dd/dd4/class_g2lib_1_1_biarc.html @@ -0,0 +1,1772 @@ + + + + + + + +Clothoids: G2lib::Biarc Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::Biarc Class Reference
+
+
+ +

Compute biarc fitting by Hemite data. + More...

+ +

#include <Biarc.hxx>

+
+Inheritance diagram for G2lib::Biarc:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::Biarc:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Biarc (Biarc const &ba)
 
Biarc (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
 construct a clothoid with the standard parameters
 
Biarc (BaseCurve const &C)
 
+void copy (Biarc const &c)
 
+Biarc const & operator= (Biarc const &ba)
 
+CircleArc const & C0 () const
 
+CircleArc const & C1 () const
 
+bool build (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
 construct a biarc with the standard parameters
 
bool build_3P (real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)
 construct a biarc by 3 point at "minimum energy" More...
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type thetaBegin () const UTILS_OVERRIDE
 
+virtual real_type thetaEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type tx_End () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_End () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type nx_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type theta (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type) const UTILS_OVERRIDE
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type) const UTILS_OVERRIDE
 
+virtual real_type X_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_D (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_D (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DD (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DD (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DDD (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DDD (real_type, real_type offs) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual real_type tx (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void tg (real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
+virtual void scale (real_type s) UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
+real_type xMiddle () const
 
+real_type yMiddle () const
 
+real_type thetaMiddle () const
 
+real_type kappa0 () const
 
+real_type length0 () const
 
+real_type kappa1 () const
 
+real_type length1 () const
 
+real_type delta_theta () const
 
+void bbTriangles (std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles_ISO (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
+void bbTriangles_SAE (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const
 
+bool collision (Biarc const &B) const
 
+bool collision_ISO (real_type offs, Biarc const &B, real_type offs_B) const
 
+void intersect (Biarc const &B, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, Biarc const &B, real_type offs_B, IntersectList &ilist, bool swap_s_vals) const
 
+void info (ostream_type &stream) const UTILS_OVERRIDE
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+virtual real_type xBegin_ISO (real_type offs) const
 
+virtual real_type yBegin_ISO (real_type offs) const
 
+virtual real_type xEnd_ISO (real_type offs) const
 
+virtual real_type yEnd_ISO (real_type offs) const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + +

+Friends

+ostream_type & operator<< (ostream_type &stream, Biarc const &bi)
 
+

Detailed Description

+

Compute biarc fitting by Hemite data.

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ build_3P()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool G2lib::Biarc::build_3P (real_type x0,
real_type y0,
real_type x1,
real_type y1,
real_type x2,
real_type y2 
)
+
+ +

construct a biarc by 3 point at "minimum energy"

+
    +
  • Planar point set fairing and fitting by arc splines
  • +
  • Xunnian Yang and Guozhao Wang
  • +
  • Computer-Aided Design, vol 33, 2001
  • +
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::Biarc::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::Biarc::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+virtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+virtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+virtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::Biarc::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+virtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
virtual real_type G2lib::Biarc::length () const
+
+inlinevirtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual real_type G2lib::Biarc::length_ISO (real_type offs) const
+
+inlinevirtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/dd/dee/_g2lib_8hxx_source.html b/docs/dd/dee/_g2lib_8hxx_source.html new file mode 100644 index 00000000..05f005be --- /dev/null +++ b/docs/dd/dee/_g2lib_8hxx_source.html @@ -0,0 +1,1453 @@ + + + + + + + +Clothoids: src/Clothoids/G2lib.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
51 namespace G2lib {
+
52 
+
53  extern real_type const m_1_sqrt_pi;
+
54 
+
55  extern real_type const machepsi;
+
56  extern real_type const machepsi10;
+
57  extern real_type const machepsi100;
+
58  extern real_type const machepsi1000;
+
59  extern real_type const sqrtMachepsi;
+
60  extern bool intersect_with_AABBtree;
+
61 
+
62  #ifdef G2LIB_COMPATIBILITY_MODE
+
63 
+
64  extern bool use_ISO;
+
65 
+
66  static
+
67  inline
+
68  void
+
69  lib_use_ISO()
+
70  { use_ISO = true; }
+
71 
+
72  static
+
73  inline
+
74  void
+
75  lib_use_SAE()
+
76  { use_ISO = false; }
+
77 
+
78  #endif
+
79 
+
81  static
+
82  inline
+
83  void
+
84  noAABBtree()
+
85  { intersect_with_AABBtree = false; }
+
86 
+
88  static
+
89  inline
+
90  void
+
91  yesAABBtree()
+
92  { intersect_with_AABBtree = true; }
+
93 
+
94  /*
+
95  // sin(x)/x
+
96  */
+
97  real_type Sinc( real_type x );
+
98  real_type Sinc_D( real_type x );
+
99  real_type Sinc_DD( real_type x );
+
100  real_type Sinc_DDD( real_type x );
+
101 
+
102  /*
+
103  // (1-cos(x))/x
+
104  */
+
105  real_type Cosc( real_type x );
+
106  real_type Cosc_D( real_type x );
+
107  real_type Cosc_DD( real_type x );
+
108  real_type Cosc_DDD( real_type x );
+
109 
+
110  /*
+
111  // atan(x)/x
+
112  */
+
113  real_type Atanc( real_type x );
+
114  real_type Atanc_D( real_type x );
+
115  real_type Atanc_DD( real_type x );
+
116  real_type Atanc_DDD( real_type x );
+
117 
+
119  void rangeSymm( real_type & ang );
+
120 
+
121  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
123  inline
+
124  void
+ +
126  real_type a,
+
127  real_type b,
+
128  real_type c,
+
129  real_type & vmin,
+
130  real_type & vmax
+
131  ) {
+
132  vmin = vmax = a;
+
133  if ( b < vmin ) vmin = b;
+
134  else vmax = b;
+
135  if ( c < vmin ) vmin = c;
+
136  else if ( c > vmax ) vmax = c;
+
137  }
+
138 
+
139  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
144  real_type
+ +
146  real_type x0,
+
147  real_type y0,
+
148  real_type c0,
+
149  real_type s0,
+
150  real_type k,
+
151  real_type L,
+
152  real_type qx,
+
153  real_type qy
+
154  );
+
155 
+
156  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
161  real_type
+ +
163  real_type x0,
+
164  real_type y0,
+
165  real_type theta0,
+
166  real_type k,
+
167  real_type qx,
+
168  real_type qy
+
169  );
+
170 
+
171  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
178  inline
+
179  bool
+ +
181  real_type x0,
+
182  real_type y0,
+
183  real_type c0,
+
184  real_type s0,
+
185  real_type k,
+
186  real_type qx,
+
187  real_type qy
+
188  ) {
+
189  real_type cx = x0 - s0/k;
+
190  real_type cy = y0 + c0/k;
+
191  real_type dst = hypot( qx - cx, qy - cy );
+
192  return dst*k <= 1;
+
193  }
+
194 
+
211  int_type
+ +
213  real_type A,
+
214  real_type B,
+
215  real_type C,
+
216  real_type a,
+
217  real_type b,
+
218  real_type c,
+
219  real_type x[],
+
220  real_type y[]
+
221  );
+
222 
+
236  int_type
+ +
238  real_type A,
+
239  real_type B,
+
240  real_type C,
+
241  real_type x[],
+
242  real_type y[]
+
243  );
+
244 
+
270  int_type
+ +
272  real_type x1,
+
273  real_type y1,
+
274  real_type theta1,
+
275  real_type kappa1,
+
276  real_type x2,
+
277  real_type y2,
+
278  real_type theta2,
+
279  real_type kappa2,
+
280  real_type s1[],
+
281  real_type s2[]
+
282  );
+
283 
+
284  /*\
+
285  | ____ _ ____ ____
+
286  | / ___| ___ | |_ _____|___ \__ _|___ \
+
287  | \___ \ / _ \| \ \ / / _ \ __) \ \/ / __) |
+
288  | ___) | (_) | |\ V / __// __/ > < / __/
+
289  | |____/ \___/|_| \_/ \___|_____/_/\_\_____|
+
290  \*/
+
296  class Solve2x2 {
+
297  int_type i[2], j[2];
+
298  real_type LU[2][2];
+
299  real_type epsi;
+
300  bool singular;
+
301 
+
302  public:
+
303 
+
304  Solve2x2() : epsi(1e-10) {}
+
305  bool factorize( real_type A[2][2] );
+
306  bool solve( real_type const b[2], real_type x[2] ) const;
+
307  };
+
308 
+
326  int_type
+ +
328  real_type const P1[2],
+
329  real_type const P2[2],
+
330  real_type const P3[2]
+
331  );
+
332 
+
338  int_type
+ +
340  real_type const pt[2],
+
341  real_type const P1[2],
+
342  real_type const P2[2],
+
343  real_type const P3[2]
+
344  );
+
345 
+
346  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
347  /*\
+
348  | ____ ____
+
349  | | __ ) __ _ ___ ___ / ___| _ _ ____ _____
+
350  | | _ \ / _` / __|/ _ \ | | | | | '__\ \ / / _ \
+
351  | | |_) | (_| \__ \ __/ |__| |_| | | \ V / __/
+
352  | |____/ \__,_|___/\___|\____\__,_|_| \_/ \___|
+
353  \*/
+
354 
+
355  typedef enum {
+
356  G2LIB_LINE=0,
+
357  G2LIB_POLYLINE,
+
358  G2LIB_CIRCLE,
+
359  G2LIB_BIARC,
+
360  G2LIB_BIARC_LIST,
+
361  G2LIB_CLOTHOID,
+
362  G2LIB_CLOTHOID_LIST
+
363  } CurveType;
+
364 
+
365  extern char const *CurveType_name[];
+
366 
+
367  typedef std::pair<real_type,real_type> Ipair;
+
368  typedef std::vector<Ipair> IntersectList;
+
369 
+
370  /*\
+
371  | _ _ _
+
372  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
373  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
374  | | | | | | || __/ | \__ \ __/ (__| |_
+
375  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
376  \*/
+
377 
+
378  class BaseCurve;
+
379 
+
386  bool
+
387  collision( BaseCurve const & C1, BaseCurve const & C2 );
+
388 
+
397  bool
+ +
399  BaseCurve const & C1,
+
400  real_type offs_C1,
+
401  BaseCurve const & C2,
+
402  real_type offs_C2
+
403  );
+
404 
+
413  inline
+
414  bool
+ +
416  BaseCurve const & C1,
+
417  real_type offs_C1,
+
418  BaseCurve const & C2,
+
419  real_type offs_C2
+
420  ) {
+
421  return collision_ISO( C1, -offs_C1, C2, -offs_C2 );
+
422  }
+
423 
+
424  #ifdef G2LIB_COMPATIBILITY_MODE
+
433  inline
+
434  bool
+
435  collision(
+
436  BaseCurve const & C1,
+
437  real_type offs_C1,
+
438  BaseCurve const & C2,
+
439  real_type offs_C2
+
440  ) {
+
441  if ( G2lib::use_ISO ) return collision_ISO( C1, offs_C1, C2, offs_C2 );
+
442  else return collision_SAE( C1, offs_C1, C2, offs_C2 );
+
443  }
+
444  #endif
+
445 
+
455  void
+
456  intersect(
+
457  BaseCurve const & C1,
+
458  BaseCurve const & C2,
+
459  IntersectList & ilist,
+
460  bool swap_s_vals
+
461  );
+
462 
+
475  void
+ +
477  BaseCurve const & C1,
+
478  real_type offs_C1,
+
479  BaseCurve const & C2,
+
480  real_type offs_C2,
+
481  IntersectList & ilist,
+
482  bool swap_s_vals
+
483  );
+
484 
+
497  inline
+
498  void
+ +
500  BaseCurve const & C1,
+
501  real_type offs_C1,
+
502  BaseCurve const & C2,
+
503  real_type offs_C2,
+
504  IntersectList & ilist,
+
505  bool swap_s_vals
+
506  ) {
+
507  intersect_ISO( C1, -offs_C1, C2, -offs_C2, ilist, swap_s_vals );
+
508  }
+
509 
+
510  #ifdef G2LIB_COMPATIBILITY_MODE
+
523  inline
+
524  void
+
525  intersect(
+
526  BaseCurve const & C1,
+
527  real_type offs_C1,
+
528  BaseCurve const & C2,
+
529  real_type offs_C2,
+
530  IntersectList & ilist,
+
531  bool swap_s_vals
+
532  ) {
+
533  if ( G2lib::use_ISO ) intersect_ISO( C1, offs_C1, C2, offs_C2, ilist, swap_s_vals );
+
534  else intersect_SAE( C1, offs_C1, C2, offs_C2, ilist, swap_s_vals );
+
535  }
+
536  #endif
+
537 
+
539  class BaseCurve {
+
540 
+
541  // block default constructor
+
542  BaseCurve( BaseCurve const & );
+
543 
+
544  protected:
+
545  CurveType m_type;
+
546 
+
547  public:
+
548 
+
549  BaseCurve( CurveType const & type )
+
550  : m_type(type)
+
551  {}
+
552 
+
553  virtual
+
554  ~BaseCurve() {}
+
555 
+
557  CurveType type() const { return m_type; }
+
558 
+
559  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
560 
+
562  virtual real_type length() const UTILS_PURE_VIRTUAL;
+
563 
+
565  virtual real_type length_ISO( real_type offs ) const UTILS_PURE_VIRTUAL;
+
566 
+
568  real_type
+
569  length_SAE( real_type offs ) const
+
570  { return this->length_ISO(-offs); }
+
571 
+
572  #ifdef G2LIB_COMPATIBILITY_MODE
+
574  real_type
+
575  length( real_type offs ) const
+
576  { return G2lib::use_ISO ? this->length_ISO(offs) : this->length_SAE(offs); }
+
577  #endif
+
578 
+
579  /*\
+
580  | _ _
+
581  | | |__ | |__ _____ __
+
582  | | '_ \| '_ \ / _ \ \/ /
+
583  | | |_) | |_) | (_) > <
+
584  | |_.__/|_.__/ \___/_/\_\
+
585  \*/
+
586 
+
594  virtual
+
595  void
+ +
597  real_type & xmin,
+
598  real_type & ymin,
+
599  real_type & xmax,
+
600  real_type & ymax
+
601  ) const UTILS_PURE_VIRTUAL;
+
602 
+
611  virtual
+
612  void
+ +
614  real_type offs,
+
615  real_type & xmin,
+
616  real_type & ymin,
+
617  real_type & xmax,
+
618  real_type & ymax
+
619  ) const UTILS_PURE_VIRTUAL;
+
620 
+
628  void
+ +
630  real_type offs,
+
631  real_type & xmin,
+
632  real_type & ymin,
+
633  real_type & xmax,
+
634  real_type & ymax
+
635  ) const {
+
636  this->bbox_ISO( -offs, xmin, ymin, xmax, ymax );
+
637  }
+
638 
+
639  #ifdef G2LIB_COMPATIBILITY_MODE
+
647  void
+
648  bbox(
+
649  real_type offs,
+
650  real_type & xmin,
+
651  real_type & ymin,
+
652  real_type & xmax,
+
653  real_type & ymax
+
654  ) const {
+
655  if ( G2lib::use_ISO ) this->bbox_ISO( offs, xmin, ymin, xmax, ymax );
+
656  else this->bbox_SAE( offs, xmin, ymin, xmax, ymax );
+
657  }
+
658  #endif
+
659 
+
660  /*\
+
661  | ____ _ _______ _
+
662  | | __ ) ___ __ _(_)_ __ / / ____|_ __ __| |
+
663  | | _ \ / _ \/ _` | | '_ \ / /| _| | '_ \ / _` |
+
664  | | |_) | __/ (_| | | | | |/ / | |___| | | | (_| |
+
665  | |____/ \___|\__, |_|_| |_/_/ |_____|_| |_|\__,_|
+
666  | |___/
+
667  \*/
+
668 
+
669  virtual real_type thetaBegin() const { return this->theta(0); }
+
670  virtual real_type thetaEnd() const { return this->theta(this->length()); }
+
671  virtual real_type kappaBegin() const { return this->kappa(0); }
+
672  virtual real_type kappaEnd() const { return this->kappa(this->length()); }
+
673  virtual real_type xBegin() const { return this->X(0); }
+
674  virtual real_type yBegin() const { return this->Y(0); }
+
675  virtual real_type xEnd() const { return this->X(this->length()); }
+
676  virtual real_type yEnd() const { return this->Y(this->length()); }
+
677 
+
678  virtual real_type xBegin_ISO( real_type offs ) const { return this->X_ISO(0,offs); }
+
679  virtual real_type yBegin_ISO( real_type offs ) const { return this->Y_ISO(0,offs); }
+
680  virtual real_type xEnd_ISO ( real_type offs ) const { return this->X_ISO(this->length(),offs); }
+
681  virtual real_type yEnd_ISO ( real_type offs ) const { return this->Y_ISO(this->length(),offs); }
+
682 
+
683  real_type xBegin_SAE( real_type offs ) const { return this->xBegin_ISO(-offs); }
+
684  real_type yBegin_SAE( real_type offs ) const { return this->yBegin_ISO(-offs); }
+
685  real_type xEnd_SAE ( real_type offs ) const { return this->xEnd_ISO(-offs); }
+
686  real_type yEnd_SAE ( real_type offs ) const { return this->yEnd_ISO(-offs); }
+
687 
+
688  #ifdef G2LIB_COMPATIBILITY_MODE
+
689  real_type
+
690  xBegin( real_type offs ) const
+
691  { return G2lib::use_ISO ? this->xBegin_ISO(offs) : this->xBegin_SAE(offs); }
+
692 
+
693  real_type
+
694  yBegin( real_type offs ) const
+
695  { return G2lib::use_ISO ? this->yBegin_ISO(offs) : this->yBegin_SAE(offs); }
+
696 
+
697  real_type
+
698  xEnd( real_type offs ) const
+
699  { return G2lib::use_ISO ? this->xEnd_ISO(offs) : this->xEnd_SAE(offs); }
+
700 
+
701  real_type
+
702  yEnd( real_type offs ) const
+
703  { return G2lib::use_ISO ? this->yEnd_ISO(offs) : this->yEnd_SAE(offs); }
+
704  #endif
+
705 
+
706  virtual real_type tx_Begin() const { return this->tx(0); }
+
707  virtual real_type ty_Begin() const { return this->ty(0); }
+
708  virtual real_type tx_End() const { return this->tx(this->length()); }
+
709  virtual real_type ty_End() const { return this->ty(this->length()); }
+
710 
+
711  virtual real_type nx_Begin_ISO() const { return -this->ty(0); }
+
712  virtual real_type ny_Begin_ISO() const { return this->tx(0); }
+
713  virtual real_type nx_End_ISO() const { return -this->ty(this->length()); }
+
714  virtual real_type ny_End_ISO() const { return this->tx(this->length()); }
+
715 
+
716  real_type nx_Begin_SAE() const { return -nx_Begin_ISO(); }
+
717  real_type ny_Begin_SAE() const { return -ny_Begin_ISO(); }
+
718  real_type nx_End_SAE() const { return -nx_End_ISO(); }
+
719  real_type ny_End_SAE() const { return -ny_End_ISO(); }
+
720 
+
721  #ifdef G2LIB_COMPATIBILITY_MODE
+
722  real_type
+
723  nx_Begin() const
+
724  { return G2lib::use_ISO ? this->nx_Begin_ISO() : this->nx_Begin_SAE(); }
+
725 
+
726  real_type
+
727  ny_Begin() const
+
728  { return G2lib::use_ISO ? this->ny_Begin_ISO() : this->ny_Begin_SAE(); }
+
729 
+
730  real_type
+
731  nx_End() const
+
732  { return G2lib::use_ISO ? this->nx_End_ISO() : this->nx_End_SAE(); }
+
733 
+
734  real_type
+
735  ny_End() const
+
736  { return G2lib::use_ISO ? this->ny_End_ISO() : this->ny_End_SAE(); }
+
737  #endif
+
738 
+
739  /*\
+
740  | _ _ _
+
741  | | |_| |__ ___| |_ __ _
+
742  | | __| '_ \ / _ \ __/ _` |
+
743  | | |_| | | | __/ || (_| |
+
744  | \__|_| |_|\___|\__\__,_|
+
745  \*/
+
746 
+
747  virtual real_type theta ( real_type s ) const UTILS_PURE_VIRTUAL;
+
748  virtual real_type theta_D ( real_type s ) const UTILS_PURE_VIRTUAL;
+
749  virtual real_type theta_DD ( real_type s ) const UTILS_PURE_VIRTUAL;
+
750  virtual real_type theta_DDD( real_type s ) const UTILS_PURE_VIRTUAL;
+
751 
+
752  /*\
+
753  | _
+
754  | | | ____ _ _ __ _ __ __ _
+
755  | | |/ / _` | '_ \| '_ \ / _` |
+
756  | | < (_| | |_) | |_) | (_| |
+
757  | |_|\_\__,_| .__/| .__/ \__,_|
+
758  | |_| |_|
+
759  \*/
+
760 
+
761  real_type kappa ( real_type s ) const { return theta_D(s); }
+
762  real_type kappa_D ( real_type s ) const { return theta_DD(s); }
+
763  real_type kappa_DD( real_type s ) const { return theta_DDD(s); }
+
764 
+
765  /*\
+
766  | _____ _ _ _
+
767  | |_ _| __ _ _ __ __| | | \ | |
+
768  | | | / _` | '_ \ / _` | | \| |
+
769  | | | | (_| | | | | (_| | | |\ |
+
770  | |_| \__,_|_| |_|\__,_| |_| \_|
+
771  \*/
+
772 
+
773  virtual real_type tx ( real_type s ) const;
+
774  virtual real_type ty ( real_type s ) const;
+
775  virtual real_type tx_D ( real_type s ) const;
+
776  virtual real_type ty_D ( real_type s ) const;
+
777  virtual real_type tx_DD ( real_type s ) const;
+
778  virtual real_type ty_DD ( real_type s ) const;
+
779  virtual real_type tx_DDD( real_type s ) const;
+
780  virtual real_type ty_DDD( real_type s ) const;
+
781 
+
782  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
783  real_type nx_ISO ( real_type s ) const { return -ty(s); }
+
784  real_type nx_ISO_D ( real_type s ) const { return -ty_D(s); }
+
785  real_type nx_ISO_DD ( real_type s ) const { return -ty_DD(s); }
+
786  real_type nx_ISO_DDD( real_type s ) const { return -ty_DDD(s); }
+
787 
+
788  real_type ny_ISO ( real_type s ) const { return tx(s); }
+
789  real_type ny_ISO_D ( real_type s ) const { return tx_D(s); }
+
790  real_type ny_ISO_DD ( real_type s ) const { return tx_DD(s); }
+
791  real_type ny_ISO_DDD( real_type s ) const { return tx_DDD(s); }
+
792 
+
793  real_type nx_SAE ( real_type s ) const { return ty(s); }
+
794  real_type nx_SAE_D ( real_type s ) const { return ty_D(s); }
+
795  real_type nx_SAE_DD ( real_type s ) const { return ty_DD(s); }
+
796  real_type nx_SAE_DDD( real_type s ) const { return ty_DDD(s); }
+
797 
+
798  real_type ny_SAE ( real_type s ) const { return -tx(s); }
+
799  real_type ny_SAE_D ( real_type s ) const { return -tx_D(s); }
+
800  real_type ny_SAE_DD ( real_type s ) const { return -tx_DD(s); }
+
801  real_type ny_SAE_DDD( real_type s ) const { return -tx_DDD(s); }
+
802 
+
803  #ifdef G2LIB_COMPATIBILITY_MODE
+
804  real_type nx( real_type s ) const
+
805  { return G2lib::use_ISO ? this->nx_ISO(s) : this->nx_SAE(s); }
+
806 
+
807  real_type nx_D( real_type s ) const
+
808  { return G2lib::use_ISO ? this->nx_ISO_D(s) : this->nx_SAE_D(s); }
+
809 
+
810  real_type nx_DD( real_type s ) const
+
811  { return G2lib::use_ISO ? this->nx_ISO_DD(s) : this->nx_SAE_DD(s); }
+
812 
+
813  real_type nx_DDD( real_type s ) const
+
814  { return G2lib::use_ISO ? this->nx_ISO_DDD(s) : this->nx_SAE_DDD(s); }
+
815 
+
816  real_type ny( real_type s ) const
+
817  { return G2lib::use_ISO ? this->ny_ISO(s) : this->ny_SAE(s); }
+
818 
+
819  real_type ny_D( real_type s ) const
+
820  { return G2lib::use_ISO ? this->ny_ISO_D(s) : this->ny_SAE_D(s); }
+
821 
+
822  real_type ny_DD( real_type s ) const
+
823  { return G2lib::use_ISO ? this->ny_ISO_DD(s) : this->ny_SAE_DD(s); }
+
824 
+
825  real_type ny_DDD( real_type s ) const
+
826  { return G2lib::use_ISO ? this->ny_ISO_DDD(s) : this->ny_SAE_DDD(s); }
+
827  #endif
+
828 
+
829  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
830 
+
831  virtual
+
832  void
+
833  tg( real_type s, real_type & tg_x, real_type & tg_y ) const {
+
834  tg_x = this->tx(s);
+
835  tg_y = this->ty(s);
+
836  }
+
837 
+
838  virtual
+
839  void
+
840  tg_D( real_type s, real_type & tg_x_D, real_type & tg_y_D ) const {
+
841  tg_x_D = this->tx_D(s);
+
842  tg_y_D = this->ty_D(s);
+
843  }
+
844 
+
845  virtual
+
846  void
+
847  tg_DD( real_type s, real_type & tg_x_DD, real_type & tg_y_DD ) const {
+
848  tg_x_DD = this->tx_DD(s);
+
849  tg_y_DD = this->ty_DD(s);
+
850  }
+
851 
+
852  virtual
+
853  void
+
854  tg_DDD( real_type s, real_type & tg_x_DDD, real_type & tg_y_DDD ) const {
+
855  tg_x_DDD = this->tx_DDD(s);
+
856  tg_y_DDD = this->ty_DDD(s);
+
857  }
+
858 
+
859  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
860 
+
861  void
+
862  nor_ISO( real_type s, real_type & nx, real_type & ny ) const
+
863  { tg( s, ny, nx ); nx = -nx; }
+
864 
+
865  void
+
866  nor_ISO_D( real_type s, real_type & nx_D, real_type & ny_D ) const
+
867  { tg_D( s, ny_D, nx_D ); nx_D = -nx_D; }
+
868 
+
869  void
+
870  nor_ISO_DD( real_type s, real_type & nx_DD, real_type & ny_DD ) const
+
871  { tg_DD( s, ny_DD, nx_DD ); nx_DD = -nx_DD; }
+
872 
+
873  void
+
874  nor_ISO_DDD( real_type s, real_type & nx_DDD, real_type & ny_DDD ) const
+
875  { tg_DDD( s, ny_DDD, nx_DDD ); nx_DDD = -nx_DDD; }
+
876 
+
877  void
+
878  nor_SAE( real_type s, real_type & nx, real_type & ny ) const
+
879  { tg( s, ny, nx ); ny = -ny; }
+
880 
+
881  void
+
882  nor_SAE_D( real_type s, real_type & nx_D, real_type & ny_D ) const
+
883  { tg_D( s, ny_D, nx_D ); ny_D = -ny_D; }
+
884 
+
885  void
+
886  nor_SAE_DD( real_type s, real_type & nx_DD, real_type & ny_DD ) const
+
887  { tg_DD( s, ny_DD, nx_DD ); ny_DD = -ny_DD; }
+
888 
+
889  void
+
890  nor_SAE_DDD( real_type s, real_type & nx_DDD, real_type & ny_DDD ) const
+
891  { tg_DDD( s, ny_DDD, nx_DDD ); ny_DDD = -ny_DDD; }
+
892 
+
893  #ifdef G2LIB_COMPATIBILITY_MODE
+
894  void
+
895  nor( real_type s, real_type & nx, real_type & ny ) const {
+
896  if ( G2lib::use_ISO ) this->nor_ISO(s,nx,ny);
+
897  else this->nor_SAE(s,nx,ny);
+
898  }
+
899 
+
900  void
+
901  nor_D( real_type s, real_type & nx_D, real_type & ny_D ) const {
+
902  if ( G2lib::use_ISO ) this->nor_ISO_D(s,nx_D,ny_D);
+
903  else this->nor_SAE_D(s,nx_D,ny_D);
+
904  }
+
905 
+
906  void
+
907  nor_DD( real_type s, real_type & nx_DD, real_type & ny_DD ) const {
+
908  if ( G2lib::use_ISO ) this->nor_ISO_DD(s,nx_DD,ny_DD);
+
909  else this->nor_SAE_DD(s,nx_DD,ny_DD);
+
910  }
+
911 
+
912  void
+
913  nor_DDD( real_type s, real_type & nx_DDD, real_type & ny_DDD ) const {
+
914  if ( G2lib::use_ISO ) this->nor_ISO_DDD(s,nx_DDD,ny_DDD);
+
915  else this->nor_SAE_DDD(s,nx_DDD,ny_DDD);
+
916  }
+
917  #endif
+
918 
+
919  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
920 
+
921  virtual
+
922  void
+
923  evaluate(
+
924  real_type s,
+
925  real_type & th,
+
926  real_type & k,
+
927  real_type & x,
+
928  real_type & y
+
929  ) const {
+
930  eval( s, x, y );
+
931  th = theta( s );
+
932  k = theta_D( s );
+
933  }
+
934 
+
935  virtual
+
936  void
+
937  evaluate_ISO(
+
938  real_type s,
+
939  real_type offs,
+
940  real_type & th,
+
941  real_type & k,
+
942  real_type & x,
+
943  real_type & y
+
944  ) const {
+
945  eval_ISO( s, offs, x, y );
+
946  th = theta( s );
+
947  k = theta_D( s );
+
948  k /= 1+offs*k; // scale curvature
+
949  }
+
950 
+
951  virtual
+
952  void
+
953  evaluate_SAE(
+
954  real_type s,
+
955  real_type offs,
+
956  real_type & th,
+
957  real_type & k,
+
958  real_type & x,
+
959  real_type & y
+
960  ) const {
+
961  eval_SAE( s, offs, x, y );
+
962  th = theta( s );
+
963  k = theta_D( s );
+
964  k /= 1-offs*k; // scale curvature
+
965  }
+
966 
+
967  #ifdef G2LIB_COMPATIBILITY_MODE
+
968  void
+
969  evaluate(
+
970  real_type s,
+
971  real_type offs,
+
972  real_type & th,
+
973  real_type & k,
+
974  real_type & x,
+
975  real_type & y
+
976  ) const {
+
977  if ( G2lib::use_ISO ) this->evaluate_ISO( s, offs, th, k, x, y );
+
978  else this->evaluate_SAE( s, offs, th, k, x, y );
+
979  }
+
980  #endif
+
981 
+
982  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
983 
+
984  virtual real_type X ( real_type s ) const UTILS_PURE_VIRTUAL;
+
985  virtual real_type Y ( real_type s ) const UTILS_PURE_VIRTUAL;
+
986  virtual real_type X_D ( real_type s ) const UTILS_PURE_VIRTUAL;
+
987  virtual real_type Y_D ( real_type s ) const UTILS_PURE_VIRTUAL;
+
988  virtual real_type X_DD ( real_type s ) const UTILS_PURE_VIRTUAL;
+
989  virtual real_type Y_DD ( real_type s ) const UTILS_PURE_VIRTUAL;
+
990  virtual real_type X_DDD( real_type s ) const UTILS_PURE_VIRTUAL;
+
991  virtual real_type Y_DDD( real_type s ) const UTILS_PURE_VIRTUAL;
+
992 
+
993  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
994 
+
995  virtual
+
996  void
+
997  eval( real_type s, real_type & x, real_type & y ) const
+
998  UTILS_PURE_VIRTUAL;
+
999 
+
1000  virtual
+
1001  void
+
1002  eval_D( real_type s, real_type & x_D, real_type & y_D ) const
+
1003  UTILS_PURE_VIRTUAL;
+
1004 
+
1005  virtual
+
1006  void
+
1007  eval_DD( real_type s, real_type & x_DD, real_type & y_DD ) const
+
1008  UTILS_PURE_VIRTUAL;
+
1009 
+
1010  virtual
+
1011  void
+
1012  eval_DDD( real_type s, real_type & x_DDD, real_type & y_DDD ) const
+
1013  UTILS_PURE_VIRTUAL;
+
1014 
+
1015  /*\
+
1016  | __ __ _
+
1017  | ___ / _|/ _|___ ___| |_
+
1018  | / _ \| |_| |_/ __|/ _ \ __|
+
1019  | | (_) | _| _\__ \ __/ |_
+
1020  | \___/|_| |_| |___/\___|\__|
+
1021  \*/
+
1022 
+
1023  virtual real_type X_ISO ( real_type s, real_type offs ) const;
+
1024  virtual real_type Y_ISO ( real_type s, real_type offs ) const;
+
1025  virtual real_type X_ISO_D ( real_type s, real_type offs ) const;
+
1026  virtual real_type Y_ISO_D ( real_type s, real_type offs ) const;
+
1027  virtual real_type X_ISO_DD ( real_type s, real_type offs ) const;
+
1028  virtual real_type Y_ISO_DD ( real_type s, real_type offs ) const;
+
1029  virtual real_type X_ISO_DDD( real_type s, real_type offs ) const;
+
1030  virtual real_type Y_ISO_DDD( real_type s, real_type offs ) const;
+
1031 
+
1032  real_type X_SAE ( real_type s, real_type offs ) const { return this->X_ISO(s,-offs); }
+
1033  real_type Y_SAE ( real_type s, real_type offs ) const { return this->Y_ISO(s,-offs); }
+
1034  real_type X_SAE_D ( real_type s, real_type offs ) const { return this->X_ISO_D(s,-offs); }
+
1035  real_type Y_SAE_D ( real_type s, real_type offs ) const { return this->Y_ISO_D(s,-offs); }
+
1036  real_type X_SAE_DD ( real_type s, real_type offs ) const { return this->X_ISO_DD(s,-offs); }
+
1037  real_type Y_SAE_DD ( real_type s, real_type offs ) const { return this->Y_ISO_DD(s,-offs); }
+
1038  real_type X_SAE_DDD( real_type s, real_type offs ) const { return this->X_ISO_DDD(s,-offs); }
+
1039  real_type Y_SAE_DDD( real_type s, real_type offs ) const { return this->Y_ISO_DDD(s,-offs); }
+
1040 
+
1041  #ifdef G2LIB_COMPATIBILITY_MODE
+
1042  real_type
+
1043  X( real_type s, real_type offs ) const
+
1044  { return G2lib::use_ISO ? this->X_ISO( s, offs ) : this->X_SAE( s, offs ); }
+
1045 
+
1046  real_type
+
1047  Y( real_type s, real_type offs ) const
+
1048  { return G2lib::use_ISO ? this->Y_ISO( s, offs ) : this->Y_SAE( s, offs ); }
+
1049 
+
1050  real_type
+
1051  X_D( real_type s, real_type offs ) const
+
1052  { return G2lib::use_ISO ? this->X_ISO_D( s, offs ) : this->X_SAE_D( s, offs ); }
+
1053 
+
1054  real_type
+
1055  Y_D( real_type s, real_type offs ) const
+
1056  { return G2lib::use_ISO ? this->Y_ISO_D( s, offs ) : this->Y_SAE_D( s, offs ); }
+
1057 
+
1058  real_type
+
1059  X_DD( real_type s, real_type offs ) const
+
1060  { return G2lib::use_ISO ? this->X_ISO_DD( s, offs ) : this->X_SAE_DD( s, offs ); }
+
1061 
+
1062  real_type
+
1063  Y_DD( real_type s, real_type offs ) const
+
1064  { return G2lib::use_ISO ? this->Y_ISO_DD( s, offs ) : this->Y_SAE_DD( s, offs ); }
+
1065 
+
1066  real_type
+
1067  X_DDD( real_type s, real_type offs ) const
+
1068  { return G2lib::use_ISO ? this->X_ISO_DDD( s, offs ) : this->X_SAE_DDD( s, offs ); }
+
1069 
+
1070  real_type
+
1071  Y_DDD( real_type s, real_type offs ) const
+
1072  { return G2lib::use_ISO ? this->Y_ISO_DDD( s, offs ) : this->Y_SAE_DDD( s, offs ); }
+
1073  #endif
+
1074 
+
1075  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1076 
+
1086  virtual
+
1087  void
+
1088  eval_ISO(
+
1089  real_type s,
+
1090  real_type offs,
+
1091  real_type & x,
+
1092  real_type & y
+
1093  ) const;
+
1094 
+
1104  void
+ +
1106  real_type s,
+
1107  real_type offs,
+
1108  real_type & x,
+
1109  real_type & y
+
1110  ) const {
+
1111  this->eval_ISO( s, -offs, x, y );
+
1112  }
+
1113 
+
1114  #ifdef G2LIB_COMPATIBILITY_MODE
+
1124  void
+
1125  eval(
+
1126  real_type s,
+
1127  real_type offs,
+
1128  real_type & x,
+
1129  real_type & y
+
1130  ) const {
+
1131  if ( G2lib::use_ISO ) this->eval_ISO( s, offs, x, y );
+
1132  else this->eval_SAE( s, offs, x, y );
+
1133  }
+
1134  #endif
+
1135 
+
1145  virtual
+
1146  void
+
1147  eval_ISO_D(
+
1148  real_type s,
+
1149  real_type offs,
+
1150  real_type & x_D,
+
1151  real_type & y_D
+
1152  ) const;
+
1153 
+
1163  void
+ +
1165  real_type s,
+
1166  real_type offs,
+
1167  real_type & x_D,
+
1168  real_type & y_D
+
1169  ) const {
+
1170  this->eval_ISO_D( s, -offs, x_D, y_D );
+
1171  }
+
1172 
+
1173  #ifdef G2LIB_COMPATIBILITY_MODE
+
1183  void
+
1184  eval_D(
+
1185  real_type s,
+
1186  real_type offs,
+
1187  real_type & x_D,
+
1188  real_type & y_D
+
1189  ) const {
+
1190  if ( G2lib::use_ISO ) this->eval_ISO_D( s, offs, x_D, y_D );
+
1191  else this->eval_SAE_D( s, offs, x_D, y_D );
+
1192  }
+
1193  #endif
+
1194 
+
1204  virtual
+
1205  void
+
1206  eval_ISO_DD(
+
1207  real_type s,
+
1208  real_type offs,
+
1209  real_type & x_DD,
+
1210  real_type & y_DD
+
1211  ) const;
+
1212 
+
1222  void
+ +
1224  real_type s,
+
1225  real_type offs,
+
1226  real_type & x_DD,
+
1227  real_type & y_DD
+
1228  ) const {
+
1229  this->eval_ISO_DD( s, -offs, x_DD, y_DD );
+
1230  }
+
1231 
+
1232  #ifdef G2LIB_COMPATIBILITY_MODE
+
1242  void
+
1243  eval_DD(
+
1244  real_type s,
+
1245  real_type offs,
+
1246  real_type & x_DD,
+
1247  real_type & y_DD
+
1248  ) const {
+
1249  if ( G2lib::use_ISO ) this->eval_ISO_DD( s, offs, x_DD, y_DD );
+
1250  else this->eval_SAE_DD( s, offs, x_DD, y_DD );
+
1251  }
+
1252  #endif
+
1253 
+
1263  virtual
+
1264  void
+
1265  eval_ISO_DDD(
+
1266  real_type s,
+
1267  real_type offs,
+
1268  real_type & x_DDD,
+
1269  real_type & y_DDD
+
1270  ) const;
+
1271 
+
1281  void
+ +
1283  real_type s,
+
1284  real_type offs,
+
1285  real_type & x_DDD,
+
1286  real_type & y_DDD
+
1287  ) const {
+
1288  this->eval_ISO_DDD( s, -offs, x_DDD, y_DDD );
+
1289  }
+
1290 
+
1291  #ifdef G2LIB_COMPATIBILITY_MODE
+
1301  void
+
1302  eval_DDD(
+
1303  real_type s,
+
1304  real_type offs,
+
1305  real_type & x_DDD,
+
1306  real_type & y_DDD
+
1307  ) const {
+
1308  if ( G2lib::use_ISO ) this->eval_ISO_DDD( s, offs, x_DDD, y_DDD );
+
1309  else this->eval_SAE_DDD( s, offs, x_DDD, y_DDD );
+
1310  }
+
1311  #endif
+
1312 
+
1313  /*\
+
1314  | _ __
+
1315  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
1316  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
1317  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
1318  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
1319  \*/
+
1320 
+
1321  virtual
+
1322  void
+
1323  translate( real_type tx, real_type ty ) UTILS_PURE_VIRTUAL;
+
1324 
+
1325  virtual
+
1326  void
+
1327  rotate( real_type angle, real_type cx, real_type cy ) UTILS_PURE_VIRTUAL;
+
1328 
+
1329  virtual
+
1330  void
+
1331  scale( real_type sc ) UTILS_PURE_VIRTUAL;
+
1332 
+
1333  virtual
+
1334  void
+
1335  reverse() UTILS_PURE_VIRTUAL;
+
1336 
+
1337  virtual
+
1338  void
+
1339  changeOrigin( real_type newx0, real_type newy0 ) UTILS_PURE_VIRTUAL;
+
1340 
+
1341  virtual
+
1342  void
+
1343  trim( real_type s_begin, real_type s_end ) UTILS_PURE_VIRTUAL;
+
1344 
+
1345  /*\
+
1346  | _ _ _
+
1347  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
1348  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
1349  | | | | | | || __/ | \__ \ __/ (__| |_
+
1350  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
1351  \*/
+
1352 
+
1353  bool
+
1354  collision( BaseCurve const & C ) const
+
1355  { return G2lib::collision( *this, C ); }
+
1356 
+
1357  bool
+
1358  collision_ISO(
+
1359  real_type offs,
+
1360  BaseCurve const & C,
+
1361  real_type offs_C
+
1362  ) const {
+
1363  return G2lib::collision_ISO( *this, offs, C, offs_C );
+
1364  }
+
1365 
+
1366  bool
+
1367  collision_SAE(
+
1368  real_type offs,
+
1369  BaseCurve const & C,
+
1370  real_type offs_C
+
1371  ) const {
+
1372  return G2lib::collision_SAE( *this, offs, C, offs_C );
+
1373  }
+
1374 
+
1375  #ifdef G2LIB_COMPATIBILITY_MODE
+
1376  bool
+
1377  collision(
+
1378  real_type offs,
+
1379  BaseCurve const & C,
+
1380  real_type offs_C
+
1381  ) const {
+
1382  if ( G2lib::use_ISO )
+
1383  return G2lib::collision_ISO( *this, offs, C, offs_C );
+
1384  else
+
1385  return G2lib::collision_SAE( *this, offs, C, offs_C );
+
1386  }
+
1387  #endif
+
1388 
+
1389  void
+
1390  intersect(
+
1391  BaseCurve const & C,
+
1392  IntersectList & ilist,
+
1393  bool swap_s_vals
+
1394  ) const {
+
1395  G2lib::intersect( *this, C, ilist, swap_s_vals );
+
1396  }
+
1397 
+
1398  void
+
1399  intersect_ISO(
+
1400  real_type offs,
+
1401  BaseCurve const & C,
+
1402  real_type offs_C,
+
1403  IntersectList & ilist,
+
1404  bool swap_s_vals
+
1405  ) const {
+
1406  G2lib::intersect_ISO( *this, offs, C, offs_C, ilist, swap_s_vals );
+
1407  }
+
1408 
+
1409  void
+
1410  intersect_SAE(
+
1411  real_type offs,
+
1412  BaseCurve const & C,
+
1413  real_type offs_C,
+
1414  IntersectList & ilist,
+
1415  bool swap_s_vals
+
1416  ) const {
+
1417  G2lib::intersect_SAE( *this, offs, C, offs_C, ilist, swap_s_vals );
+
1418  }
+
1419 
+
1420  #ifdef G2LIB_COMPATIBILITY_MODE
+
1421  void
+
1422  intersect(
+
1423  real_type offs,
+
1424  BaseCurve const & C,
+
1425  real_type offs_C,
+
1426  IntersectList & ilist,
+
1427  bool swap_s_vals
+
1428  ) const {
+
1429  if ( G2lib::use_ISO )
+
1430  G2lib::intersect_ISO( *this, offs, C, offs_C, ilist, swap_s_vals );
+
1431  else
+
1432  G2lib::intersect_SAE( *this, offs, C, offs_C, ilist, swap_s_vals );
+
1433  }
+
1434  #endif
+
1435 
+
1436  /*\
+
1437  | _ _ _
+
1438  | __| (_)___| |_ __ _ _ __ ___ ___
+
1439  | / _` | / __| __/ _` | '_ \ / __/ _ \
+
1440  | | (_| | \__ \ || (_| | | | | (_| __/
+
1441  | \__,_|_|___/\__\__,_|_| |_|\___\___|
+
1442  \*/
+
1443 
+
1456  virtual
+
1457  int_type
+ +
1459  real_type qx,
+
1460  real_type qy,
+
1461  real_type & x,
+
1462  real_type & y,
+
1463  real_type & s,
+
1464  real_type & t,
+
1465  real_type & dst
+
1466  ) const UTILS_PURE_VIRTUAL;
+
1467 
+
1480  int_type
+ +
1482  real_type qx,
+
1483  real_type qy,
+
1484  real_type & x,
+
1485  real_type & y,
+
1486  real_type & s,
+
1487  real_type & t,
+
1488  real_type & dst
+
1489  ) const {
+
1490  int_type res = this->closestPoint_ISO( qx, qy, x, y, s, t, dst );
+
1491  t = -t;
+
1492  return res;
+
1493  }
+
1494 
+
1495  #ifdef G2LIB_COMPATIBILITY_MODE
+
1508  int_type
+
1509  closestPoint(
+
1510  real_type qx,
+
1511  real_type qy,
+
1512  real_type & x,
+
1513  real_type & y,
+
1514  real_type & s,
+
1515  real_type & t,
+
1516  real_type & dst
+
1517  ) const {
+
1518  if ( G2lib::use_ISO )
+
1519  return this->closestPoint_ISO( qx, qy, x, y, s, t, dst );
+
1520  else
+
1521  return this->closestPoint_SAE( qx, qy, x, y, s, t, dst );
+
1522  }
+
1523  #endif
+
1524 
+
1538  virtual
+
1539  int_type // true if projection is unique and orthogonal
+ +
1541  real_type qx,
+
1542  real_type qy,
+
1543  real_type offs,
+
1544  real_type & x,
+
1545  real_type & y,
+
1546  real_type & s,
+
1547  real_type & t,
+
1548  real_type & dst
+
1549  ) const UTILS_PURE_VIRTUAL;
+
1550 
+
1565  int_type
+ +
1567  real_type qx,
+
1568  real_type qy,
+
1569  real_type offs,
+
1570  real_type & x,
+
1571  real_type & y,
+
1572  real_type & s,
+
1573  real_type & t,
+
1574  real_type & dst
+
1575  ) const {
+
1576  int_type res = this->closestPoint_ISO( qx, qy, -offs, x, y, s, t, dst );
+
1577  t = -t;
+
1578  return res;
+
1579  }
+
1580 
+
1581  #ifdef G2LIB_COMPATIBILITY_MODE
+
1596  int_type
+
1597  closestPoint(
+
1598  real_type qx,
+
1599  real_type qy,
+
1600  real_type offs,
+
1601  real_type & x,
+
1602  real_type & y,
+
1603  real_type & s,
+
1604  real_type & t,
+
1605  real_type & dst
+
1606  ) const {
+
1607  if ( G2lib::use_ISO )
+
1608  return this->closestPoint_ISO( qx, qy, offs, x, y, s, t, dst );
+
1609  else
+
1610  return this->closestPoint_SAE( qx, qy, offs, x, y, s, t, dst );
+
1611  }
+
1612  #endif
+
1613 
+
1614  virtual
+
1615  real_type
+
1616  distance( real_type qx, real_type qy ) const {
+
1617  real_type x, y, s, t, dst;
+
1618  closestPoint_ISO( qx, qy, x, y, s, t, dst );
+
1619  return dst;
+
1620  }
+
1621 
+
1622  real_type
+
1623  distance_ISO(
+
1624  real_type qx,
+
1625  real_type qy,
+
1626  real_type offs
+
1627  ) const {
+
1628  real_type x, y, s, t, dst;
+
1629  this->closestPoint_ISO( qx, qy, offs, x, y, s, t, dst );
+
1630  return dst;
+
1631  }
+
1632 
+
1633  real_type
+
1634  distance_SAE(
+
1635  real_type qx,
+
1636  real_type qy,
+
1637  real_type offs
+
1638  ) const {
+
1639  real_type x, y, s, t, dst;
+
1640  this->closestPoint_SAE( qx, qy, offs, x, y, s, t, dst );
+
1641  return dst;
+
1642  }
+
1643 
+
1644  #ifdef G2LIB_COMPATIBILITY_MODE
+
1645  virtual
+
1646  real_type
+
1647  distance(
+
1648  real_type qx,
+
1649  real_type qy,
+
1650  real_type offs
+
1651  ) const {
+
1652  real_type x, y, s, t, dst;
+
1653  this->closestPoint( qx, qy, offs, x, y, s, t, dst );
+
1654  return dst;
+
1655  }
+
1656  #endif
+
1657 
+
1658  /*\
+
1659  | __ _ _ ____ _____
+
1660  | / _(_)_ __ __| / ___|_ _|
+
1661  | | |_| | '_ \ / _` \___ \ | |
+
1662  | | _| | | | | (_| |___) || |
+
1663  | |_| |_|_| |_|\__,_|____/ |_|
+
1664  \*/
+
1665 
+
1666  bool
+
1667  findST_ISO(
+
1668  real_type x,
+
1669  real_type y,
+
1670  real_type & s,
+
1671  real_type & t
+
1672  ) const {
+
1673  real_type X, Y, dst;
+
1674  int_type icode = this->closestPoint_ISO( x, y, X, Y, s, t, dst );
+
1675  return icode >= 0;
+
1676  }
+
1677 
+
1678  bool
+
1679  findST_SAE(
+
1680  real_type x,
+
1681  real_type y,
+
1682  real_type & s,
+
1683  real_type & t
+
1684  ) const {
+
1685  real_type X, Y, dst;
+
1686  int_type icode = this->closestPoint_SAE( x, y, X, Y, s, t, dst );
+
1687  return icode >= 0;
+
1688  }
+
1689 
+
1690  #ifdef G2LIB_COMPATIBILITY_MODE
+
1691  bool
+
1692  findST(
+
1693  real_type x,
+
1694  real_type y,
+
1695  real_type & s,
+
1696  real_type & t
+
1697  ) const {
+
1698  real_type X, Y, dst;
+
1699  int_type icode = this->closestPoint( x, y, X, Y, s, t, dst );
+
1700  return icode >= 0;
+
1701  }
+
1702  #endif
+
1703 
+
1704  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
1705 
+
1706  virtual
+
1707  void
+
1708  info( ostream_type & stream ) const UTILS_PURE_VIRTUAL;
+
1709 
+
1710  };
+
1711 
+
1712  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
1713  /*\
+
1714  | __ ____ __ _ _____ _ _
+
1715  | \ \/ /\ \ / / | |_ ___ |_ _| |__ ___| |_ __ _
+
1716  | \ / \ V / | __/ _ \ | | | '_ \ / _ \ __/ _` |
+
1717  | / \ | | | || (_) | | | | | | | __/ || (_| |
+
1718  | /_/\_\ |_| \__\___/ |_| |_| |_|\___|\__\__,_|
+
1719  \*/
+
1720 
+
1721  void
+
1722  xy_to_guess_angle(
+
1723  int_type npts,
+
1724  real_type const x[],
+
1725  real_type const y[],
+
1726  real_type theta[],
+
1727  real_type theta_min[],
+
1728  real_type theta_max[],
+
1729  real_type omega[],
+
1730  real_type len[]
+
1731  );
+
1732 
+
1733 }
+
1734 
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
virtual void eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
Definition: G2lib.cc:807
+
CurveType type() const
Definition: G2lib.hxx:557
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const
Definition: G2lib.cc:793
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const
Definition: G2lib.cc:779
+
virtual real_type length() const UTILS_PURE_VIRTUAL
+
int_type closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
Definition: G2lib.hxx:1566
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL
+
void eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
Definition: G2lib.hxx:1223
+
void eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const
Definition: G2lib.hxx:1164
+
virtual void eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
Definition: G2lib.cc:821
+
int_type closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
Definition: G2lib.hxx:1481
+
void bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
Definition: G2lib.hxx:629
+
virtual real_type length_ISO(real_type offs) const UTILS_PURE_VIRTUAL
+
void eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
Definition: G2lib.hxx:1282
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUAL
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUAL
+
void eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) const
Definition: G2lib.hxx:1105
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL
+
real_type length_SAE(real_type offs) const
Definition: G2lib.hxx:569
+
Class that solve a 2x2 linear system.
Definition: G2lib.hxx:296
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
real_type Sinc_DD(real_type x)
Definition: G2lib.cc:99
+
real_type Sinc(real_type x)
Definition: G2lib.cc:82
+
void intersect_ISO(BaseCurve const &obj1, real_type offs1, BaseCurve const &obj2, real_type offs2, IntersectList &ilist, bool swap_s_vals)
Definition: G2lib_intersect.cc:379
+
real_type const machepsi10
Definition: G2lib.cc:46
+
int_type isPointInTriangle(real_type const point[2], real_type const p1[2], real_type const p2[2], real_type const p3[2])
Definition: G2lib.cc:642
+
real_type Atanc_DDD(real_type x)
Definition: G2lib.cc:191
+
bool collision(BaseCurve const &obj1, BaseCurve const &obj2)
Definition: G2lib_intersect.cc:160
+
real_type const machepsi1000
Definition: G2lib.cc:48
+
real_type Atanc_D(real_type x)
Definition: G2lib.cc:171
+
real_type Sinc_DDD(real_type x)
Definition: G2lib.cc:106
+
real_type Cosc_D(real_type x)
Definition: G2lib.cc:128
+
real_type Sinc_D(real_type x)
Definition: G2lib.cc:92
+
bool pointInsideCircle(real_type x0, real_type y0, real_type c0, real_type s0, real_type k, real_type qx, real_type qy)
Definition: G2lib.hxx:180
+
real_type const machepsi100
Definition: G2lib.cc:47
+
real_type const machepsi
machine espilon
Definition: G2lib.cc:45
+
real_type projectPointOnCircle(real_type x0, real_type y0, real_type theta0, real_type k, real_type qx, real_type qy)
Definition: G2lib.cc:609
+
bool collision_ISO(BaseCurve const &obj1, real_type offs1, BaseCurve const &obj2, real_type offs2)
Definition: G2lib_intersect.cc:228
+
bool collision_SAE(BaseCurve const &C1, real_type offs_C1, BaseCurve const &C2, real_type offs_C2)
Definition: G2lib.hxx:415
+
int_type isCounterClockwise(real_type const P1[2], real_type const P2[2], real_type const P3[2])
Definition: G2lib.cc:546
+
real_type Cosc(real_type x)
Definition: G2lib.cc:118
+
real_type Atanc_DD(real_type x)
Definition: G2lib.cc:181
+
real_type const m_1_sqrt_pi
Definition: G2lib.cc:43
+
real_type Atanc(real_type x)
Definition: G2lib.cc:161
+
real_type Cosc_DD(real_type x)
Definition: G2lib.cc:138
+
void intersect_SAE(BaseCurve const &C1, real_type offs_C1, BaseCurve const &C2, real_type offs_C2, IntersectList &ilist, bool swap_s_vals)
Definition: G2lib.hxx:499
+
real_type projectPointOnCircleArc(real_type x0, real_type y0, real_type c0, real_type s0, real_type k, real_type L, real_type qx, real_type qy)
Definition: G2lib.cc:565
+
void minmax3(real_type a, real_type b, real_type c, real_type &vmin, real_type &vmax)
return minumum and maximum of three numbers
Definition: G2lib.hxx:125
+
real_type const sqrtMachepsi
Definition: G2lib.cc:49
+
int_type intersectCircleCircle(real_type x1, real_type y1, real_type theta1, real_type kappa1, real_type x2, real_type y2, real_type theta2, real_type kappa2, real_type s1[], real_type s2[])
Definition: G2lib.cc:348
+
real_type Cosc_DDD(real_type x)
Definition: G2lib.cc:147
+
int_type solveLinearQuadratic(real_type A, real_type B, real_type C, real_type a, real_type b, real_type c, real_type x[], real_type y[])
Definition: G2lib.cc:214
+
void rangeSymm(real_type &ang)
Add or remove multiple of to an angle in order to put it in the range .
Definition: G2lib.cc:67
+
void intersect(BaseCurve const &obj1, BaseCurve const &obj2, IntersectList &ilist, bool swap_s_vals)
Definition: G2lib_intersect.cc:304
+
int_type solveLinearQuadratic2(real_type A, real_type B, real_type C, real_type x[], real_type y[])
Definition: G2lib.cc:256
+
+ + + + diff --git a/docs/de/d0b/_line_8hxx_source.html b/docs/de/d0b/_line_8hxx_source.html new file mode 100644 index 00000000..f195b1e0 --- /dev/null +++ b/docs/de/d0b/_line_8hxx_source.html @@ -0,0 +1,765 @@ + + + + + + + +Clothoids: src/Clothoids/Line.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Line.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
24 namespace G2lib {
+
25 
+
26  /*\
+
27  | _ _
+
28  | | | (_)_ __ ___
+
29  | | | | | '_ \ / _ \
+
30  | | |___| | | | | __/
+
31  | |_____|_|_| |_|\___|
+
32  \*/
+
33 
+
35  class LineSegment : public BaseCurve {
+
36 
+
37  friend class CircleArc;
+
38  friend class PolyLine;
+
39 
+
40  real_type m_x0;
+
41  real_type m_y0;
+
42  real_type m_theta0;
+
43 
+
44  real_type m_c0;
+
45  real_type m_s0;
+
46  real_type m_L;
+
47 
+
48  public:
+
49 
+
50  #include "BaseCurve_using.hxx"
+
51 
+
52  //explicit
+
53  LineSegment()
+
54  : BaseCurve(G2LIB_LINE)
+
55  , m_x0(0)
+
56  , m_y0(0)
+
57  , m_theta0(0)
+
58  , m_c0(1)
+
59  , m_s0(0)
+
60  , m_L(0)
+
61  {}
+
62 
+
63  //explicit
+
64  LineSegment( LineSegment const & s )
+
65  : BaseCurve(G2LIB_LINE)
+
66  { copy(s); }
+
67 
+
68  explicit
+
69  LineSegment( BaseCurve const & C );
+
70 
+
72  explicit
+ +
74  real_type _x0,
+
75  real_type _y0,
+
76  real_type _theta0,
+
77  real_type _L
+
78  )
+
79  : BaseCurve(G2LIB_LINE)
+
80  , m_x0(_x0)
+
81  , m_y0(_y0)
+
82  , m_theta0(_theta0)
+
83  , m_c0(cos(_theta0))
+
84  , m_s0(sin(_theta0))
+
85  , m_L(_L)
+
86  {}
+
87 
+
88  void
+
89  copy( LineSegment const & c ) {
+
90  m_x0 = c.m_x0;
+
91  m_y0 = c.m_y0;
+
92  m_theta0 = c.m_theta0;
+
93  m_c0 = c.m_c0;
+
94  m_s0 = c.m_s0;
+
95  m_L = c.m_L;
+
96  }
+
97 
+
98  LineSegment const & operator = ( LineSegment const & s )
+
99  { copy(s); return *this; }
+
100 
+
101  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
102 
+
103  virtual
+
104  real_type
+
105  length() const UTILS_OVERRIDE
+
106  { return m_L; }
+
107 
+
108  virtual
+
109  real_type
+
110  length_ISO( real_type ) const UTILS_OVERRIDE
+
111  { return m_L; }
+
112 
+
113  /*\
+
114  | _ _
+
115  | | |__ | |__ _____ __
+
116  | | '_ \| '_ \ / _ \ \/ /
+
117  | | |_) | |_) | (_) > <
+
118  | |_.__/|_.__/ \___/_/\_\
+
119  \*/
+
120 
+
121  virtual
+
122  void
+
123  bbox(
+
124  real_type & xmin,
+
125  real_type & ymin,
+
126  real_type & xmax,
+
127  real_type & ymax
+
128  ) const UTILS_OVERRIDE;
+
129 
+
130  virtual
+
131  void
+
132  bbox_ISO(
+
133  real_type offs,
+
134  real_type & xmin,
+
135  real_type & ymin,
+
136  real_type & xmax,
+
137  real_type & ymax
+
138  ) const UTILS_OVERRIDE;
+
139 
+
140  /*\
+
141  | ____ _ _______ _
+
142  | | __ ) ___ __ _(_)_ __ / / ____|_ __ __| |
+
143  | | _ \ / _ \/ _` | | '_ \ / /| _| | '_ \ / _` |
+
144  | | |_) | __/ (_| | | | | |/ / | |___| | | | (_| |
+
145  | |____/ \___|\__, |_|_| |_/_/ |_____|_| |_|\__,_|
+
146  | |___/
+
147  \*/
+
148 
+
149  virtual real_type tx_Begin() const UTILS_OVERRIDE { return m_c0; }
+
150  virtual real_type ty_Begin() const UTILS_OVERRIDE { return m_s0; }
+
151  virtual real_type tx_End() const UTILS_OVERRIDE { return m_c0; }
+
152  virtual real_type ty_End() const UTILS_OVERRIDE { return m_s0; }
+
153 
+
154  virtual real_type nx_Begin_ISO() const UTILS_OVERRIDE { return -m_s0; }
+
155  virtual real_type ny_Begin_ISO() const UTILS_OVERRIDE { return m_c0; }
+
156  virtual real_type nx_End_ISO() const UTILS_OVERRIDE { return -m_s0; }
+
157  virtual real_type ny_End_ISO() const UTILS_OVERRIDE { return m_c0; }
+
158 
+
159  virtual real_type xBegin() const UTILS_OVERRIDE { return m_x0; }
+
160  virtual real_type yBegin() const UTILS_OVERRIDE { return m_y0; }
+
161  virtual real_type xEnd() const UTILS_OVERRIDE { return m_x0+m_L*m_c0; }
+
162  virtual real_type yEnd() const UTILS_OVERRIDE { return m_y0+m_L*m_s0; }
+
163 
+
164  virtual
+
165  real_type
+
166  xBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
167  { return m_x0+offs*nx_Begin_ISO(); }
+
168 
+
169  virtual
+
170  real_type
+
171  yBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
172  { return m_y0+offs*ny_Begin_ISO(); }
+
173 
+
174  virtual
+
175  real_type
+
176  xEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
177  { return xEnd()+offs*nx_Begin_ISO(); }
+
178 
+
179  virtual
+
180  real_type
+
181  yEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
182  { return yEnd()+offs*ny_Begin_ISO(); }
+
183 
+
184  /*\
+
185  | _ _ _
+
186  | | |_| |__ ___| |_ __ _
+
187  | | __| '_ \ / _ \ __/ _` |
+
188  | | |_| | | | __/ || (_| |
+
189  | \__|_| |_|\___|\__\__,_|
+
190  \*/
+
191 
+
192  virtual
+
193  real_type
+
194  theta( real_type ) const UTILS_OVERRIDE
+
195  { return m_theta0; }
+
196 
+
197  virtual
+
198  real_type
+
199  theta_D( real_type ) const UTILS_OVERRIDE
+
200  { return 0; }
+
201 
+
202  virtual
+
203  real_type
+
204  theta_DD( real_type ) const UTILS_OVERRIDE
+
205  { return 0; }
+
206 
+
207  virtual
+
208  real_type
+
209  theta_DDD( real_type ) const UTILS_OVERRIDE
+
210  { return 0; }
+
211 
+
212 
+
213  /*\
+
214  | _____ _ _ _
+
215  | |_ _| __ _ _ __ __| | | \ | |
+
216  | | | / _` | '_ \ / _` | | \| |
+
217  | | | | (_| | | | | (_| | | |\ |
+
218  | |_| \__,_|_| |_|\__,_| |_| \_|
+
219  \*/
+
220 
+
221  virtual
+
222  real_type
+
223  tx( real_type ) const UTILS_OVERRIDE
+
224  { return m_c0; }
+
225 
+
226  virtual
+
227  real_type
+
228  ty( real_type ) const UTILS_OVERRIDE
+
229  { return m_s0; }
+
230 
+
231  virtual
+
232  real_type
+
233  tx_D( real_type ) const UTILS_OVERRIDE
+
234  { return 0; }
+
235 
+
236  virtual
+
237  real_type
+
238  ty_D( real_type ) const UTILS_OVERRIDE
+
239  { return 0; }
+
240 
+
241  virtual
+
242  real_type
+
243  tx_DD( real_type ) const UTILS_OVERRIDE
+
244  { return 0; }
+
245 
+
246  virtual
+
247  real_type
+
248  ty_DD( real_type ) const UTILS_OVERRIDE
+
249  { return 0; }
+
250 
+
251  virtual
+
252  real_type
+
253  tx_DDD( real_type ) const UTILS_OVERRIDE
+
254  { return 0; }
+
255 
+
256  virtual
+
257  real_type
+
258  ty_DDD( real_type ) const UTILS_OVERRIDE
+
259  { return 0; }
+
260 
+
261  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
262 
+
263  virtual
+
264  void
+
265  tg( real_type, real_type & tx, real_type & ty ) const UTILS_OVERRIDE
+
266  { tx = m_c0; ty = m_s0; }
+
267 
+
268  virtual
+
269  void
+
270  tg_D( real_type, real_type & tx_D, real_type & ty_D ) const UTILS_OVERRIDE
+
271  { tx_D = ty_D = 0; }
+
272 
+
273  virtual
+
274  void
+
275  tg_DD( real_type, real_type & tx_DD, real_type & ty_DD ) const UTILS_OVERRIDE
+
276  { tx_DD = ty_DD = 0; }
+
277 
+
278  virtual
+
279  void
+
280  tg_DDD( real_type, real_type & tx_DDD, real_type & ty_DDD ) const UTILS_OVERRIDE
+
281  { tx_DDD = ty_DDD = 0; }
+
282 
+
283  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
284 
+
285  virtual
+
286  real_type
+
287  X( real_type s ) const UTILS_OVERRIDE
+
288  { return m_x0+s*m_c0; }
+
289 
+
290  virtual
+
291  real_type
+
292  Y( real_type s ) const UTILS_OVERRIDE
+
293  { return m_y0+s*m_s0; }
+
294 
+
295  virtual
+
296  real_type
+
297  X_D( real_type ) const UTILS_OVERRIDE
+
298  { return m_c0; }
+
299 
+
300  virtual
+
301  real_type
+
302  Y_D( real_type ) const UTILS_OVERRIDE
+
303  { return m_s0; }
+
304 
+
305  virtual
+
306  real_type
+
307  X_DD( real_type ) const UTILS_OVERRIDE
+
308  { return 0; }
+
309 
+
310  virtual
+
311  real_type
+
312  Y_DD( real_type ) const UTILS_OVERRIDE
+
313  { return 0; }
+
314 
+
315  virtual
+
316  real_type
+
317  X_DDD( real_type ) const UTILS_OVERRIDE
+
318  { return 0; }
+
319 
+
320  virtual
+
321  real_type
+
322  Y_DDD( real_type ) const UTILS_OVERRIDE
+
323  { return 0; }
+
324 
+
325  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
326 
+
327  virtual
+
328  void
+
329  eval(
+
330  real_type s,
+
331  real_type & x,
+
332  real_type & y
+
333  ) const UTILS_OVERRIDE {
+
334  x = m_x0+s*m_c0;
+
335  y = m_y0+s*m_s0;
+
336  }
+
337 
+
338  virtual
+
339  void
+
340  eval_D(
+
341  real_type,
+
342  real_type & x_D,
+
343  real_type & y_D
+
344  ) const UTILS_OVERRIDE {
+
345  x_D = m_c0;
+
346  y_D = m_s0;
+
347  }
+
348 
+
349  virtual
+
350  void
+
351  eval_DD(
+
352  real_type,
+
353  real_type & x_DD,
+
354  real_type & y_DD
+
355  ) const UTILS_OVERRIDE {
+
356  x_DD = 0;
+
357  y_DD = 0;
+
358  }
+
359 
+
360  virtual
+
361  void
+
362  eval_DDD(
+
363  real_type,
+
364  real_type & x_DDD,
+
365  real_type & y_DDD
+
366  ) const UTILS_OVERRIDE {
+
367  x_DDD = 0;
+
368  y_DDD = 0;
+
369  }
+
370 
+
371  /*\
+
372  | __ __ _
+
373  | ___ / _|/ _|___ ___| |_
+
374  | / _ \| |_| |_/ __|/ _ \ __|
+
375  | | (_) | _| _\__ \ __/ |_
+
376  | \___/|_| |_| |___/\___|\__|
+
377  \*/
+
378 
+
379  virtual
+
380  real_type
+
381  X_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE
+
382  { return m_x0 + s*m_c0 + offs*nx_Begin_ISO(); }
+
383 
+
384  virtual
+
385  real_type
+
386  Y_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE
+
387  { return m_y0 + s*m_s0 + offs*ny_Begin_ISO(); }
+
388 
+
389  virtual
+
390  real_type
+
391  X_ISO_D( real_type, real_type ) const UTILS_OVERRIDE
+
392  { return m_c0; }
+
393 
+
394  virtual
+
395  real_type
+
396  Y_ISO_D( real_type, real_type ) const UTILS_OVERRIDE
+
397  { return m_s0; }
+
398 
+
399  virtual
+
400  real_type
+
401  X_ISO_DD( real_type, real_type ) const UTILS_OVERRIDE
+
402  { return 0; }
+
403 
+
404  virtual
+
405  real_type
+
406  Y_ISO_DD( real_type, real_type ) const UTILS_OVERRIDE
+
407  { return 0; }
+
408 
+
409  virtual
+
410  real_type
+
411  X_ISO_DDD( real_type, real_type ) const UTILS_OVERRIDE
+
412  { return 0; }
+
413 
+
414  virtual
+
415  real_type
+
416  Y_ISO_DDD( real_type, real_type ) const UTILS_OVERRIDE
+
417  { return 0; }
+
418 
+
419  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
420 
+
421  virtual
+
422  void
+ +
424  real_type s,
+
425  real_type offs,
+
426  real_type & x,
+
427  real_type & y
+
428  ) const UTILS_OVERRIDE {
+
429  x = m_x0 + s*m_c0 + offs*nx_Begin_ISO();
+
430  y = m_y0 + s*m_s0 + offs*ny_Begin_ISO();
+
431  }
+
432 
+
433  virtual
+
434  void
+ +
436  real_type,
+
437  real_type,
+
438  real_type & x_D,
+
439  real_type & y_D
+
440  ) const UTILS_OVERRIDE {
+
441  x_D = m_c0;
+
442  y_D = m_s0;
+
443  }
+
444 
+
445  virtual
+
446  void
+ +
448  real_type,
+
449  real_type,
+
450  real_type & x_DD,
+
451  real_type & y_DD
+
452  ) const UTILS_OVERRIDE {
+
453  x_DD = y_DD = 0;
+
454  }
+
455 
+
456  virtual
+
457  void
+ +
459  real_type,
+
460  real_type,
+
461  real_type & x_DDD,
+
462  real_type & y_DDD
+
463  ) const UTILS_OVERRIDE {
+
464  x_DDD = y_DDD = 0;
+
465  }
+
466 
+
467  /*\
+
468  | _ __
+
469  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
470  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
471  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
472  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
473  \*/
+
474 
+
475  virtual
+
476  void
+
477  translate( real_type tx, real_type ty ) UTILS_OVERRIDE
+
478  { m_x0 += tx; m_y0 += ty; }
+
479 
+
480  virtual
+
481  void
+
482  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE;
+
483 
+
484  virtual
+
485  void
+
486  reverse() UTILS_OVERRIDE;
+
487 
+
488  virtual
+
489  void
+
490  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE
+
491  { m_x0 = newx0; m_y0 = newy0; }
+
492 
+
493  virtual
+
494  void
+
495  scale( real_type sc ) UTILS_OVERRIDE
+
496  { m_L *= sc; }
+
497 
+
498  virtual
+
499  void
+
500  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE {
+
501  m_x0 += m_c0 * s_begin;
+
502  m_y0 += m_s0 * s_begin;
+
503  m_L = s_end - s_begin;
+
504  }
+
505 
+
506  /*\
+
507  | _ _ _
+
508  | __| (_)___| |_ __ _ _ __ ___ ___
+
509  | / _` | / __| __/ _` | '_ \ / __/ _ \
+
510  | | (_| | \__ \ || (_| | | | | (_| __/
+
511  | \__,_|_|___/\__\__,_|_| |_|\___\___|
+
512  \*/
+
513 
+
529  virtual
+
530  int_type
+ +
532  real_type qx,
+
533  real_type qy,
+
534  real_type & x,
+
535  real_type & y,
+
536  real_type & s,
+
537  real_type & t,
+
538  real_type & dst
+
539  ) const UTILS_OVERRIDE;
+
540 
+
541  virtual
+
542  int_type
+ +
544  real_type qx,
+
545  real_type qy,
+
546  real_type offs,
+
547  real_type & x,
+
548  real_type & y,
+
549  real_type & s,
+
550  real_type & t,
+
551  real_type & dst
+
552  ) const UTILS_OVERRIDE;
+
553 
+
554  virtual
+
555  void
+
556  info( ostream_type & stream ) const UTILS_OVERRIDE
+
557  { stream << "LineSegment\n" << *this << '\n'; }
+
558 
+
559  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
560  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
561  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
562 
+
563  void
+
564  build(
+
565  real_type x0,
+
566  real_type y0,
+
567  real_type theta0,
+
568  real_type L
+
569  ) {
+
570  m_x0 = x0;
+
571  m_y0 = y0;
+
572  m_theta0 = theta0;
+
573  m_c0 = cos(theta0);
+
574  m_s0 = sin(theta0);
+
575  m_L = L;
+
576  }
+
577 
+
579  void
+
580  build_2P(
+
581  real_type _x0,
+
582  real_type _y0,
+
583  real_type _x1,
+
584  real_type _y1
+
585  );
+
586 
+
588  void
+
589  build_2P( real_type const p0[2], real_type const p1[2] )
+
590  { build_2P( p0[0], p0[1], p1[0], p1[1] ); }
+
591 
+
592  void
+
593  p1p2( real_type p1[2], real_type p2[2] ) const {
+
594  p1[0] = m_x0;
+
595  p1[1] = m_y0;
+
596  p2[0] = m_x0+m_L*m_c0;
+
597  p2[1] = m_y0+m_L*m_s0;
+
598  }
+
599 
+
600  bool
+
601  intersect(
+
602  LineSegment const & S,
+
603  real_type & s1,
+
604  real_type & s2
+
605  ) const;
+
606 
+
607  bool
+
608  intersect_ISO(
+
609  real_type offs,
+
610  LineSegment const & S,
+
611  real_type S_offs,
+
612  real_type & s1,
+
613  real_type & s2
+
614  ) const;
+
615 
+
616  void
+
617  intersect(
+
618  LineSegment const & LS,
+
619  IntersectList & ilist,
+
620  bool swap_s_vals
+
621  ) const {
+
622  real_type s1, s2;
+
623  bool ok = this->intersect( LS, s1, s2 );
+
624  if ( ok ) {
+
625  if ( swap_s_vals ) ilist.push_back( Ipair(s2, s1) );
+
626  else ilist.push_back( Ipair(s1, s2) );
+
627  }
+
628  }
+
629 
+
630  void
+
631  intersect_ISO(
+
632  real_type offs,
+
633  LineSegment const & LS,
+
634  real_type offs_LS,
+
635  IntersectList & ilist,
+
636  bool swap_s_vals
+
637  ) const {
+
638  real_type s1, s2;
+
639  bool ok = this->intersect_ISO( offs, LS, offs_LS, s1, s2 );
+
640  if ( ok ) {
+
641  if ( swap_s_vals ) ilist.push_back( Ipair(s2, s1) );
+
642  else ilist.push_back( Ipair(s1, s2) );
+
643  }
+
644  }
+
645 
+
646  bool
+
647  collision( LineSegment const & S ) const;
+
648 
+
649  bool
+
650  collision_ISO(
+
651  real_type offs,
+
652  LineSegment const & S,
+
653  real_type S_offs
+
654  ) const;
+
655 
+
656  /*\
+
657  | _ _ _ _ ____ ____ ____
+
658  | | \ | | | | | _ \| __ ) ___|
+
659  | | \| | | | | |_) | _ \___ \
+
660  | | |\ | |_| | _ <| |_) |__) |
+
661  | |_| \_|\___/|_| \_\____/____/
+
662  \*/
+
663 
+
664  void
+
665  paramNURBS( int_type & n_knots, int_type & n_pnts ) const;
+
666 
+
667  void
+
668  toNURBS( real_type knots[], real_type Poly[][3] ) const;
+
669 
+
670  virtual
+
671  void
+
672  toBS( real_type knots[], real_type Poly[][2] ) const;
+
673 
+
674  friend
+
675  ostream_type &
+
676  operator << ( ostream_type & stream, LineSegment const & c );
+
677 
+
678  friend class ClothoidCurve;
+
679 
+
680  };
+
681 
+
682 }
+
683 
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
void build_2P(real_type const p0[2], real_type const p1[2])
construct a clothoid with the standard parameters
Definition: Line.hxx:589
+
virtual void eval_ISO_D(real_type, real_type, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: Line.hxx:435
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
compute the point at minimum distance from a point [x,y] and the line segment
Definition: Line.cc:492
+
virtual void eval_ISO_DDD(real_type, real_type, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: Line.hxx:458
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Line.cc:264
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Line.cc:249
+
virtual real_type length_ISO(real_type) const UTILS_OVERRIDE
Definition: Line.hxx:110
+
LineSegment(real_type _x0, real_type _y0, real_type _theta0, real_type _L)
construct a circle curve with the standard parameters
Definition: Line.hxx:73
+
virtual void eval_ISO_DD(real_type, real_type, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: Line.hxx:447
+
void build_2P(real_type _x0, real_type _y0, real_type _x1, real_type _y1)
construct a clothoid with the standard parameters
Definition: Line.cc:226
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Line.hxx:105
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: Line.hxx:423
+
Class to manage a collection of straight segment.
Definition: PolyLine.hxx:42
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/de/d36/_biarc_8hxx_source.html b/docs/de/d36/_biarc_8hxx_source.html new file mode 100644 index 00000000..f34306c6 --- /dev/null +++ b/docs/de/d36/_biarc_8hxx_source.html @@ -0,0 +1,710 @@ + + + + + + + +Clothoids: src/Clothoids/Biarc.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Biarc.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  /*\
+
28  | ____ _
+
29  | | __ )(_) __ _ _ __ ___
+
30  | | _ \| |/ _` | '__/ __|
+
31  | | |_) | | (_| | | | (__
+
32  | |____/|_|\__,_|_| \___|
+
33  \*/
+
34 
+
40  class Biarc : public BaseCurve {
+
41  CircleArc m_C0, m_C1;
+
42 
+
43  void
+
44  gfun( real_type alpha, real_type g[3] ) const {
+
45  real_type so = sin(alpha);
+
46  real_type co = cos(alpha);
+
47  real_type oco = alpha*co;
+
48  g[0] = so + oco;
+
49  g[1] = 2*co - alpha*so;
+
50  g[2] = -3*so - oco;
+
51  }
+
52 
+
53  public:
+
54 
+
55  #include "BaseCurve_using.hxx"
+
56 
+
57  virtual
+
58  ~Biarc() UTILS_OVERRIDE
+
59  {}
+
60 
+
61  //explicit
+
62  Biarc()
+
63  : BaseCurve(G2LIB_BIARC)
+
64  {}
+
65 
+
66  //explicit
+
67  Biarc( Biarc const & ba )
+
68  : BaseCurve(G2LIB_BIARC)
+
69  { copy(ba); }
+
70 
+
72  explicit
+ +
74  real_type x0,
+
75  real_type y0,
+
76  real_type theta0,
+
77  real_type x1,
+
78  real_type y1,
+
79  real_type theta1
+
80  )
+
81  : BaseCurve(G2LIB_BIARC)
+
82  {
+
83  bool ok = build( x0, y0, theta0, x1, y1, theta1 );
+
84  UTILS_ASSERT(
+
85  ok,
+
86  "Biarc( x0={}, y0={}, theta0={}, x1={}, y1={}, theta1={}) cannot be computed\n",
+
87  x0, y0, theta0, x1, y1, theta1
+
88  );
+
89  }
+
90 
+
91  explicit
+
92  Biarc( BaseCurve const & C );
+
93 
+
94  void
+
95  copy( Biarc const & c ) {
+
96  m_C0.copy(c.m_C0);
+
97  m_C1.copy(c.m_C1);
+
98  }
+
99 
+
100  Biarc const & operator = ( Biarc const & ba )
+
101  { copy(ba); return *this; }
+
102 
+
103  CircleArc const & C0() const { return m_C0; }
+
104  CircleArc const & C1() const { return m_C1; }
+
105 
+
107  bool
+
108  build(
+
109  real_type x0,
+
110  real_type y0,
+
111  real_type theta0,
+
112  real_type x1,
+
113  real_type y1,
+
114  real_type theta1
+
115  );
+
116 
+
124  bool
+
125  build_3P(
+
126  real_type x0,
+
127  real_type y0,
+
128  real_type x1,
+
129  real_type y1,
+
130  real_type x2,
+
131  real_type y2
+
132  );
+
133 
+
134  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
135 
+
136  virtual
+
137  void
+
138  bbox(
+
139  real_type & xmin,
+
140  real_type & ymin,
+
141  real_type & xmax,
+
142  real_type & ymax
+
143  ) const UTILS_OVERRIDE;
+
144 
+
145  virtual
+
146  void
+
147  bbox_ISO(
+
148  real_type offs,
+
149  real_type & xmin,
+
150  real_type & ymin,
+
151  real_type & xmax,
+
152  real_type & ymax
+
153  ) const UTILS_OVERRIDE;
+
154 
+
155  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
156 
+
157  virtual
+
158  real_type
+
159  length() const UTILS_OVERRIDE
+
160  { return m_C0.length()+m_C1.length(); }
+
161 
+
162  virtual
+
163  real_type
+
164  length_ISO( real_type offs ) const UTILS_OVERRIDE
+
165  { return m_C0.length_ISO(offs)+m_C1.length_ISO(offs); }
+
166 
+
167  virtual
+
168  real_type
+
169  thetaBegin() const UTILS_OVERRIDE
+
170  { return m_C0.thetaBegin(); }
+
171 
+
172  virtual
+
173  real_type
+
174  thetaEnd() const UTILS_OVERRIDE
+
175  { return m_C1.thetaEnd(); }
+
176 
+
177  virtual
+
178  real_type
+
179  xBegin() const UTILS_OVERRIDE
+
180  { return m_C0.xBegin(); }
+
181 
+
182  virtual
+
183  real_type
+
184  xEnd() const UTILS_OVERRIDE
+
185  { return m_C1.xEnd(); }
+
186 
+
187  virtual
+
188  real_type
+
189  yBegin() const UTILS_OVERRIDE
+
190  { return m_C0.yBegin(); }
+
191 
+
192  virtual
+
193  real_type
+
194  yEnd() const UTILS_OVERRIDE
+
195  { return m_C1.yEnd(); }
+
196 
+
197  virtual
+
198  real_type
+
199  tx_Begin() const UTILS_OVERRIDE
+
200  { return m_C0.tx_Begin(); }
+
201 
+
202  virtual
+
203  real_type
+
204  tx_End() const UTILS_OVERRIDE
+
205  { return m_C1.tx_End(); }
+
206 
+
207  virtual
+
208  real_type
+
209  ty_Begin() const UTILS_OVERRIDE
+
210  { return m_C0.ty_Begin(); }
+
211 
+
212  virtual
+
213  real_type
+
214  ty_End() const UTILS_OVERRIDE
+
215  { return m_C1.ty_End(); }
+
216 
+
217  virtual
+
218  real_type
+
219  nx_Begin_ISO() const UTILS_OVERRIDE
+
220  { return m_C0.nx_Begin_ISO(); }
+
221 
+
222  virtual
+
223  real_type
+
224  nx_End_ISO() const UTILS_OVERRIDE
+
225  { return m_C1.nx_End_ISO(); }
+
226 
+
227  virtual
+
228  real_type
+
229  ny_Begin_ISO() const UTILS_OVERRIDE
+
230  { return m_C0.ny_Begin_ISO(); }
+
231 
+
232  virtual
+
233  real_type
+
234  ny_End_ISO() const UTILS_OVERRIDE
+
235  { return m_C1.ny_End_ISO(); }
+
236 
+
237  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
238 
+
239  virtual
+
240  real_type
+
241  theta( real_type s ) const UTILS_OVERRIDE;
+
242 
+
243  virtual
+
244  real_type
+
245  theta_D( real_type ) const UTILS_OVERRIDE;
+
246 
+
247  virtual
+
248  real_type
+
249  theta_DD( real_type ) const UTILS_OVERRIDE
+
250  { return 0; }
+
251 
+
252  virtual
+
253  real_type
+
254  theta_DDD( real_type ) const UTILS_OVERRIDE
+
255  { return 0; }
+
256 
+
257  virtual
+
258  void
+
259  evaluate(
+
260  real_type s,
+
261  real_type & th,
+
262  real_type & k,
+
263  real_type & x,
+
264  real_type & y
+
265  ) const UTILS_OVERRIDE;
+
266 
+
267  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
268 
+
269  virtual real_type X( real_type s ) const UTILS_OVERRIDE;
+
270  virtual real_type Y( real_type s ) const UTILS_OVERRIDE;
+
271 
+
272  virtual real_type X_D( real_type ) const UTILS_OVERRIDE;
+
273  virtual real_type Y_D( real_type ) const UTILS_OVERRIDE;
+
274 
+
275  virtual real_type X_DD( real_type ) const UTILS_OVERRIDE;
+
276  virtual real_type Y_DD( real_type ) const UTILS_OVERRIDE;
+
277 
+
278  virtual real_type X_DDD( real_type ) const UTILS_OVERRIDE;
+
279  virtual real_type Y_DDD( real_type ) const UTILS_OVERRIDE;
+
280 
+
281  virtual real_type X_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
282  virtual real_type Y_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
283 
+
284  virtual real_type X_ISO_D( real_type, real_type offs ) const UTILS_OVERRIDE;
+
285  virtual real_type Y_ISO_D( real_type, real_type offs ) const UTILS_OVERRIDE;
+
286 
+
287  virtual real_type X_ISO_DD( real_type, real_type offs ) const UTILS_OVERRIDE;
+
288  virtual real_type Y_ISO_DD( real_type, real_type offs ) const UTILS_OVERRIDE;
+
289 
+
290  virtual real_type X_ISO_DDD( real_type, real_type offs ) const UTILS_OVERRIDE;
+
291  virtual real_type Y_ISO_DDD( real_type, real_type offs ) const UTILS_OVERRIDE;
+
292 
+
293  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
294 
+
295  virtual
+
296  void
+
297  eval(
+
298  real_type s,
+
299  real_type & x,
+
300  real_type & y
+
301  ) const UTILS_OVERRIDE;
+
302 
+
303  virtual
+
304  void
+
305  eval_D(
+
306  real_type s,
+
307  real_type & x_D,
+
308  real_type & y_D
+
309  ) const UTILS_OVERRIDE;
+
310 
+
311  virtual
+
312  void
+
313  eval_DD(
+
314  real_type s,
+
315  real_type & x_DD,
+
316  real_type & y_DD
+
317  ) const UTILS_OVERRIDE;
+
318 
+
319  virtual
+
320  void
+
321  eval_DDD(
+
322  real_type s,
+
323  real_type & x_DDD,
+
324  real_type & y_DDD
+
325  ) const UTILS_OVERRIDE;
+
326 
+
327  virtual
+
328  void
+
329  eval_ISO(
+
330  real_type s,
+
331  real_type offs,
+
332  real_type & x,
+
333  real_type & y
+
334  ) const UTILS_OVERRIDE;
+
335 
+
336  virtual
+
337  void
+
338  eval_ISO_D(
+
339  real_type s,
+
340  real_type offs,
+
341  real_type & x_D,
+
342  real_type & y_D
+
343  ) const UTILS_OVERRIDE;
+
344 
+
345  virtual
+
346  void
+
347  eval_ISO_DD(
+
348  real_type s,
+
349  real_type offs,
+
350  real_type & x_DD,
+
351  real_type & y_DD
+
352  ) const UTILS_OVERRIDE;
+
353 
+
354  virtual
+
355  void
+
356  eval_ISO_DDD(
+
357  real_type s,
+
358  real_type offs,
+
359  real_type & x_DDD,
+
360  real_type & y_DDD
+
361  ) const UTILS_OVERRIDE;
+
362 
+
363  /*\
+
364  | _____ _ _ _
+
365  | |_ _| __ _ _ __ __| | | \ | |
+
366  | | | / _` | '_ \ / _` | | \| |
+
367  | | | | (_| | | | | (_| | | |\ |
+
368  | |_| \__,_|_| |_|\__,_| |_| \_|
+
369  \*/
+
370 
+
371  virtual
+
372  real_type
+
373  tx( real_type s ) const UTILS_OVERRIDE;
+
374 
+
375  virtual
+
376  real_type
+
377  tx_D( real_type s ) const UTILS_OVERRIDE;
+
378 
+
379  virtual
+
380  real_type
+
381  tx_DD( real_type s ) const UTILS_OVERRIDE;
+
382 
+
383  virtual
+
384  real_type
+
385  tx_DDD( real_type s ) const UTILS_OVERRIDE;
+
386 
+
387  virtual
+
388  real_type
+
389  ty( real_type s ) const UTILS_OVERRIDE;
+
390 
+
391  virtual
+
392  real_type
+
393  ty_D( real_type s ) const UTILS_OVERRIDE;
+
394 
+
395  virtual
+
396  real_type
+
397  ty_DD( real_type s ) const UTILS_OVERRIDE;
+
398 
+
399  virtual
+
400  real_type
+
401  ty_DDD( real_type s ) const UTILS_OVERRIDE;
+
402 
+
403  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
404 
+
405  virtual
+
406  void
+
407  tg(
+
408  real_type s,
+
409  real_type & tx,
+
410  real_type & ty
+
411  ) const UTILS_OVERRIDE;
+
412 
+
413  virtual
+
414  void
+
415  tg_D(
+
416  real_type s,
+
417  real_type & tx_D,
+
418  real_type & ty_D
+
419  ) const UTILS_OVERRIDE;
+
420 
+
421  virtual
+
422  void
+
423  tg_DD(
+
424  real_type s,
+
425  real_type & tx_DD,
+
426  real_type & ty_DD
+
427  ) const UTILS_OVERRIDE;
+
428 
+
429  virtual
+
430  void
+
431  tg_DDD(
+
432  real_type s,
+
433  real_type & tx_DDD,
+
434  real_type & ty_DDD
+
435  ) const UTILS_OVERRIDE;
+
436 
+
437  /*\
+
438  | _ __
+
439  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
440  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
441  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
442  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
443  \*/
+
444 
+
445  virtual
+
446  void
+
447  translate( real_type tx, real_type ty ) UTILS_OVERRIDE
+
448  { m_C0.translate(tx,ty); m_C1.translate(tx,ty); }
+
449 
+
450  virtual
+
451  void
+
452  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE
+
453  { m_C0.rotate(angle,cx,cy); m_C1.rotate(angle,cx,cy); }
+
454 
+
455  virtual
+
456  void
+
457  reverse() UTILS_OVERRIDE;
+
458 
+
459  virtual
+
460  void
+
461  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE;
+
462 
+
463  virtual
+
464  void
+
465  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE;
+
466 
+
467  virtual
+
468  void
+
469  scale( real_type s ) UTILS_OVERRIDE;
+
470 
+
471  /*\
+
472  | _ _ ____ _ _
+
473  | ___| | ___ ___ ___ ___| |_| _ \ ___ (_)_ __ | |_
+
474  | / __| |/ _ \/ __|/ _ \/ __| __| |_) / _ \| | '_ \| __|
+
475  | | (__| | (_) \__ \ __/\__ \ |_| __/ (_) | | | | | |_
+
476  | \___|_|\___/|___/\___||___/\__|_| \___/|_|_| |_|\__|
+
477  \*/
+
478 
+
479  virtual
+
480  int_type
+ +
482  real_type qx,
+
483  real_type qy,
+
484  real_type & x,
+
485  real_type & y,
+
486  real_type & s,
+
487  real_type & t,
+
488  real_type & dst
+
489  ) const UTILS_OVERRIDE;
+
490 
+
491  virtual
+
492  int_type
+ +
494  real_type qx,
+
495  real_type qy,
+
496  real_type offs,
+
497  real_type & x,
+
498  real_type & y,
+
499  real_type & s,
+
500  real_type & t,
+
501  real_type & dst
+
502  ) const UTILS_OVERRIDE;
+
503 
+
504  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
505  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
506 
+
507  real_type xMiddle() const { return m_C1.xBegin(); }
+
508  real_type yMiddle() const { return m_C1.yBegin(); }
+
509  real_type thetaMiddle() const { return m_C1.thetaBegin(); }
+
510  real_type kappa0() const { return m_C0.curvature(); }
+
511  real_type length0() const { return m_C0.length(); }
+
512  real_type kappa1() const { return m_C1.curvature(); }
+
513  real_type length1() const { return m_C1.length(); }
+
514 
+
515  real_type delta_theta() const { return m_C0.delta_theta() + m_C1.delta_theta(); }
+
516 
+
517  void
+
518  bbTriangles(
+
519  std::vector<Triangle2D> & tvec,
+
520  real_type max_angle = Utils::m_pi/18,
+
521  real_type max_size = 1e100,
+
522  int_type icurve = 0
+
523  ) const {
+
524  m_C0.bbTriangles( tvec, max_angle, max_size, icurve );
+
525  m_C1.bbTriangles( tvec, max_angle, max_size, icurve );
+
526  }
+
527 
+
528  void
+
529  bbTriangles_ISO(
+
530  real_type offs,
+
531  std::vector<Triangle2D> & tvec,
+
532  real_type max_angle = Utils::m_pi/18,
+
533  real_type max_size = 1e100,
+
534  int_type icurve = 0
+
535  ) const {
+
536  m_C0.bbTriangles_ISO( offs, tvec, max_angle, max_size, icurve );
+
537  m_C1.bbTriangles_ISO( offs, tvec, max_angle, max_size, icurve );
+
538  }
+
539 
+
540  void
+
541  bbTriangles_SAE(
+
542  real_type offs,
+
543  std::vector<Triangle2D> & tvec,
+
544  real_type max_angle = Utils::m_pi/18,
+
545  real_type max_size = 1e100,
+
546  int_type icurve = 0
+
547  ) const {
+
548  m_C0.bbTriangles_SAE( offs, tvec, max_angle, max_size, icurve );
+
549  m_C1.bbTriangles_SAE( offs, tvec, max_angle, max_size, icurve );
+
550  }
+
551 
+
552  /*\
+
553  | _ _ _ _
+
554  | ___ ___ | | (_)___(_) ___ _ __
+
555  | / __/ _ \| | | / __| |/ _ \| '_ \
+
556  | | (_| (_) | | | \__ \ | (_) | | | |
+
557  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
558  \*/
+
559 
+
560  bool
+
561  collision( Biarc const & B ) const {
+
562  return m_C0.collision( B.m_C0 ) || m_C0.collision( B.m_C1 ) ||
+
563  m_C1.collision( B.m_C0 ) || m_C1.collision( B.m_C1 );
+
564  }
+
565 
+
566  bool
+
567  collision_ISO(
+
568  real_type offs,
+
569  Biarc const & B,
+
570  real_type offs_B
+
571  ) const {
+
572  return m_C0.collision_ISO( offs, B.m_C0, offs_B ) ||
+
573  m_C0.collision_ISO( offs, B.m_C1, offs_B ) ||
+
574  m_C1.collision_ISO( offs, B.m_C0, offs_B ) ||
+
575  m_C1.collision_ISO( offs, B.m_C1, offs_B );
+
576  }
+
577 
+
578  /*\
+
579  | _ _ _
+
580  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
581  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
582  | | | | | | || __/ | \__ \ __/ (__| |_
+
583  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
584  \*/
+
585 
+
586  void
+
587  intersect(
+
588  Biarc const & B,
+
589  IntersectList & ilist,
+
590  bool swap_s_vals
+
591  ) const;
+
592 
+
593  void
+
594  intersect_ISO(
+
595  real_type offs,
+
596  Biarc const & B,
+
597  real_type offs_B,
+
598  IntersectList & ilist,
+
599  bool swap_s_vals
+
600  ) const;
+
601 
+
602  void
+
603  info( ostream_type & stream ) const UTILS_OVERRIDE
+
604  { stream << "BiArc\n" << *this << '\n'; }
+
605 
+
606  friend
+
607  ostream_type &
+
608  operator << ( ostream_type & stream, Biarc const & bi );
+
609 
+
610  };
+
611 
+
612  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
613 
+
614  bool
+
615  build_guess_theta(
+
616  int_type n,
+
617  real_type const x[],
+
618  real_type const y[],
+
619  real_type theta[]
+
620  );
+
621 
+
622 }
+
623 
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Compute biarc fitting by Hemite data.
Definition: Biarc.hxx:40
+
virtual void eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: Biarc.cc:698
+
virtual void eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: Biarc.cc:681
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: Biarc.cc:664
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Biarc.hxx:159
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
Definition: Biarc.cc:811
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Biarc.cc:196
+
virtual real_type length_ISO(real_type offs) const UTILS_OVERRIDE
Definition: Biarc.hxx:164
+
Biarc(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
construct a clothoid with the standard parameters
Definition: Biarc.hxx:73
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: Biarc.cc:214
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: Biarc.cc:647
+
bool build(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
construct a biarc with the standard parameters
Definition: Biarc.cc:86
+
bool build_3P(real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)
construct a biarc by 3 point at "minimum energy"
Definition: Biarc.cc:138
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
virtual real_type length_ISO(real_type offs) const UTILS_OVERRIDE
Definition: Circle.hxx:312
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Circle.hxx:307
+
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/de/d56/class_g2lib_1_1_b_box.html b/docs/de/d56/class_g2lib_1_1_b_box.html new file mode 100644 index 00000000..1e85dd8d --- /dev/null +++ b/docs/de/d56/class_g2lib_1_1_b_box.html @@ -0,0 +1,167 @@ + + + + + + + +Clothoids: G2lib::BBox Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::BBox Class Reference
+
+
+ +

Class to manipulate bounding box. + More...

+ +

#include <AABBtree.hxx>

+ + + + +

+Public Types

+typedef BBox const * PtrBBox
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BBox (real_type xmin, real_type ymin, real_type xmax, real_type ymax, int_type id, int_type ipos)
 
BBox (vector< PtrBBox > const &bboxes, int_type id, int_type ipos)
 
+real_type Xmin () const
 
+real_type Ymin () const
 
+real_type Xmax () const
 
+real_type Ymax () const
 
+int_type const & Id () const
 return BBOX id
 
+int_type const & Ipos () const
 return BBOX position
 
+BBox const & operator= (BBox const &rhs)
 
+bool collision (BBox const &box) const
 detect if two bbox collide
 
+void join (vector< PtrBBox > const &bboxes)
 Build bbox for a list of bbox.
 
+real_type distance (real_type x, real_type y) const
 distance of the point (x,y) to the bbox
 
+real_type maxDistance (real_type x, real_type y) const
 maximum distance of the point (x,y) to the point of bbox
 
+void print (ostream_type &stream) const
 
+ + + +

+Friends

+class AABBtree
 
+

Detailed Description

+

Class to manipulate bounding box.

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/de/d89/class_g2lib_1_1_base_curve-members.html b/docs/de/d89/class_g2lib_1_1_base_curve-members.html new file mode 100644 index 00000000..e0b2b0e2 --- /dev/null +++ b/docs/de/d89/class_g2lib_1_1_base_curve-members.html @@ -0,0 +1,232 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::BaseCurve Member List
+
+
+ +

This is the complete list of members for G2lib::BaseCurve, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
changeOrigin(real_type newx0, real_type newy0) UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurvevirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurvevirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurvevirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurvevirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
info(ostream_type &stream) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
length_ISO(real_type offs) const UTILS_PURE_VIRTUALG2lib::BaseCurvevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_Begin_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
reverse() UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
scale(real_type sc) UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tg(real_type s, real_type &tg_x, real_type &tg_y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_D(real_type s, real_type &tg_x_D, real_type &tg_y_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_DD(real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tg_DDD(real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
theta(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
theta_D(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
theta_DD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
theta_DDD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
thetaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
thetaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
translate(real_type tx, real_type ty) UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
trim(real_type s_begin, real_type s_end) UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_Begin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
tx_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
tx_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_Begin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
ty_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
ty_End() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_D(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_DD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_DDD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_D(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_DD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_DDD(real_type s) const UTILS_PURE_VIRTUAL (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurvevirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
+ + + + diff --git a/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.map b/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.map new file mode 100644 index 00000000..e5c6cd77 --- /dev/null +++ b/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.md5 b/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.md5 new file mode 100644 index 00000000..6d2203af --- /dev/null +++ b/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.md5 @@ -0,0 +1 @@ +88d65bbf7e0f001ff91c0a17cc2d94eb \ No newline at end of file diff --git a/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.png b/docs/de/de7/class_g2lib_1_1_biarc_list__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..cffb952462cd0ff8a313314f311dc4b4f09894f5 GIT binary patch literal 3991 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 literal 0 HcmV?d00001 diff --git a/docs/de/df9/class_g2lib_1_1_biarc-members.html b/docs/de/df9/class_g2lib_1_1_biarc-members.html new file mode 100644 index 00000000..703d9c81 --- /dev/null +++ b/docs/de/df9/class_g2lib_1_1_biarc-members.html @@ -0,0 +1,259 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::Biarc Member List
+
+
+ +

This is the complete list of members for G2lib::Biarc, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseCurve(CurveType const &type) (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::Biarcvirtual
bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDEG2lib::Biarcvirtual
bbox_SAE(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) constG2lib::BaseCurveinline
bbTriangles(std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::Biarc)G2lib::Biarcinline
bbTriangles_ISO(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::Biarc)G2lib::Biarcinline
bbTriangles_SAE(real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/18, real_type max_size=1e100, int_type icurve=0) const (defined in G2lib::Biarc)G2lib::Biarcinline
Biarc() (defined in G2lib::Biarc)G2lib::Biarcinline
Biarc(Biarc const &ba) (defined in G2lib::Biarc)G2lib::Biarcinline
Biarc(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)G2lib::Biarcinlineexplicit
Biarc(BaseCurve const &C) (defined in G2lib::Biarc)G2lib::Biarcexplicit
build(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)G2lib::Biarc
build_3P(real_type x0, real_type y0, real_type x1, real_type y1, real_type x2, real_type y2)G2lib::Biarc
C0() const (defined in G2lib::Biarc)G2lib::Biarcinline
C1() const (defined in G2lib::Biarc)G2lib::Biarcinline
changeOrigin(real_type newx0, real_type newy0) UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::Biarcvirtual
closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDEG2lib::Biarcvirtual
closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) constG2lib::BaseCurveinline
collision(Biarc const &B) const (defined in G2lib::Biarc)G2lib::Biarcinline
collision(BaseCurve const &C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_ISO(real_type offs, Biarc const &B, real_type offs_B) const (defined in G2lib::Biarc)G2lib::Biarcinline
collision_ISO(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
collision_SAE(real_type offs, BaseCurve const &C, real_type offs_C) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
copy(Biarc const &c) (defined in G2lib::Biarc)G2lib::Biarcinline
delta_theta() const (defined in G2lib::Biarc)G2lib::Biarcinline
distance(real_type qx, real_type qy) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
distance_ISO(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
distance_SAE(real_type qx, real_type qy, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
eval(real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
eval_D(real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDEG2lib::Biarcvirtual
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDEG2lib::Biarcvirtual
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDEG2lib::Biarcvirtual
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDEG2lib::Biarcvirtual
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) constG2lib::BaseCurveinline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) constG2lib::BaseCurveinline
eval_SAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) constG2lib::BaseCurveinline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) constG2lib::BaseCurveinline
evaluate(real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
evaluate_ISO(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
evaluate_SAE(real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
findST_ISO(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
findST_SAE(real_type x, real_type y, real_type &s, real_type &t) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
info(ostream_type &stream) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
intersect(Biarc const &B, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::Biarc)G2lib::Biarc
intersect(BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_ISO(real_type offs, Biarc const &B, real_type offs_B, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::Biarc)G2lib::Biarc
intersect_ISO(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
intersect_SAE(real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa0() const (defined in G2lib::Biarc)G2lib::Biarcinline
kappa1() const (defined in G2lib::Biarc)G2lib::Biarcinline
kappa_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappa_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
kappaBegin() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
kappaEnd() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
length() const UTILS_OVERRIDEG2lib::Biarcinlinevirtual
length0() const (defined in G2lib::Biarc)G2lib::Biarcinline
length1() const (defined in G2lib::Biarc)G2lib::Biarcinline
length_ISO(real_type offs) const UTILS_OVERRIDEG2lib::Biarcinlinevirtual
length_SAE(real_type offs) constG2lib::BaseCurveinline
m_type (defined in G2lib::BaseCurve)G2lib::BaseCurveprotected
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
nx_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_End_ISO() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
nx_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
nx_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_Begin_ISO() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
ny_Begin_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_End_ISO() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
ny_End_SAE() const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_ISO_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_D(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
ny_SAE_DDD(real_type s) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
operator<< (defined in G2lib::Biarc)G2lib::Biarcfriend
operator=(Biarc const &ba) (defined in G2lib::Biarc)G2lib::Biarcinline
reverse() UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
rotate(real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
scale(real_type s) UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tg(real_type s, real_type &tx, real_type &ty) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tg_D(real_type s, real_type &tx_D, real_type &ty_D) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tg_DD(real_type s, real_type &tx_DD, real_type &ty_DD) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tg_DDD(real_type s, real_type &tx_DDD, real_type &ty_DDD) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
theta(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
theta_D(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
theta_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
theta_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
thetaBegin() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
thetaEnd() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
thetaMiddle() const (defined in G2lib::Biarc)G2lib::Biarcinline
translate(real_type tx, real_type ty) UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
trim(real_type s_begin, real_type s_end) UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tx(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tx_Begin() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
tx_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tx_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tx_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
tx_End() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
ty(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
ty_Begin() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
ty_D(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
ty_DD(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
ty_DDD(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
ty_End() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
type() constG2lib::BaseCurveinline
X(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_D(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_ISO_D(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_ISO_DD(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_ISO_DDD(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
X_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xBegin() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
xBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xEnd() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
xEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
xEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
xMiddle() const (defined in G2lib::Biarc)G2lib::Biarcinline
Y(real_type s) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_D(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_DD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_DDD(real_type) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_ISO(real_type s, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_ISO_D(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_ISO_DD(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_ISO_DDD(real_type, real_type offs) const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcvirtual
Y_SAE(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yBegin() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
yBegin_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yBegin_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yEnd() const UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
yEnd_ISO(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
yEnd_SAE(real_type offs) const (defined in G2lib::BaseCurve)G2lib::BaseCurveinline
yMiddle() const (defined in G2lib::Biarc)G2lib::Biarcinline
~BaseCurve() (defined in G2lib::BaseCurve)G2lib::BaseCurveinlinevirtual
~Biarc() UTILS_OVERRIDE (defined in G2lib::Biarc)G2lib::Biarcinlinevirtual
+ + + + diff --git a/docs/de/dfa/class_generic_container_namespace_1_1_generic_container.html b/docs/de/dfa/class_generic_container_namespace_1_1_generic_container.html new file mode 100644 index 00000000..7d8cecc7 --- /dev/null +++ b/docs/de/dfa/class_generic_container_namespace_1_1_generic_container.html @@ -0,0 +1,1431 @@ + + + + + + + +Clothoids: GenericContainerNamespace::GenericContainer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
GenericContainerNamespace::GenericContainer Class Reference
+
+
+ +

GenericContainer is a class which permit to store eterogeneous data: + More...

+ +

#include <GenericContainer.hh>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef GenericContainerNamespace::pointer_type pointer_type
 
+typedef GenericContainerNamespace::bool_type bool_type
 
+typedef GenericContainerNamespace::int_type int_type
 
+typedef GenericContainerNamespace::uint_type uint_type
 
+typedef GenericContainerNamespace::long_type long_type
 
+typedef GenericContainerNamespace::ulong_type ulong_type
 
+typedef GenericContainerNamespace::real_type real_type
 
+typedef GenericContainerNamespace::complex_type complex_type
 
+typedef GenericContainerNamespace::string_type string_type
 
+typedef GenericContainerNamespace::vec_pointer_type vec_pointer_type
 
+typedef GenericContainerNamespace::vec_bool_type vec_bool_type
 
+typedef GenericContainerNamespace::vec_int_type vec_int_type
 
+typedef GenericContainerNamespace::vec_uint_type vec_uint_type
 
+typedef GenericContainerNamespace::vec_long_type vec_long_type
 
+typedef GenericContainerNamespace::vec_ulong_type vec_ulong_type
 
+typedef GenericContainerNamespace::vec_real_type vec_real_type
 
+typedef GenericContainerNamespace::vec_complex_type vec_complex_type
 
+typedef GenericContainerNamespace::vec_string_type vec_string_type
 
+typedef GenericContainerNamespace::vector_type vector_type
 
+typedef GenericContainerNamespace::map_type map_type
 
+typedef GenericContainerNamespace::mat_int_type mat_int_type
 
+typedef GenericContainerNamespace::mat_long_type mat_long_type
 
+typedef GenericContainerNamespace::mat_real_type mat_real_type
 
+typedef GenericContainerNamespace::mat_complex_type mat_complex_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+GENERIC_CONTAINER_API_DLL GenericContainer ()
 build an instance of GenericContainer with empty data
 
+GENERIC_CONTAINER_API_DLL ~GenericContainer ()
 destroy the instance of GenericContainer
 
+GENERIC_CONTAINER_API_DLL void clear ()
 free memory of the data stored in GenericContainer, data type become NOTYPE
 
+template<>
void get_value (unsigned &v, char const msg[]) const
 
+template<>
void get_value (int &v, char const msg[]) const
 
+template<>
void get_value (unsigned long &v, char const msg[]) const
 
+template<>
void get_value (long &v, char const msg[]) const
 
+template<>
void get_value (float &v, char const msg[]) const
 
+template<>
void get_value (double &v, char const msg[]) const
 
Initialize simple data
+GENERIC_CONTAINER_API_DLL pointer_type & set_pointer (pointer_type value)
 Set data to pointer_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL GenericContainerfree_pointer ()
 Free pointer to memory pointed, set data to NO TYPE initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL bool_type & set_bool (bool_type value)
 Set data to bool_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL int_type & set_int (int_type value)
 Set data to int_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL long_type & set_long (long_type value)
 Set data to int_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL real_type & set_real (real_type value)
 Set data to real_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL complex_type & set_complex (complex_type &value)
 Set data to complex_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL complex_type & set_complex (real_type r, real_type i)
 Set data to complex_type initialize and return a reference to the data.
 
+GENERIC_CONTAINER_API_DLL string_type & set_string (string_type const &value)
 Set data to string_type, allocate and initialize. Return a reference to the data.
 
Initialize vector data
+GENERIC_CONTAINER_API_DLL vec_pointer_type & set_vec_pointer (unsigned sz=0)
 :|: Set data to vec_pointer_type, allocate and initialize. :|: Return a reference to vector of pointer. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_pointer_type & set_vec_pointer (vec_pointer_type const &v)
 :|: Set data to vec_pointer_type, allocate and initialize. :|: Return a reference to vector of pointer. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_bool_type & set_vec_bool (unsigned sz=0)
 :|: Set data to vec_bool_type, allocate and initialize. :|: Return a reference to vector of booleans. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_bool_type & set_vec_bool (vec_bool_type const &v)
 :|: Set data to vec_bool_type, allocate and initialize. :|: Return a reference to vector of bool. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_int_type & set_vec_int (unsigned sz=0)
 :|: Set data to vec_int_type, allocate and initialize. :|: Return a reference to vector of integers. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_int_type & set_vec_int (vec_int_type const &v)
 :|: Set data to vec_int_type, allocate and initialize. :|: Return a reference to vector of integer. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_long_type & set_vec_long (unsigned sz=0)
 :|: Set data to vec_int_type, allocate and initialize. :|: Return a reference to vector of integers. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_long_type & set_vec_long (vec_long_type const &v)
 :|: Set data to vec_int_type, allocate and initialize. :|: Return a reference to vector of integer. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_real_type & set_vec_real (unsigned sz=0)
 :|: Set data to vec_real_type, allocate and initialize. :|: Return a reference to vector of floating point numbers. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_real_type & set_vec_real (vec_real_type const &v)
 :|: Set data to vec_real_type, allocate and initialize. :|: Return a reference to vector of floating point number. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_complex_type & set_vec_complex (unsigned sz=0)
 :|: Set data to vec_complex_type, allocate and initialize. :|: Return a reference to vector of complex floating point numbers. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_complex_type & set_vec_complex (vec_complex_type const &v)
 :|: Set data to vec_complex_type, allocate and initialize. :|: Return a reference to vector of complex floating point number. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL vec_string_type & set_vec_string (unsigned sz=0)
 :|: Set data to vec_string_type, allocate and initialize. :|: Return a reference to vector of strings. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL vec_string_type & set_vec_string (vec_string_type const &v)
 :|: Set data to vec_string_type, allocate and initialize. :|: Return a reference to vector of strings. :|: Copy the data from vector v. \
 
+GENERIC_CONTAINER_API_DLL mat_int_typeset_mat_int (unsigned nr=0, unsigned nc=0)
 :|: Set data to mat_int_type, allocate and initialize. :|: Return a reference to a matrix of floating point numbers. :|: If nr > 0 and nc > 0 then the matrix is allocated to size nr x nc. \
 
+GENERIC_CONTAINER_API_DLL mat_int_typeset_mat_int (mat_int_type const &m)
 :|: Set data to mat_int_type, allocate and initialize. :|: Return a reference to a matrix of floating point number. :|: Copy the data from matrix m. \
 
+GENERIC_CONTAINER_API_DLL mat_long_typeset_mat_long (unsigned nr=0, unsigned nc=0)
 :|: Set data to mat_long_type, allocate and initialize. :|: Return a reference to a matrix of floating point numbers. :|: If nr > 0 and nc > 0 then the matrix is allocated to size nr x nc. \
 
+GENERIC_CONTAINER_API_DLL mat_long_typeset_mat_long (mat_long_type const &m)
 :|: Set data to mat_long_type, allocate and initialize. :|: Return a reference to a matrix of floating point number. :|: Copy the data from matrix m. \
 
+GENERIC_CONTAINER_API_DLL mat_real_typeset_mat_real (unsigned nr=0, unsigned nc=0)
 :|: Set data to mat_real_type, allocate and initialize. :|: Return a reference to a matrix of floating point numbers. :|: If nr > 0 and nc > 0 then the matrix is allocated to size nr x nc. \
 
+GENERIC_CONTAINER_API_DLL mat_real_typeset_mat_real (mat_real_type const &m)
 :|: Set data to mat_real_type, allocate and initialize. :|: Return a reference to a matrix of floating point number. :|: Copy the data from matrix m. \
 
+GENERIC_CONTAINER_API_DLL mat_complex_typeset_mat_complex (unsigned nr=0, unsigned nc=0)
 :|: Set data to mat_complex_type, allocate and initialize. :|: Return a reference to a matrix of complex floating point numbers. :|: If nr > 0 and nc > 0 then the matrix is allocated to size nr x nc. \
 
+GENERIC_CONTAINER_API_DLL mat_complex_typeset_mat_complex (mat_complex_type const &m)
 :|: Set data to mat_complex_type, allocate and initialize. :|: Return a reference to a matrix of floating point number. :|: Copy the data from matrix m. \
 
+GENERIC_CONTAINER_API_DLL void push_bool (bool)
 push boolean if data is vec_bool_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_int (int_type)
 push integer if data is vec_int_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_long (long_type)
 push integer if data is vec_int_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_real (real_type)
 push real if data is vec_real_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_complex (complex_type &)
 push complex if data is vec_complex_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_complex (real_type re, real_type im)
 push complex if data is vec_complex_type or ‘vector_type’
 
+GENERIC_CONTAINER_API_DLL void push_string (string_type const &)
 push complex if data is vec_string_type or ‘vector_type’
 
Initialize generic data
+GENERIC_CONTAINER_API_DLL vector_type & set_vector (unsigned sz=0)
 :|: Set data to vector_type, allocate an empty generic vector and return a reference to it. :|: If sz > 0 then the vector is allocated to size sz. \
 
+GENERIC_CONTAINER_API_DLL map_type & set_map ()
 Set data to map_type, allocate an empty generic map and return a reference to it.
 
Access to a single element
GENERIC_CONTAINER_API_DLL TypeAllowed get_type () const
 Return an integer representing the type of data stored. More...
 
GENERIC_CONTAINER_API_DLL char const * get_type_name () const
 Return a string pointer representing the type of data stored. More...
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & info (ostream_type &stream) const
 Print to stream the kind of data stored.
 
GENERIC_CONTAINER_API_DLL unsigned get_num_elements () const
 
+GENERIC_CONTAINER_API_DLL unsigned get_numRows () const
 
+GENERIC_CONTAINER_API_DLL unsigned get_numCols () const
 
+GENERIC_CONTAINER_API_DLL real_type get_number () const
 If data is boolean, integer or floating point return number, otherwise return 0.
 
+GENERIC_CONTAINER_API_DLL complex_type get_complex_number () const
 If data is boolean, integer or floating point return number, otherwise return 0.
 
+GENERIC_CONTAINER_API_DLL void get_complex_number (real_type &re, real_type &im) const
 
+GENERIC_CONTAINER_API_DLL void * get_pvoid (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL void ** get_ppvoid (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL int_type const * get_int_pointer () const
 
+GENERIC_CONTAINER_API_DLL int_type * get_int_pointer ()
 
+GENERIC_CONTAINER_API_DLL long_type const * get_long_pointer () const
 
+GENERIC_CONTAINER_API_DLL long_type * get_long_pointer ()
 
+GENERIC_CONTAINER_API_DLL real_type const * get_real_pointer () const
 
+GENERIC_CONTAINER_API_DLL real_type * get_real_pointer ()
 
+GENERIC_CONTAINER_API_DLL complex_type const * get_complex_pointer () const
 
+GENERIC_CONTAINER_API_DLL complex_type * get_complex_pointer ()
 
+template<typename T >
GENERIC_CONTAINER_API_DLL void get_value (T &v, char const msg[]="") const
 
+template<typename T >
T & get_pointer ()
 
+template<typename T >
get_pointer () const
 
+GENERIC_CONTAINER_API_DLL bool_type get_map_bool (char const msg[]) const
 
+GENERIC_CONTAINER_API_DLL bool_type & get_bool (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL bool_type const & get_bool (char const msg[]=nullptr) const
 Return the stored boolean (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL int_type & get_int (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL int_type const & get_int (char const msg[]=nullptr) const
 Return the stored integer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL long_type & get_long (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL long_type const & get_long (char const msg[]=nullptr) const
 Return the stored long integer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL int_type get_as_int (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL uint_type get_as_uint (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL long_type get_as_long (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL ulong_type get_as_ulong (char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL real_type & get_real (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL real_type const & get_real (char const msg[]=nullptr) const
 Return the stored floating point (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL complex_type & get_complex (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL complex_type const & get_complex (char const msg[]=nullptr) const
 Return the stored complex floating point (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL string_type & get_string (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL string_type const & get_string (char const msg[]=nullptr) const
 Return the stored string (if fails issue an error).
 
Access to vector type data
+GENERIC_CONTAINER_API_DLL vector_type & get_vector (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vector_type const & get_vector (char const msg[]=nullptr) const
 Return reference to a generic vector (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_pointer_type & get_vec_pointer (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_pointer_type const & get_vec_pointer (char const msg[]=nullptr) const
 Return reference to a vector of pointer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_bool_type & get_vec_bool (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_bool_type const & get_vec_bool (char const msg[]=nullptr) const
 Return reference to a vector of booleans (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_int_type & get_vec_int (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_int_type const & get_vec_int (char const msg[]=nullptr) const
 Return reference to a vector of integers (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_long_type & get_vec_long (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_long_type const & get_vec_long (char const msg[]=nullptr) const
 Return reference to a vector of integers (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_real_type & get_vec_real (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_real_type const & get_vec_real (char const msg[]=nullptr) const
 Return reference to a vector of floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_complex_type & get_vec_complex (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_complex_type const & get_vec_complex (char const msg[]=nullptr) const
 Return reference to a vector of complex floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL mat_int_typeget_mat_int (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL mat_int_type const & get_mat_int (char const msg[]=nullptr) const
 Return reference to a matrix of integers (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL mat_long_typeget_mat_long (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL mat_long_type const & get_mat_long (char const msg[]=nullptr) const
 Return reference to a matrix of long intgers (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL mat_real_typeget_mat_real (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL mat_real_type const & get_mat_real (char const msg[]=nullptr) const
 Return reference to a matrix of floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL mat_complex_typeget_mat_complex (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL mat_complex_type const & get_mat_complex (char const msg[]=nullptr) const
 Return reference to a matrix of complex floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL vec_string_type & get_vec_string (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL vec_string_type const & get_vec_string (char const msg[]=nullptr) const
 Return reference to a vector of strings (if fails issue an error).
 
Access to vector type data and convert
+GENERIC_CONTAINER_API_DLL void copyto_vec_int (vec_int_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_uint (vec_uint_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_long (vec_long_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_ulong (vec_ulong_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_real (vec_real_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_complex (vec_complex_type &v, char const msg[]="") const
 
+GENERIC_CONTAINER_API_DLL void copyto_vec_string (vec_string_type &v, char const msg[]="") const
 
Access to element of vector type data
+GENERIC_CONTAINER_API_DLL real_type get_number_at (unsigned i) const
 If i-th element of the vector is boolean, integer or floating point then return number, otherwise return 0.
 
+GENERIC_CONTAINER_API_DLL complex_type get_complex_number_at (unsigned i) const
 
+GENERIC_CONTAINER_API_DLL void get_complex_number_at (unsigned i, real_type &re, real_type &im) const
 
+template<typename T >
T & get_pointer_at (unsigned i)
 
+template<typename T >
get_pointer_at (unsigned i) const
 Return i-th generic pointer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL bool_type get_bool_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL bool_type get_bool_at (unsigned i, char const msg[]) const
 Return i-th boolean (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL int_type & get_int_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL int_type const & get_int_at (unsigned i, char const msg[]) const
 Return i-th integer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL long_type & get_long_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL long_type const & get_long_at (unsigned i, char const msg[]) const
 Return i-th integer (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL real_type & get_real_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL real_type const & get_real_at (unsigned i, char const msg[]) const
 Return i-th floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL complex_type & get_complex_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL complex_type const & get_complex_at (unsigned i, char const msg[]) const
 Return i-th complex floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL int_type & get_int_at (unsigned i, unsigned j)
 
+GENERIC_CONTAINER_API_DLL int_type const & get_int_at (unsigned i, unsigned j, char const msg[]) const
 Return i-th integer number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL long_type & get_long_at (unsigned i, unsigned j)
 
+GENERIC_CONTAINER_API_DLL long_type const & get_long_at (unsigned i, unsigned j, char const msg[]) const
 Return i-th long integer number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL real_type & get_real_at (unsigned i, unsigned j)
 
+GENERIC_CONTAINER_API_DLL real_type const & get_real_at (unsigned i, unsigned j, char const msg[]) const
 Return i-th floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL complex_type & get_complex_at (unsigned i, unsigned j)
 
+GENERIC_CONTAINER_API_DLL complex_type const & get_complex_at (unsigned i, unsigned j, char const msg[]) const
 Return i-th complex floating point number (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL string_type & get_string_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL string_type const & get_string_at (unsigned i, char const msg[]) const
 Return i-th string (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL GenericContainerget_gc_at (unsigned i)
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & get_gc_at (unsigned i, char const msg[]) const
 Return i-th GenericContainer of a generic vector (if fails issue an error).
 
Access to map type element
+GENERIC_CONTAINER_API_DLL map_type & get_map (char const msg[]=nullptr)
 
+GENERIC_CONTAINER_API_DLL map_type const & get_map (char const msg[]=nullptr) const
 Return the reference of the stored map or issue an error.
 
Access using operators
+GENERIC_CONTAINER_API_DLL GenericContaineroperator[] (unsigned i)
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & operator[] (unsigned i) const
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator[] (std::string const &s)
 :|: Overload of the [] operator to access the i-th element of a stored generic vector. :|: Run time bound check. \
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & operator[] (std::string const &s) const
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator() (unsigned i, char const msg[]=nullptr)
 :|: Overload of the [] operator to access the s-th element of a stored generic map. :|: If the element do not exists it is created. \
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & operator() (unsigned i, char const msg[]=nullptr) const
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator() (std::string const &s, char const msg[]=nullptr)
 :|: Overload of the () operator to access the i-th element of a stored generic vector. :|: NO run time bound check. \
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & operator() (std::string const &s, char const msg[]=nullptr) const
 
Initialize data using set command

:|: Overload of the () operator to access the s-th element of a stored generic map. :|: If the element do not exists an error is issued. \

+
+GENERIC_CONTAINER_API_DLL void set (bool const &a)
 Assign a boolean to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (uint_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (int_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (ulong_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (long_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (float const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (double const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (std::complex< float > const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (std::complex< double > const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (char const a[])
 Assign a string to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (std::string const &a)
 Assign a string to the generic container.
 
+GENERIC_CONTAINER_API_DLL void set (pointer_type a)
 Assign a pointer to the generic container.
 
Initialize data using operators

The = operator is overloaded to initialize the GenericContainer on its left side.

+
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (bool const &a)
 Assign a boolean to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (uint_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (int_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (ulong_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (long_type const &a)
 Assign an integer to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (float const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (double const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (std::complex< float > const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (std::complex< double > const &a)
 Assign a floating point number to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_bool_type const &a)
 Assign a vec_bool_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_int_type const &a)
 Assign a vec_int_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_long_type const &a)
 Assign a vec_long_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_real_type const &a)
 Assign a vec_real_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_complex_type const &a)
 Assign a vec_complex_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (vec_string_type const &a)
 Assign a vec_string_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (mat_int_type const &a)
 Assign a vec_int_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (mat_long_type const &a)
 Assign a vec_long_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (mat_real_type const &a)
 Assign a vec_real_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (mat_complex_type const &a)
 Assign a vec_complex_type to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (char const a[])
 Assign a string to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (std::string const &a)
 Assign a string to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContaineroperator= (pointer_type a)
 Assign a pointer to the generic container.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & operator= (GenericContainer const &a)
 Assign a generic container a to the generic container.
 
GENERIC_CONTAINER_API_DLL void load (GenericContainer const &a)
 Copy a generic container a to the generic container. More...
 
Promotion to a `‘bigger’' data
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_int ()
 If data contains a boolean it is promoted to an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_long ()
 If data contains a boolean it is promoted to an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_real ()
 If data contains a boolean or an integer it is promoted to a real.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_complex ()
 If data contains a boolean or an integer or floating point it is promoted to a complex floating point.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_vec_int ()
 If data contains vector of booleans it is promoted to a vector of integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_vec_long ()
 If data contains vector of booleans it is promoted to a vector of integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_vec_real ()
 If data contains vector of booleans or integer it is promoted to a vector of real.
 
GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_vec_complex ()
 If data contains vector of booleans or integer or real it is promoted to a vector of complex. More...
 
GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_mat_int ()
 If data contains vector of booleans, integer or real it is promoted to a matrix of integer. More...
 
GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_mat_long ()
 If data contains vector of booleans, integer or real it is promoted to a matrix of long integer. More...
 
GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_mat_real ()
 If data contains vector of booleans, integer or real it is promoted to a matrix of real. More...
 
GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_mat_complex ()
 If data contains vector of booleans, integer or real or complex or matrix of real it is promoted to a matrix of complex. More...
 
+GENERIC_CONTAINER_API_DLL GenericContainer const & promote_to_vector ()
 If data contains vector of someting it is promoted to a vector of GenericContainer.
 
Initialize data by overloading constructor
+GENERIC_CONTAINER_API_DLL GenericContainer (bool const &a)
 Construct a generic container storing a boolean.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (uint_type const &a)
 Construct a generic container storing an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (int_type const &a)
 Construct a generic container storing an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (ulong_type const &a)
 Construct a generic container storing an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (long_type const &a)
 Construct a generic container storing an integer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (float const &a)
 Construct a generic container storing a floating point number.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (double const &a)
 Construct a generic container storing a floating point number.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (std::complex< float > const &a)
 Construct a generic container storing a complex floating point number.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (std::complex< double > const &a)
 Construct a generic container storing a complex floating point number.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (char const a[])
 Construct a generic container storing a string.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (std::string const &a)
 Construct a generic container storing a string.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (pointer_type a)
 Construct a generic container storing a pointer.
 
+GENERIC_CONTAINER_API_DLL GenericContainer (GenericContainer const &gc)
 Construct a generic container copying container gc
 
Utilities methods
+GENERIC_CONTAINER_API_DLL bool exists (std::string const &s) const
 Check if string s is a key of the stored map (if fails issue an error).
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], bool &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], int_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], uint_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], long_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], ulong_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], real_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], complex_type &value) const
 
+GENERIC_CONTAINER_API_DLL bool get_if_exists (char const field[], string_type &value) const
 
+ + + + + + + + + + + + + + + + + + + + + + +

I/O for <tt>GenericContainer</tt> objects

+GENERIC_CONTAINER_API_DLL void print_content_types (ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") const
 print the contents of the object in a human readable way (without data)
 
+GENERIC_CONTAINER_API_DLL void dump (ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") const
 dump the contents of the object in a human readable way
 
+GENERIC_CONTAINER_API_DLL void print (ostream_type &stream, std::string const &prefix="", std::string const &indent=" ") const
 
+GENERIC_CONTAINER_API_DLL void to_yaml (ostream_type &, std::string const &prefix="") const
 print the contents of the object in yaml syntax
 
GENERIC_CONTAINER_API_DLL GenericContainer const & writeFormattedData (ostream_type &stream, char const delimiter='\t') const
 write GenericContainer as regular formatted data : : Write the contents of the GenericContainer object to stream. : : : : GenericContainer must be a map which contains the fields: : : : : - "headers" this element must be a vec_string_type which contains : : the strings of the headers of the columns of the data : : : : - "data" this element must be a vector_type which contais the : : vectors which are the columns of the data to be saved. : : Each column can be of type : : : : 1. vec_bool_type : : 2. vec_int_type : : 3. vec_real_type : : : : all the vector must have the same size. : : : : More...
 
GENERIC_CONTAINER_API_DLL GenericContainerreadFormattedData (std::istream &stream, char const commentChars[]="#%", char const delimiters[]=" \t")
 read regular formatted data from stream to GenericContainer. : : After successful read GenericContainer will be a map which contains the fields: : : : : - "headers" a vec_string_type which contains : : the strings of the headers of the columns of the data : : : : - "data" a vector_type which contais the vectors which are the : : columns of the data readed of type vec_real_type. : : : : More...
 
+GENERIC_CONTAINER_API_DLL GenericContainerreadFormattedData (char const fname[], char const commentChars[]="#%", char const delimiters[]=" \t")
 
+static GENERIC_CONTAINER_API_DLL void exception (char const msg[]) GC_NO_RETURN
 
+

Detailed Description

+

GenericContainer is a class which permit to store eterogeneous data:

+
    +
  • pointer
  • +
  • boolean
  • +
  • integer
  • +
  • long integer
  • +
  • floating point
  • +
  • complex floating point
  • +
  • string
  • +
  • vector of pointer
  • +
  • vector of boolean
  • +
  • vector of integer
  • +
  • vector of floating point
  • +
  • vector of complex floating point
  • +
  • matrix of floating point
  • +
  • matrix of complex floating point
  • +
  • vector of string
  • +
+

in addition to this data type the following two container are added

+ +

Member Function Documentation

+ +

◆ get_num_elements()

+ +
+
+ + + + + + + +
unsigned GenericContainerNamespace::GenericContainer::get_num_elements () const
+
+

Return the number of the elements of the first level of the generic container 1 for single element, the size of vector or map, or 0

+ +
+
+ +

◆ get_type()

+ +
+
+ + + + + +
+ + + + + + + +
GENERIC_CONTAINER_API_DLL TypeAllowed GenericContainerNamespace::GenericContainer::get_type () const
+
+inline
+
+ +

Return an integer representing the type of data stored.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
: : Integer to data type map
: :
: : - No data stored (return 0)
: : 1. pointer_type
: : 2. bool_type
: : 3. int_type
: : 4. long_type
: : 5. real_type
: : 6. complex_type
: : 7. string_data
: : 8. vec_pointer_type
: : 9. vec_bool_type
: : 10. vec_int_type
: : 11. vec_long_type
: : 12. vec_real_type
: : 13. vec_complex_type
: : 14. vec_string_type
: : 15. mat_int_type
: : 16. mat_long_type
: : 17. mat_real_type
: : 18. mat_complex_type
: : 19. vector_type
: : 20. map_type
+

\

+ +
+
+ +

◆ get_type_name()

+ +
+
+ + + + + + + +
char const * GenericContainerNamespace::GenericContainer::get_type_name () const
+
+ +

Return a string pointer representing the type of data stored.

+

Return a string representing the type of data stored.

+ +
+
+ +

◆ load()

+ +
+
+ + + + + + + + +
void GenericContainerNamespace::GenericContainer::load (GenericContainer const & a)
+
+ +

Copy a generic container a to the generic container.

+

Assign a generic container a to the generic container.

+ +
+
+ +

◆ promote_to_mat_complex()

+ +
+
+ + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::promote_to_mat_complex ()
+
+ +

If data contains vector of booleans, integer or real or complex or matrix of real it is promoted to a matrix of complex.

+

If data contains vector of booleans, integer or real it is promoted to a vector of real.

+ +
+
+ +

◆ promote_to_mat_int()

+ +
+
+ + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::promote_to_mat_int ()
+
+ +

If data contains vector of booleans, integer or real it is promoted to a matrix of integer.

+

If data contains vector of booleans, integer or real it is promoted to a vector of integers.

+ +
+
+ +

◆ promote_to_mat_long()

+ +
+
+ + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::promote_to_mat_long ()
+
+ +

If data contains vector of booleans, integer or real it is promoted to a matrix of long integer.

+

If data contains vector of booleans, integer or real it is promoted to a vector of long.

+ +
+
+ +

◆ promote_to_mat_real()

+ +
+
+ + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::promote_to_mat_real ()
+
+ +

If data contains vector of booleans, integer or real it is promoted to a matrix of real.

+

If data contains vector of booleans, integer or real it is promoted to a vector of real.

+ +
+
+ +

◆ promote_to_vec_complex()

+ +
+
+ + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::promote_to_vec_complex ()
+
+ +

If data contains vector of booleans or integer or real it is promoted to a vector of complex.

+

If data contains vector of booleans or integer it is promoted to a vector of real.

+ +
+
+ +

◆ readFormattedData()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GenericContainer & GenericContainerNamespace::GenericContainer::readFormattedData (std::istream & stream,
char const commentChars[] = "#%",
char const delimiters[] = " \t" 
)
+
+ +

read regular formatted data from stream to GenericContainer. : : After successful read GenericContainer will be a map which contains the fields: : : : : - "headers" a vec_string_type which contains : : the strings of the headers of the columns of the data : : : : - "data" a vector_type which contais the vectors which are the : : columns of the data readed of type vec_real_type. : : : :

+ + + + + + + + + +
: :
Parameters
+ + +
streamstream to write the output
+
+
+
: :
Parameters
+ + +
commentCharslines beginnig with one of this chars are treated as comments.
+
+
+
: : Default are # and %
: :
Parameters
+ + +
delimiterscaracters used as delimiter for headers
+
+
+
+

\

+ +
+
+ +

◆ writeFormattedData()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GenericContainer const & GenericContainerNamespace::GenericContainer::writeFormattedData (ostream_type & stream,
char const delimiter = '\t' 
) const
+
+ +

write GenericContainer as regular formatted data : : Write the contents of the GenericContainer object to stream. : : : : GenericContainer must be a map which contains the fields: : : : : - "headers" this element must be a vec_string_type which contains : : the strings of the headers of the columns of the data : : : : - "data" this element must be a vector_type which contais the : : vectors which are the columns of the data to be saved. : : Each column can be of type : : : : 1. vec_bool_type : : 2. vec_int_type : : 3. vec_real_type : : : : all the vector must have the same size. : : : :

+ + + + + +
: :
Parameters
+ + +
streamstream to write the output
+
+
+
: :
Parameters
+ + +
delimiterdesired delimiter (optional). Default is tab.
+
+
+
+

\

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • submodules/GenericContainer/src/GenericContainer.hh
  • +
  • submodules/GenericContainer/src/GenericContainer.cc
  • +
  • submodules/GenericContainer/src/GenericContainerSupport.cc
  • +
+
+ + + + diff --git a/docs/df/d18/class_g2lib_1_1_clothoid_data-members.html b/docs/df/d18/class_g2lib_1_1_clothoid_data-members.html new file mode 100644 index 00000000..08e35b38 --- /dev/null +++ b/docs/df/d18/class_g2lib_1_1_clothoid_data-members.html @@ -0,0 +1,200 @@ + + + + + + + +Clothoids: Member List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
G2lib::ClothoidData Member List
+
+
+ +

This is the complete list of members for G2lib::ClothoidData, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aplus(real_type dtheta) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
bbTriangle(real_type L, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
bbTriangle_ISO(real_type L, real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
bbTriangle_SAE(real_type L, real_type offs, real_type &xx0, real_type &yy0, real_type &xx1, real_type &yy1, real_type &xx2, real_type &yy2) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
build_forward(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type tol, real_type &L) (defined in G2lib::ClothoidData)G2lib::ClothoidData
build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol, real_type &L, bool compute_deriv=false, real_type L_D[2]=nullptr, real_type k_D[2]=nullptr, real_type dk_D[2]=nullptr) (defined in G2lib::ClothoidData)G2lib::ClothoidData
c0x() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
c0y() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
ClothoidData() (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
deltaTheta(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
dkG2lib::ClothoidData
eval(real_type s, real_type &x, real_type &y) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval(real_type s, ClothoidData &C) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_D(real_type s, real_type &x_D, real_type &y_D) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_DAE_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
eval_DD(real_type s, real_type &x_DD, real_type &y_DD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_DDD(real_type s, real_type &x_DDD, real_type &y_DDD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
eval_SAE(real_type s, real_type offs, real_type &x, real_type &y) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
eval_SAE_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
eval_SAE_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
evaluate(real_type s, real_type &theta, real_type &kappa, real_type &x, real_type &y) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
info(ostream_type &s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
kappa(real_type s) constG2lib::ClothoidDatainline
kappa0G2lib::ClothoidData
kappa_D(real_type) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
kappa_DD(real_type) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
kappa_DDD(real_type) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor0_x_ISO() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor0_x_SAE() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor0_y_ISO() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor0_y_SAE() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_ISO(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_ISO_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_ISO_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_ISO_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_SAE(real_type s, real_type &nx, real_type &ny) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_SAE_D(real_type s, real_type &nx_D, real_type &ny_D) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_SAE_DD(real_type s, real_type &nx_DD, real_type &ny_DD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_SAE_DDD(real_type s, real_type &nx_DDD, real_type &ny_DDD) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
nor_x_ISO(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_ISO_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_ISO_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_ISO_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_SAE(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_SAE_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_SAE_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_x_SAE_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_ISO(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_ISO_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_ISO_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_ISO_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_SAE(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_SAE_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_SAE_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
nor_y_SAE_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
origin_at(real_type s_origin) (defined in G2lib::ClothoidData)G2lib::ClothoidData
Pinfinity(real_type &x, real_type &y, bool plus) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
reverse(real_type L) (defined in G2lib::ClothoidData)G2lib::ClothoidData
reverse(real_type L, ClothoidData &out) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
rotate(real_type angle, real_type cx, real_type cy) (defined in G2lib::ClothoidData)G2lib::ClothoidData
split_at_flex(ClothoidData &C0, ClothoidData &C1) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg(real_type s, real_type &tx, real_type &ty) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg0_x() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
tg0_y() const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
tg_D(real_type s, real_type &tx, real_type &ty) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_DD(real_type s, real_type &tx, real_type &ty) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_DDD(real_type s, real_type &tx, real_type &ty) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_x(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
tg_x_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_x_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_x_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_y(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
tg_y_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_y_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
tg_y_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
theta(real_type s) constG2lib::ClothoidDatainline
theta0G2lib::ClothoidData
theta_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
theta_DD(real_type) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
theta_DDD(real_type) const (defined in G2lib::ClothoidData)G2lib::ClothoidDatainline
X(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
x0G2lib::ClothoidData
X_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_ISO(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_ISO_D(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_ISO_DD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_SAE(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_SAE_D(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_SAE_DD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
X_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
y0G2lib::ClothoidData
Y_D(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_DD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_DDD(real_type s) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_ISO(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_ISO_D(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_ISO_DD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_ISO_DDD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_SAE(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_SAE_D(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_SAE_DD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
Y_SAE_DDD(real_type s, real_type offs) const (defined in G2lib::ClothoidData)G2lib::ClothoidData
+ + + + diff --git a/docs/df/d29/class_g2lib_1_1_biarc_list.html b/docs/df/d29/class_g2lib_1_1_biarc_list.html new file mode 100644 index 00000000..7ce0dcf5 --- /dev/null +++ b/docs/df/d29/class_g2lib_1_1_biarc_list.html @@ -0,0 +1,1872 @@ + + + + + + + +Clothoids: G2lib::BiarcList Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::BiarcList Class Reference
+
+
+ +

Class to manage a list of biarc Curve (not necessarily G2 or G1 connected) + More...

+ +

#include <BiarcList.hxx>

+
+Inheritance diagram for G2lib::BiarcList:
+
+
Inheritance graph
+ + + + +
[legend]
+
+Collaboration diagram for G2lib::BiarcList:
+
+
Collaboration graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BiarcList (BiarcList const &s)
 
+void init ()
 
+void reserve (int_type n)
 
+void copy (BiarcList const &L)
 
+BiarcList const & operator= (BiarcList const &s)
 
BiarcList (LineSegment const &LS)
 
BiarcList (CircleArc const &C)
 
BiarcList (Biarc const &C)
 
BiarcList (PolyLine const &pl)
 
BiarcList (BaseCurve const &C)
 
+void push_back (LineSegment const &c)
 
+void push_back (CircleArc const &c)
 
+void push_back (Biarc const &c)
 
+void push_back (PolyLine const &c)
 
+void push_back_G1 (real_type x1, real_type y1, real_type theta1)
 
+void push_back_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
 
+bool build_G1 (int_type n, real_type const x[], real_type const y[])
 
+bool build_G1 (int_type n, real_type const x[], real_type const y[], real_type const theta[])
 
+Biarc const & get (int_type idx) const
 
+Biarc const & getAtS (real_type s) const
 
+int_type numSegment () const
 
+int_type findAtS (real_type &s) const
 
virtual real_type length () const UTILS_OVERRIDE
 
virtual real_type length_ISO (real_type offs) const UTILS_OVERRIDE
 
+real_type segment_length (int_type nseg) const
 
+real_type segment_length_ISO (int_type nseg, real_type offs) const
 
+void bbTriangles_ISO (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void bbTriangles_SAE (real_type offs, std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void bbTriangles (std::vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void build_AABBtree_ISO (real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
+void build_AABBtree_SAE (real_type offs, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100) const
 
virtual void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
virtual void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
 
+virtual real_type thetaBegin () const UTILS_OVERRIDE
 
+virtual real_type thetaEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin () const UTILS_OVERRIDE
 
+virtual real_type yBegin () const UTILS_OVERRIDE
 
+virtual real_type xEnd () const UTILS_OVERRIDE
 
+virtual real_type yEnd () const UTILS_OVERRIDE
 
+virtual real_type xBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yBegin_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type xEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type yEnd_ISO (real_type offs) const UTILS_OVERRIDE
 
+virtual real_type tx_Begin () const UTILS_OVERRIDE
 
+virtual real_type ty_Begin () const UTILS_OVERRIDE
 
+virtual real_type tx_End () const UTILS_OVERRIDE
 
+virtual real_type ty_End () const UTILS_OVERRIDE
 
+virtual real_type nx_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_Begin_ISO () const UTILS_OVERRIDE
 
+virtual real_type nx_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type ny_End_ISO () const UTILS_OVERRIDE
 
+virtual real_type theta (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type theta_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type tx_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type ty_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void tg (real_type s, real_type &tg_x, real_type &tg_y) const UTILS_OVERRIDE
 
+virtual void tg_D (real_type s, real_type &tg_x_D, real_type &tg_y_D) const UTILS_OVERRIDE
 
+virtual void tg_DD (real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const UTILS_OVERRIDE
 
+virtual void tg_DDD (real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const UTILS_OVERRIDE
 
+virtual void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual real_type X (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_D (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_DD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type X_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual real_type Y_DDD (real_type s) const UTILS_OVERRIDE
 
+virtual void eval (real_type s, real_type &x, real_type &y) const UTILS_OVERRIDE
 
+virtual void eval_D (real_type s, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
+virtual void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
+virtual void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual real_type X_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_D (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type X_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
+virtual real_type Y_ISO_DDD (real_type s, real_type offs) const UTILS_OVERRIDE
 
virtual void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
 
virtual void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
 
virtual void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
 
virtual void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
 
+virtual void translate (real_type tx, real_type ty) UTILS_OVERRIDE
 
+virtual void rotate (real_type angle, real_type cx, real_type cy) UTILS_OVERRIDE
 
+virtual void scale (real_type sc) UTILS_OVERRIDE
 
+virtual void reverse () UTILS_OVERRIDE
 
+virtual void changeOrigin (real_type newx0, real_type newy0) UTILS_OVERRIDE
 
+virtual void trim (real_type s_begin, real_type s_end) UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
virtual int_type closestPoint_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
 
+virtual void info (ostream_type &stream) const UTILS_OVERRIDE
 
+void getSTK (real_type s[], real_type theta[], real_type kappa[]) const
 
+void getXY (real_type x[], real_type y[]) const
 
int_type findST1 (real_type x, real_type y, real_type &s, real_type &t) const
 Find parametric coordinate. More...
 
int_type findST1 (int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const
 Find parametric coordinate. More...
 
+bool collision (BiarcList const &C) const
 
+bool collision_ISO (real_type offs, BiarcList const &CL, real_type offs_C) const
 
+void intersect (BiarcList const &CL, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BiarcList const &CL, real_type offs_obj, IntersectList &ilist, bool swap_s_vals) const
 
CurveType type () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
+virtual real_type kappaBegin () const
 
+virtual real_type kappaEnd () const
 
+real_type xBegin_SAE (real_type offs) const
 
+real_type yBegin_SAE (real_type offs) const
 
+real_type xEnd_SAE (real_type offs) const
 
+real_type yEnd_SAE (real_type offs) const
 
+real_type nx_Begin_SAE () const
 
+real_type ny_Begin_SAE () const
 
+real_type nx_End_SAE () const
 
+real_type ny_End_SAE () const
 
+real_type kappa (real_type s) const
 
+real_type kappa_D (real_type s) const
 
+real_type kappa_DD (real_type s) const
 
+real_type nx_ISO (real_type s) const
 
+real_type nx_ISO_D (real_type s) const
 
+real_type nx_ISO_DD (real_type s) const
 
+real_type nx_ISO_DDD (real_type s) const
 
+real_type ny_ISO (real_type s) const
 
+real_type ny_ISO_D (real_type s) const
 
+real_type ny_ISO_DD (real_type s) const
 
+real_type ny_ISO_DDD (real_type s) const
 
+real_type nx_SAE (real_type s) const
 
+real_type nx_SAE_D (real_type s) const
 
+real_type nx_SAE_DD (real_type s) const
 
+real_type nx_SAE_DDD (real_type s) const
 
+real_type ny_SAE (real_type s) const
 
+real_type ny_SAE_D (real_type s) const
 
+real_type ny_SAE_DD (real_type s) const
 
+real_type ny_SAE_DDD (real_type s) const
 
+void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
+void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
+void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
+void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
+void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
+virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
+real_type X_SAE (real_type s, real_type offs) const
 
+real_type Y_SAE (real_type s, real_type offs) const
 
+real_type X_SAE_D (real_type s, real_type offs) const
 
+real_type Y_SAE_D (real_type s, real_type offs) const
 
+real_type X_SAE_DD (real_type s, real_type offs) const
 
+real_type Y_SAE_DD (real_type s, real_type offs) const
 
+real_type X_SAE_DDD (real_type s, real_type offs) const
 
+real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
+bool collision (BaseCurve const &C) const
 
+bool collision_ISO (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+bool collision_SAE (real_type offs, BaseCurve const &C, real_type offs_C) const
 
+void intersect (BaseCurve const &C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_ISO (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
+void intersect_SAE (real_type offs, BaseCurve const &C, real_type offs_C, IntersectList &ilist, bool swap_s_vals) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
int_type closestPoint_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
+virtual real_type distance (real_type qx, real_type qy) const
 
+real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
+real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
+bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
+bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 
+ + + +

+Protected Attributes

+CurveType m_type
 
+ + + + + +

+Friends

+class ClothoidList
 
+ostream_type & operator<< (ostream_type &stream, BiarcList const &CL)
 
+

Detailed Description

+

Class to manage a list of biarc Curve (not necessarily G2 or G1 connected)

+

Member Function Documentation

+ +

◆ bbox()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void G2lib::BiarcList::bbox (real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlinevirtual
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BiarcList::bbox_ISO (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+virtual
+
+

Compute the bounding box of the curve with offset

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ bbox_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::bbox_SAE (real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax 
) const
+
+inlineinherited
+
+

Compute the bounding box of the curve

Parameters
+ + + + + +
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top
+
+
+ +
+
+ +

◆ closestPoint_ISO() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BiarcList::closestPoint_ISO (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_ISO() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BiarcList::closestPoint_ISO (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+virtual
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ closestPoint_SAE() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ closestPoint_SAE() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BaseCurve::closestPoint_SAE (real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst 
) const
+
+inlineinherited
+
+
Parameters
+ + + + + + + + + +
qxx-coordinate of the point
qyy-coordinate of the point
offsoffset of the curve
xx-coordinate of the projected point on the curve
yy-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
+
+
+
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve
+ +
+
+ +

◆ eval_ISO()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BiarcList::eval_ISO (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+virtual
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BiarcList::eval_ISO_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+virtual
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BiarcList::eval_ISO_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+virtual
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_ISO_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BiarcList::eval_ISO_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+virtual
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ eval_SAE()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE (real_type s,
real_type offs,
real_type & x,
real_type & y 
) const
+
+inlineinherited
+
+

Compute curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate
+
+
+ +
+
+ +

◆ eval_SAE_D()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_D (real_type s,
real_type offs,
real_type & x_D,
real_type & y_D 
) const
+
+inlineinherited
+
+

Compute derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_Dcoordinate
[out]y_Dcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DD (real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD 
) const
+
+inlineinherited
+
+

Compute second derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDcoordinate
[out]y_DDcoordinate
+
+
+ +
+
+ +

◆ eval_SAE_DDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void G2lib::BaseCurve::eval_SAE_DDD (real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD 
) const
+
+inlineinherited
+
+

Compute third derivative curve at position s with offset offs

+
Parameters
+ + + + + +
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDDcoordinate
[out]y_DDDcoordinate
+
+
+ +
+
+ +

◆ findST1() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BiarcList::findST1 (int_type ibegin,
int_type iend,
real_type x,
real_type y,
real_type & s,
real_type & t 
) const
+
+ +

Find parametric coordinate.

+
Parameters
+ + + + + + + +
ibegininitial segment to compute the distance
iendfinal segment to compute the distance
xx-coordinate point
yy-coordinate point
svalue \( s \)
tvalue \( t \)
+
+
+
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if (x,y) cannot be projected orthogonally on the segment
+ +
+
+ +

◆ findST1() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int_type G2lib::BiarcList::findST1 (real_type x,
real_type y,
real_type & s,
real_type & t 
) const
+
+ +

Find parametric coordinate.

+
Parameters
+ + + + + +
xx-coordinate point
yy-coordinate point
svalue \( s \)
tvalue \( t \)
+
+
+
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if (x,y) cannot be projected orthogonally on the segment
+ +
+
+ +

◆ length()

+ +
+
+ + + + + +
+ + + + + + + +
real_type G2lib::BiarcList::length () const
+
+virtual
+
+
Returns
length of the curve
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_ISO()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BiarcList::length_ISO (real_type offs) const
+
+virtual
+
+
Returns
length of the curve with offset
+ +

Reimplemented from G2lib::BaseCurve.

+ +
+
+ +

◆ length_SAE()

+ +
+
+ + + + + +
+ + + + + + + + +
real_type G2lib::BaseCurve::length_SAE (real_type offs) const
+
+inlineinherited
+
+
Returns
length of the curve with offset
+ +
+
+ +

◆ type()

+ +
+
+ + + + + +
+ + + + + + + +
CurveType G2lib::BaseCurve::type () const
+
+inlineinherited
+
+
Returns
name of the curve type
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/df/d4a/class_g2lib_1_1_clothoid_spline_g2.html b/docs/df/d4a/class_g2lib_1_1_clothoid_spline_g2.html new file mode 100644 index 00000000..b1b5b2ce --- /dev/null +++ b/docs/df/d4a/class_g2lib_1_1_clothoid_spline_g2.html @@ -0,0 +1,197 @@ + + + + + + + +Clothoids: G2lib::ClothoidSplineG2 Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::ClothoidSplineG2 Class Reference
+
+
+ +

Class for the computation of G2 spljne of clothoids. + More...

+ +

#include <ClothoidList.hxx>

+ + + + +

+Public Types

enum  TargetType {
+  P1 = 1 +, P2 +, P3 +, P4 +,
+  P5 +, P6 +, P7 +, P8 +,
+  P9 +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void setP1 (real_type theta0, real_type thetaN)
 
+void setP2 ()
 
+void setP3 ()
 
+void setP4 ()
 
+void setP5 ()
 
+void setP6 ()
 
+void setP7 ()
 
+void setP8 ()
 
+void setP9 ()
 
+void build (real_type const xvec[], real_type const yvec[], int_type npts)
 
+int_type numPnts () const
 
+int_type numTheta () const
 
+int_type numConstraints () const
 
+void guess (real_type theta_guess[], real_type theta_min[], real_type theta_max[]) const
 
+bool objective (real_type const theta[], real_type &f) const
 
+bool gradient (real_type const theta[], real_type g[]) const
 
+bool constraints (real_type const theta[], real_type c[]) const
 
+int_type jacobian_nnz () const
 
+bool jacobian_pattern (int_type i[], int_type j[]) const
 
+bool jacobian_pattern_matlab (real_type i[], real_type j[]) const
 
+bool jacobian (real_type const theta[], real_type vals[]) const
 
+void info (ostream_type &stream) const
 
+ + + +

+Friends

+ostream_type & operator<< (ostream_type &stream, ClothoidSplineG2 const &c)
 
+

Detailed Description

+

Class for the computation of G2 spljne of clothoids.

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/df/d84/class_g2lib_1_1_solve2x2.html b/docs/df/d84/class_g2lib_1_1_solve2x2.html new file mode 100644 index 00000000..342c866a --- /dev/null +++ b/docs/df/d84/class_g2lib_1_1_solve2x2.html @@ -0,0 +1,112 @@ + + + + + + + +Clothoids: G2lib::Solve2x2 Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
G2lib::Solve2x2 Class Reference
+
+
+ +

Class that solve a 2x2 linear system. + More...

+ +

#include <G2lib.hxx>

+ + + + + + +

+Public Member Functions

+bool factorize (real_type A[2][2])
 
+bool solve (real_type const b[2], real_type x[2]) const
 
+

Detailed Description

+

Class that solve a 2x2 linear system.

+

Class that solve a 2x2 linear system using Pseudo inverse to manage singular and near singular cases

+

The documentation for this class was generated from the following files: +
+ + + + diff --git a/docs/df/d97/_clothoid_list_8hxx_source.html b/docs/df/d97/_clothoid_list_8hxx_source.html new file mode 100644 index 00000000..8c90cf2e --- /dev/null +++ b/docs/df/d97/_clothoid_list_8hxx_source.html @@ -0,0 +1,1593 @@ + + + + + + + +Clothoids: src/Clothoids/ClothoidList.hxx Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ClothoidList.hxx
+
+
+
1 /*--------------------------------------------------------------------------*\
+
2  | |
+
3  | Copyright (C) 2017 |
+
4  | |
+
5  | , __ , __ |
+
6  | /|/ \ /|/ \ |
+
7  | | __/ _ ,_ | __/ _ ,_ |
+
8  | | \|/ / | | | | \|/ / | | | |
+
9  | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
+
10  | /| /| |
+
11  | \| \| |
+
12  | |
+
13  | Enrico Bertolazzi |
+
14  | Dipartimento di Ingegneria Industriale |
+
15  | Universita` degli Studi di Trento |
+
16  | email: enrico.bertolazzi@unitn.it |
+
17  | |
+
18 \*--------------------------------------------------------------------------*/
+
19 
+
23 
+
25 namespace G2lib {
+
26 
+
27  using std::vector;
+
28 
+
29  /*\
+
30  | ____ ____ _ ____
+
31  | / ___|___ \ ___ ___ | |_ _____|___ \ __ _ _ __ ___
+
32  | | | _ __) / __|/ _ \| \ \ / / _ \ __) / _` | '__/ __|
+
33  | | |_| |/ __/\__ \ (_) | |\ V / __// __/ (_| | | | (__
+
34  | \____|_____|___/\___/|_| \_/ \___|_____\__,_|_| \___|
+
35  \*/
+
36 
+
38  class G2solve2arc {
+
39 
+
40  real_type tolerance;
+
41  int_type maxIter;
+
42 
+
43  real_type x0;
+
44  real_type y0;
+
45  real_type theta0;
+
46  real_type kappa0;
+
47 
+
48  real_type x1;
+
49  real_type y1;
+
50  real_type theta1;
+
51  real_type kappa1;
+
52 
+
53  // standard problem
+
54  real_type lambda, phi, xbar, ybar;
+
55  real_type th0, th1;
+
56  real_type k0, k1;
+
57  real_type DeltaK;
+
58  real_type DeltaTheta;
+
59 
+
60  ClothoidCurve S0, S1;
+
61 
+
62  void
+
63  evalA(
+
64  real_type alpha,
+
65  real_type L,
+
66  real_type & A
+
67  ) const;
+
68 
+
69  void
+
70  evalA(
+
71  real_type alpha,
+
72  real_type L,
+
73  real_type & A,
+
74  real_type & A_1,
+
75  real_type & A_2
+
76  ) const;
+
77 
+
78  void
+
79  evalG(
+
80  real_type alpha,
+
81  real_type L,
+
82  real_type th,
+
83  real_type k,
+
84  real_type G[2]
+
85  ) const;
+
86 
+
87  void
+
88  evalG(
+
89  real_type alpha,
+
90  real_type L,
+
91  real_type th,
+
92  real_type k,
+
93  real_type G[2],
+
94  real_type G_1[2],
+
95  real_type G_2[2]
+
96  ) const;
+
97 
+
98  void
+
99  evalF( real_type const vars[2], real_type F[2] ) const;
+
100 
+
101  void
+
102  evalFJ(
+
103  real_type const vars[2],
+
104  real_type F[2],
+
105  real_type J[2][2]
+
106  ) const;
+
107 
+
108  void
+
109  buildSolution( real_type alpha, real_type L );
+
110 
+
111  public:
+
112 
+
113  G2solve2arc()
+
114  : tolerance(1e-10)
+
115  , maxIter(20)
+
116  , x0(0)
+
117  , y0(0)
+
118  , theta0(0)
+
119  , kappa0(0)
+
120  , x1(0)
+
121  , y1(0)
+
122  , theta1(0)
+
123  , kappa1(0)
+
124  , lambda(0)
+
125  , phi(0)
+
126  , xbar(0)
+
127  , ybar(0)
+
128  , th0(0)
+
129  , th1(0)
+
130  , k0(0)
+
131  , k1(0)
+
132  {}
+
133 
+
134  ~G2solve2arc() {}
+
135 
+
136  int
+
137  build(
+
138  real_type x0, real_type y0, real_type theta0, real_type kappa0,
+
139  real_type x1, real_type y1, real_type theta1, real_type kappa1
+
140  );
+
141 
+
142  void
+
143  setTolerance( real_type tol );
+
144 
+
145  void
+
146  setMaxIter( int tol );
+
147 
+
148  int
+
149  solve();
+
150 
+
151  ClothoidCurve const & getS0() const { return S0; }
+
152  ClothoidCurve const & getS1() const { return S1; }
+
153 
+
154  };
+
155 
+
156  /*\
+
157  | ____ ____ _ ____ _ ____
+
158  | / ___|___ \ ___ ___ | |_ _____ / ___| | / ___|
+
159  | | | _ __) / __|/ _ \| \ \ / / _ \ | | | | |
+
160  | | |_| |/ __/\__ \ (_) | |\ V / __/ |___| |__| |___
+
161  | \____|_____|___/\___/|_| \_/ \___|\____|_____\____|
+
162  \*/
+
163 
+
165  class G2solveCLC {
+
166 
+
167  real_type tolerance;
+
168  int maxIter;
+
169 
+
170  real_type x0;
+
171  real_type y0;
+
172  real_type theta0;
+
173  real_type kappa0;
+
174  real_type x1;
+
175  real_type y1;
+
176  real_type theta1;
+
177  real_type kappa1;
+
178 
+
179  // standard problem
+
180  real_type lambda, phi, xbar, ybar;
+
181  real_type th0, th1;
+
182  real_type k0, k1;
+
183 
+
184  ClothoidCurve S0, SM, S1;
+
185 
+
186  bool
+
187  buildSolution( real_type sM, real_type thM );
+
188 
+
189  public:
+
190 
+
191  G2solveCLC()
+
192  : tolerance(1e-10)
+
193  , maxIter(20)
+
194  , x0(0)
+
195  , y0(0)
+
196  , theta0(0)
+
197  , kappa0(0)
+
198  , x1(0)
+
199  , y1(0)
+
200  , theta1(0)
+
201  , kappa1(0)
+
202  , lambda(0)
+
203  , phi(0)
+
204  , xbar(0)
+
205  , ybar(0)
+
206  , th0(0)
+
207  , th1(0)
+
208  , k0(0)
+
209  , k1(0)
+
210  {}
+
211 
+
212  ~G2solveCLC() {}
+
213 
+
214  int
+
215  build(
+
216  real_type x0, real_type y0, real_type theta0, real_type kappa0,
+
217  real_type x1, real_type y1, real_type theta1, real_type kappa1
+
218  );
+
219 
+
220  void
+
221  setTolerance( real_type tol );
+
222 
+
223  void
+
224  setMaxIter( int tol );
+
225 
+
226  int
+
227  solve();
+
228 
+
229  ClothoidCurve const & getS0() const { return S0; }
+
230  ClothoidCurve const & getSM() const { return SM; }
+
231  ClothoidCurve const & getS1() const { return S1; }
+
232 
+
233  };
+
234 
+
235  /*\
+
236  | ____ ____ _ _____
+
237  | / ___|___ \ ___ ___ | |_ _____|___ / __ _ _ __ ___
+
238  | | | _ __) / __|/ _ \| \ \ / / _ \ |_ \ / _` | '__/ __|
+
239  | | |_| |/ __/\__ \ (_) | |\ V / __/___) | (_| | | | (__
+
240  | \____|_____|___/\___/|_| \_/ \___|____/ \__,_|_| \___|
+
241  \*/
+
242  // Clothoid-clothoid-clothoid with G2 continuity
+
244  class G2solve3arc {
+
245 
+
246  ClothoidCurve S0, SM, S1;
+
247 
+
248  real_type tolerance;
+
249  int maxIter;
+
250 
+
251  // G2 interpolation data
+
252  real_type x0;
+
253  real_type y0;
+
254  real_type theta0;
+
255  real_type kappa0;
+
256  real_type x1;
+
257  real_type y1;
+
258  real_type theta1;
+
259  real_type kappa1;
+
260 
+
261  // standard scaled problem
+
262  real_type phi, Lscale;
+
263  real_type th0, th1;
+
264  real_type s0, s1;
+
265 
+
266  // precomputed values
+
267  real_type K0, K1, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14;
+
268 
+
269  void
+
270  evalFJ(
+
271  real_type const vars[2],
+
272  real_type F[2],
+
273  real_type J[2][2]
+
274  ) const;
+
275 
+
276  void
+
277  evalF( real_type const vars[2], real_type F[2] ) const;
+
278 
+
279  void
+
280  buildSolution( real_type sM, real_type thM );
+
281 
+
282  int
+
283  solve( real_type sM_guess, real_type thM_guess );
+
284 
+
285  public:
+
286 
+
287  G2solve3arc()
+
288  : tolerance(1e-10)
+
289  , maxIter(100)
+
290  {}
+
291 
+
292  ~G2solve3arc() {}
+
293 
+
294  void setTolerance( real_type tol );
+
295  void setMaxIter( int miter );
+
296 
+
313  int
+
314  build(
+
315  real_type x0,
+
316  real_type y0,
+
317  real_type theta0,
+
318  real_type kappa0,
+
319  real_type x1,
+
320  real_type y1,
+
321  real_type theta1,
+
322  real_type kappa1,
+
323  real_type Dmax = 0,
+
324  real_type dmax = 0
+
325  );
+
326 
+
343  int
+ +
345  real_type s0,
+
346  real_type x0,
+
347  real_type y0,
+
348  real_type theta0,
+
349  real_type kappa0,
+
350  real_type s1,
+
351  real_type x1,
+
352  real_type y1,
+
353  real_type theta1,
+
354  real_type kappa1
+
355  );
+
356 
+
358  ClothoidCurve const & getS0() const { return S0; }
+
359 
+
361  ClothoidCurve const & getS1() const { return S1; }
+
362 
+
364  ClothoidCurve const & getSM() const { return SM; }
+
365 
+
367  real_type
+
368  totalLength() const {
+
369  return S0.length() + S1.length() + SM.length();
+
370  }
+
371 
+
373  real_type
+ +
375  return S0.thetaTotalVariation() +
+
376  S1.thetaTotalVariation() +
+
377  SM.thetaTotalVariation();
+
378  }
+
379 
+
381  real_type
+ +
383  return S0.curvatureTotalVariation() +
+ + +
386  }
+
387 
+
389  real_type
+ +
391  return S0.integralCurvature2() +
+
392  S1.integralCurvature2() +
+
393  SM.integralCurvature2();
+
394  }
+
395 
+
397  real_type
+
398  integralJerk2() const {
+
399  return S0.integralJerk2() +
+
400  S1.integralJerk2() +
+
401  SM.integralJerk2();
+
402  }
+
403 
+
405  real_type
+
406  integralSnap2() const {
+
407  return S0.integralSnap2() +
+
408  S1.integralSnap2() +
+
409  SM.integralSnap2();
+
410  }
+
411 
+
417  real_type
+
418  thetaMinMax( real_type & thMin, real_type & thMax ) const;
+
419 
+
423  real_type
+
424  deltaTheta() const
+
425  { real_type thMin, thMax; return thetaMinMax( thMin, thMax ); }
+
426 
+
432  real_type
+
433  curvatureMinMax( real_type & kMin, real_type & kMax ) const;
+
434 
+
438  real_type theta( real_type s ) const;
+
439 
+
443  real_type theta_D( real_type s ) const;
+
444 
+
448  real_type theta_DD( real_type s ) const;
+
449 
+
453  real_type theta_DDD( real_type s ) const;
+
454 
+
458  real_type X( real_type s ) const;
+
459 
+
463  real_type Y( real_type s ) const;
+
464 
+
468  real_type xBegin() const { return S0.xBegin(); }
+
469 
+
473  real_type yBegin() const { return S0.yBegin(); }
+
474 
+
478  real_type kappaBegin() const { return S0.kappaBegin(); }
+
479 
+
483  real_type thetaBegin() const { return S0.thetaBegin(); }
+
484 
+
488  real_type xEnd()const { return S1.xEnd(); }
+
489 
+
493  real_type yEnd() const { return S1.yEnd(); }
+
494 
+
498  real_type kappaEnd() const { return S1.kappaEnd(); }
+
499 
+
503  real_type thetaEnd() const { return S1.thetaEnd(); }
+
504 
+
514  void
+
515  eval(
+
516  real_type s,
+
517  real_type & theta,
+
518  real_type & kappa,
+
519  real_type & x,
+
520  real_type & y
+
521  ) const;
+
522 
+
523  void eval( real_type s, real_type & x, real_type & y ) const;
+
524  void eval_D( real_type s, real_type & x_D, real_type & y_D ) const;
+
525  void eval_DD( real_type s, real_type & x_DD, real_type & y_DD ) const;
+
526  void eval_DDD( real_type s, real_type & x_DDD, real_type & y_DDD ) const;
+
527 
+
528  // offset curve
+
529  void eval_ISO( real_type s, real_type offs, real_type & x, real_type & y ) const;
+
530  void eval_ISO_D( real_type s, real_type offs, real_type & x_D, real_type & y_D ) const;
+
531  void eval_ISO_DD( real_type s, real_type offs, real_type & x_DD, real_type & y_DD ) const;
+
532  void eval_ISO_DDD( real_type s, real_type offs, real_type & x_DDD, real_type & y_DDD ) const;
+
533 
+
534  void
+
535  rotate( real_type angle, real_type cx, real_type cy ) {
+
536  S0.rotate( angle, cx, cy );
+
537  S1.rotate( angle, cx, cy );
+
538  SM.rotate( angle, cx, cy );
+
539  }
+
540 
+
541  void
+
542  translate( real_type tx, real_type ty ){
+
543  S0.translate( tx, ty );
+
544  S1.translate( tx, ty );
+
545  SM.translate( tx, ty );
+
546  }
+
547 
+
548  void
+
549  reverse() {
+
550  ClothoidCurve tmp(S0); S1 = S0; S0 = tmp;
+
551  S0.reverse();
+
552  S1.reverse();
+
553  SM.reverse();
+
554  }
+
555 
+
556  friend
+
557  ostream_type &
+
558  operator << ( ostream_type & stream, ClothoidCurve const & c );
+
559 
+
560  };
+
561 
+
562  /*\
+
563  | ____ _ _ _ _ _ _ _ _
+
564  | / ___| | ___ | |_| |__ ___ (_) __| | | (_)___| |_
+
565  | | | | |/ _ \| __| '_ \ / _ \| |/ _` | | | / __| __|
+
566  | | |___| | (_) | |_| | | | (_) | | (_| | |___| \__ \ |_
+
567  | \____|_|\___/ \__|_| |_|\___/|_|\__,_|_____|_|___/\__|
+
568  |
+
569  \*/
+
571  class ClothoidList : public BaseCurve {
+
572 
+
573  bool m_curve_is_closed;
+
574  vector<real_type> m_s0;
+
575  vector<ClothoidCurve> m_clotoidList;
+
576 
+
577  mutable Utils::BinarySearch<int_type> m_lastInterval;
+
578 
+
579  mutable bool m_aabb_done;
+
580  mutable AABBtree m_aabb_tree;
+
581  mutable real_type m_aabb_offs;
+
582  mutable real_type m_aabb_max_angle;
+
583  mutable real_type m_aabb_max_size;
+
584  mutable vector<Triangle2D> m_aabb_tri;
+
585 
+
586  class T2D_collision_list_ISO {
+
587  ClothoidList const * pList1;
+
588  real_type const m_offs1;
+
589  ClothoidList const * pList2;
+
590  real_type const m_offs2;
+
591  public:
+
592  T2D_collision_list_ISO(
+
593  ClothoidList const * _pList1,
+
594  real_type const _offs1,
+
595  ClothoidList const * _pList2,
+
596  real_type const _offs2
+
597  )
+
598  : pList1(_pList1)
+
599  , m_offs1(_offs1)
+
600  , pList2(_pList2)
+
601  , m_offs2(_offs2)
+
602  {}
+
603 
+
604  bool
+
605  operator () ( BBox::PtrBBox ptr1, BBox::PtrBBox ptr2 ) const {
+
606  Triangle2D const & T1 = pList1->m_aabb_tri[size_t(ptr1->Ipos())];
+
607  Triangle2D const & T2 = pList2->m_aabb_tri[size_t(ptr2->Ipos())];
+
608  ClothoidCurve const & C1 = pList1->get(T1.Icurve());
+
609  ClothoidCurve const & C2 = pList2->get(T2.Icurve());
+
610  real_type ss1, ss2;
+
611  return C1.aabb_intersect_ISO( T1, m_offs1, &C2, T2, m_offs2, ss1, ss2 );
+
612  }
+
613  };
+
614 
+
615  void
+
616  resetLastInterval() {
+
617  bool ok;
+
618  int_type & lastInterval = *m_lastInterval.search( std::this_thread::get_id(), ok );
+
619  lastInterval = 0;
+
620  }
+
621 
+
622  public:
+
623 
+
624  #include "BaseCurve_using.hxx"
+
625 
+
626  //explicit
+
627  ClothoidList()
+
628  : BaseCurve(G2LIB_CLOTHOID_LIST)
+
629  , m_curve_is_closed(false)
+
630  , m_aabb_done(false)
+
631  { this->resetLastInterval(); }
+
632 
+
633  virtual
+
634  ~ClothoidList() UTILS_OVERRIDE {
+
635  m_s0.clear();
+
636  m_clotoidList.clear();
+
637  m_aabb_tri.clear();
+
638  }
+
639 
+
640  //explicit
+
641  ClothoidList( ClothoidList const & s )
+
642  : BaseCurve(G2LIB_CLOTHOID_LIST)
+
643  , m_curve_is_closed(false)
+
644  , m_aabb_done(false)
+
645  { this->resetLastInterval(); copy(s); }
+
646 
+
647  void init();
+
648  void reserve( int_type n );
+
649  void copy( ClothoidList const & L );
+
650 
+
651  ClothoidList const & operator = ( ClothoidList const & s )
+
652  { copy(s); return *this; }
+
653 
+
654  explicit ClothoidList( LineSegment const & LS );
+
655  explicit ClothoidList( CircleArc const & C );
+
656  explicit ClothoidList( Biarc const & B );
+
657  explicit ClothoidList( BiarcList const & BL );
+
658  explicit ClothoidList( ClothoidCurve const & CL );
+
659  explicit ClothoidList( PolyLine const & PL );
+
660  explicit ClothoidList( BaseCurve const & C );
+
661 
+
662  void push_back( LineSegment const & c );
+
663  void push_back( CircleArc const & c );
+
664  void push_back( Biarc const & c );
+
665  void push_back( BiarcList const & c );
+
666  void push_back( ClothoidCurve const & c );
+
667  void push_back( PolyLine const & c );
+
668 
+
669  void push_back( real_type kappa0, real_type dkappa, real_type L );
+
670  void push_back( real_type x0, real_type y0, real_type theta0,
+
671  real_type kappa0, real_type dkappa, real_type L );
+
672 
+
673  void push_back_G1( real_type x1, real_type y1, real_type theta1 );
+
674  void push_back_G1( real_type x0, real_type y0, real_type theta0,
+
675  real_type x1, real_type y1, real_type theta1 );
+
676 
+
677  bool is_closed() const { return m_curve_is_closed; }
+
678  void make_closed() { m_curve_is_closed = true; }
+
679  void make_open() { m_curve_is_closed = false; }
+
680 
+
681  real_type closure_gap_x() const { return this->xEnd() - this->xBegin(); }
+
682  real_type closure_gap_y() const { return this->yEnd() - this->yBegin(); }
+
683  real_type closure_gap_tx() const { return this->tx_End() - this->tx_Begin(); }
+
684  real_type closure_gap_ty() const { return this->ty_End() - this->ty_Begin(); }
+
685 
+
686  bool
+
687  closure_check( real_type tol_xy = 1e-6, real_type tol_tg = 1e-6 ) const {
+
688  return std::abs(closure_gap_x()) < tol_xy &&
+
689  std::abs(closure_gap_y()) < tol_xy &&
+
690  std::abs(closure_gap_tx()) < tol_tg &&
+
691  std::abs(closure_gap_ty()) < tol_tg;
+
692  }
+
693 
+
694  bool
+
695  build_G1(
+
696  int_type n,
+
697  real_type const x[],
+
698  real_type const y[]
+
699  );
+
700 
+
701  bool
+
702  build_G1(
+
703  int_type n,
+
704  real_type const x[],
+
705  real_type const y[],
+
706  real_type const theta[]
+
707  );
+
708 
+
709  bool
+
710  build(
+
711  real_type x0,
+
712  real_type y0,
+
713  real_type theta0,
+
714  int_type n,
+
715  real_type const s[],
+
716  real_type const kappa[]
+
717  );
+
718 
+
719  bool
+
720  build(
+
721  real_type x0,
+
722  real_type y0,
+
723  real_type theta0,
+
724  vector<real_type> const & s,
+
725  vector<real_type> const & kappa
+
726  ) {
+
727  if ( s.size() != kappa.size() ) return false;
+
728  return build(
+
729  x0, y0, theta0,
+
730  int_type(s.size()),
+
731  &s.front(), &kappa.front()
+
732  );
+
733  }
+
734 
+
735  bool
+
736  build_raw(
+
737  int_type n,
+
738  real_type const x[],
+
739  real_type const y[],
+
740  real_type const abscissa[],
+
741  real_type const theta[],
+
742  real_type const kappa[]
+
743  );
+
744 
+
745  bool
+
746  build_raw(
+
747  vector<real_type> const & x,
+
748  vector<real_type> const & y,
+
749  vector<real_type> const & abscissa,
+
750  vector<real_type> const & theta,
+
751  vector<real_type> const & kappa
+
752  ) {
+
753  int_type n = int_type(x.size());
+
754  if ( n != int_type(y.size()) ||
+
755  n != int_type(abscissa.size()) ||
+
756  n != int_type(theta.size()) ||
+
757  n != int_type(kappa.size()) ) return false;
+
758  return build_raw(
+
759  n, &x.front(), &y.front(),
+
760  &abscissa.front(), &theta.front(), &kappa.front()
+
761  );
+
762  }
+
763 
+
764  ClothoidCurve const & get( int_type idx ) const;
+
765  ClothoidCurve const & getAtS( real_type s ) const;
+
766 
+
767  int_type numSegment() const { return int_type(m_clotoidList.size()); }
+
768 
+
769  void wrap_in_range( real_type & s ) const;
+
770 
+
771  int_type
+
772  findAtS( real_type & s ) const;
+
773 
+
774  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
775 
+
776  virtual
+
777  real_type
+
778  length() const UTILS_OVERRIDE;
+
779 
+
780  virtual
+
781  real_type
+
782  length_ISO( real_type offs ) const UTILS_OVERRIDE;
+
783 
+
784  real_type
+
785  segment_length( int_type nseg ) const;
+
786 
+
787  real_type
+
788  segment_length_ISO( int_type nseg, real_type offs ) const;
+
789 
+
790  real_type
+
791  segment_length_SAE( int_type nseg, real_type offs ) const
+
792  { return segment_length_ISO( nseg, -offs ); }
+
793 
+
794  /*\
+
795  | _ _ _____ _ _
+
796  | | |__| |_|_ _| _(_)__ _ _ _ __ _| |___
+
797  | | '_ \ '_ \| || '_| / _` | ' \/ _` | / -_)
+
798  | |_.__/_.__/|_||_| |_\__,_|_||_\__, |_\___|
+
799  | |___/
+
800  \*/
+
801 
+
802  void
+
803  bbTriangles_ISO(
+
804  real_type offs,
+
805  std::vector<Triangle2D> & tvec,
+
806  real_type max_angle = Utils::m_pi/6, // 30 degree
+
807  real_type max_size = 1e100
+
808  ) const;
+
809 
+
810  void
+
811  bbTriangles_SAE(
+
812  real_type offs,
+
813  std::vector<Triangle2D> & tvec,
+
814  real_type max_angle = Utils::m_pi/6, // 30 degree
+
815  real_type max_size = 1e100
+
816  ) const {
+
817  this->bbTriangles_ISO( -offs, tvec, max_angle, max_size );
+
818  }
+
819 
+
820  void
+
821  bbTriangles(
+
822  std::vector<Triangle2D> & tvec,
+
823  real_type max_angle = Utils::m_pi/6, // 30 degree
+
824  real_type max_size = 1e100
+
825  ) const {
+
826  bbTriangles_ISO( 0, tvec, max_angle, max_size );
+
827  }
+
828 
+
829  void
+
830  build_AABBtree_ISO(
+
831  real_type offs,
+
832  real_type max_angle = Utils::m_pi/6, // 30 degree
+
833  real_type max_size = 1e100
+
834  ) const;
+
835 
+
836  /*\
+
837  | _ _
+
838  | | |__ | |__ _____ __
+
839  | | '_ \| '_ \ / _ \ \/ /
+
840  | | |_) | |_) | (_) > <
+
841  | |_.__/|_.__/ \___/_/\_\
+
842  \*/
+
843 
+
844  virtual
+
845  void
+ +
847  real_type & xmin,
+
848  real_type & ymin,
+
849  real_type & xmax,
+
850  real_type & ymax
+
851  ) const UTILS_OVERRIDE {
+
852  bbox_ISO( 0, xmin, ymin, xmax, ymax );
+
853  }
+
854 
+
855  virtual
+
856  void
+
857  bbox_ISO(
+
858  real_type offs,
+
859  real_type & xmin,
+
860  real_type & ymin,
+
861  real_type & xmax,
+
862  real_type & ymax
+
863  ) const UTILS_OVERRIDE;
+
864 
+
865  /*\
+
866  | ____ _ _______ _
+
867  | | __ ) ___ __ _(_)_ __ / / ____|_ __ __| |
+
868  | | _ \ / _ \/ _` | | '_ \ / /| _| | '_ \ / _` |
+
869  | | |_) | __/ (_| | | | | |/ / | |___| | | | (_| |
+
870  | |____/ \___|\__, |_|_| |_/_/ |_____|_| |_|\__,_|
+
871  | |___/
+
872  \*/
+
873 
+
874  virtual
+
875  real_type
+
876  thetaBegin() const UTILS_OVERRIDE
+
877  { return m_clotoidList.front().thetaBegin(); }
+
878 
+
879  virtual
+
880  real_type
+
881  thetaEnd() const UTILS_OVERRIDE
+
882  { return m_clotoidList.back().thetaEnd(); }
+
883 
+
884  virtual
+
885  real_type
+
886  xBegin() const UTILS_OVERRIDE
+
887  { return m_clotoidList.front().xBegin(); }
+
888 
+
889  virtual
+
890  real_type
+
891  yBegin() const UTILS_OVERRIDE
+
892  { return m_clotoidList.front().yBegin(); }
+
893 
+
894  virtual
+
895  real_type
+
896  xEnd() const UTILS_OVERRIDE
+
897  { return m_clotoidList.back().xEnd(); }
+
898 
+
899  virtual
+
900  real_type
+
901  yEnd() const UTILS_OVERRIDE
+
902  { return m_clotoidList.back().yEnd(); }
+
903 
+
904  virtual
+
905  real_type
+
906  xBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
907  { return m_clotoidList.front().xBegin_ISO( offs ); }
+
908 
+
909  virtual
+
910  real_type
+
911  yBegin_ISO( real_type offs ) const UTILS_OVERRIDE
+
912  { return m_clotoidList.front().yBegin_ISO( offs ); }
+
913 
+
914  virtual
+
915  real_type xEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
916  { return m_clotoidList.back().xEnd_ISO( offs ); }
+
917 
+
918  virtual
+
919  real_type
+
920  yEnd_ISO( real_type offs ) const UTILS_OVERRIDE
+
921  { return m_clotoidList.back().yEnd_ISO( offs ); }
+
922 
+
923  virtual
+
924  real_type tx_Begin() const UTILS_OVERRIDE
+
925  { return m_clotoidList.front().tx_Begin(); }
+
926 
+
927  virtual
+
928  real_type
+
929  ty_Begin() const UTILS_OVERRIDE
+
930  { return m_clotoidList.front().ty_Begin(); }
+
931 
+
932  virtual
+
933  real_type
+
934  tx_End() const UTILS_OVERRIDE
+
935  { return m_clotoidList.back().tx_End(); }
+
936 
+
937  virtual
+
938  real_type
+
939  ty_End() const UTILS_OVERRIDE
+
940  { return m_clotoidList.back().ty_End(); }
+
941 
+
942  virtual
+
943  real_type
+
944  nx_Begin_ISO() const UTILS_OVERRIDE
+
945  { return m_clotoidList.front().nx_Begin_ISO(); }
+
946 
+
947  virtual
+
948  real_type
+
949  ny_Begin_ISO() const UTILS_OVERRIDE
+
950  { return m_clotoidList.front().ny_Begin_ISO(); }
+
951 
+
952  virtual
+
953  real_type
+
954  nx_End_ISO() const UTILS_OVERRIDE
+
955  { return m_clotoidList.back().nx_End_ISO(); }
+
956 
+
957  virtual
+
958  real_type
+
959  ny_End_ISO() const UTILS_OVERRIDE
+
960  { return m_clotoidList.back().ny_End_ISO(); }
+
961 
+
962  /*\
+
963  | _ _ _
+
964  | | |_| |__ ___| |_ __ _
+
965  | | __| '_ \ / _ \ __/ _` |
+
966  | | |_| | | | __/ || (_| |
+
967  | \__|_| |_|\___|\__\__,_|
+
968  \*/
+
969 
+
970  virtual real_type theta( real_type s ) const UTILS_OVERRIDE;
+
971  virtual real_type theta_D( real_type s ) const UTILS_OVERRIDE;
+
972  virtual real_type theta_DD( real_type s ) const UTILS_OVERRIDE;
+
973  virtual real_type theta_DDD( real_type s ) const UTILS_OVERRIDE;
+
974 
+
975  /*\
+
976  | _____ _ _ _
+
977  | |_ _| __ _ _ __ __| | | \ | |
+
978  | | | / _` | '_ \ / _` | | \| |
+
979  | | | | (_| | | | | (_| | | |\ |
+
980  | |_| \__,_|_| |_|\__,_| |_| \_|
+
981  \*/
+
982 
+
983  virtual real_type tx( real_type s ) const UTILS_OVERRIDE;
+
984  virtual real_type ty( real_type s ) const UTILS_OVERRIDE;
+
985  virtual real_type tx_D( real_type s ) const UTILS_OVERRIDE;
+
986  virtual real_type ty_D( real_type s ) const UTILS_OVERRIDE;
+
987  virtual real_type tx_DD( real_type s ) const UTILS_OVERRIDE;
+
988  virtual real_type ty_DD( real_type s ) const UTILS_OVERRIDE;
+
989  virtual real_type tx_DDD( real_type s ) const UTILS_OVERRIDE;
+
990  virtual real_type ty_DDD( real_type s ) const UTILS_OVERRIDE;
+
991 
+
992  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
993 
+
994  virtual
+
995  void
+
996  tg(
+
997  real_type s,
+
998  real_type & tg_x,
+
999  real_type & tg_y
+
1000  ) const UTILS_OVERRIDE;
+
1001 
+
1002  virtual
+
1003  void
+
1004  tg_D(
+
1005  real_type s,
+
1006  real_type & tg_x_D,
+
1007  real_type & tg_y_D
+
1008  ) const UTILS_OVERRIDE;
+
1009 
+
1010  virtual
+
1011  void
+
1012  tg_DD(
+
1013  real_type s,
+
1014  real_type & tg_x_DD,
+
1015  real_type & tg_y_DD
+
1016  ) const UTILS_OVERRIDE;
+
1017 
+
1018  virtual
+
1019  void
+
1020  tg_DDD(
+
1021  real_type s,
+
1022  real_type & tg_x_DDD,
+
1023  real_type & tg_y_DDD
+
1024  ) const UTILS_OVERRIDE;
+
1025 
+
1026  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1027 
+
1028  virtual
+
1029  void
+
1030  evaluate(
+
1031  real_type s,
+
1032  real_type & th,
+
1033  real_type & k,
+
1034  real_type & x,
+
1035  real_type & y
+
1036  ) const UTILS_OVERRIDE;
+
1037 
+
1038  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1039 
+
1040  virtual
+
1041  void
+
1042  evaluate_ISO(
+
1043  real_type s,
+
1044  real_type offs,
+
1045  real_type & th,
+
1046  real_type & k,
+
1047  real_type & x,
+
1048  real_type & y
+
1049  ) const UTILS_OVERRIDE;
+
1050 
+
1051  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1052 
+
1053  virtual real_type X( real_type s ) const UTILS_OVERRIDE;
+
1054  virtual real_type Y( real_type s ) const UTILS_OVERRIDE;
+
1055  virtual real_type X_D( real_type s ) const UTILS_OVERRIDE;
+
1056  virtual real_type Y_D( real_type s ) const UTILS_OVERRIDE;
+
1057  virtual real_type X_DD( real_type s ) const UTILS_OVERRIDE;
+
1058  virtual real_type Y_DD( real_type s ) const UTILS_OVERRIDE;
+
1059  virtual real_type X_DDD( real_type s ) const UTILS_OVERRIDE;
+
1060  virtual real_type Y_DDD( real_type s ) const UTILS_OVERRIDE;
+
1061 
+
1062  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1063 
+
1064  virtual
+
1065  void
+
1066  eval(
+
1067  real_type s,
+
1068  real_type & x,
+
1069  real_type & y
+
1070  ) const UTILS_OVERRIDE;
+
1071 
+
1072  virtual
+
1073  void
+
1074  eval_D(
+
1075  real_type s,
+
1076  real_type & x_D,
+
1077  real_type & y_D
+
1078  ) const UTILS_OVERRIDE;
+
1079 
+
1080  virtual
+
1081  void
+
1082  eval_DD(
+
1083  real_type s,
+
1084  real_type & x_DD,
+
1085  real_type & y_DD
+
1086  ) const UTILS_OVERRIDE;
+
1087 
+
1088  virtual
+
1089  void
+
1090  eval_DDD(
+
1091  real_type s,
+
1092  real_type & x_DDD,
+
1093  real_type & y_DDD
+
1094  ) const UTILS_OVERRIDE;
+
1095 
+
1096  /*\
+
1097  | __ __ _
+
1098  | ___ / _|/ _|___ ___| |_
+
1099  | / _ \| |_| |_/ __|/ _ \ __|
+
1100  | | (_) | _| _\__ \ __/ |_
+
1101  | \___/|_| |_| |___/\___|\__|
+
1102  \*/
+
1103 
+
1104  virtual
+
1105  real_type
+
1106  X_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1107 
+
1108  virtual
+
1109  real_type
+
1110  Y_ISO( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1111 
+
1112  virtual
+
1113  real_type
+
1114  X_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1115 
+
1116  virtual
+
1117  real_type
+
1118  Y_ISO_D( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1119 
+
1120  virtual
+
1121  real_type
+
1122  X_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1123 
+
1124  virtual
+
1125  real_type
+
1126  Y_ISO_DD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1127 
+
1128  virtual
+
1129  real_type
+
1130  X_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1131 
+
1132  virtual
+
1133  real_type
+
1134  Y_ISO_DDD( real_type s, real_type offs ) const UTILS_OVERRIDE;
+
1135 
+
1136  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
1137 
+
1138  virtual
+
1139  void
+
1140  eval_ISO(
+
1141  real_type s,
+
1142  real_type offs,
+
1143  real_type & x,
+
1144  real_type & y
+
1145  ) const UTILS_OVERRIDE;
+
1146 
+
1147  virtual
+
1148  void
+
1149  eval_ISO_D(
+
1150  real_type s,
+
1151  real_type offs,
+
1152  real_type & x_D,
+
1153  real_type & y_D
+
1154  ) const UTILS_OVERRIDE;
+
1155 
+
1156  virtual
+
1157  void
+
1158  eval_ISO_DD(
+
1159  real_type s,
+
1160  real_type offs,
+
1161  real_type & x_DD,
+
1162  real_type & y_DD
+
1163  ) const UTILS_OVERRIDE;
+
1164 
+
1165  virtual
+
1166  void
+
1167  eval_ISO_DDD(
+
1168  real_type s,
+
1169  real_type offs,
+
1170  real_type & x_DDD,
+
1171  real_type & y_DDD
+
1172  ) const UTILS_OVERRIDE;
+
1173 
+
1174  /*\
+
1175  | _ __
+
1176  | | |_ _ __ __ _ _ __ ___ / _| ___ _ __ _ __ ___
+
1177  | | __| '__/ _` | '_ \/ __| |_ / _ \| '__| '_ ` _ \
+
1178  | | |_| | | (_| | | | \__ \ _| (_) | | | | | | | |
+
1179  | \__|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|
+
1180  \*/
+
1181 
+
1182  virtual
+
1183  void
+
1184  translate( real_type tx, real_type ty ) UTILS_OVERRIDE;
+
1185 
+
1186  virtual
+
1187  void
+
1188  rotate( real_type angle, real_type cx, real_type cy ) UTILS_OVERRIDE;
+
1189 
+
1190  virtual
+
1191  void
+
1192  scale( real_type sc ) UTILS_OVERRIDE;
+
1193 
+
1194  virtual
+
1195  void
+
1196  reverse() UTILS_OVERRIDE;
+
1197 
+
1198  virtual
+
1199  void
+
1200  changeOrigin( real_type newx0, real_type newy0 ) UTILS_OVERRIDE;
+
1201 
+
1202  virtual
+
1203  void
+
1204  trim( real_type s_begin, real_type s_end ) UTILS_OVERRIDE;
+
1205 
+
1206  void
+
1207  trim( real_type s_begin, real_type s_end, ClothoidList & newCL ) const;
+
1208 
+
1209  /*\
+
1210  | _ _ _
+
1211  | __| (_)___| |_ __ _ _ __ ___ ___
+
1212  | / _` | / __| __/ _` | '_ \ / __/ _ \
+
1213  | | (_| | \__ \ || (_| | | | | (_| __/
+
1214  | \__,_|_|___/\__\__,_|_| |_|\___\___|
+
1215  \*/
+
1216 
+
1228  virtual
+
1229  int_type
+ +
1231  real_type qx,
+
1232  real_type qy,
+
1233  real_type & x,
+
1234  real_type & y,
+
1235  real_type & s,
+
1236  real_type & t,
+
1237  real_type & dst
+
1238  ) const UTILS_OVERRIDE;
+
1239 
+
1252  virtual
+
1253  int_type // true if projection is unique and orthogonal
+ +
1255  real_type qx,
+
1256  real_type qy,
+
1257  real_type offs,
+
1258  real_type & x,
+
1259  real_type & y,
+
1260  real_type & s,
+
1261  real_type & t,
+
1262  real_type & dst
+
1263  ) const UTILS_OVERRIDE;
+
1264 
+
1265  /*\
+
1266  | _ _ _
+
1267  | __| (_)___| |_ __ _ _ __ ___ ___
+
1268  | / _` | / __| __/ _` | '_ \ / __/ _ \
+
1269  | | (_| | \__ \ || (_| | | | | (_| __/
+
1270  | \__,_|_|___/\__\__,_|_| |_|\___\___|
+
1271  \*/
+
1272 
+
1278  int_type
+
1279  closestSegment( real_type qx, real_type qy ) const;
+
1280 
+
1296  int_type
+ +
1298  real_type qx,
+
1299  real_type qy,
+
1300  int_type icurve_begin,
+
1301  int_type icurve_end,
+
1302  real_type & x,
+
1303  real_type & y,
+
1304  real_type & s,
+
1305  real_type & t,
+
1306  real_type & dst,
+
1307  int_type & icurve
+
1308  ) const;
+
1309 
+
1325  int_type
+ +
1327  real_type qx,
+
1328  real_type qy,
+
1329  int_type icurve_begin,
+
1330  int_type icurve_end,
+
1331  real_type & x,
+
1332  real_type & y,
+
1333  real_type & s,
+
1334  real_type & t,
+
1335  real_type & dst,
+
1336  int_type & icurve
+
1337  ) const {
+
1338  int_type res = this->closestPointInRange_ISO(
+
1339  qx, qy, icurve_begin, icurve_end, x, y, s, t, dst, icurve
+
1340  );
+
1341  t = -t;
+
1342  return res;
+
1343  }
+
1344 
+
1357  int_type
+ +
1359  real_type qx,
+
1360  real_type qy,
+
1361  real_type s_begin,
+
1362  real_type s_end,
+
1363  real_type & x,
+
1364  real_type & y,
+
1365  real_type & s,
+
1366  real_type & t,
+
1367  real_type & dst,
+
1368  int_type & icurve
+
1369  ) const;
+
1370 
+
1383  int_type
+ +
1385  real_type qx,
+
1386  real_type qy,
+
1387  int_type s_begin,
+
1388  int_type s_end,
+
1389  real_type & x,
+
1390  real_type & y,
+
1391  real_type & s,
+
1392  real_type & t,
+
1393  real_type & dst,
+
1394  int_type & icurve
+
1395  ) const {
+
1396  int_type res = this->closestPointInSRange_ISO(
+
1397  qx, qy, s_begin, s_end, x, y, s, t, dst, icurve
+
1398  );
+
1399  t = -t;
+
1400  return res;
+
1401  }
+
1402 
+
1403  virtual
+
1404  void
+
1405  info( ostream_type & stream ) const UTILS_OVERRIDE
+
1406  { stream << "ClothoidList\n" << *this << '\n'; }
+
1407 
+
1408  friend
+
1409  ostream_type &
+
1410  operator << ( ostream_type & stream, ClothoidList const & CL );
+
1411 
+
1412  void
+
1413  getSK( real_type s[], real_type kappa[] ) const;
+
1414 
+
1415  void
+
1416  getSK(
+
1417  std::vector<real_type> & s,
+
1418  std::vector<real_type> & kappa
+
1419  ) const {
+
1420  s.resize( m_clotoidList.size()+1 );
+
1421  kappa.resize( m_clotoidList.size()+1 );
+
1422  getSK( &s.front(), &kappa.front() );
+
1423  }
+
1424 
+
1425  void
+
1426  getSTK(
+
1427  real_type s[],
+
1428  real_type theta[],
+
1429  real_type kappa[]
+
1430  ) const;
+
1431 
+
1432  void
+
1433  getSTK(
+
1434  std::vector<real_type> & s,
+
1435  std::vector<real_type> & theta,
+
1436  std::vector<real_type> & kappa
+
1437  ) const {
+
1438  s.resize( m_clotoidList.size()+1 );
+
1439  theta.resize( m_clotoidList.size()+1 );
+
1440  kappa.resize( m_clotoidList.size()+1 );
+
1441  getSTK( &s.front(), &theta.front(), &kappa.front() );
+
1442  }
+
1443 
+
1444  void
+
1445  getXY( real_type x[], real_type y[] ) const;
+
1446 
+
1447  void
+
1448  getDeltaTheta( real_type deltaTheta[] ) const;
+
1449 
+
1450  void
+
1451  getDeltaKappa( real_type deltaKappa[] ) const;
+
1452 
+
1464  int_type
+
1465  findST1(
+
1466  real_type x,
+
1467  real_type y,
+
1468  real_type & s,
+
1469  real_type & t
+
1470  ) const;
+
1471 
+
1484  int_type
+
1485  findST1(
+
1486  int_type ibegin,
+
1487  int_type iend,
+
1488  real_type x,
+
1489  real_type y,
+
1490  real_type & s,
+
1491  real_type & t
+
1492  ) const;
+
1493 
+
1494  /*\
+
1495  | _ _ _ _
+
1496  | ___ ___ | | (_)___(_) ___ _ __
+
1497  | / __/ _ \| | | / __| |/ _ \| '_ \
+
1498  | | (_| (_) | | | \__ \ | (_) | | | |
+
1499  | \___\___/|_|_|_|___/_|\___/|_| |_|
+
1500  \*/
+
1501 
+
1502  bool
+
1503  collision( ClothoidList const & C ) const;
+
1504 
+
1505  bool
+
1506  collision_ISO(
+
1507  real_type offs,
+
1508  ClothoidList const & CL,
+
1509  real_type offs_C
+
1510  ) const;
+
1511 
+
1512  /*\
+
1513  | _ _ _
+
1514  | (_)_ __ | |_ ___ _ __ ___ ___ ___| |_
+
1515  | | | '_ \| __/ _ \ '__/ __|/ _ \/ __| __|
+
1516  | | | | | | || __/ | \__ \ __/ (__| |_
+
1517  | |_|_| |_|\__\___|_| |___/\___|\___|\__|
+
1518  \*/
+
1519 
+
1520  void
+
1521  intersect(
+
1522  ClothoidList const & CL,
+
1523  IntersectList & ilist,
+
1524  bool swap_s_vals
+
1525  ) const {
+
1526  intersect_ISO( 0, CL, 0, ilist, swap_s_vals );
+
1527  }
+
1528 
+
1529  void
+
1530  intersect_ISO(
+
1531  real_type offs,
+
1532  ClothoidList const & CL,
+
1533  real_type offs_obj,
+
1534  IntersectList & ilist,
+
1535  bool swap_s_vals
+
1536  ) const;
+
1537 
+
1542  void
+
1543  export_table( ostream_type & stream ) const;
+
1544 
+
1549  void
+
1550  export_ruby( ostream_type & stream ) const;
+
1551 
+
1552  };
+
1553 
+
1554  /*\
+
1555  |
+
1556  | ___ _ _ _ _ _ ___ _ _ ___ ___
+
1557  | / __| |___| |_| |_ ___(_)__| / __|_ __| (_)_ _ ___ / __|_ )
+
1558  | | (__| / _ \ _| ' \/ _ \ / _` \__ \ '_ \ | | ' \/ -_) (_ |/ /
+
1559  | \___|_\___/\__|_||_\___/_\__,_|___/ .__/_|_|_||_\___|\___/___|
+
1560  | |_|
+
1561  \*/
+
1562 
+ +
1565  public:
+
1566  typedef enum { P1 = 1, P2, P3, P4, P5, P6, P7, P8, P9 } TargetType;
+
1567 
+
1568  private:
+
1569 
+
1570  Utils::Malloc<real_type> realValues;
+
1571 
+
1572  real_type * m_x;
+
1573  real_type * m_y;
+
1574  TargetType m_tt;
+
1575  real_type m_theta_I;
+
1576  real_type m_theta_F;
+
1577  int_type m_npts;
+
1578 
+
1579  // work vector
+
1580  mutable real_type * m_k;
+
1581  mutable real_type * m_dk;
+
1582  mutable real_type * m_L;
+
1583  mutable real_type * m_kL;
+
1584  mutable real_type * m_L_1;
+
1585  mutable real_type * m_L_2;
+
1586  mutable real_type * m_k_1;
+
1587  mutable real_type * m_k_2;
+
1588  mutable real_type * m_dk_1;
+
1589  mutable real_type * m_dk_2;
+
1590 
+
1591  real_type
+
1592  diff2pi( real_type in ) const {
+
1593  return in-Utils::m_2pi*round(in/Utils::m_2pi);
+
1594  }
+
1595 
+
1596  public:
+
1597 
+ +
1599  : realValues("ClothoidSplineG2"), m_tt(P1)
+
1600  {}
+
1601 
+
1602  ~ClothoidSplineG2() {}
+
1603 
+
1604  void
+
1605  setP1( real_type theta0, real_type thetaN )
+
1606  { m_tt = P1; m_theta_I = theta0; m_theta_F = thetaN; }
+
1607 
+
1608  void setP2() { m_tt = P2; }
+
1609  void setP3() { m_tt = P3; }
+
1610  void setP4() { m_tt = P4; }
+
1611  void setP5() { m_tt = P5; }
+
1612  void setP6() { m_tt = P6; }
+
1613  void setP7() { m_tt = P7; }
+
1614  void setP8() { m_tt = P8; }
+
1615  void setP9() { m_tt = P9; }
+
1616 
+
1617  void
+
1618  build(
+
1619  real_type const xvec[],
+
1620  real_type const yvec[],
+
1621  int_type npts
+
1622  );
+
1623 
+
1624  int_type numPnts() const { return m_npts; }
+
1625  int_type numTheta() const;
+
1626  int_type numConstraints() const;
+
1627 
+
1628  void
+
1629  guess(
+
1630  real_type theta_guess[],
+
1631  real_type theta_min[],
+
1632  real_type theta_max[]
+
1633  ) const;
+
1634 
+
1635  bool
+
1636  objective( real_type const theta[], real_type & f ) const;
+
1637 
+
1638  bool
+
1639  gradient( real_type const theta[], real_type g[] ) const;
+
1640 
+
1641  bool
+
1642  constraints( real_type const theta[], real_type c[] ) const;
+
1643 
+
1644  int_type
+
1645  jacobian_nnz() const;
+
1646 
+
1647  bool
+
1648  jacobian_pattern( int_type i[], int_type j[] ) const;
+
1649 
+
1650  bool
+
1651  jacobian_pattern_matlab( real_type i[], real_type j[] ) const;
+
1652 
+
1653  bool
+
1654  jacobian( real_type const theta[], real_type vals[] ) const;
+
1655 
+
1656  void
+
1657  info( ostream_type & stream ) const
+
1658  { stream << "ClothoidSplineG2\n" << *this << '\n'; }
+
1659 
+
1660  friend
+
1661  ostream_type &
+
1662  operator << ( ostream_type & stream, ClothoidSplineG2 const & c );
+
1663 
+
1664  };
+
1665 
+
1666 }
+
1667 
+
Class to manage AABB tree.
Definition: AABBtree.hxx:163
+
base classe for all the curve ìs in the library
Definition: G2lib.hxx:539
+
Compute biarc fitting by Hemite data.
Definition: Biarc.hxx:40
+
Class to manage a list of biarc Curve (not necessarily G2 or G1 connected)
Definition: BiarcList.hxx:39
+
Class to manage Clothoid Curve.
Definition: Circle.hxx:36
+
Class to manage Clothoid Curve.
Definition: Clothoid.hxx:37
+
real_type curvatureTotalVariation() const
Definition: Clothoid.cc:689
+
virtual real_type length() const UTILS_OVERRIDE
Definition: Clothoid.hxx:618
+
real_type thetaTotalVariation() const
Definition: Clothoid.cc:634
+
Class to manage a list of clothoid curves (not necessarily G2 or G1 connected)
Definition: ClothoidList.hxx:571
+
virtual void bbox(real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: ClothoidList.hxx:846
+
virtual real_type length() const UTILS_OVERRIDE
Definition: ClothoidList.cc:543
+
virtual void eval_ISO_DD(real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const UTILS_OVERRIDE
Definition: ClothoidList.cc:1063
+
int_type closestPointInRange_ISO(real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
Definition: ClothoidList.cc:1522
+
void export_table(ostream_type &stream) const
Save Clothoid list to a stream.
Definition: ClothoidList.cc:1837
+
virtual void eval_ISO(real_type s, real_type offs, real_type &x, real_type &y) const UTILS_OVERRIDE
Definition: ClothoidList.cc:1035
+
int_type closestPointInSRange_ISO(real_type qx, real_type qy, real_type s_begin, real_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
Definition: ClothoidList.cc:1583
+
virtual void bbox_ISO(real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const UTILS_OVERRIDE
Definition: ClothoidList.cc:597
+
int_type closestPointInSRange_SAE(real_type qx, real_type qy, int_type s_begin, int_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
Definition: ClothoidList.hxx:1384
+
void export_ruby(ostream_type &stream) const
Save Clothoid list to a stream.
Definition: ClothoidList.cc:1853
+
virtual void eval_ISO_DDD(real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const UTILS_OVERRIDE
Definition: ClothoidList.cc:1077
+
virtual real_type length_ISO(real_type offs) const UTILS_OVERRIDE
Definition: ClothoidList.cc:547
+
int_type closestPointInRange_SAE(real_type qx, real_type qy, int_type icurve_begin, int_type icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, int_type &icurve) const
Definition: ClothoidList.hxx:1326
+
int_type findST1(real_type x, real_type y, real_type &s, real_type &t) const
Find parametric coordinate.
Definition: ClothoidList.cc:1757
+
virtual int_type closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE
Definition: ClothoidList.cc:1468
+
virtual void eval_ISO_D(real_type s, real_type offs, real_type &x_D, real_type &y_D) const UTILS_OVERRIDE
Definition: ClothoidList.cc:1049
+
int_type closestSegment(real_type qx, real_type qy) const
Definition: ClothoidList.cc:1489
+
Class for the computation of G2 spljne of clothoids.
Definition: ClothoidList.hxx:1564
+
computation of the G2 fitting with 2 clothoid arc
Definition: ClothoidList.hxx:38
+
computation of the G2 fitting with 3 clothoid arcs
Definition: ClothoidList.hxx:244
+
real_type integralJerk2() const
Definition: ClothoidList.hxx:398
+
real_type thetaMinMax(real_type &thMin, real_type &thMax) const
Definition: ClothoidG2.cc:908
+
ClothoidCurve const & getS1() const
Definition: ClothoidList.hxx:361
+
real_type X(real_type s) const
Definition: ClothoidG2.cc:982
+
real_type integralSnap2() const
Definition: ClothoidList.hxx:406
+
real_type xBegin() const
Definition: ClothoidList.hxx:468
+
real_type thetaBegin() const
Definition: ClothoidList.hxx:483
+
ClothoidCurve const & getS0() const
Definition: ClothoidList.hxx:358
+
real_type curvatureMinMax(real_type &kMin, real_type &kMax) const
Definition: ClothoidG2.cc:923
+
int build(real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1, real_type Dmax=0, real_type dmax=0)
Definition: ClothoidG2.cc:502
+
real_type Y(real_type s) const
Definition: ClothoidG2.cc:993
+
real_type curvatureTotalVariation() const
Definition: ClothoidList.hxx:382
+
real_type thetaTotalVariation() const
Definition: ClothoidList.hxx:374
+
int build_fixed_length(real_type s0, real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type s1, real_type x1, real_type y1, real_type theta1, real_type kappa1)
Definition: ClothoidG2.cc:611
+
real_type thetaEnd() const
Definition: ClothoidList.hxx:503
+
real_type integralCurvature2() const
Definition: ClothoidList.hxx:390
+
void eval(real_type s, real_type &theta, real_type &kappa, real_type &x, real_type &y) const
Definition: ClothoidG2.cc:1004
+
real_type xEnd() const
Definition: ClothoidList.hxx:488
+
real_type totalLength() const
Definition: ClothoidList.hxx:368
+
real_type theta_DDD(real_type s) const
Definition: ClothoidG2.cc:971
+
real_type theta(real_type s) const
Definition: ClothoidG2.cc:938
+
real_type deltaTheta() const
Definition: ClothoidList.hxx:424
+
real_type kappaBegin() const
Definition: ClothoidList.hxx:478
+
real_type theta_D(real_type s) const
Definition: ClothoidG2.cc:949
+
real_type yBegin() const
Definition: ClothoidList.hxx:473
+
ClothoidCurve const & getSM() const
Definition: ClothoidList.hxx:364
+
real_type yEnd() const
Definition: ClothoidList.hxx:493
+
real_type theta_DD(real_type s) const
Definition: ClothoidG2.cc:960
+
real_type kappaEnd() const
Definition: ClothoidList.hxx:498
+
computation of the G2 fitting with 2 clothoid and one line segment
Definition: ClothoidList.hxx:165
+
Class to manage a straight segment.
Definition: Line.hxx:35
+
Class to manage a collection of straight segment.
Definition: PolyLine.hxx:42
+
Class to manage Triangle for BB of clothoid curve.
Definition: Triangle2D.hxx:37
+ + +
Clothoid computations routine.
Definition: AABBtree.cc:41
+
+ + + + diff --git a/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.map b/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.map new file mode 100644 index 00000000..ae88ee7b --- /dev/null +++ b/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.md5 b/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.md5 new file mode 100644 index 00000000..e595ef60 --- /dev/null +++ b/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.md5 @@ -0,0 +1 @@ +1ae77f1173832a01e6e62dfdbbe66cb7 \ No newline at end of file diff --git a/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.png b/docs/df/dc3/class_g2lib_1_1_clothoid_curve__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b4108a177aaae4b73c5aa3deaeb8326fd110af57 GIT binary patch literal 4410 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 aW$+Zvr zsQea57uqTN_Igh_S7bHNr(vJm+K;-}=pylT$ zEh8gS*~>9m?Y!C>1>J8ylOH#;(0p)gm4ZjmZ5y<*?RTO?mk-&lYuNfGXPB+KKO6;qA92|F7S!S&7uS zxjAF`I{|8oWVIKI5ps$gVdJ{(I?If-v6^#UFrdBgKV1d`q22SQ^FHb~qfx0qGX!Ly MYpheH{owI`0I9fcV*mgE literal 0 HcmV?d00001 diff --git a/docs/dir_0a1f12c766bab7b1122878f6ee86a58c.html b/docs/dir_0a1f12c766bab7b1122878f6ee86a58c.html new file mode 100644 index 00000000..de2e2aa1 --- /dev/null +++ b/docs/dir_0a1f12c766bab7b1122878f6ee86a58c.html @@ -0,0 +1,87 @@ + + + + + + + +Clothoids: submodules/GenericContainer/src Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + diff --git a/docs/dir_3e733afcaace4b8f3b921cf9d06105f1.html b/docs/dir_3e733afcaace4b8f3b921cf9d06105f1.html new file mode 100644 index 00000000..c34a713f --- /dev/null +++ b/docs/dir_3e733afcaace4b8f3b921cf9d06105f1.html @@ -0,0 +1,87 @@ + + + + + + + +Clothoids: submodules/Utils/src/Utils Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils Directory Reference
+
+
+
+ + + + diff --git a/docs/dir_44f31e97b68efd72c17d68a10af94e4a.html b/docs/dir_44f31e97b68efd72c17d68a10af94e4a.html new file mode 100644 index 00000000..09e753e7 --- /dev/null +++ b/docs/dir_44f31e97b68efd72c17d68a10af94e4a.html @@ -0,0 +1,87 @@ + + + + + + + +Clothoids: submodules/quarticRootsFlocke/src Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+ + + + diff --git a/docs/dir_58aa29abd9db8371a5f796d78f16f3c1.html b/docs/dir_58aa29abd9db8371a5f796d78f16f3c1.html new file mode 100644 index 00000000..635d14d3 --- /dev/null +++ b/docs/dir_58aa29abd9db8371a5f796d78f16f3c1.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: submodules/Utils Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Utils Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/docs/dir_5944fc4197c9fcb1f3be2c4e9dbb3df2.html b/docs/dir_5944fc4197c9fcb1f3be2c4e9dbb3df2.html new file mode 100644 index 00000000..4152e53a --- /dev/null +++ b/docs/dir_5944fc4197c9fcb1f3be2c4e9dbb3df2.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: submodules/quarticRootsFlocke Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quarticRootsFlocke Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000..7600e106 --- /dev/null +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: src Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/docs/dir_8cd12074276c6cad95ab77d33f11f7e2.html b/docs/dir_8cd12074276c6cad95ab77d33f11f7e2.html new file mode 100644 index 00000000..056b2941 --- /dev/null +++ b/docs/dir_8cd12074276c6cad95ab77d33f11f7e2.html @@ -0,0 +1,87 @@ + + + + + + + +Clothoids: src/Clothoids Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
Clothoids Directory Reference
+
+
+
+ + + + diff --git a/docs/dir_9a6a40d0042babb0fe6d781664dd9493.html b/docs/dir_9a6a40d0042babb0fe6d781664dd9493.html new file mode 100644 index 00000000..44f1aa7d --- /dev/null +++ b/docs/dir_9a6a40d0042babb0fe6d781664dd9493.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: submodules/Utils/src Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/docs/dir_c4eb734967f9c800ff33b84ad1703116.html b/docs/dir_c4eb734967f9c800ff33b84ad1703116.html new file mode 100644 index 00000000..b5c5595c --- /dev/null +++ b/docs/dir_c4eb734967f9c800ff33b84ad1703116.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: submodules/GenericContainer Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
GenericContainer Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/docs/dir_fe6eb5064d42f9f773e90d3512fafa25.html b/docs/dir_fe6eb5064d42f9f773e90d3512fafa25.html new file mode 100644 index 00000000..0d2d1699 --- /dev/null +++ b/docs/dir_fe6eb5064d42f9f773e90d3512fafa25.html @@ -0,0 +1,87 @@ + + + + + + + +Clothoids: submodules Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
submodules Directory Reference
+
+
+
+ + + + diff --git a/docs/doc.png b/docs/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docs/doxygen.css b/docs/doxygen.css new file mode 100644 index 00000000..ffbff022 --- /dev/null +++ b/docs/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/docs/doxygen.svg b/docs/doxygen.svg new file mode 100644 index 00000000..d42dad52 --- /dev/null +++ b/docs/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dynsections.js b/docs/dynsections.js new file mode 100644 index 00000000..3174bd7b --- /dev/null +++ b/docs/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Clothoids: File List + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  src
  Clothoids
 AABBtree.hxx
 BaseCurve_using.hxx
 Biarc.hxx
 BiarcList.hxx
 Circle.hxx
 Clothoid.hxx
 ClothoidAsyPlot.hxx
 ClothoidList.hxx
 Fresnel.hxx
 G2lib.hxx
 Line.hxx
 PolyLine.hxx
 Triangle2D.hxx
 Clothoids.hh
  submodules
  GenericContainer
  src
 GenericContainer.hh
 GenericContainer_doc.hh
 GenericContainerCinterface.h
 GenericContainerConfig.hh
 GenericContainerLibs.hh
  quarticRootsFlocke
  src
 PolynomialRoots-Utils.hh
 PolynomialRoots.hh
  Utils
  src
  Utils
 Console.hxx
 Malloc.hxx
 Numbers.hxx
 rang.hpp
 ThreadPool.hxx
 TicToc.hxx
 Trace.hxx
 Utils.hxx
 Utils.hh
+
+
+ + + + diff --git a/docs/folderclosed.png b/docs/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/docs/functions.html b/docs/functions.html new file mode 100644 index 00000000..d1861499 --- /dev/null +++ b/docs/functions.html @@ -0,0 +1,89 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+ + + + diff --git a/docs/functions_b.html b/docs/functions_b.html new file mode 100644 index 00000000..b753a708 --- /dev/null +++ b/docs/functions_b.html @@ -0,0 +1,148 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+ + + + diff --git a/docs/functions_c.html b/docs/functions_c.html new file mode 100644 index 00000000..87552649 --- /dev/null +++ b/docs/functions_c.html @@ -0,0 +1,144 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+ + + + diff --git a/docs/functions_d.html b/docs/functions_d.html new file mode 100644 index 00000000..b4f7486f --- /dev/null +++ b/docs/functions_d.html @@ -0,0 +1,100 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+ + + + diff --git a/docs/functions_e.html b/docs/functions_e.html new file mode 100644 index 00000000..6e1949a6 --- /dev/null +++ b/docs/functions_e.html @@ -0,0 +1,149 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_f.html b/docs/functions_f.html new file mode 100644 index 00000000..11e331c3 --- /dev/null +++ b/docs/functions_f.html @@ -0,0 +1,93 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+ + + + diff --git a/docs/functions_func.html b/docs/functions_func.html new file mode 100644 index 00000000..4ae4bb1d --- /dev/null +++ b/docs/functions_func.html @@ -0,0 +1,89 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+ + + + diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html new file mode 100644 index 00000000..48cc9518 --- /dev/null +++ b/docs/functions_func_b.html @@ -0,0 +1,148 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html new file mode 100644 index 00000000..6890d0df --- /dev/null +++ b/docs/functions_func_c.html @@ -0,0 +1,144 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+ + + + diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html new file mode 100644 index 00000000..7fd5a97b --- /dev/null +++ b/docs/functions_func_d.html @@ -0,0 +1,97 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- d -

+
+ + + + diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html new file mode 100644 index 00000000..81e55040 --- /dev/null +++ b/docs/functions_func_e.html @@ -0,0 +1,149 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html new file mode 100644 index 00000000..0dee6569 --- /dev/null +++ b/docs/functions_func_f.html @@ -0,0 +1,93 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- f -

+
+ + + + diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html new file mode 100644 index 00000000..7d172b41 --- /dev/null +++ b/docs/functions_func_g.html @@ -0,0 +1,209 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- g -

+
+ + + + diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html new file mode 100644 index 00000000..3ad14828 --- /dev/null +++ b/docs/functions_func_i.html @@ -0,0 +1,116 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+
+ + + + diff --git a/docs/functions_func_j.html b/docs/functions_func_j.html new file mode 100644 index 00000000..666b7739 --- /dev/null +++ b/docs/functions_func_j.html @@ -0,0 +1,86 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- j -

+
+ + + + diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html new file mode 100644 index 00000000..cd5d8b8d --- /dev/null +++ b/docs/functions_func_k.html @@ -0,0 +1,92 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- k -

+
+ + + + diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html new file mode 100644 index 00000000..fb9e6843 --- /dev/null +++ b/docs/functions_func_l.html @@ -0,0 +1,112 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html new file mode 100644 index 00000000..d731808e --- /dev/null +++ b/docs/functions_func_m.html @@ -0,0 +1,92 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- m -

+
+ + + + diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html new file mode 100644 index 00000000..e43da4fb --- /dev/null +++ b/docs/functions_func_n.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- n -

+
+ + + + diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html new file mode 100644 index 00000000..0e60d9ae --- /dev/null +++ b/docs/functions_func_o.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html new file mode 100644 index 00000000..bcf41f6d --- /dev/null +++ b/docs/functions_func_p.html @@ -0,0 +1,143 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html new file mode 100644 index 00000000..05cbd3af --- /dev/null +++ b/docs/functions_func_r.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ + + + + + diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html new file mode 100644 index 00000000..93ae3344 --- /dev/null +++ b/docs/functions_func_s.html @@ -0,0 +1,160 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+ + + + diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html new file mode 100644 index 00000000..6182b1fd --- /dev/null +++ b/docs/functions_func_t.html @@ -0,0 +1,125 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- t -

+
+ + + + diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html new file mode 100644 index 00000000..666c60fd --- /dev/null +++ b/docs/functions_func_w.html @@ -0,0 +1,86 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- w -

+
+ + + + diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html new file mode 100644 index 00000000..e7b38a72 --- /dev/null +++ b/docs/functions_func_x.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- x -

+
+ + + + diff --git a/docs/functions_func_y.html b/docs/functions_func_y.html new file mode 100644 index 00000000..1a55d529 --- /dev/null +++ b/docs/functions_func_y.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- y -

+
+ + + + diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html new file mode 100644 index 00000000..2287a449 --- /dev/null +++ b/docs/functions_func_~.html @@ -0,0 +1,89 @@ + + + + + + + +Clothoids: Class Members - Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- ~ -

+
+ + + + diff --git a/docs/functions_g.html b/docs/functions_g.html new file mode 100644 index 00000000..7d6dfec0 --- /dev/null +++ b/docs/functions_g.html @@ -0,0 +1,209 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+ + + + diff --git a/docs/functions_i.html b/docs/functions_i.html new file mode 100644 index 00000000..b65a7b90 --- /dev/null +++ b/docs/functions_i.html @@ -0,0 +1,116 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+ + + + diff --git a/docs/functions_j.html b/docs/functions_j.html new file mode 100644 index 00000000..f56ae3a6 --- /dev/null +++ b/docs/functions_j.html @@ -0,0 +1,86 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- j -

+
+ + + + diff --git a/docs/functions_k.html b/docs/functions_k.html new file mode 100644 index 00000000..4894c16e --- /dev/null +++ b/docs/functions_k.html @@ -0,0 +1,95 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+ + + + diff --git a/docs/functions_l.html b/docs/functions_l.html new file mode 100644 index 00000000..2e0f5ffe --- /dev/null +++ b/docs/functions_l.html @@ -0,0 +1,112 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+ + + + diff --git a/docs/functions_m.html b/docs/functions_m.html new file mode 100644 index 00000000..36fee5ec --- /dev/null +++ b/docs/functions_m.html @@ -0,0 +1,92 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+ + + + diff --git a/docs/functions_n.html b/docs/functions_n.html new file mode 100644 index 00000000..f66fb94a --- /dev/null +++ b/docs/functions_n.html @@ -0,0 +1,94 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+ + + + diff --git a/docs/functions_o.html b/docs/functions_o.html new file mode 100644 index 00000000..954cd1d5 --- /dev/null +++ b/docs/functions_o.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+ + + + diff --git a/docs/functions_p.html b/docs/functions_p.html new file mode 100644 index 00000000..085ee7ab --- /dev/null +++ b/docs/functions_p.html @@ -0,0 +1,143 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+ + + + diff --git a/docs/functions_r.html b/docs/functions_r.html new file mode 100644 index 00000000..c61801c5 --- /dev/null +++ b/docs/functions_r.html @@ -0,0 +1,106 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+ + + + diff --git a/docs/functions_s.html b/docs/functions_s.html new file mode 100644 index 00000000..5d001844 --- /dev/null +++ b/docs/functions_s.html @@ -0,0 +1,160 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+ + + + diff --git a/docs/functions_t.html b/docs/functions_t.html new file mode 100644 index 00000000..cc5af728 --- /dev/null +++ b/docs/functions_t.html @@ -0,0 +1,128 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+ + + + diff --git a/docs/functions_vars.html b/docs/functions_vars.html new file mode 100644 index 00000000..687ca110 --- /dev/null +++ b/docs/functions_vars.html @@ -0,0 +1,96 @@ + + + + + + + +Clothoids: Class Members - Variables + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/docs/functions_w.html b/docs/functions_w.html new file mode 100644 index 00000000..3dabfde0 --- /dev/null +++ b/docs/functions_w.html @@ -0,0 +1,86 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+ + + + diff --git a/docs/functions_x.html b/docs/functions_x.html new file mode 100644 index 00000000..9adf8879 --- /dev/null +++ b/docs/functions_x.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- x -

+
+ + + + diff --git a/docs/functions_y.html b/docs/functions_y.html new file mode 100644 index 00000000..e307882e --- /dev/null +++ b/docs/functions_y.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- y -

+
+ + + + diff --git a/docs/functions_~.html b/docs/functions_~.html new file mode 100644 index 00000000..1b9b8edf --- /dev/null +++ b/docs/functions_~.html @@ -0,0 +1,89 @@ + + + + + + + +Clothoids: Class Members + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+ + + + diff --git a/docs/graph_legend.html b/docs/graph_legend.html new file mode 100644 index 00000000..ae582720 --- /dev/null +++ b/docs/graph_legend.html @@ -0,0 +1,143 @@ + + + + + + + +Clothoids: Graph Legend + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+ + + + diff --git a/docs/graph_legend.md5 b/docs/graph_legend.md5 new file mode 100644 index 00000000..a87a87b1 --- /dev/null +++ b/docs/graph_legend.md5 @@ -0,0 +1 @@ +3d1a1f8347851263caf62de626b3c876 \ No newline at end of file diff --git a/docs/graph_legend.png b/docs/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..cb74f951f9dbbcee427070f7ff577633c8968a7f GIT binary patch literal 17667 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 + + + + + + +Clothoids: Class Hierarchy + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CG2lib::AABBtreeClass to manage AABB tree
 CG2lib::AsyPlot
 CUtils::Barrier
 CG2lib::BaseCurveBase classe for all the curve ìs in the library
 CG2lib::BiarcCompute biarc fitting by Hemite data
 CG2lib::BiarcListClass to manage a list of biarc Curve (not necessarily G2 or G1 connected)
 CG2lib::CircleArcClass to manage Clothoid Curve
 CG2lib::ClothoidCurveClass to manage Clothoid Curve
 CG2lib::ClothoidListClass to manage a list of clothoid curves (not necessarily G2 or G1 connected)
 CG2lib::LineSegmentClass to manage a straight segment
 CG2lib::PolyLineClass to manage a collection of straight segment
 CG2lib::BBoxClass to manipulate bounding box
 CUtils::BinarySearch< DATA >
 CUtils::BinarySearch< int_type >
 Cc_complex_type
 CG2lib::ClothoidDataData storage for clothoid type curve
 CG2lib::ClothoidSplineG2Class for the computation of G2 spljne of clothoids
 CUtils::Console
 CUtils::Console::Console_style
 CPolynomialRoots::CubicCubic polynomial class
 CG2lib::G2solve2arcComputation of the G2 fitting with 2 clothoid arc
 CG2lib::G2solve3arcComputation of the G2 fitting with 3 clothoid arcs
 CG2lib::G2solveCLCComputation of the G2 fitting with 2 clothoid and one line segment
 CGenericContainerNamespace::GenericContainerGenericContainer is a class which permit to store eterogeneous data:
 CGenericContainerNamespace::GenericContainerExplorer
 CUtils::Malloc< T >Allocate memory
 CUtils::Malloc< real_type >
 CPolynomialRoots::QuadraticQuadratic polynomial class
 CPolynomialRoots::QuarticQuartic polynomial class
 Cstd::runtime_error
 CUtils::Runtime_Error
 CUtils::Runtime_TraceError
 CUtils::SimpleSemaphore
 CG2lib::Solve2x2Class that solve a 2x2 linear system
 CUtils::SpinLock
 CUtils::SpinLock_barrier
 CUtils::ThreadPool
 CUtils::TicToc
 CG2lib::Triangle2DClass to manage Triangle for BB of clothoid curve
 Cstd::vector
 CGenericContainerNamespace::mat_type< TYPE >
 CUtils::WaitWorker
 CUtils::Worker
+
+
+ + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..2a193646 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,91 @@ + + + + + + + +Clothoids: Main Page + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Clothoids Documentation
+
+
+

file: G2lib.hh

+

Clothoids

+

G1 and G2 fitting with clothoids, spline of clothods, circle arc and biarc

+

by Enrico Bertolazzi and Marco Frego

+

for the documentation see manual.md or Doxygen documentation: http://ebertolazzi.github.io/Clothoids/

+

Authors:

+

Enrico Bertolazzi and Marco Frego Department of Industrial Engineering University of Trento enric.nosp@m.o.be.nosp@m.rtola.nosp@m.zzi@.nosp@m.unitn.nosp@m..it m.fre.nosp@m.gox@.nosp@m.gmail.nosp@m..com

+
+
+ + + + diff --git a/docs/inherit_graph_0.map b/docs/inherit_graph_0.map new file mode 100644 index 00000000..739ba06c --- /dev/null +++ b/docs/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_0.md5 b/docs/inherit_graph_0.md5 new file mode 100644 index 00000000..fedd5a18 --- /dev/null +++ b/docs/inherit_graph_0.md5 @@ -0,0 +1 @@ +1e0621fe0ef6795bbed08f16ff5a705e \ No newline at end of file diff --git a/docs/inherit_graph_0.png b/docs/inherit_graph_0.png new file mode 100644 index 0000000000000000000000000000000000000000..427bf4768c2967134399289ac6aa74c94d608f1e GIT binary patch literal 1120 zcmV-m1fTnfP)K<@B8VzGi|;Hutf$s7QNnq@YN0GU1_8=%k02IzCL0s5SNHo#GM7>6HdAqSFvHoz3z zj)^@y$9kOG!~RE2Hw`czCv>^pIGm{UT{@wmY$7JNsCyWWte|H=_vU3FlPq zmRzmHGh+#tVLN`uCamm2yNj_6Tk#hj!6BH3Jy?xj@FyO?nsmGmkETA(zy>^&`r3yV zg=uD{aSo)qr(#{|V+ZaP23(yq9GmJb$4@w}&DcK2{-kv|Ucpm^@(I|2E8FNS)7A+? z;@Y;QQv=LO!mdr}3&p@s8b!OAsqB(ec09hr3SodDJcsGHF{R(c44j|R({Xk>eoWk1 zwSMkaZ-6QI8Ta4_%ue-g7N+|cucr1pu(aabY)RuHUaW1$p(%X*oCjeomrKl0VatHUQ0iTXVP(*&UV_W($oNDuY#*G2VXYiy*|ozbHw0_{2;<* zjjic_U;5urC>s)Y?tU@pgN3rq>L;3rI#cjPL;kw-{|(;2b-2dJ*dwCI61M0LOLwRAnIeQ1*@j<5c&$ah z8HP8Mi^K){P<&B4Pv`q2cpfj~wWQ~R3Od_q>pGn-0SoaD7N_*(LU=oKm9;x9m0g<3 zriln}li?+x_V_k6rRNp;-YX1L3$1sg{Q2n|tJE(6bH&78FU&I=pW!aC?ry++V&k`6 zJU&)oqxz3(MkqfJ($irzmQj^vrJnj z^wa=E_?pw@b^|ya$Bdv~Vq$lu<5^;O&?kFsU&Nm}XbRNIIdX#_YJ zSs*UL!N3Ax<`pf + + diff --git a/docs/inherit_graph_1.md5 b/docs/inherit_graph_1.md5 new file mode 100644 index 00000000..6ddfb74d --- /dev/null +++ b/docs/inherit_graph_1.md5 @@ -0,0 +1 @@ +73da4265f719a17680f13559560c76b9 \ No newline at end of file diff --git a/docs/inherit_graph_1.png b/docs/inherit_graph_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d12de7b96d0d5e852ce8fe8381e7755987533224 GIT binary patch literal 1242 zcmV<01SR{4P)?Mg>eXyscSz>9WW>WTH?cp9zmaTa~f1F}te`$#fYj@o;gVrHax?xU5Ue$#ga2 z#3J8^9yKORIdHaQ4iYa`8>|)yGXFEO6J)XzWU>=v)GiDgr6*>I>a!0%z#I6eq}PhE z*nv;56UX9i%u93cz+4Q*jhNF(+fK(!JeR(+5uFyLEfu!neJpQ4=a8jYk)RbH<65i` zFMp(X2vZAs*JA_jNjhuAi|#8NsApD!=Ak7V0~(wvvIMY(!(;73fV^8H7pR-vE$FVI@D_IOd1ZDKPb!Eu;@`C`maJ1Wqb3+Gj9FC}8z>$CQ5*at zQbTJ&r;m8pkCyJ&V&4_tU#zmh7$I`@9NdXD>E0E}ec~Z6#%{cdYw&CbbY^0rh-xEn zR_fQQGg?G~>B9L3iPU$UNSUjW{ZHWm953pL@A14ypVeef>LksG1OvoN+FclX4PT`8 zok%f7#^ci@D?jXN+%LR;1(s?{Da-IsL9g5&B69HJ)PEuM2Q{ceIC?knTeqj{nH|t6 zGcVaa2}k0QG;b@Gh$wYQ4OypYMkM%37&bw8D{)3$VRPa7Xgr3C#Y%ocJg{SG+2YW@q2cz&MZchDixUyhJu|Hlo&Iu)3$E16Xs#B*@`A;d>d=cKk z4Hcnh7Dqu@{Fhj+LP7G0d;~3M~Xv|Asw7wi%Qfu-07!w8t#KL#crq(Sv^#B zf@U5Y6CS#z$@i?#UQRt+*w&7`a-80%ti$9#kTTf`GT8|-vJ+%vC& + + diff --git a/docs/inherit_graph_10.md5 b/docs/inherit_graph_10.md5 new file mode 100644 index 00000000..2a7567e4 --- /dev/null +++ b/docs/inherit_graph_10.md5 @@ -0,0 +1 @@ +27042bef6b1604a0d1dd2246697fd638 \ No newline at end of file diff --git a/docs/inherit_graph_10.png b/docs/inherit_graph_10.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0c40ad72760562522ffc37b27c4f4e56dc61c1 GIT binary patch literal 1250 zcmV<81ReW{P)`)!=N{ktzW2TQ-j;X1 zaNx|Gd1juO-#jyO&LNY@WHOmdCi9=9UxmDJxVo<$$ux|&aC3t$D9qbNzs|+ecm>ztupZhKecDzk^|_IDb#o53)M?X>53v-}aitLd z4@@qUn}Xl*9)86a7>>PDn{Da-4Kdggu%eg!fNQZ5ci;ltmVCOb2ew6@wuSEc+$g&u zi*$2>FVh>*AH+Mhj*10XjutUfH{yi!Y#^3kmhK0*DEclU`s!gNE-vNWfKN+#{jhJz z|K5n+rt9iitS&Z6%&OBMQ+9Gx(@J2{EQ(&^q=qmHl%i* zNzY)0ShiJ2_Y)CvbE(a?RBs0-CBIgPRp2f$NsB%$#{7a!3%=F)5$jNVg!Nd1n^ODL z`aC1Gxkt*s5Z_~14ZC`1nCRnD`P~Y6!^D@pj%#oQyTSMzSLiyxqtbnc=v%Nb)jt7W ziSq&+k7F2)Z!qxfhc?#{{2<+xEq=!jIu z)Ea$m!P|H$wYx^wt*|@0dT5yFr-=w0QpkH7zolz4E-Kkf#4-_;t!j%tvS51)-mSyG z{l$|0s)*#(xFkKBCMHplxv6Z?r(MM4n3T#a#C_@hJh2+J32_FeI$o;L=MLZ2iS6cz zZv3xg*HaoM`sh^tj@P_ulDV|r+kKAa4eoH zJv%_>p4EaE#LPYjKlZTxb}`T!Q~D5m(*wKlcv%R)Hs!6x9I;Fe7Xv!6WY=B&kB9^7 zVlk0BR-2Wn-Vr*3rCmgPtv-*#>3CE82|Fg$(c7`=HN82#UoH+!X9$OP#+l;8xn4y2 zcriIfizw>2+SOj(XQXz + + diff --git a/docs/inherit_graph_11.md5 b/docs/inherit_graph_11.md5 new file mode 100644 index 00000000..d934a262 --- /dev/null +++ b/docs/inherit_graph_11.md5 @@ -0,0 +1 @@ +534498f9836a45d8a867e1cd693ff7b4 \ No newline at end of file diff --git a/docs/inherit_graph_11.png b/docs/inherit_graph_11.png new file mode 100644 index 0000000000000000000000000000000000000000..12c9420cfd4776977e24598c2c969822e7292568 GIT binary patch literal 1384 zcmV-u1(*7XP)IET}2eY@n4EbG#gDUYtST?VEbT8ltd*WqUZ;)#I9I^ z4NML4=SRfU_p>z_lq4YAZo0HL?lr}i9NBz5))hEhcl0N_rAMt-#*{&8Zv(v zxOeW{J7>Vq9gJYm{}-+Ze~| zIhoD$1mEM-(l_?RKRC7*S$gAf72DEISk}gvgR3;U#Y@HN*g&kppYTF@wh}L5|I$0# zV7XXXM2Nc&-=+7TDm=SbtP;K4H)9K|O0s{2<4XM=ghg1K`mUY&O~o%b7t8R2@Q53x z=ZE5(^sQI$fa>r!4Ihd{^8>CI#@DKzio7cf=j;~7-6x$eiXFsY-Y?Wm6epwOMQ*WL zD6YHEW-N}xV-+$LJ;Ekpg-yaN?5?il1$eH|wtU}=VZxQ4CPLghrG9V1)z}QX;dC*P zFfPe588fh*Fowx^MC2FHXhrt2;dKGq2DQR8Nf$!lL!g^yaFv(kOB-{I=U-Ys&H zWx{xB?TSh4Q@BC=X7qNcpG6`!D30+&5eCMKNgpc`$QMfQmi0t+_#kxrMMZrx1}uDh zDwMZhp>C#7ZWopo>c`Ta|U)1$>1pAPPf!EepWG3tW+ZQ&K9wn z@JPoO+LrIzWh;^FEl&4Gh}GTOE~LgwVvL8RwzIK!FYP9XFfvRS$8#dtZADKLQr)EV z{nv%@+}ZjN`$s!l(&6GzW`!_hlS@L;_ycW zIm-7nn&lL=En>0Xk*WPs5xVB$-ZZAYQ@i4M!(7~wuFnw$wLE>}d0bx6-w7h;T7p0E zpfG}FdLnX)V*SUsN9?BhOJz<`MLR}OW0bJ+DQ&*rj8?o#r`cN1bA>H5_ZD4Z^$t@% z_jpO + + diff --git a/docs/inherit_graph_12.md5 b/docs/inherit_graph_12.md5 new file mode 100644 index 00000000..c39864bc --- /dev/null +++ b/docs/inherit_graph_12.md5 @@ -0,0 +1 @@ +d9174a23bf8d40a8b5a90f26c28d42c1 \ No newline at end of file diff --git a/docs/inherit_graph_12.png b/docs/inherit_graph_12.png new file mode 100644 index 0000000000000000000000000000000000000000..997876471740c04b2912dd72cc002f7fc67cf19f GIT binary patch literal 1963 zcmV;c2UPfpP)+h2^Z)bLA_PaCloB7S`PC-!=MNt$*Q4~c{l%k}>CvF@tx4nfZN&&JM_|hFw z>T}UxU`D&hQIx`E24V|obh0G4q3yINO2O0O7wI>`D2ft*8jPaEKn+GwVxR`2C^5*T z!E^-{0B-|pfX9G~a+rS<`U1}yEm5cfo&eql)&fg`A#Ecqkhq$o@(ggVPy8*wO*y_- zhap!6(+~I>xE=Tcco#Sq_zaktqkBZ5D=?a9&ou)07Ptgh1*`yu1Dk=7Inc5hxHQ6b zaWuza4$=XP@x)&aT$bZ|b!cuRU`frwE5JISyC?odU=L8{iLWHMfs~o^e%R7=Gk;!6 zfzy5B*8(ej@>>ghFtD)4el zU7bjO_O3vWnA%E#{sCzKx&S=`&IM@;s@pIvQD{MIA(XfV(+6lqdM+;&$orfM6CMR@ z0*(NG0*@mFQ41Ud?gtJ4{~@DO&yaKjfnz{D@CR@Q@E1^S($$&xL%=Ve8I6a+r!3OdZl;HMpL~ zYcN5&YE7Q=fqmwlPXdkR_$2UxE1w{30E>X1fWLuXfs0N27+^c_w7K_5U^yw{4AKU{ zbsMH7Ds5&kKOD3-G47_5!4V-Wrl_kV*GB zQn&HHsPtRdz=8qhiE$!8JQb^0p?!L0*7NTeO-ArAnv_Q zo2_nbTH@eqFkuZQ3OkX9nuJXD0miz{H<@3@`Zs#gZ*m>)bsZl?dYvfgyypOFfbTtV zE6ndUr1u$zxIAvoLJF$UgAiWg8G-N1mLfo+hz0UsF`PPATrPBlX&a5qd-@zj}v+$ms?!d!?<9*-l2|2vs(O9RsQcOWC_GGt^9)4bT^JcxL0aO_W|Mw5U64wtwp`<^{@B*fbD6F?;`0X44bg1tSt}9O zpeo>e5S666y)~pa>VcMf2GQDbuu((yx*%9v32-*z&bsrRfGnwlOxSzJ)Ml&OY|E)# z3`SAn;5L{-!`EQ+<4Yx<975c*#GnSFS|(8gHep{Ng@CKtO zanR5E6(w8LU=$?=YA}it12q^$iGdo7qQpQAMp0s5`!wdQc2l7!3BkL03gnZCUhOSJ xQ3{ML$baD6oo^wEq9}@@D2k#eilVdw{{v&9ABHYR#$x~g002ovPDHLkV1jtOlr{hW literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_13.map b/docs/inherit_graph_13.map new file mode 100644 index 00000000..a4f79166 --- /dev/null +++ b/docs/inherit_graph_13.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_13.md5 b/docs/inherit_graph_13.md5 new file mode 100644 index 00000000..f77a10f1 --- /dev/null +++ b/docs/inherit_graph_13.md5 @@ -0,0 +1 @@ +a29d4d08b7a20f067fdbd934a9d437f2 \ No newline at end of file diff --git a/docs/inherit_graph_13.png b/docs/inherit_graph_13.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dc5412dd4d205b58fae9ee2acd964523b0945c GIT binary patch literal 2281 zcmVB`N;KN|05k^VWw8tRz*(w_1o{ zbResMNBn@UjGGPy&TEMr!{}VjL%vYQUV#W78$B(C(eVst1!lD{hGFDj4r3S*n8O%G z1m-Y?5kZv>(*s-z+zUJmd<%Ggh3S`J0Jzp^DMLSSHSiFy4!8k0WOStE605l^-vz#y z5&kLQ6BR$}Z9`QKGX?lP@LAwDzyrX$fnNdVSM-cB^Z>_G?!Ary9tTbV?g!QYM+46Q z$5x=_8Q_B@?u*eJ!%|cMoR|v#5O7+>&w5+)adM{A0^9;T2JD*({{gTO=uU-CBENui zyX#qm;_c&(G+n?!8R6@I`!dp72mCA*HV(Bs>Gw;>()>?gUdFxsWPdO&lV(C0JNyrL z3V4G0&j+^wKaAA17xnMn1N25}>jI|c!~qx&?4NTjPg`Ez7HKKNF!F^$VjX5Oum{y# zX(piWITPIZalq5SHsCejDrAV6!0W)5fmeb5qtZ-$0*>H{XT7 z0sI}f#DyQ@-toN|nhyp(?46$pYz8&~JAvy^VGe12!r5ep(*$y!^}rUF-YOS3Yh>J`-FcsT?l$0)PSZS8hz|o6pu)I!!Mja&X`JQGr@3b@Ezk^& zEzBR#*dZz4ucM4j(&;NmGsX@{3v(*^V!f5x*evZZMY`@lmY7R3WiS6^k9z~h7)m>W*EJQWMBvcrB zQEl}TYMJ8?xYwWoc_>~|P)>Gn{K9t$@LWpkN0G752mVWVr2{UF7gJ#?fnOA8hI)tT z0**u(KLr)!SDcP4hZ(6Ipyn{3uIG>4Z{K0c=sMKhdw@GX-FwC^;G_a=hohEx8E~L` zRx-hnILv^T<}%d14`~bKZAeQDnGRD_V9M}3dZ|;{(XcYTxln|S|IsrXNOzc+io zx1(C8OuY0pfI;9-sjxNf?{ld3nT@(UK1U!!t#oNTmb(5I)Ixtjs)K6es4xi^9*V&*c4O)Bm=WOUfgjd;)U2k<1Ez@RNJmc zecv-^beONAF3qq@!>wfJJ-bLhJWz=LRd z{A_nV8BGGLE_gPmOOy=O4?%;^q#JQAstIETqRrYN;RfV5^S!VtbQNhk9*uh@qb}82 z>dRdhaw1Uc{t@7(1=>P+J5oDE)6BGT7jPLWh}%)^y%7zxu15tC)c@RyYUo|4KRupW zf7$eP8wVVPy0d<|bI_DJ zXuy6zq_$Arj?_*qaTvph!FQNWBhz7Q@uksD-ay^7F@rgb(N3O3v#VnUa~Q*jpo;G> zRnP-`1${{DMc)b@0Djj(4FkXmv~*)@tBBQHmKD^0efRkW z&5t`Kq9rSrQTyC5rs#wg#HZ^qHg>{&t|su-)@`_oohJxgX=13GVO zz!33^6|+b$+0Xi3RAirY-ZYbs&Cs@K<>kQ7bIxsRKxb|ZC~}zP?wyilPm9p9{i%eP z?57&Tvi_+?-jaQvL5l5@Xd21ZhDvF-!`RkQ?2|C6OZH=E#kBG)R10OD+tz?=I$>+T6x7X2A3dmr zy#xI#rv<2>FZJT)E!p>pu}{mF?8i{`7-l8f?U#3MTLT(3w|i^AkPFK?PC$EW)_c#o z!0A1T@RI%Xv-0edr71>#6?EjF-^aEFG{zeXTLaRRS+egFW1m*&Pw04uG2R+<@{;`+ zYA-y>Z zv?OC + + + diff --git a/docs/inherit_graph_14.md5 b/docs/inherit_graph_14.md5 new file mode 100644 index 00000000..4aa38d6a --- /dev/null +++ b/docs/inherit_graph_14.md5 @@ -0,0 +1 @@ +04c6b0ee428b1a7253148efb6609a364 \ No newline at end of file diff --git a/docs/inherit_graph_14.png b/docs/inherit_graph_14.png new file mode 100644 index 0000000000000000000000000000000000000000..9816ad300e750a26dd1d7f3b32fde42ff424ae25 GIT binary patch literal 3816 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 + + diff --git a/docs/inherit_graph_15.md5 b/docs/inherit_graph_15.md5 new file mode 100644 index 00000000..6f0b0de3 --- /dev/null +++ b/docs/inherit_graph_15.md5 @@ -0,0 +1 @@ +9fffbd65f050c9d8d67b20d4b98849b6 \ No newline at end of file diff --git a/docs/inherit_graph_15.png b/docs/inherit_graph_15.png new file mode 100644 index 0000000000000000000000000000000000000000..838afd73c552f833fe64795aa95a1635dacd2042 GIT binary patch literal 1660 zcmV-?27~#DP)UMT~!sp@!yoGEn1+`TBQZsT7ybsC9No0MU9Ud(Ugjy zLW3BiCW;DDASP;jH7O(z6+a*tO-v;=B{iU;F^X1EgHKXlppDc=wLk%_A{J}whqbS> z@0oMYJ$E`Y%!K_$+gZE(8ILUH2%n}RP zPcK!O*JGuT=RYFV-Hy}7L9SonCF3v;EEmq?G~9%3I4Rv@MT_xI!g)Q~+UjrIIU9!t z9J5m_V$R#}Adb%JhOih%W_63w{pJpEzax6|ubV$-xY9NYk85$idAdKuRAv5!@Gd#C zunV6XK*nBef5nBIgsHaGSr9rS9u9ZwX7c7E#nLEM$(+Km@v_qaqv zxw`Ul;bA|7gB5w#KM*e~Q-&!&@je%}Vv2_TwVFuE2A#K}4EPSnsEUUTt)H+GV(3 zc(|Fu!++lhYjhh&UOp55HKN~MoRpp~H`;HAJa~0#yG}%))nWsEM7RD(>-#XCuUqLe@HAnt3-Ds$HO^6QwEKkD+l{@c{T3q|ph?E2HoA@WsY2Hq zL=+p+{ycDw*hu{j;BAa{Y1Xz0Khmwgi$x^Jd95(!woG_>aH$Y>4vrOJsN-puh_IKl zOZSPJ2uU}H-#!du9X40`+>>2DgvYd;zmta@NdNOw{UM`Mm4jHD=D7_Q3NO`*jl!50 z39o$$UW9W~dy|Z9C9S{1@GuYzLlD z>Aysz1v%S9ns8W5)+uiBM^?H~ zYr9GuYR(nj?^co5{y6o2Yj)3#_;o{h2p>rE?H3N>ZgEJ<*(4msz4#iwZX~DOB{td~ zkuq%-8=!iSeV5Sf9+4`nH5e0m5Npd^k?YOt)9(Uth?%JQ2Vsfs4Ykl<-nL4UjQ!d= zMm!|aiIWdQmf7M>M^p4TM)#M_DvLy_(8Q5Khht$%7;Qi1ibKM0jfBd=qnAnlxG)x; zj8BTN`sGJhmckTeynZk + + diff --git a/docs/inherit_graph_16.md5 b/docs/inherit_graph_16.md5 new file mode 100644 index 00000000..19e93653 --- /dev/null +++ b/docs/inherit_graph_16.md5 @@ -0,0 +1 @@ +6fac8a68e1a7062410b8e843ab00bb77 \ No newline at end of file diff --git a/docs/inherit_graph_16.png b/docs/inherit_graph_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b85794e44cee38e451c94fb7b13510dc4710dd10 GIT binary patch literal 1776 zcmVBEbhjd>3pqh1wQGRIpfD|2X&O z+?oF7H#7UJa=*!D=DyCHdw%!abMBp43WY+UP$(1%g+ifFC`^c`l1KZvj47k!L90w2Qr@bDDrGf@_axm=394gETGz7$7g?fdWt+>~Aq zH5TISI0XxE2d>9=rs1<*FKoGG5;FRIE|X@eBE(vpAQr+tjN!Yux{tB*aS=wQNSDbl zf|K;NOQ+6n#B#0q&rNl=h-5im7S8e(JX_c-kJ?|yyVCn6yPPZR z{6LadefhN{$$WFt`OF46opbJdE~~^E_znJyb*7PtMu-pN8R_pOxDh{3?Mv|x&PnAZ zxLX)F-)+~31$$WP_cF0yN5#TEfX!l8KN&kkYSJXX8uxjTi@qt9ug7AXoyv={zLnvB zhS!Qky+k z(`{G3BFTDAnqTe^-^Rr~>@qLSH!+ns&p_!ExeYEfzc4ZoEOgLp&&Uz8%<;+HcZwt|lFu+Gt-K#|m4o7twb} z|L3oZa8E<~MiHT!9HPlCD{JKcQoBREDAhN~p}Rw@6A>lnRcd~Q(SvDEncgcDo{uBN zVX}%4W5Uom+qK`!5Fz!e;&&#)I1kr!^x2iYe;AMJQ~u8MTBQp4?au)Rr*Hd3_}`vn zzZ;M0&Ia+&mx^d}3eLd!sl7?Ze)O-{h6}{Q+#zm=UeTae&fOvv8ST=39PaAURz>Y5 zyPT~(T5<5a?(9QO6JsJ(%Gn}Pr%5wYr}jN~R!7~5_)|^aYebItQnBE_-_gE5dtZhA ze&p}how^iaxkv+FDWc0NkplJ0PlfKs_o3q;_Bl$V9nTkwdo!-o{URafRB*4o?e^m@^^9m$a!8DT_$SZJt9ixyu;)U*#Bjw9O4^zu9!R#K~~~R zHGOXu5A9?4qUMD>5&8YHOdPta@O+-gQ@iEgb?m|6edyRr|9@*;9-Ji3KSzob<3{bz z@l^#*=s~Z%(HNtxO%-=q;LDQQi?TNDM^!EZV>6#>Qp{cD{bzimwod& z=UgY8?%ZtLI;{*~%9*Nb*G|@pNp2J8geyf_RCn$A(Ny=$tggx<^St(2tt-85@;k>J zp338yoJT}%o9C*-Vu#-)7Ra??_q<0e%3jy5@ToMmN>RG$*sE=mI7pr^cI~a=9C2If z|JLj?H{jO|HQh0-{oR6+Kq1tXSukCU6zUi^`ohLmx%cJ8KSaT zFFE;~J1;xlnRMPM(x=Kf24Pwc)%~(SZ*sHB_ zkRg#`oj3_y=8E0?G_7A5oFfjX6-Q|Q1wzi4?sj>yh713We!l#=n@G2v5f+M5=MaEbCHu3^G+e?wcy^5Gg~UFe@Bt5u#9-Rf + + diff --git a/docs/inherit_graph_17.md5 b/docs/inherit_graph_17.md5 new file mode 100644 index 00000000..fde2ea78 --- /dev/null +++ b/docs/inherit_graph_17.md5 @@ -0,0 +1 @@ +7a9fdff2476a3437bb41ee301307fed8 \ No newline at end of file diff --git a/docs/inherit_graph_17.png b/docs/inherit_graph_17.png new file mode 100644 index 0000000000000000000000000000000000000000..f1270e8e55e21a1b1668e3a82f26bb7a63765120 GIT binary patch literal 1658 zcmV-=28H>FP)UMT~!sp@!zzAQ?y8>O_dhx;1E%XgcMLDDiR+xfN4>| z2S#e5#zYjcMKm!QqfL-RBI*Z(L=y#KEx~|_#wdzbvB3v{_^v?ILM;WAD79EyKdgPc z`<~v%xp(di!({)HlY92_th4qyYps3GrBEmo3WY+UP$(1%g^aNdbuYsEXIqd$VMuPr z6?w&i4xNt1>t{urLScHGDx7c|<2?qPJ9DxW3L{}lr^-&Ax=?sRQ;fPW?=}_f!?H}=%ca=cqhDR-OL1h@z7K!Et?75J zu@vvZDOiHLa5KI;!`E%9-)S)_PrV)|h{fE8Nqi4iHyFDZ7hz&VvP_2woTR^A>N39t ztF`WbVXC_mFCBqgzrq3T~BxZc7p{X5N{GhS<(5DVImrP@DK)n&e0c%PgJ+=nj?AY-?- z2e77Aw*b%RFZw~;j+-1DrK@#+@c?tx^^&tF9i3#)S%9MkxMt249bW6rmL=!8KWVTqxyrm=bBtg?JDT;YV5zO}F`{@NZm_=6VR1VH5s_f8eue zj$_i;#i_gozs2v;+-+a3`mi^R%@@6w4!X77iKh!gT%Y=W1otMnc4#-mOGK3HR6bdJ zu=t>eC^=sh2LEqB)?$rz-)VY3-PWSxAOwRqnewxzJ zQ+Hxmquz^ursHA!P~0e?)O%}VHsSl)4P=op;z|iu;|uA$Qpl=ojvMibKJ!=Oj!E@T zOXXK*eILVV+LgWl$BBhoj+Y6q@@Acl`Vrxsc3^jEzg6o2=_O;YHrfs2SfT5UA_|Ua zz8|>=_xEVOTttdqM%_d&FUiJrGwKb()91Wa7<*G@JpK595Oy(+5F4b*Q%?$I<=m(J zjR6t5ZV>-H8OJ%ew$^7?cD@HsYB>MS^jn49{H??R2d6^&u{O=K4e!H$b!U@U)Rn^P zpMukIeroR}V-xu+w&Mcfe0GR87iad6E9V}O4lL@@ejNVTrLBsdP4sei16d|T+L3dk zNJFN@Z0$mK<2kju6Y-}GeXkX{)+>b3{-D;rKRd6&Xp{N(>rSU|yjrAGuMu8;ok%B| z@-rd(@eO1gL_bH0@csf}pqp`(?wjMBZNhO}kku_0(e8NhaC}}XQs)o)RQjE+UMhBr zsFU+H}QO-2*Q(}g|Bqzdz(=Fr*NI##yHIUO<5&2l2wR2N923m^3hK0 z#$gR)>?i+!v^K;iiT%J4BJAIyeH~B5o4S;DiQNBku@{*Tk?RcHAztgDp|b4O$U(q>Sp7UY(8N2Dgj6`6`iObb6)t$yE33tggz(@;vW) zu|U1%ua7${m8Y_K9us+Bp7V_hPrFMj^7X=t-7makzgK$jxiq#4_uXXd*LH>2RGlxp z=T?zd-;w&iBfI7%{JKYZOc>9j!f+o*_rEorpPu?%CLGFx_?9sEiwD$8UH1A${5|Q~ zJ4Gt8)?m!&MzJYNM6S8CPrnPrCTphVAB0Kmi?qUE-nvdN8T++WMm{Fel@q5S%R;ds zJWcCs@Y!OsR&luYFU2{Nn(HN(z0RR&u3?xHM%|Ak;!oed*9ygjLN{jpcYIE7 + + diff --git a/docs/inherit_graph_18.md5 b/docs/inherit_graph_18.md5 new file mode 100644 index 00000000..046a589a --- /dev/null +++ b/docs/inherit_graph_18.md5 @@ -0,0 +1 @@ +e408abece0744c9eabd68bcb6eb250dd \ No newline at end of file diff --git a/docs/inherit_graph_18.png b/docs/inherit_graph_18.png new file mode 100644 index 0000000000000000000000000000000000000000..2d496b128199ccf72b08e2813ea1c35b4e5dff5b GIT binary patch literal 1035 zcmV+m1oZofP)!f`b0Y0x3wy`m>M-B6?^Kii#8>1EW9cj~@1-hmvVlXj=BLhtnVHOrANMd+yvj zcW!fGf8lV?+Gp=|*WJIp*IsjmL?V$$Boc{X(pA!S7H)5MAc_BY2P^Xp-6frl!Ifu&Uq(C;AmnA=9HL|TG5CGD4Be$M_F=VkXj=*wc5h+B>P$9HFb zCSebL$EkP|H;>RaLt}0mRVDana3l`O?ziIHioV^Lg6&Ow&tq7hv!BNec%;y85_V#s z#K*ze=N~zHhw_+v@iX=f!%xGsb49$5qwx~1$MM)Dc2SXK*o4o8nE6zC2i~Z#%Qz5U z=j{3TEc5@p{eR(46O*|(``#-G_QFEUr(q+u2?3Xjw>U*V{dMB2q@6oyF1`~2t;K9{ z78RL|+k}X}iC0t);Oy-AhlZ}$qD`dV3vd8V#+jKt$o;qnt1(pw_M{N32RGsxd{MBs z_H!0B8~0N?w4fG zy2Zq;#!)y4dxe;T+?Dy=Tf>G+Me2Si^S=X6%s>8G{pktC22kG6lrfa{uV_-f1%GxQ4A~+1;T(x8Pl`-UUArO z5c&UIk^YwEeB6gmYS`m4Kly7==o4~%){C962~XisQK9wa;!uc7A!g!i+kY9K literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_19.map b/docs/inherit_graph_19.map new file mode 100644 index 00000000..d284215f --- /dev/null +++ b/docs/inherit_graph_19.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_19.md5 b/docs/inherit_graph_19.md5 new file mode 100644 index 00000000..2bfaaaee --- /dev/null +++ b/docs/inherit_graph_19.md5 @@ -0,0 +1 @@ +c4ed65d327f5875981396591082e2f22 \ No newline at end of file diff --git a/docs/inherit_graph_19.png b/docs/inherit_graph_19.png new file mode 100644 index 0000000000000000000000000000000000000000..d6061ac462cf30df7e25270bdb16497e01eef825 GIT binary patch literal 1964 zcmV;d2UGZoP)K~#90?c9H`RaF(h@el7o2ob&{$ATn+=!a!Cm;_Ea)HFI}nIWcO zPFb2ImX-aON{D_i<(t%UY^KJXoFa|L%xs#e8B-_IN@^@Dm7IPkBmt62B_u(AtbOL4 zdpY;Ld%4g1c=zq^%$;}6KKsWyXRp2X+G}qhlgVTZqD+^@Gu~6tZm0MpzKjQO zHTrNn&g-BIQ*kbOJJHx%u(!oB8?me+{W^TBbpMcAr7D<_+UzT(_28K;$}v9Gv#3Ij zUk_2Xx32v%(^Lm$;h^*zj4gO)UD^uVTamXc zGQX3f@h%*O8}JT17mo-lRL=_h1@~c-+Nts*VoGRqU&RFcIbE0AorA}4KDOdv{9KG$ zLgDXCa{R+Uq;@)Xis^b&Dtl$Az42neoFY2?Ak3|k>2kcQbUzPw%IrhH#mqSaW1 zFW?8*j3X=BEw0z#sd#zHTljIm!D*s1rwfIfSCaR()c%>G<0qtY$Kz20mSJVe|6BCq zB(?tE6rnty#$?PCO8@Q_<(P~A;PleB*@M}ocU>(8^N~XFmTI06w?xe{PITxw!U^uj zYf8_5f=dRuFX|X4KH8({`s_j4{3!m7b;4J9q4+jS@m=ARJ|DZ%vx1MO_SXspF63My z2GGuQzY;GH3Vlq+_w`w^@QGN_kfZOSC?{?-7H1 zm!=plPko1Kvp87@+zR*O?P3$SUpV6{aD5APT!~vs_j84L?{AQQOX>P?(V=@p=Ppav zzr+9P%B@d-cj9}Z!*0Txh2iQOz*Q(o}#{jyIYiFR(j7e-%o$% zq`wc9p6yKU+7`oQiT;ZD73oK%XRYuoVV>s;v%5wtP1{-i7fLd_!Sg+(>%tG2C;XB( z3P0*(VXYdmI^}t-P{dnO`mv(p%7bh>K4-uI-jdR0iVg6?#R~Gg7UkH6=hdYxQ|n~! zG0Y5?5`7b|!-=93CW{xJYG5P~W_9X5rE57FKNO>ND}G!j=K>LPX>?DR{Tb=^dNF-$ zR_j|0#dGja;mi`&Wwyqvqg%zuz69Sk&{^w5=U!~UXX+K5yF*x;pW^8_Bh^1sy!YuX z%5ei;BrI2v_d@aR9c6zUYr?PCA$*YCV)QMl%X6u4{LawWvF;U?Xcz7j)7v?vI#%J2 z4ekray8J5?u^6FMj&(Ucb&Z(z#tUn*MXVIB!PkTXJm0<{2|`i!3csby0x`|(6w})F zRCjsRxm3iq9>9O`4KdZUD#!a$`OT@#LZPbOb&bYTd=-_Bbrt)oM1;k7u^35>=rgo0 zHcmK>FVlGBcZykRJ88PcGM$f~HF(x5e6xibPtC;&u|CGrsvMJ2{^6!0N;FpK6Uwnc z_%7Ybs9EBVMrMlO;T5=Xgk|YC!@e0eM)|#n|BOkpCCaqTSg}N_gwtBEQADP1Z;<~b zBEr2|EYabEV!2(#ZhUxTR4KBd@h2j+Sh!s|^2wj|7 zy6+vL?3kk)S7+PA$$>J*i0y;Z>e45PSXaM@3|E~pxJ>P~N-JeYGhMwp>k|>+ueVU< zPH{Zty>;n}#Rlkd5wts{g*uxldv$8_;1=pVpc(B-beuS9vQg|Q{iwzAH`_P5d{(M+ zm)P_@vxWMaDSM-s3O5ObsybFY>N(J-v%|y|%Y9-?WVyj3xF=Z^){FX=~CHlPD4dRQ$#_3iA zCmr{S)01VYl&IOV^^6nW{1NN`hzMx)-S}A**IC=Ss2Kf(Ux>|_}MneRCG|1S9u8tEG>>g + + diff --git a/docs/inherit_graph_2.md5 b/docs/inherit_graph_2.md5 new file mode 100644 index 00000000..69195de5 --- /dev/null +++ b/docs/inherit_graph_2.md5 @@ -0,0 +1 @@ +4f75364c0a6d89606799c0753aec9c3b \ No newline at end of file diff --git a/docs/inherit_graph_2.png b/docs/inherit_graph_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a00240e35228b26ce5f21b8e6f37e63e849d632d GIT binary patch literal 1270 zcmVJ?OPXa$7FgL`F{8-r4&4+=Dto9W zu}Cwb3uOoyB^DK8DHKMDQqb)ox?ivhhz!_+j%86MX_nm_k+g@k5A)6O%$YgUnNd&Q zA2xh@?{DvK?X~t=d+jqrPEJlvPEJlvPD#3zXq$w)x>}H&4zm`Evkl!#ymTzC?-Frx z{wouO6SknP%z){gCreJ1SY4{Il&9t#=Hy1LL2{$kAh}U%kZKyW7v|$Nyn_Wer^I_h za2d|Wk*RF}mY@%gO3%G829H%iw()7sv#Kyxf&0^(g|YyrXZo{iI_S*6{tCwoK?62m z9_9$+?!k?j_ijTIzQXU=jFA|TzBw>Ge5OJ|0iyMeM|~ z)Sq2bTWr9E9gtzQRx;pXI%3r2_`-p^@>y&}58;)2acS!7gY|ew>k7ykwZGW?mC^^h zgvbAdekI=Nj$swf+lV`g+HOzZ=&$sey5Tqn>ggw3QsMXMM57K8UNEghU%j~R)?*5O zF6v)|kF`|5X#6IWKN&mlJa(t=ysFtScjLXxe8qK`iEl(W{}s0s^*@O3gyDb0d8vK1 z@bCh4LiyLFdMTrhPwN=xK%-uf*1t_euqVZ4U!T_1gjp)1(~LSPy+1h9Hcb37RVaN+ zjO!~DGh0gqj7iT0qwW{V9h~alit~%u-E%W@7T4ijJe;0aqtVPO`1VcDyXsTu9y;ML3=zLT>{uPkl{TBYp?3!!=l0H2-|f>l`F9`gIQE zc#(5t*&;Sl)v1P2H;Em6af!Zh7@D4Yi10KNCyOMiJrQAu<`4)I@O?XFn}r8(ZYpQv z8QhfmhvQRm^%{y*SgJXZSt%mXRB@(%*v{`3vjZm;wNm)UTc08_&1K^JDwGvCCCzmvUKd`r zU2M9nPCiQOdqP}?_O&5vYrK`dc~z=O4A+pigbRr2&r2|ivP4Q z`1~|)aaphYnYu+NWt%t;S8Dd$h4?xnN4CBkZ?+=uCULjyAv|@DxH~tByL6UCNuCpn z+Dm1>S&FmYdBS*&BC;*j{8zHYB9WR|X1-E%>OHkUPvMQDIyk-@?eXf4&`pHK2}=Ld zz-;j&Lp2yEj)1|f^p*QlXeqkHsI|mEab4S}Icy$kbXxXXtBk@^;`n&uAj?t_mAd=? zi3SlW4?A*CtwD05)*!i2YmnTiHAuNcX-1bxk<(E|;)mkKaz + + diff --git a/docs/inherit_graph_20.md5 b/docs/inherit_graph_20.md5 new file mode 100644 index 00000000..0058a740 --- /dev/null +++ b/docs/inherit_graph_20.md5 @@ -0,0 +1 @@ +bad7f03e98db0999e1935343c3629e98 \ No newline at end of file diff --git a/docs/inherit_graph_20.png b/docs/inherit_graph_20.png new file mode 100644 index 0000000000000000000000000000000000000000..2386ebd81f63097c2f145bf9315ad293d529e07a GIT binary patch literal 2018 zcmV<82Oao{P)PS(vC0R+QObAw)IQR8GIl63eir zEXfkBnV4$&Aww23$*BDpYbrCDM3achY@DdEbg*p7no=vZrc5CTkuoUJ4Ey7I?(E&= z-es3vmfh#M@0p$F-n-|X^S$?c&-Z-qxu1QgsHmu@sHmu@sHo_eF$Krw;{&}mq+(#W z85idd3>6eQ0*iWLPQ{=xPXw7d#x*(N)ct2m#elM|=wMMKs;Fp-%84pErgEZ+j;Wle zqGP({L@V&3g5zi4ttIC?5ue2bJRxmQ?9h&(R8RhM9u}6g+e_Yp^|&4%$MHRG|4I0g z<_}Z*M7NyiOdMBm{IxhSxBol5G;L21H*yG*@qV3m>`?AYGgV7f;+KU{Z#ouF(s7k7cm}xPTTo*XX0Nt2lwLv zY!suGaQHit9e-C_shx&hV!Ga(&b>6(-Z(K}P7$4cFlIH_^m)81w?7BB<8R51PpUag zt9C5J$;qBS;9e|iX!oP3j%~ORkGCJ_RV2zr#$@%8XePFcJZU^WjGyM}I8ptL$?s>8 zXbo24)A%m7;Mjt8v+cEb9G;)bW_jGN@Mh7O(}cs#$=Q2TYX5DbNW;bT!u62zV%*P7HTdZ{scqD3-F``44 zh$MIwUY7fQ11@T^pVcu&+_VSN_L)uE{1E<)TSTt%OmS}(E-Y#AOuM)}la(t(aIxfWxx&2upyss)Lzcsi0km%6e zqH~v~?cd^m4d>mK{_euJM2B6EH;BkVkSaT`cC&K>W z>GNtaeQZ&mTkVY_@eh&A647Ob@~5L4#mK%0SE_Z^EuwQTP|KOdiq733qRkI+2u@G+ zPZ!sHTAOxUgJ+4zm6cs4uDz%1OJYsr6+1)@@~9Yn3meK@EE2!dl_%C?MI?F{zZBEk zl3X1t@%xhfEV0giGDpltXi;LFU!S^4Onc)*G}$Vi6tBXUMFKq6o=XyhqdX?^mOS&s zG_y-gYui)Z`KQjsVr}alJc7%`RMV~<=ce-I}4pP3L+Dzs#unf`#4U1LYuNHjQ zs=T97j?#?Avg?$~Jx;(MaiLH&Y!@#`P=Ul6Q1MGr0#5mA2*fH;JdlW-^a5?iP{jd=UY^B4&sa_SyRVNWVJK zxk3i9TD+LN96zw9j;0w!@{UefBgA3r)yq8ysmDaMHMY%n}oOtoc<6Y7IA zgtX-QBC_=*{W_g(6!MOv#T)$#gktXkoli@x$WhA5mdQPcdwEvcK1QevH)t;NXk@lp za=ubH>5<}IY;4iyzM$U{>x}uhO#J+(kyhm$)XP!!Mp4-!xyJ&L3}1)8rgN@T`*}{8 z%%hQ;#1mj&PFqIMTl{WJ!L7(q%E}hWJr;;11|pX`q@bQ=GLMXYO)oMEov7c9F5=NH z)RA@g)lJG=CYBVkvcp0(_&$673@6XMCC9TT#b$Kl+Ir3)I#D+%%1g>ic!Tp{JimC(LX$z zVg%?}D)tMT#6Ls7`9K>|QBhG*QBhG*Q8D89KSfI7!hVme_y7O^07*qoM6N<$f_9b! AwEzGB literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_21.map b/docs/inherit_graph_21.map new file mode 100644 index 00000000..27408f11 --- /dev/null +++ b/docs/inherit_graph_21.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_21.md5 b/docs/inherit_graph_21.md5 new file mode 100644 index 00000000..23e7ae1c --- /dev/null +++ b/docs/inherit_graph_21.md5 @@ -0,0 +1 @@ +4290cb9960c15060603f556337378757 \ No newline at end of file diff --git a/docs/inherit_graph_21.png b/docs/inherit_graph_21.png new file mode 100644 index 0000000000000000000000000000000000000000..a751e85121cd71edbb351eb1c8065aa04511ceef GIT binary patch literal 1055 zcmV+)1mOFLP)2#q%S_3v%x?DZA35V;t+n^rXS>nO zd||`-&zkk0|E%B4e`eOEP$(1%g+ifVprUL6?&x(Og^pN-_w#}=6_uuAX-~o_jE1E` ztGyW4@W7?}E|x+U*j-gvHA4#rFh$TlqX^n(6hZrpZV9>)XH}Fh$FiDdj>40efFsiN zAzg~+NIZhq@fM!Kab5D=3El2rE!`6Idd#gTUxG!M{T0ql*Ap-=#V`rCrLxg72cO~` zyo#4`a%%gOF8J?+ZuYN{UZ>p2I4E6j#M#(cQ+EuG?x2mQg`f-Z3|5Ol^szXI=M0FM zTQ_sYVsM19wep!WsLLAkQqa#Z1+U;*oPb}%=pD|3_zvrY@Oe7F8*kRwbHvPCiT{TA zT!zOpdoecSgA~VVA>b_hid(P+Tk$pyZzHxkpTju~Ut&}8|FG(>c3t5zHHX#)zQ@fK zKbp3Z9kPnS^QSdN7r56YI`++>3WJAB%8jjeQCJP0uwk4S$Fw0gl19xHXGw z4GzV8{3r%QQ*2E>^Zrc|LOz6vn33w;&?4sH>=s(>#s0X<9S|>ah1fVfhV!!fZ`gaL z<@N;psr7)oT+F1`lD!Ep;-ak1J@_3T;XTZ55nDSx;X<+OJdyluP4zBr5p!E~OVAxS ztfG8kx;GNO!8Ky^ZN%p|zs+aYr8XB-+&c;PiE1|~ig%K~DI)bftG!LeS}}mC2Egs&W$wn$V#ej1 ziVc~aufcoPx2D+I@ktDnZ6ei9PrrG%sj+9Hpp!N93NeZoi_T9J3;l06F{`)1&`1Be zHFOC+5j$dH1F^-Bpl7D`)Yvy-yGUW<#mricU51V=^Tk?wL9!={fp=XNSAN8JL8RBF z*qVIi{W~GOt7Yk3%@Aq*J|m-Y4XvURL5VeIhj^L)hz-!fVRcrCjl)&y1syA9!7h9# z(%g#7$D{bV!5+W^shwS7P2DUuOgVSq@8o~Gm}%oQ3)(8SI-hy};7T#rH{dTkXXrTB zF8f?iB8ATpqpprY&41ewqRbX4tJCfL!D2?vZ16FN)5Vvic4-w`yFT~qppP9v+c`ZE zw9q>am}5&}6cj=Gj3Q{CQ3UNXilBW)5wy=}IuEvW#wqMyGzq$ + + diff --git a/docs/inherit_graph_22.md5 b/docs/inherit_graph_22.md5 new file mode 100644 index 00000000..d92d3314 --- /dev/null +++ b/docs/inherit_graph_22.md5 @@ -0,0 +1 @@ +e65b3e526fa64064c3742ff4d237458f \ No newline at end of file diff --git a/docs/inherit_graph_22.png b/docs/inherit_graph_22.png new file mode 100644 index 0000000000000000000000000000000000000000..7c24bcf83e8ddfb58c06605a6d5655b840d05718 GIT binary patch literal 1503 zcmV<51t9u~P)LD$fuhhG>+aG;Lx88y*6JRIRoaTK`yc zymOB;=ghf1=U&gb>zkb1v-iwdv-Zr|d)D6bn@f@;Ns=TFG6u$$xx92 zn+z5G3fOPrlNI%sV{OfEK7`w_FAgfcf1pqPd=THkPw_Oqha>xBdopDE`b571_DY;s zQNJ3iO63=EdhvZ~spF`(uPM_WuuL3b zmlVfo57;H*L>`2>_&S~~*;s|^Yswdh3oy5fzlVvFxwHEL1PZ!^s*o0$5C;c5Z7oSTt8ze@(eO>8S zz`l%AE9y@yw)MgyJX6>^MBKW*ui28xX3;^a0{koDWbP3oz;SKcPr}wxd3Wi1EC1@` zTN9f^pu8h)m5Ynd3Vg9+%YspF-=vsKN^p_rrRRvo&lidIKg4aO#a82@n!1!=HGYGI z#eU22mhpi7L~%Sd4D}eCuSh z+`glWbG5cOS4ZI2xN(NGuPFn~Vc`bR`?ujek*}WCw$Cjhalb@;z|I!Ed?$V-Zc|s4 zY;3@$4&^c2R2*lgSe1A~OjydS!>+>qHZhXS(fNXQ^R3Qi`z-om(V4g6-?&o*-b`p; zQwAQeM2fLY^r|`*=ssx}6Stp}^u8R@VxAarj_F`y0ZtK5j+)ZVx285*GxWoIIChy) zZ{L&zY?AbgfvyrH$&`=*n+z2hu*p!70XscRnH+D_$bjuHW%*<$rd5tN%w)h$jyn0> zLcOmymf0IQ-i#nmPVcN2B9JX6%I}^Rk24<@^2rDBgVOKjh=(cd3;c}B@m|B*CMU<6 zvE({zJ>8^_Wi{G`BKTTTz%#_tp?L-)#~U?r9kvgQi6=N$iFeXA;?p(z{zQzbt?g@s z+;T_Te&>la;?~0c+qh3?1(G&0V0)t%>EjOkPz356d^D$3-b^4VPM zp+9}Y`0`ZyJ8P#4wbPkG2+|rL$|=DYL`qQ3SwA9FPcxZJ3Hrba@uuoR5r~hNcn)_N ze>aMFF>nWN#yuu#P+L5TgN1^vCC7UNpX;;lBTJ63^>mZpmF1HyzAMh>(o)?Z}(f3>6u$$xx92n+z45CS4Cs znHNdYkl7V=2MYOIl1wL?@N@Bx29qR7k|arzBuSE~;6E+!xh`002ovPDHLk FV1ghO- + + diff --git a/docs/inherit_graph_23.md5 b/docs/inherit_graph_23.md5 new file mode 100644 index 00000000..e424aed3 --- /dev/null +++ b/docs/inherit_graph_23.md5 @@ -0,0 +1 @@ +efcb4131786292c98a63098faba9bb37 \ No newline at end of file diff --git a/docs/inherit_graph_23.png b/docs/inherit_graph_23.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9ef8a2219ad51b2f130a3300817cca5a53fb50 GIT binary patch literal 1747 zcmV;^1}yoBP)6w@fiNT@2iKN!5(u znuiX;iPPVgOrP=!9nAm9cz*i&lIe3A=f6&~WHPm6Vac>j7M4ugWMRp)O|OLI^H^1r z|3SRB;X4cPHM{^XOrQ7O#eNK@dcN3D{>fDS;wkDW_or8V+Z{}M-@7>t-Hp>~@_&R& zOX*wjmh^cMZWIGql-eBau-z&nsh;Ptyi#@m{+r5{O;Jy|KfUVP?x35#_swbOMc6BS zz6Wo_(+$rK<7Hj8vkmX5IoX+on_J&-5ks!HC`xGlBw0M2h?9LJ<* zZ%Y0DI_9LZ3{Ct_i{DW*j|XI=7+w z#K7Q?)Xu&ptII?1h}duE;?wwDsg9#fo`iC`*oIb#Njoy-A1Ge_YfRpT{wOrikeHyy z#H2KBLyPbf-kH9?5P!!R!t?zU)|C1+j-{1%@}~4op1?1JfK@5l+?wiHAcW)#*au^& z-H&uIj&^CB|B((VnJI=aAM0>Az9fvaf}f|qrZhZ*;MM+iFj6M)c51VLJM7tLvd$AI|ZK+cHLUBeScNF zpNCVsCkV~d={UNgSHki*_N&R?N9P^BUA)*cg`nIjwxu6;SkET0g4c`Ha%H7_9Pbty zaU6fb|E8#Oi4eXrJFq&HZLgGVN&mMA&9hF7qg~B?bNatjXyBVG<+tc=99_{Xn`H-% zsL6j_D(i%o3-x=1SdmxaLY*J~ZV;>Zc(E;Qsgxfs_WgGW`{_75IYpfhi4|MsFrgtH z!YeCfrwL>CbX<>(*evXxIoju+Vrw1~LU)ij?R~tu^Z>( z_3HgNOLRVtI%Z5*GP9q)@!)1=F7UHGHo;H!cq>2$m}A6E-dAch<4da zv*WN;c)-9j$OEs2L~O=)O64QMakyICPX7&G7B}dR2(N5$#n37|pv*>mOx&375e$-_ zr5qA*l9=eZDg8F#ft`nyV$9zZnxzOmI7fJxTZIRdS&d%_PwPhYp{D)L9_y4V3(Gtq z97X!u_+I*42+M-fch3?x%xlHH(x~vD&KFk<*R^PO2|g#>@7u*4(NuB2{X%xiiQuQJ zM2yLZxNy6yRQ{;RmyLG|;VFj)+?M{{r}cu`AvDoaAvEWhh=G~4^keYTbaEMfC?fct z78h^@`w1JRhzVXHwwrQzKp`M65gMk65xhf$MZQ%C$_2d`!0u$wHA^)l;s&8%z9ORV z#!F?x_-OjP49ALSw^rc+RSq>_B%ddQaj^(bxUmQ0={p9=W+{h66l}2b&p}oSqx4$* zBYo#`69Gz1;Q>{)iWAq7HD$AfJ=VZw=a7g`h!abhl_FA~h(bG{rk+;e0R@Awtpf(f1aD7d{#5tg{97JXkrZC5WbY3R>~e1 zQF)mT8MJLE(;3;%lG$~#uw>dM3rnVLvan>@rqyX^^NjT((@!+|k?MXzxxYOq9wW08 pkBJ}cWo41cWHOmdCX*R#{tvxogb!W7ypsR`002ovPDHLkV1mAFc2EES literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_24.map b/docs/inherit_graph_24.map new file mode 100644 index 00000000..5a4e5942 --- /dev/null +++ b/docs/inherit_graph_24.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_24.md5 b/docs/inherit_graph_24.md5 new file mode 100644 index 00000000..01d80d5a --- /dev/null +++ b/docs/inherit_graph_24.md5 @@ -0,0 +1 @@ +55cc10d65043163260a2818271bca68d \ No newline at end of file diff --git a/docs/inherit_graph_24.png b/docs/inherit_graph_24.png new file mode 100644 index 0000000000000000000000000000000000000000..018cbf7931cdefb326c25f69124c4d38bd5efdb8 GIT binary patch literal 1280 zcmV+b1^@bqP)>w@!!4LV56lKjhYRV5}HyeSk#l0&6!OPjXs1_ zmJJwk4B{;)aw z8_xRH-g~X}t+me~lgVTd?{vv*qRgx6tcoO=Ob@b=WNOJqlBp#dNv4)YiEA_5gjcbs)PFwK;n9lk z48?W023zB1%);**p+~1E-`3#Tit!m3jyd?Dft(!+`fS-E-J0QY4C`g=FI?FsJF7UQJ+@n)(o8(kdC88 zr8%H*w3SvxlD@LD@J#p?M>d$-iCyu1Ki2sWXW)ZE-zoS+wJ{IDD*V$&`5o8?D{L5D zIVmCa4^RO>|5}sP-27HCjgfUGlj9rD-8nj`) z4d3%j#nYv}N%%Cavs~#-V=qijbKgt)->uubPZrzQVtj*{4de{QbUe_9HS2f?7mIDO zElkySkLqHnxZpDL@kpV)O!xM)Us`87?3vC7r~Xyqg0~Pk%R2=blk~j##rD7?XQFsm zN2LBC_yeQT_<^ba0}*jLg!li9u_b-V=WE0^Dt+fmTq@pFufdrGz1Cwy>7E>w?#Zus zMHp5i?!=olb56tSN#;X(I#n~wQ}IHr-P=uH=)ks^hQ~x6aaUpdrF8VxCX%}a!T{dG zslw2f7v^;0Yz#~ z-OD=7GCv)|(>jj`r+5H!HBQoNY1MY~3%0N5-zJSU!x!R0r;4rSBOKQcot{iGI@0G; zrSbJR2}^__&A{I^GKZ(RMV4UqG`6@jwm=xpOClo9!U34Abp}$_TAR}JS!@pAMip+&+#~`LA#6fB2m2uZ;OXmWEg%FNh@JYBUJx=qKoHoh%hWk$H^jU zJ%fWqbn22fQ&eXQlaBie2e?H+m~ z$O)E-8ox-_i>`C@p12MWH*ziB7u(OYf{Zz$l&xxaC9dOBdtz!|klI6aC$0m<&0HZW zsmF1j$TP;NPFxAkT$l7(EuvgkZg&a(6o#=_x4~2~L3sNc4d&3d#B~ww*PW>Mm&(Mo zivAi2;qjxyJA~dCtUh7x5FR#0W6y2{!*v?~QL)smIT(kDs;SJNB(txyqIhUk0n!#D z$!y+K8cF_vFH=i4l1wexNHVo#Bgxc~jU-b`Hj+#&jq2;EZPOyNsj!!d|G_jelJXB? qng0jn|J-CUnM@{=$z(E{2mb<6tMqZ{yP?Pc0000 + + + + diff --git a/docs/inherit_graph_25.md5 b/docs/inherit_graph_25.md5 new file mode 100644 index 00000000..9a99b1c4 --- /dev/null +++ b/docs/inherit_graph_25.md5 @@ -0,0 +1 @@ +82ca3491df38319ff4ca85314a8757b3 \ No newline at end of file diff --git a/docs/inherit_graph_25.png b/docs/inherit_graph_25.png new file mode 100644 index 0000000000000000000000000000000000000000..4e159c8b9e90efad6426ee173dd6ae59feb80abc GIT binary patch literal 5410 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 yaX%S2qGazEB0>^8_BpPU4l`18hi2ndUcT2ng literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_26.map b/docs/inherit_graph_26.map new file mode 100644 index 00000000..1698b016 --- /dev/null +++ b/docs/inherit_graph_26.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_26.md5 b/docs/inherit_graph_26.md5 new file mode 100644 index 00000000..f389b786 --- /dev/null +++ b/docs/inherit_graph_26.md5 @@ -0,0 +1 @@ +c4c5e9226f61c49a767df56879379faf \ No newline at end of file diff --git a/docs/inherit_graph_26.png b/docs/inherit_graph_26.png new file mode 100644 index 0000000000000000000000000000000000000000..58734836d4ddce39717c117f40c5b6a042cf1a92 GIT binary patch literal 1513 zcmVUMT~!sp@!w1<1AV|yO0^ZrqXH(zlz?KPnCJ%sB7!D@ z&=M4pN5H62&_o_Vu?ZSOL?D4r5U`{KA;Cm~Bm_-(gzyL{s4XZhq*y6ftu;Ifw0>Co z zd*VDyn`%Yca4L4Rl-Ym_E9&pWt)=ot-A-Ka;ne47scsk_YN-co!Z&*AF2|a2bOJ2vDakgv`^uKxEo)`LHM_bQoUS`by$m+bf+E{i*2>4JR}C|ke>E_g|pLjx!*;2 zBek&+|HM^Tfq!8Ou1#{E!gKhASfrb=O7+AYfoJgd)aI2*wc5cc9~I+xjflz%l5S^-Ir~hF9eroAB5kpvXX%bqi^L%Ag%99| zc&OCIark~s`HIxmllVDK(mfgFev9i{M6P>gD*qPq@VQi;i>2xMIuV@~;CWouqyH>1 zNk7I6EKJXx+fctc`8N8(6Zoodlm+;YaHKk0iavfVg3QN-6D~`3z9!N>CAn{x#^6CQ zCv(RchbB};+A5~nX+MHDaS`T=0dJe@9x9^s1F5aeIKQIb;`*R;Z|_t-zSPz>9HTSQ zb4&Lw5)r4Y|8fzXM#XkLQ$)gh8|qgl-$vhI945wZo``&}21IW;qZorvH?X5AJ2gGnsD~^Vmy#`FA__L>o_J!iXW?nFHLuZ$h)wjXlW(K%cASj$!WqAdcS_HV zXUoRY^&280ADG%IvtIYOKAnD>*fAmcb*!--M^)4>7OSug^TigkN*uqOCyrq5#p~n9 z9)sTt$0!!dW)UU6h5b^wm+duemUFP#VkGI{fe}=;PWC$9}*GvO7T{DSLwO8bib)q zaiqx6=7{a=o*q4yh;z=W^5bG)e=zbv9(;nYoR>E(AK$Ngd|&k=LJs^Zyx+0lrJDzncwJbgRVv@f}Y_Co9tCMe|@ATB}CXt8Uh8xAp(U)p$ z>Fon<7cY%O?)#RQmn}LUBC3x4>c*i7JM~4ZU>F}0t7fnaB~zG;yqS zwElf%TPluti2pg>dz|NI;uB)apNM{S@@+U!w<9eO3#5%Ly^M;qW1j}kz85?U4enNB|B|q;K)v!891`jW(JPzw3&gU z?!5HWNz)>esb)X%KM`HjIqmH`PnS%lF~6B=1u~gTCX>lzGMP-~|DOK=dGng1xz4hL P00000NkvXXu0mjfVlDpd literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_27.map b/docs/inherit_graph_27.map new file mode 100644 index 00000000..7c3d6979 --- /dev/null +++ b/docs/inherit_graph_27.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_27.md5 b/docs/inherit_graph_27.md5 new file mode 100644 index 00000000..55cc93c5 --- /dev/null +++ b/docs/inherit_graph_27.md5 @@ -0,0 +1 @@ +c3394fcba4d890a8c9d2377daa730651 \ No newline at end of file diff --git a/docs/inherit_graph_27.png b/docs/inherit_graph_27.png new file mode 100644 index 0000000000000000000000000000000000000000..e646b6908c31a15de0e52ae91a963daba4b3f6d1 GIT binary patch literal 1276 zcmV6p;?e0D$3rJ5Cy#{ zvNF;_NFpi;dq@gKpCSq+F$Mb&_#p~<5k-XbHcC^`)CM1w*_8HSo$DNL=f1`}BY4jr zF6^`SKI^Qr*4k_BeJ(jUIXO8wIXOAKLQ_WHWIWQ_isaOdPp}}}(VQ`<4LA0RIyv=b zl31h%(WlG}H}#w@IX%Sktj?^JoO6VcJGlYKo!kKAPHq6|<>V)EQAYnAxV6MR!|)RN z;h3b|zfStxj1_nnb1|{X`_ej9;zgX*E$y;70ngP@-T~_6C}Qj*inNXO*jc#v8QOP87E?64f488 zZ`R~5F&wLKJ4Oqm4a}JP1b)W%!tm)*@Tf?`S=UX%X=97zEy7(%`vR=R3&O}9cvF;$ zv`+29`43{->k+)C;3S5`S`xYB8tAvcFMdlk(#q-M2n@*k}Ui?~- zMw>+~E~Xt1;~Y^V7h!&Cd=1_yalK!B(wl=XM2))!d+|{+rw_)6U>GS@+xeKCq0=C- zvfD&(j7{W~V}$r9ai^%Wqj9xJ#cf!cvp4lBgR`zb7lxdVqmsTBVaVP1D(P#+y-9nV zsI#jp=#@pQNbBj}YMd?Vu;e|aiOt6+XkR`OnaCerskDH-$dO_}RSA|?JM(sl>l*R?~Rg5O2(tWWe= zk~}x7Ca3oUOLcv)=uF0of2WEX-^!Qhth1XV?x1qxLp|C?_qAd2PeXr7O8u1T`-AWt( zh@=snyatyZZY6q?Ms#w+kvq8o$er8( + + diff --git a/docs/inherit_graph_28.md5 b/docs/inherit_graph_28.md5 new file mode 100644 index 00000000..7f986e9d --- /dev/null +++ b/docs/inherit_graph_28.md5 @@ -0,0 +1 @@ +5d5ca662021c101b879c9ea4f3d1614c \ No newline at end of file diff --git a/docs/inherit_graph_28.png b/docs/inherit_graph_28.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c562d8d1b9503dc9424af9097f8df80b445d24 GIT binary patch literal 1684 zcmV;F25b3=P)UsT}2hZ@n3H%g>r%Nu+kS4%0p2Dp^DY33H?ACth^N; z5R~|gC=iQ}L^LQiDiH!i3jPNvuDrD+H2OVwPwyClgVTSBLq|5s%+QgIGBb1x z$|x_xn``c$k8@kJIS5x{CiY9$dksjQcjHd{1ean-m+i_jb>d3ArZ4I0IT%;;(Qa{{ z?K;tmE(Xe=jPe6Gw&woZu)I|M6PBgxnZj5`Fp7%|MggD2HTWlP!fgBsAMK)TS*A{0 zC=6my9Dob@Xm>Eq8=xEoz35_~v^x@-2oAs=>3Tih(&pI_%)#S5j&Tt_gKwwu_wckZ zqHk25-2;23`gSr+$3A$f2RWwU5NyP@O5F(NVO9CQ^s8OpAr`KZZ?Wl722Gz7s3(1ny1!T_X$|PEY;)1&?B7i#{$F zk!5}tYmmGZkZ&(HDrBQ^+KTrTuo?dQZU zqo6Im@^miqdg z$hA(@oU4wd`mYO5IS&uva}}A2>($sBuM=Lo$dR|>w3>IGkLN_{qSXI|;@7h0#Do{J z@5JFa2G6GZUlvBxjX@UgbA#}PV`4#nG1dPT@6<4$r-gwPI{!tIxH=@6r3P((ABtJcgIC<65hDHK*oi48^MBfZ=XtkOGP-Uqnyy!{i~|VX1ua; z?>KQ9uvtWcG8dHOdQo_sOGO^qYN1q_BT}8}c*l#}?-b!lPuEBhdSRo`;~~PUFBCiT zZca3MW>7}?U9rMfh>4pel(Dby1O?l5-Y6`=_r*?q6Yj3axm27()|G!FCjP4$lQdmS z{8o{uOZ|N~T^}X#&U-q@RmWTr=E|RY@LFLA(tE5Bo2k3-Dvhvzh6w4!3ByZbb8#IW z5r)|fGlUl;9Ko4syhFvtr$`yj5MHmF#Z~4<*k6S4;#A>ojof&`=_jXzPl<`&B9!}> z|K5pRB@+E}w9YA~3s3n1?ibW#OGSu$UWD;+{7hp9KZa+7QXfh3+>*wv z%PGtG?5!FH)!S2j^>ehyQMV`Aw+K&P9KU^Bc*Mt(oP~jwH#)?|>Ls01moX8Ievtay zft$smoRQvrqX_S};+rDeFVWCB&2yll3nCAFMtI;C@g0%MRNM8!gl=>SM(}E}l3Foa z=kw8NA_N|%_f<_8*pcGDdeyK$rg7f5Pf5YhxK!CM|ax2BzY_gx2Du-7Q3>HB-?j zGeb@`%FNJ_jWRQIWTVUs9qo4CXHS|GnW@SGHUBAXXOycaPL@pOKisjq1;}JFnM@{= e$z(E_3FqI=n`TRt$|xQH0000 + + diff --git a/docs/inherit_graph_29.md5 b/docs/inherit_graph_29.md5 new file mode 100644 index 00000000..b45a0ce9 --- /dev/null +++ b/docs/inherit_graph_29.md5 @@ -0,0 +1 @@ +8bc7db6ca7e79538e2201ee9f8b83124 \ No newline at end of file diff --git a/docs/inherit_graph_29.png b/docs/inherit_graph_29.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa5552a60de8ad78a40cf8e45fbb10459ec5ffa GIT binary patch literal 1282 zcmV+d1^xPoP);aUsDvo@lTgfZ84ZyimFZ%TWD(wNl8USsHP+|v zv7|+<5lgBP5`=%0e+Yu6RBVk1u>?&+Y(+>a8o^N1QcFvfKhB-Zo8RxvZ|2we&2KFC zo4owqz30Ar&%5uObI-jqWHOmdCX>lzGX21ylDfljNwXEn3>eFCTd`trNu%9ya#PgF z3^a#{Akc-OH6A#n|8&XxLs(K)Sr#cW|8ufYWU9zUk*OjZMW%{ciDo@qkLU4fMg1K7 zfd@;TX~i|T0>f|vuEKA9(Boq4(T!{)ZpH#!n99xKG;F|9@y@LU*-v;JZ})MGZ8c^N z8x|?f#)Ojk6L4&y`~i+i_gmtiq{B$eO?7=?FovXSir7I7DO}s&yma48CX4MK%*Fx2 zC^up(Ucfzl9HUWl*sw^^Teim*>HZ5GQKRi(?1-=G=>OKj{q2~9iwbpZh5MnxNYMijRfyOfJYS6Q0#wxi?&mukkHj#?}}uj9^Y0a|#Z``}h*yiKVCG z6!=(tlyv-B*HgjiXix9ATpS42;&ov_yQK2e)aQ!S#~nJOTP;~bXr@t26fZL!_ocD7 zEos+=c_PHN;!cqZbnqUQ)hPFdHtZ{wyz!VOKK7P43p4R1p2lNIj|rHCb5b8S;W~^; z?{>B@qOI_-_*kQGSL(k=E5@bkXxt)lijT3YI8-_lI}7KTh6{R-^(!-!hr(KXu3WLl z@Iay5t~1AIOXG|bFZ-7W)8j=_HeYy7$H%Id+woFGUB{T?3UyE5#)1wVOWG_ENm?)> zT?_H7FzCIKZaa#o@{KU2sUorzc~^XRSe4%I=X9;bE5e}QQV}JKEX0dF$cl5=Tb3v} z)ofIxSSLboCBu`f9#-KDVVqxxNN{|gw5z7QaKBz>o&zh>?>J$wE5$PL5l$Bqzez;A z)gp|~!=LH7WAIwVcq=N(m#4l*iahH`yp?2QOWLm%4pK|jFdAhPt8r*a{e&c|hh4sVgu$@>& zI$Z+Hg#>&!#87xVf^53+t`b8-qIB(B4c zV*lMPCZx!1Vv9CQ_c_H75h*s{4Y8b@Q|MzMKCDshpjJ*%%uyDL^}cLPo+;M-&+t3$ z6-&*~)b|>(#y^C+MJ}-`t`y73m-s{+-W79-xh47*nJ*k@m6*>(I*$*!lQk@-C}VSt zg7E15gjaP(i=NL%28l2^QTaatHIorI7`v6o#_IYJM(fmfl + + + + + + + + + diff --git a/docs/inherit_graph_3.md5 b/docs/inherit_graph_3.md5 new file mode 100644 index 00000000..15e94264 --- /dev/null +++ b/docs/inherit_graph_3.md5 @@ -0,0 +1 @@ +af0ad797bc541c4410ea91747eb626b6 \ No newline at end of file diff --git a/docs/inherit_graph_3.png b/docs/inherit_graph_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e90ca3bb760e589eb15bcb8c0c97b94773b9b5da GIT binary patch literal 21202 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 b4D-KU*Ny$_@fc`Q$%Qk%bg|;RW8D7$4IQxn literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_30.map b/docs/inherit_graph_30.map new file mode 100644 index 00000000..a47060ea --- /dev/null +++ b/docs/inherit_graph_30.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_30.md5 b/docs/inherit_graph_30.md5 new file mode 100644 index 00000000..ba06fefd --- /dev/null +++ b/docs/inherit_graph_30.md5 @@ -0,0 +1 @@ +57b8996995772106b399f6a66c64cdd3 \ No newline at end of file diff --git a/docs/inherit_graph_30.png b/docs/inherit_graph_30.png new file mode 100644 index 0000000000000000000000000000000000000000..27c62885dab1ecda71eb8b02ca27bc8ed4cf8c43 GIT binary patch literal 881 zcmV-%1CIQOP)`v^9(-6S3UCkaUAc|+;c9T!V@?R z&*Dk^-NKGXa8aMWfAK;x=CKxfb_{D^8%7mb4`OYN{8rqQw7Q(lJ-# zU6B#a5~=)UT#~te6+XZNBI?)RHuG6!7@dt7$7-;HGq6QC>m}Tn^nZp|GVP|!ik1I< zqGyvRi28B2Sa6?I?O*U7?rfp6F{5(UpJFBTa(dM_2nTSlc<@6aa&Bp5T|F0zRF(3P znC#p=dwXODv9g8E#*E5Y2eH0JzP9Qcgq7k5uwLwOyRcLL&3ssn;<6suR{6rPqf(On3NTE + + diff --git a/docs/inherit_graph_31.md5 b/docs/inherit_graph_31.md5 new file mode 100644 index 00000000..220f4f3a --- /dev/null +++ b/docs/inherit_graph_31.md5 @@ -0,0 +1 @@ +a2afd92351ad048094a1110e38da5823 \ No newline at end of file diff --git a/docs/inherit_graph_31.png b/docs/inherit_graph_31.png new file mode 100644 index 0000000000000000000000000000000000000000..ac0c57deae2ba98314412ed801d30d7f0da7c66f GIT binary patch literal 1239 zcmV;|1StE7P)yPsil@hQG{j|NgA0CQWh1Im3A}A z9*TlzGMP*!li827l*lIHzTS2uv){R zAe^9yc+bFpJ?Bg20HZSAWhX}_gPa_h2IS<(RFab;Q%QFv$0L|jBA<;LD!y|Jp2lG~ zDqSDZML%xEoI2UmqV@ohmiMD0t#djE>Pch*jeNR+A*^6>Q6 z5eBJ_Uo(0t>CNQ$9LM1;+=7$v8wQljoreurD}q!kSr3Tdl#N$ny9f&Lw)by5r8a1j z@NT-EhBe97k64)GMgQu3?~I-4N&lxw?;`ZY@bul;>0U3YTZ_lVsWl>v$73~qz|ZOP zmJaCY7J9O*Y}USbW0IW#YRk$P{3800L+}tjDd?Dnxedl| zcXBjiXRbI2i_FLSg?pczk;=B_1Sg|{rVVF1?7vosmf#<~TsA^t| ztQNa}o(RsCBwvchuuFR%FkaN`bG4rW>pSRYGj_Jxdq!^ zX+icieibK0TLU{P$=0UvRbqFR{gk21_m0|m2WR2(G#)J0YH^7j_(wFY&xj|TMM=IK zM~m{(B9deYuB*_~?R56PvJZ+9vQ6CFW_x$c3q@l#OLfoDSDYL>MJ->4+Y378ivU!O z;Wp*<_XV*l+jd$jJ`g){175}RqUpO(ZO>8ky;(a%54Ahp&o*%yw%Yq0PyKt231U6l zO6yGgAx@oLcu_oJclKRTk2j=k^bvJ?_?7N(`;B;~HmhIy1X0+Nx9bRF#Bfd9c zkSJk8x}bwdx(VX97+s~;k|T5QalpJG%^XDJlzGMP-r_#fF5FW~#UYtaAz002ovPDHLkV1j}^ BV%Gow literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_32.map b/docs/inherit_graph_32.map new file mode 100644 index 00000000..e8f5d8b2 --- /dev/null +++ b/docs/inherit_graph_32.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_32.md5 b/docs/inherit_graph_32.md5 new file mode 100644 index 00000000..22c5bb6c --- /dev/null +++ b/docs/inherit_graph_32.md5 @@ -0,0 +1 @@ +0b7ffa46c478d1055150d999a1a55c66 \ No newline at end of file diff --git a/docs/inherit_graph_32.png b/docs/inherit_graph_32.png new file mode 100644 index 0000000000000000000000000000000000000000..41c40badfa26a3ba8ef35852ee0bb451169b9daf GIT binary patch literal 1118 zcmV-k1flzhP)iIGC)gOo)*l$1tg zln)gJY4uPMnz>I}H9|6Mc0qa!{Lf!zQdg*_E+#iq5mmnrFIA2 z6+(5Sd$w1+Z%-afu@reN`M#!Lo1JWDRPcQ+_B9k;byh3cK@N0!9D(Cgdk1D>e~oJg ziP>F+jbZ|fPyHdd4DVo0;krxkCB8}h79n7*m3~6{^oDk|-)j{=H5o|JKE`Qy9k<|2 z?7^^-Yahnf_(F(VOuhFBamxCeuvdse98CYjle&vG0~=C%E`Gp=DV`M=jL~WA!W6@$ zJz{)JWR8y1pMtIU9zUh;TYBNAPw3C|xKr25n~?4^O!xFS0Y8g6cN`wT`vo6!u((eD z4Lp?Epx??qe|(cl0vmO7xXz&x;v2SERF6QHY1*)xvdu>3&`+W2&f2BgD&J(<9F5 zxS>uT-okt#R41R|7hJ7tf3Q9#g+RLlTA#rx8$DUsJIV_6#K(R-x>PFdz zkNUt*UGfjcO-L543CW^0Az8F0B#YLBWYL(^b literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_4.map b/docs/inherit_graph_4.map new file mode 100644 index 00000000..b9b56735 --- /dev/null +++ b/docs/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_4.md5 b/docs/inherit_graph_4.md5 new file mode 100644 index 00000000..e6a7187c --- /dev/null +++ b/docs/inherit_graph_4.md5 @@ -0,0 +1 @@ +3fd5b5449d3706fc3392f17d66045462 \ No newline at end of file diff --git a/docs/inherit_graph_4.png b/docs/inherit_graph_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b852065f891333387811e6eec3de6654a89fea5b GIT binary patch literal 1046 zcmV+x1nK*UP)G(L+51VM!D{Op!qrl#yL%D5yXyixev*yO?w_d-&F2cDtFwK4;F+ z4Xrx!uO!!xdDw{$@EZ=s z-MB5yy&Wq=C378?x1moj9xU~3$6I)_1(|(Dry{2x@8c@06Gj;j54o@)w*=qdo+R^$ zFu+t{*uHelOS;X%m2K+Oo7S9xU$G0v;|*Njf=sPwr<8sQ>oKX+|2Vc_0w&{6oRh{T zVHkH|cDm=Z()`o0HT^$GL|9cOrZvwj^}k>wnybh(=)vLs`;6nItEKdGEW#ba^NOqx zo;g`W!;g41jqSo3oK>201a^pMA~x_ze3$0GSQuM|*9&vY?a|l|U$!W7e!Bnqq}wCH z;g$*KnVICS#%2-m~4c&;?Q1fLh$tI|3rRM4wTSI?Xc!rRKJf=GFdd^`cK zr1o*5Sg7Iz{YFwGoG2>3cKJU29$8Uln@Dv&9uYzj%o|tj+n&Xhhk*Vj4~s)ng|abH6+J`3C+FlzGMQHR2ehy0%9Ud5 QZU6uP07*qoM6N<$f@>@KumAu6 literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_5.map b/docs/inherit_graph_5.map new file mode 100644 index 00000000..191ed9c4 --- /dev/null +++ b/docs/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_5.md5 b/docs/inherit_graph_5.md5 new file mode 100644 index 00000000..93a47fb4 --- /dev/null +++ b/docs/inherit_graph_5.md5 @@ -0,0 +1 @@ +4d855fc5f48e153d5eec997f92ff02bb \ No newline at end of file diff --git a/docs/inherit_graph_5.png b/docs/inherit_graph_5.png new file mode 100644 index 0000000000000000000000000000000000000000..78e7e15f039b6282f0031b6c38f80b0355d92ee0 GIT binary patch literal 1426 zcmV;D1#S9?P);)-9r?>@lUJuv|6g=p|zF78hg;H3W=S@PLQAxBqE3{ z1c|K)A`OBN{2^&X{~;(6A(V(Mq6o1QqN<3s)Ykgr%*~s3-|yYuz3qK3smwRI$;@xg zoH;Xde&=^)-lI?`6bgkxp-?Cc8zU;7O~=K z9Bd>cC7hbcosBPrqbp{Z*tHYh5{~;g z9>I=y54$9peC#^j!-1*19?r#D9om%7uZsOJEtSv3_V`Dfp!UaexT8h?RyGeit8z8) z0A4fj?Yzx(+|2wuNb~t@PycgQLZU|AkjX1a0L^@Frf! z>WAWkB)=4M)AMGVTgkS|kUG=!BtI#8wu#uV#&6w_^h|mlh1EVlDk4g z-P2QBoip7kB7TE6MWh;$#`*<&RM=c6+YUqOOvecCAD2CQ6~Cq53e0ZmGZP<)C^BBX zGfmC<-h|iNu$&<>gqr13d?e14~YGzbdvB2Oi>OJv!-s z4Ht=sTtz3c9n%eG`WQcpg=uCx@d+UEg{M+|2a%k&69Iem|5WWJPK0%QARP6GinfbH zL}?!XdvSWosT*%a#j|$x{3_NWrz*$G=@F6S)l}aDH(-{C;KzuFTtz3c9n%eGT8^tk z=siw2%{n4ynJ*G&*hd`4FB5O?l=SPZ(LYLTKJ1#tcsSLkiF+9p^=0DT>%7!wbQ*Uy z&JvNanI}c=Gb`06ice8vyuZb%vW_}E4W1BJ6({J6?#=nj24bBy6L(B6iBHp=seMcQ zC?YW&D_)dF)Xi{ThUGw z8;o^?UG2Vw6U2Saq(R!+z4dOTCubuO$vV9N&Dl!-yRymp=Gts?E7>}R&6x`Sf6D(e z6^5STOogsdoT<*C@_Z=o+o=OHLX#D++58Re$S5YiF821cnp}g+ifF gC=?2XLZKV{2TnIrkt>-@3;+NC07*qoM6N<$f + + diff --git a/docs/inherit_graph_6.md5 b/docs/inherit_graph_6.md5 new file mode 100644 index 00000000..c5462cf9 --- /dev/null +++ b/docs/inherit_graph_6.md5 @@ -0,0 +1 @@ +87064c0644b6ce1221a75c48b79f9895 \ No newline at end of file diff --git a/docs/inherit_graph_6.png b/docs/inherit_graph_6.png new file mode 100644 index 0000000000000000000000000000000000000000..05bc630ba0903dacd6db9a1e19b07524c10744ee GIT binary patch literal 1660 zcmV-?27~#DP)^cokbbP@y~WkOKDe^7U~5l(8ek>g0`Zq6(flVil9+6 z+N!Y{LD8s@N;F=A7or%0m;fFr_Gh zElepUQm`{|A+E=5_y%5A^WA*B4R69>DeZ;046|@VdY*|z`0hCEnul-U7Hq&3I3~-_ z+wO%U@k8wou65-7tK$QBchmdN@hf}<%eri*)tHW#@yv5yc%K$0v^LDgCOm+(_>Ab# zzp*O&?&BE2J@^;4;bk}~wK<%g?+^pM5MUeNejw_5V(l28tzK;*#dtyw_@3Nh`F&z)%o#$RSAhg(#u?Y4j_^pEn^@6CZ8*?rYdmQ+|dRql#`8;$WNnVF!=fc;~qn`X<=9*pIi?~G#W_uw5V@1^*&*!rmVuvg2 z>VqkNyI6#WVL__zToW_Tz0fzozDumUIa%7>B2IiN<*jKda|*T!Z#bm0V2{hneh0tn z!md?#TIWMi-u4AzLF8O4;$G?nyDzGTr9$X+l8mzg-@is zYJ85!zF#Z0?M{Nt51!X0yH|@HZCD6xcC!0c6En}fP%GGpxFy&owv0DtY0E{&=4jj= zhVWAns9%P+V0VZ5w`-jIP2z;!i9ZQ1v7#n#u{d!z|MSnWVzP4{#!K3?^F;PMB0OEU z^_+$~o6@RsGle(XDt44pQ~7H|oLklPPa(33$21DK75TjEO?EF7bM|`?CvP$8_4_@~ zT`>`YeNYVAX*GGT5ZfgYzpYR2$BRI{8&5u8K@V8wQ+5FUoP$` z)x19~?hDUPWe!R0uEEE|%5Uao5sRLc-sg&KyK3)QjVJL|bgHM~CY&JtGpX`kOH$U9f}rlo0ynlr|0LrRT*W&izFfHr8<)4i}-pfDrC_ykGz4dCZLET5B4)a06WAX>T07CcrpHv+0pzyAPyjVMEo~`zluSwXuc&_ zD}?!w@F@9@1DB?{R;#~)W52Z<@jT=d#mt%zs4I={z?%) zuE!(Ewrhl#I>oTL-9O9PT$Sp4RNP!#C4|TL=eZa9dJkJML#(a^V=Ui}@vPEAgOi!#G*vi8#;e_Sda;_2e8WJn~>o-XLBsV)5qt&z0i3irBsn@6xVLRJRAMF8ljA z&lQs**uvzJ3- + + diff --git a/docs/inherit_graph_7.md5 b/docs/inherit_graph_7.md5 new file mode 100644 index 00000000..fd4f19fb --- /dev/null +++ b/docs/inherit_graph_7.md5 @@ -0,0 +1 @@ +34b307b13cd457bda77cd97197a96c0c \ No newline at end of file diff --git a/docs/inherit_graph_7.png b/docs/inherit_graph_7.png new file mode 100644 index 0000000000000000000000000000000000000000..c8eb57fc4dfb27382195288b64cf9f0ef1acfae3 GIT binary patch literal 1349 zcmV-L1-kl)P)$leWt^XPhnM@{=$z(E_OlFJdSMux#T-$0PnXQ7m@MiHr|B^&|Vp>b&WVR-z z32$^_K!Xp?={qf%t&mM+56dD@Cev-QfijiI2Fg?-8z@tW-Zao4T#sk40Jq}sl637j z1xI81^lV4mjUm`MT@S)o%>55_^^{_Ls?wXfTEe-ySaCO?9gFc1X5(tnVHC#8 z1MlEBe1Sc%dn$88x_(VG{v@pEVLf_7S5GO{rwYBTs|uThH=5ED13ip|HXm{KV>#Ny z==lpLr*}iJ2si7x!HWjkL5%EH>Z;KnyLC}UKkQXkMo$bhLgyKwJGx+`@&jQQoPJW? zRm|6C2HFW5abn54;o>}LI3{Cd-TOQ7s?H6*4}QTgVW8D`23U5n`?``gX-1zJ=!lelWZ~Iv;?%PC8(Q++P%OojIyd;(bX_yh zCd^OyPr_GX9YZu?u`!DGy`gI?eiD&yJKTUbQo7wmr=OngN8?K|O&04j13&19F2@O@ z3{G`ij$1^;8I$su*+dt-hx3HlMvEzKLZR%}Q+td{I?pe((MIfBQbr^C%s^)*LBk5q z-oo$cw^59SB9rl%h!(>&H_$$XZ|}g{Ez&hkM3&hYB|2+RN_(9!bCKKea$S9P5FL1Q zN;4l1r0eM-f{YLb8JhBVv5Bt!*e~g6$1zwX)^)YACl_>nT9@BcC4Wmaq0~UVu?zb` zROFb#vx%bPhUpxJhvQMPki8qni?G^={HV>dyDl|k*|f( ziu{)HohG8#R6LU2?VGfGAf}@wxLC&k?n>82OiAS}#5MS*uG|j_IzOp<_q3SGD%0q{ zunkSgm7} z*XT;yV`4$SK&+Q)5p<=PBFE@3O}mIhjdV>AYo)`4sfhto#%df}_iPrP#rIu&Q;DAJ z!e)t)HdR!7FwPdchIL}9I8t=zfg;S-e(jo1VRKSB2aBk1MY^Ae3ko{w@2l!M9q)?; zIni;e#E$4tG3w7q?{*RqVTR3jVQnIkepILnF*UEpMIu^`!MnJziLSGR5o^=wS*g6~ zC1sCKI;RxUerd~tN1txv`-@7i6%DdRG}uhsCpzl-lyCiSk;Vr48qbRc`v;GUh(xRx zJ}&5}zptvRO+=s#;w)yVIGd?4TSUgCqO<3Tjw##5&&A(1KMuH1tjWH`pJI9&*hJR= zydomlS9k&srn((cQub9T?-gP?n_|o9Qv=l)h=asP>TPPHuP0Q|)erlNkz97(GD1ux zBTL?Om!Tq}ZRt79-Z~p)w64#DhNSd8r6mT+{D0}QU07xtCL1VIiEN-uC9;7smB5000000NkvXX Hu0mjfxY>wy literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_8.map b/docs/inherit_graph_8.map new file mode 100644 index 00000000..924868e3 --- /dev/null +++ b/docs/inherit_graph_8.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_8.md5 b/docs/inherit_graph_8.md5 new file mode 100644 index 00000000..2d7ee3cc --- /dev/null +++ b/docs/inherit_graph_8.md5 @@ -0,0 +1 @@ +9a86fab32029dd575d240d7b4122663b \ No newline at end of file diff --git a/docs/inherit_graph_8.png b/docs/inherit_graph_8.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4ebb92ddbd3b600a3f7a7c01ae07c201493ec6 GIT binary patch literal 1427 zcmV;E1#J3>P)OKUsD*z@lQK+F)gKxc2K1fyg*a6t4QoyT2)&KA<@Jd z(IOHNOT_Y`sSry_gjmuy?JG-!5KHVLsggQ0vr-=lnBw{&Q!hojWs9&NsQ4 zd+t5=oadbLJI`~@`45>)CX>lzGMP+fqZm^1>>yk**oI^_3FhO~;)9_jnRddgK`|$@ zDKSfEqZ6C;@WH7AXG>-iWPRDgG7pr=Y%p0snMz~$ zz9t-p!>~nqwiOm&B(_cW!!ZfB|BH6@m129UG7(3mGB*iM)6I&z2b%C6mSG+)69e`; zW*72ZfZy;Y*5VWFh#gX$W77RgqVo?yYaiRuA9nSXVtcAEKb5l_ZCF&Xyeh00+US+O z2`SDX7!&qHoY5(cX7S$JG>~MEp7ZPtZG+{p%~Xq9Ye5lT^)T9&={Q~ z!tO%UN2YW$)?sShcVm?w2*ZeUNo7}=6ayxpZP1RROWutZ=Sib64Xf+k--Z`;?(kjk zBSr}Ut-<}G^V+dEy@M<9T%o*Tx+l7B!b%)k$ag~ewpDnwJA^2U?Rf@w7QSh~ zS2_-Br{I13iXU*35X2Ee=ru+P(Vv;p#|Y1~CfP7QJ#QAmI}hK9i7_MHx23x0mh?$) z448lpO8LhYo{bZymbI&~gbYihHis}BaYZAT} zo^NwpjaO2>9mJrYn9|MoRD{W5d(Ow#I=ssfLMS6r8&}~5;Rz?CGUn9Ta~dAU3gL<2 zZJaK|)+|ErltSGvr~cS2*?C5xkJ_^1zHu68jSicG^t!dr~i zyMT5ne0wY27$m!P6P{%r#*4ukp7PEWVlHwsp08`qmSO-8OL-RJo^*ef@E~J^P#RMi zPZ!D@hi8Qcd`%4eP!ZyWh;`oK_*SgzYIRR5*tw$4&Y4Pnmgt320rkf&>=V(D!wb(2 z6azO(=kPEZ4~d2B0ukTadMSUE&I9!xwi_h7T5zuDxRt5y(@aI_rf=sba2lRaAtfn6)aKRwm=IxffGb@eVS*!f}IyTu}uRi-}# z^s$&7N0q$W9owh-20WS4dy4qJA)c;DbbO7;_;Qf!8ZSb@{^|W9+$+{2Yp_RMx!u|J zun^8MLJ&0%x>|(D2|B{+zPLynJuE1c(T=B5om0eG=_KKuXW*CeZm>pp(jphDwxI5j zzU;y-7Bg+87?2S-MeJsN6`|r_F`#=1H(R@!^d7>lO!e#|yuyVkeV~p-Wm&qaT_@rl zu^=Y~?pq`CtX%(3o-cXaJKN46Yv(UNo`rJV**SP;=BbX z3nA9R>B*_Svr6iooa~%l$or|De@HK5K)3NjMWcTa9nvN`Y!2=c19ep@xBhxp&jR`! zPlyit8;|JlNH^nyf*tkgs&+L95A?e@BWe+6Mm6S%BY+km!h6NQlx^d0$6vZ02h0|0 zvM=$62yerLpdL--e3Skz5sU53@PZK7XLt{b!ZrrUT1R6sR`VQ(>$ z`kR_p=nGZs8Y05RWaZ~AW3ZpjySUkK9v9f002ovPDHLkV1hfzt)Kt^ literal 0 HcmV?d00001 diff --git a/docs/inherit_graph_9.map b/docs/inherit_graph_9.map new file mode 100644 index 00000000..c9ddd5b3 --- /dev/null +++ b/docs/inherit_graph_9.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_9.md5 b/docs/inherit_graph_9.md5 new file mode 100644 index 00000000..15954fff --- /dev/null +++ b/docs/inherit_graph_9.md5 @@ -0,0 +1 @@ +883a96f1cdc5d86e087d42fda3e2b82b \ No newline at end of file diff --git a/docs/inherit_graph_9.png b/docs/inherit_graph_9.png new file mode 100644 index 0000000000000000000000000000000000000000..0a53a71abad841988e96929bbcbd7e6453952bd1 GIT binary patch literal 1330 zcmV-21i>tABje4Cp z0taCIl(!*n!Ft#z-4Dkk+_)C~YL>h|tuhYR;#thY9oVv}&P~{}QhCf&a*24FvY-()}9;a9Wd{b_|A@fBXe**G6B zVg+`|>aE5xE!t>=N7Xr@Rnv@!?!z0p&%8Ua2pwW}ug2l2Y(31!mFmCrTtpj)89tDH zRTzp*>pWwKnAQ0+ni0_$-B*Trc(P9Z^I5tl5jAR~5&BI;WAQf*tx+~wd~X_!saRZ9 zeuJ1H`Agp#KVy^-(Nf%tmFYQ;r!ts>7czT!x*dMO75Ear;9KmU)jKM+{a!@3TZJ(5 z{>;T~S(^@gZOsSWJ@6iW!%w(I2y@3|WA_^VPY_FQg?b|Di;YI;HxccV>W|CvHWf}* zu8}p`jl@EntLsajlnXjTM=PqV>1yUhNrq02|?#vC-xh8e>MjZjlW?Kqu%Dqik^S>6;ec%yV( zDn{c0vAMkk2V;3J_7~|oSPQW60Qt2Lr-+I5ZF=^Rsm)emzm@Za5L?c&WOs&$2-9(Y zD%&Rc@-9A1*U3VFABpJH?OzqP!)0p!K+kE1jb3SoLO&7vg+uUERoP^0lI}b3jF=fa zU`d1aJH^XiozlCB)5bvfwHaQ)!$P=c;%*TsmWs%gQ_r^t#U_8Q*gsVw>0+^5PP8Wa zcZ!I#SP1z@aazr}KrDy7tr#D+!A4Uwb2>Xm%(&@dP)3OLc)kebr($0*s5^^rU%5K< zzMRcT&)HQ(hqF_93QoxUs7|-)*EGB%HtEDBc!@ZP?J4#fN2ju}A`+dZ`{}GhMAY}Q zz7WgwN}MDj!bH4{OH=t-$+ziZA`MGEuhRX9e^z>T`L%8zY&1f@9`T2Yj{hoN%5w42 z&cN-$>5G%y>TAB9Mf3%p7Bl!SJY>yA@j85v`B9y2)vpc_iB^ekNDIX`r3$mf04@{* zb+?G_wT}2V;!oW_70eQQw6E}oSn7tQvLU!!2!56Lmi2>}2sx|k^kH%zY&1f@im1Xc zq3(%Iw(p5bbZCZF{2GGo#Zpyk|1bu7>3Rz6DFKw}%mMSFFjyFmZ>lqU644|5=SyJ_ o^Vr&Upin3j3WY+UQ20;sFGZVhMvZZ}#sB~S07*qoM6N<$f + + + + + + +Clothoids: Class Hierarchy + + + + + + + + + + + +
+
+ + + + + + + +
+
Clothoids +
+
Clothoids: a library for line, circle, clothoids and more
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+ + + + diff --git a/docs/jquery.js b/docs/jquery.js new file mode 100644 index 00000000..103c32d7 --- /dev/null +++ b/docs/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/logo.pdf b/docs/logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c895f74d780a3a6dd176836f2ee7ccb835b4cad3 GIT binary patch literal 25858 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 literal 0 HcmV?d00001 diff --git a/docs/menu.js b/docs/menu.js new file mode 100644 index 00000000..2fe2214f --- /dev/null +++ b/docs/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/menudata.js b/docs/menudata.js new file mode 100644 index 00000000..6c3dec04 --- /dev/null +++ b/docs/menudata.js @@ -0,0 +1,109 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"a",url:"namespacemembers.html#index_a"}, +{text:"c",url:"namespacemembers.html#index_c"}, +{text:"e",url:"namespacemembers.html#index_e"}, +{text:"f",url:"namespacemembers.html#index_f"}, +{text:"g",url:"namespacemembers.html#index_g"}, +{text:"i",url:"namespacemembers.html#index_i"}, +{text:"m",url:"namespacemembers.html#index_m"}, +{text:"n",url:"namespacemembers.html#index_n"}, +{text:"p",url:"namespacemembers.html#index_p"}, +{text:"r",url:"namespacemembers.html#index_r"}, +{text:"s",url:"namespacemembers.html#index_s"}]}, +{text:"Functions",url:"namespacemembers_func.html",children:[ +{text:"a",url:"namespacemembers_func.html#index_a"}, +{text:"c",url:"namespacemembers_func.html#index_c"}, +{text:"e",url:"namespacemembers_func.html#index_e"}, +{text:"f",url:"namespacemembers_func.html#index_f"}, +{text:"g",url:"namespacemembers_func.html#index_g"}, +{text:"i",url:"namespacemembers_func.html#index_i"}, +{text:"m",url:"namespacemembers_func.html#index_m"}, +{text:"n",url:"namespacemembers_func.html#index_n"}, +{text:"p",url:"namespacemembers_func.html#index_p"}, +{text:"r",url:"namespacemembers_func.html#index_r"}, +{text:"s",url:"namespacemembers_func.html#index_s"}]}, +{text:"Variables",url:"namespacemembers_vars.html"}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"x",url:"functions_x.html#index_x"}, +{text:"y",url:"functions_y.html#index_y"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"j",url:"functions_func_j.html#index_j"}, +{text:"k",url:"functions_func_k.html#index_k"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"x",url:"functions_func_x.html#index_x"}, +{text:"y",url:"functions_func_y.html#index_y"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 00000000..9716ea8f --- /dev/null +++ b/docs/modules.html @@ -0,0 +1,88 @@ + + + + + + + +Clothoids: Modules + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Clothoids +
    +
    Clothoids: a library for line, circle, clothoids and more
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Modules
    +
    +
    +
    Here is a list of all modules:
    +
    + + + + diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html new file mode 100644 index 00000000..54f99f97 --- /dev/null +++ b/docs/namespacemembers.html @@ -0,0 +1,264 @@ + + + + + + + +Clothoids: Namespace Members + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Clothoids +
    +
    Clothoids: a library for line, circle, clothoids and more
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - a -

    + + +

    - c -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

      +
    • GeneralizedFresnelCS() +: G2lib +
    • +
    + + +

    - i -

      +
    • intersect() +: G2lib +
    • +
    • intersect_ISO() +: G2lib +
    • +
    • intersect_SAE() +: G2lib +
    • +
    • intersectCircleCircle() +: G2lib +
    • +
    • isCounterClockwise() +: G2lib +
    • +
    • isPointInTriangle() +: G2lib +
    • +
    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

      +
    • pointInsideCircle() +: G2lib +
    • +
    • printTrace() +: Utils +
    • +
    • projectPointOnCircle() +: G2lib +
    • +
    • projectPointOnCircleArc() +: G2lib +
    • +
    + + +

    - r -

    + + +

    - s -

      +
    • Sinc() +: G2lib +
    • +
    • Sinc_D() +: G2lib +
    • +
    • Sinc_DD() +: G2lib +
    • +
    • Sinc_DDD() +: G2lib +
    • +
    • solveLinearQuadratic() +: G2lib +
    • +
    • solveLinearQuadratic2() +: G2lib +
    • +
    • sqrtMachepsi +: G2lib +
    • +
    • sqrtMachineEps() +: Utils +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html new file mode 100644 index 00000000..27ded480 --- /dev/null +++ b/docs/namespacemembers_func.html @@ -0,0 +1,246 @@ + + + + + + + +Clothoids: Namespace Members + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Clothoids +
    +
    Clothoids: a library for line, circle, clothoids and more
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    + + +

    - c -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

      +
    • GeneralizedFresnelCS() +: G2lib +
    • +
    + + +

    - i -

      +
    • intersect() +: G2lib +
    • +
    • intersect_ISO() +: G2lib +
    • +
    • intersect_SAE() +: G2lib +
    • +
    • intersectCircleCircle() +: G2lib +
    • +
    • isCounterClockwise() +: G2lib +
    • +
    • isPointInTriangle() +: G2lib +
    • +
    + + +

    - m -

      +
    • machineEps() +: Utils +
    • +
    • maximumValue() +: Utils +
    • +
    • minimumValue() +: Utils +
    • +
    • minmax3() +: G2lib +
    • +
    + + +

    - n -

    + + +

    - p -

      +
    • pointInsideCircle() +: G2lib +
    • +
    • printTrace() +: Utils +
    • +
    • projectPointOnCircle() +: G2lib +
    • +
    • projectPointOnCircleArc() +: G2lib +
    • +
    + + +

    - r -

    + + +

    - s -

      +
    • Sinc() +: G2lib +
    • +
    • Sinc_D() +: G2lib +
    • +
    • Sinc_DD() +: G2lib +
    • +
    • Sinc_DDD() +: G2lib +
    • +
    • solveLinearQuadratic() +: G2lib +
    • +
    • solveLinearQuadratic2() +: G2lib +
    • +
    • sqrtMachineEps() +: Utils +
    • +
    +
    + + + + diff --git a/docs/namespacemembers_vars.html b/docs/namespacemembers_vars.html new file mode 100644 index 00000000..d95c3d36 --- /dev/null +++ b/docs/namespacemembers_vars.html @@ -0,0 +1,99 @@ + + + + + + + +Clothoids: Namespace Members + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Clothoids +
    +
    Clothoids: a library for line, circle, clothoids and more
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/docs/namespaces.html b/docs/namespaces.html new file mode 100644 index 00000000..62573cef --- /dev/null +++ b/docs/namespaces.html @@ -0,0 +1,130 @@ + + + + + + + +Clothoids: Namespace List + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Clothoids +
    +
    Clothoids: a library for line, circle, clothoids and more
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     NG2libClothoid computations routine
     CBBoxClass to manipulate bounding box
     CAABBtreeClass to manage AABB tree
     CBiarcCompute biarc fitting by Hemite data
     CBiarcListClass to manage a list of biarc Curve (not necessarily G2 or G1 connected)
     CCircleArcClass to manage Clothoid Curve
     CClothoidCurveClass to manage Clothoid Curve
     CAsyPlot
     CG2solve2arcComputation of the G2 fitting with 2 clothoid arc
     CG2solveCLCComputation of the G2 fitting with 2 clothoid and one line segment
     CG2solve3arcComputation of the G2 fitting with 3 clothoid arcs
     CClothoidListClass to manage a list of clothoid curves (not necessarily G2 or G1 connected)
     CClothoidSplineG2Class for the computation of G2 spljne of clothoids
     CClothoidDataData storage for clothoid type curve
     CSolve2x2Class that solve a 2x2 linear system
     CBaseCurveBase classe for all the curve ìs in the library
     CLineSegmentClass to manage a straight segment
     CPolyLineClass to manage a collection of straight segment
     CTriangle2DClass to manage Triangle for BB of clothoid curve
     NGenericContainerNamespace
     Cmat_type
     CGenericContainerGenericContainer is a class which permit to store eterogeneous data:
     CGenericContainerExplorer
     NPolynomialRootsImplementation of Flocke algorithm for roots of 3rd and 4th degree polynomials
     CQuadraticQuadratic polynomial class
     CCubicCubic polynomial class
     CQuarticQuartic polynomial class
     Nrang
     NUtils
     CConsole
     CConsole_style
     CMallocAllocate memory
     CSpinLock
     CWaitWorker
     CBinarySearch
     CSpinLock_barrier
     CBarrier
     CSimpleSemaphore
     CWorker
     CThreadPool
     CTicToc
     CRuntime_TraceError
     CRuntime_Error
    +
    +
    + + + + diff --git a/docs/nav_f.png b/docs/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/docs/nav_g.png b/docs/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_0.js b/docs/search/all_0.js new file mode 100644 index 00000000..e0fbc3df --- /dev/null +++ b/docs/search/all_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['aabbtree_0',['AABBtree',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html',1,'G2lib']]], + ['allocate_1',['allocate',['../dc/d87/class_utils_1_1_malloc.html#a2eafcc9243bdad372ea35c00f3e94f9b',1,'Utils::Malloc']]], + ['approximate_5fcollision_5fiso_2',['approximate_collision_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a9cf262be946e13e3835e5e2683ec0c4b',1,'G2lib::ClothoidCurve']]], + ['asyplot_3',['AsyPlot',['../d2/d79/class_g2lib_1_1_asy_plot.html',1,'G2lib']]], + ['atanc_4',['Atanc',['../d4/d9f/namespace_g2lib.html#ac0bbd1b03ec89b9ed1874b35849a82e7',1,'G2lib']]], + ['atanc_5fd_5',['Atanc_D',['../d4/d9f/namespace_g2lib.html#a634e4fa7089193123ec9146bd8e05d2b',1,'G2lib']]], + ['atanc_5fdd_6',['Atanc_DD',['../d4/d9f/namespace_g2lib.html#ab4c21b2f3f1a20a134429dfeb129c423',1,'G2lib']]], + ['atanc_5fddd_7',['Atanc_DDD',['../d4/d9f/namespace_g2lib.html#a448a0b9a486f6b9b16d74d80d133b10d',1,'G2lib']]] +]; diff --git a/docs/search/all_1.html b/docs/search/all_1.html new file mode 100644 index 00000000..9f80e904 --- /dev/null +++ b/docs/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_1.js b/docs/search/all_1.js new file mode 100644 index 00000000..9c5a0edb --- /dev/null +++ b/docs/search/all_1.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['barrier_8',['Barrier',['../d8/d20/class_utils_1_1_barrier.html',1,'Utils']]], + ['basecurve_9',['BaseCurve',['../d2/d03/class_g2lib_1_1_base_curve.html',1,'G2lib']]], + ['bbox_10',['bbox',['../dd/dd4/class_g2lib_1_1_biarc.html#a7112e8e6fe20c10bd6a4d8f09540e2d4',1,'G2lib::Biarc::bbox()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a4a4bd5ecbeac2824efbde671b63d56f7',1,'G2lib::BiarcList::bbox()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a79128dd27957d0689dba4ddedc5857b1',1,'G2lib::CircleArc::bbox()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a75c17f33f701dd46b6320837ae3324be',1,'G2lib::ClothoidCurve::bbox()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a0bac93a7a7435d1c63d3a2df908ba0c4',1,'G2lib::ClothoidList::bbox()'],['../d2/d03/class_g2lib_1_1_base_curve.html#ad08bc5424a8969b3de54f9b6dac4462d',1,'G2lib::BaseCurve::bbox()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a6c0a696ec1ace1ba6617ad5ed273d95b',1,'G2lib::LineSegment::bbox()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aacb769ac171bc0388c2623722f0a48b6',1,'G2lib::PolyLine::bbox()']]], + ['bbox_11',['BBox',['../de/d56/class_g2lib_1_1_b_box.html',1,'G2lib']]], + ['bbox_5fiso_12',['bbox_ISO',['../d2/d00/class_g2lib_1_1_poly_line.html#ab4d9226f3f644dc29b48ffb1d2468439',1,'G2lib::PolyLine::bbox_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a6a1861c6999845dc359e27d6120c42da',1,'G2lib::LineSegment::bbox_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#ad78cdead3876f252c25117319174bb7c',1,'G2lib::BaseCurve::bbox_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a4f60b2c885622b1adf2df271958c3cd6',1,'G2lib::ClothoidList::bbox_ISO()'],['../dd/dd4/class_g2lib_1_1_biarc.html#ad455e9dec46e11159b18988f7bf2c2b2',1,'G2lib::Biarc::bbox_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#aa9a7888a0b48915eb104b0166d6c1fc7',1,'G2lib::BiarcList::bbox_ISO()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a720b6bf5b2fdb6f7ed98f6e6d6743d22',1,'G2lib::CircleArc::bbox_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ad6cbd524c74a2b4cc32c8a8917c516b4',1,'G2lib::ClothoidCurve::bbox_ISO()']]], + ['bbox_5fsae_13',['bbox_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#ab822f14dc9b0093bae1ff1f8efbf1acc',1,'G2lib::BaseCurve']]], + ['bbtriangle_14',['bbTriangle',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a903071aebe6bc9f5f252c4f19d4e8c52',1,'G2lib::CircleArc::bbTriangle()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a53bedf212077946de2d7ba9ee6c3950d',1,'G2lib::ClothoidCurve::bbTriangle()']]], + ['bbtriangle_5fiso_15',['bbTriangle_ISO',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a34d9273302b43f4dc16a3a2d160dd7a8',1,'G2lib::CircleArc::bbTriangle_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a290ff294f8789d4a41415bced60bc3ec',1,'G2lib::ClothoidCurve::bbTriangle_ISO()']]], + ['bbtriangle_5fsae_16',['bbTriangle_SAE',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a455b3ec752001312da440acfa5c40786',1,'G2lib::CircleArc::bbTriangle_SAE()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#abe6116586d66476abe70fb5ee18ff7d7',1,'G2lib::ClothoidCurve::bbTriangle_SAE()']]], + ['biarc_17',['Biarc',['../dd/dd4/class_g2lib_1_1_biarc.html#ac17cadef4cc1e76804afa340df8bf339',1,'G2lib::Biarc::Biarc()'],['../dd/dd4/class_g2lib_1_1_biarc.html',1,'G2lib::Biarc']]], + ['biarclist_18',['BiarcList',['../df/d29/class_g2lib_1_1_biarc_list.html',1,'G2lib']]], + ['binarysearch_19',['BinarySearch',['../d9/d96/class_utils_1_1_binary_search.html',1,'Utils']]], + ['binarysearch_3c_20int_5ftype_20_3e_20',['BinarySearch< int_type >',['../d9/d96/class_utils_1_1_binary_search.html',1,'Utils']]], + ['build_21',['build',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a6d2d27b9e14f63ee054b9b3fc8b58390',1,'G2lib::AABBtree::build()'],['../dd/dd4/class_g2lib_1_1_biarc.html#af3cc02e0d7198e06e4c31a8a3c044caf',1,'G2lib::Biarc::build()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#aadb3a708d81a8b808325b5794dbd3d82',1,'G2lib::CircleArc::build()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a09165accf2adaa4cf313ff93e0ff5005',1,'G2lib::ClothoidCurve::build(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3416048f8cd2ef24409d5d5c729d741c',1,'G2lib::ClothoidCurve::build(LineSegment const &LS)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3bbfd57e34ff0bd3cf7c62f2212ed59a',1,'G2lib::ClothoidCurve::build(CircleArc const &C)'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a43cbe9c1211e489d995f3013aaa60872',1,'G2lib::G2solve3arc::build()']]], + ['build_5f2p_22',['build_2P',['../d9/d0c/class_g2lib_1_1_line_segment.html#ad8d1478263afc025e41665ff44bb3506',1,'G2lib::LineSegment::build_2P(real_type _x0, real_type _y0, real_type _x1, real_type _y1)'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a055830c5a0444747b0c364110e802aeb',1,'G2lib::LineSegment::build_2P(real_type const p0[2], real_type const p1[2])']]], + ['build_5f3p_23',['build_3P',['../dd/dd4/class_g2lib_1_1_biarc.html#af9706357eea6e63cf2d7502d37c0389c',1,'G2lib::Biarc::build_3P()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#ae80cb71537dede7a61e2c86f6ddb8400',1,'G2lib::CircleArc::build_3P()']]], + ['build_5ffixed_5flength_24',['build_fixed_length',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a601b8a5d0f81385c909f10e1d2b6cc40',1,'G2lib::G2solve3arc']]], + ['build_5fforward_25',['build_forward',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a46f30539e50fbf4647c2395355b571f8',1,'G2lib::ClothoidCurve']]], + ['build_5fg1_26',['build_G1',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a65f8974ebce97414d1917bc808c78ce5',1,'G2lib::CircleArc::build_G1()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ab65c8b860e5cdd5cb88410afb55ea614',1,'G2lib::ClothoidCurve::build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol=1e-12)']]], + ['build_5fg1_5fd_27',['build_G1_D',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a02b41991375818cfdb19f395919762f5',1,'G2lib::ClothoidCurve']]] +]; diff --git a/docs/search/all_10.html b/docs/search/all_10.html new file mode 100644 index 00000000..3bf11961 --- /dev/null +++ b/docs/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_10.js b/docs/search/all_10.js new file mode 100644 index 00000000..501625e0 --- /dev/null +++ b/docs/search/all_10.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['rangesymm_204',['rangeSymm',['../d4/d9f/namespace_g2lib.html#aeed539405134d26c4315fd644d5fa2ca',1,'G2lib']]], + ['readformatteddata_205',['readFormattedData',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a9aaba1e918c5f842cc162b0ae2eb7fa8',1,'GenericContainerNamespace::GenericContainer']]], + ['real_5froot0_206',['real_root0',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#afbe2175aa53d7e9edaaf26a3af7f9eb2',1,'PolynomialRoots::Quadratic::real_root0()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ac93bcd6cd2f890e5154ef7601ea927f8',1,'PolynomialRoots::Cubic::real_root0()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a306b9920c4cba27dc95b0e5ebf2c436b',1,'PolynomialRoots::Quartic::real_root0()']]], + ['real_5froot1_207',['real_root1',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ac37348dfcf03d23ed5257a431e0fda0a',1,'PolynomialRoots::Quadratic::real_root1()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad856c3f23739fd6d211e3fc380746bff',1,'PolynomialRoots::Cubic::real_root1()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#aa98bd3956e05f5f7a15c811baf187bda',1,'PolynomialRoots::Quartic::real_root1()']]], + ['real_5froot2_208',['real_root2',['../d9/df7/class_polynomial_roots_1_1_cubic.html#a507800fa5c1735b7b71652877de3a4b9',1,'PolynomialRoots::Cubic::real_root2()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a9cf3f98b2884f707b56ef49df37d1516',1,'PolynomialRoots::Quartic::real_root2() const']]], + ['real_5froot3_209',['real_root3',['../d8/dec/class_polynomial_roots_1_1_quartic.html#adde993af727a84f8bf3fbda30a387c61',1,'PolynomialRoots::Quartic']]], + ['roots_210',['roots',['../d5/d44/namespace_polynomial_roots.html#abcfe95455907d440930b77f57ca6d965',1,'PolynomialRoots']]], + ['run_211',['run',['../d2/d25/class_utils_1_1_thread_pool.html#a62919cad630c39985ed59609c9c6e5cb',1,'Utils::ThreadPool']]], + ['runtime_5ferror_212',['Runtime_Error',['../db/d6b/class_utils_1_1_runtime___error.html',1,'Utils']]], + ['runtime_5ftraceerror_213',['Runtime_TraceError',['../d8/d7d/class_utils_1_1_runtime___trace_error.html',1,'Utils']]] +]; diff --git a/docs/search/all_11.html b/docs/search/all_11.html new file mode 100644 index 00000000..c9f79d28 --- /dev/null +++ b/docs/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_11.js b/docs/search/all_11.js new file mode 100644 index 00000000..b24680e5 --- /dev/null +++ b/docs/search/all_11.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['set_214',['set',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2ec2f5f7b132965357342992c10f6764',1,'GenericContainerNamespace::GenericContainer::set(bool const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aab6d7c0bf97e74d20632c81e4f94a818',1,'GenericContainerNamespace::GenericContainer::set(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32c6adce44b780c2c6c016412c19bcb2',1,'GenericContainerNamespace::GenericContainer::set(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a90242e0c03c1c884fa69f8a6572070dd',1,'GenericContainerNamespace::GenericContainer::set(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adda203bcf67e0d15e4c3fc4f2417ad6b',1,'GenericContainerNamespace::GenericContainer::set(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad51b344991a80964472c9860c25fb76c',1,'GenericContainerNamespace::GenericContainer::set(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a496b2bf177db9c6991342ceb2b2ae35d',1,'GenericContainerNamespace::GenericContainer::set(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a280fdc638c792291be053cfa11ccb997',1,'GenericContainerNamespace::GenericContainer::set(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adad9858d6cf2a3cfc0515f4ddad32c89',1,'GenericContainerNamespace::GenericContainer::set(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a26c2fd5fe22594d9cbcc1f76b3969464',1,'GenericContainerNamespace::GenericContainer::set(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0b2a0eb31cae7aefdba46a3cc65c43a8',1,'GenericContainerNamespace::GenericContainer::set(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad611c654f2e7936796e8c4e063203e76',1,'GenericContainerNamespace::GenericContainer::set(pointer_type a)']]], + ['set_5fbool_215',['set_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aaaf29585e01fd8d3b6dfacfc8695271d',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fcomplex_216',['set_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8cc5f821a28e55b5fdc91a28abd8f59a',1,'GenericContainerNamespace::GenericContainer::set_complex(complex_type &value)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad40e9be4d397175ce7a4b00066c3e5a9',1,'GenericContainerNamespace::GenericContainer::set_complex(real_type r, real_type i)']]], + ['set_5fint_217',['set_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#addaa210f721e719b6afa900e821b8610',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5flong_218',['set_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a23fa1ec511e6ef583c886cb434ee0750',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fmap_219',['set_map',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af6f0edf1be855c18cd4dd442cf0866ba',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fmat_5fcomplex_220',['set_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ada29b3469ceb734ceded55f017679ea0',1,'GenericContainerNamespace::GenericContainer::set_mat_complex(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aac70b74120590354dd9b263857cb11c3',1,'GenericContainerNamespace::GenericContainer::set_mat_complex(mat_complex_type const &m)']]], + ['set_5fmat_5fint_221',['set_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a613a5d6613216a54f1395f73a48622c2',1,'GenericContainerNamespace::GenericContainer::set_mat_int(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6151170cdcacd4dd3b11cc5c30c52bca',1,'GenericContainerNamespace::GenericContainer::set_mat_int(mat_int_type const &m)']]], + ['set_5fmat_5flong_222',['set_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a64f2261cdbb7af34316142cf0a96b26b',1,'GenericContainerNamespace::GenericContainer::set_mat_long(mat_long_type const &m)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5c0ba6969ce8827b358d7157c9df18d8',1,'GenericContainerNamespace::GenericContainer::set_mat_long(unsigned nr=0, unsigned nc=0)']]], + ['set_5fmat_5freal_223',['set_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7bade8a23f96b4493a7b988eadd0b8fe',1,'GenericContainerNamespace::GenericContainer::set_mat_real(mat_real_type const &m)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8a081af4d46281e0dae63d5d195171ac',1,'GenericContainerNamespace::GenericContainer::set_mat_real(unsigned nr=0, unsigned nc=0)']]], + ['set_5fpointer_224',['set_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6ddf71ec39a42a151eb4587043c0f0c3',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5freal_225',['set_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1f04451f3e1ebc56be35f927e172e9a5',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fstring_226',['set_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4126467e61006150c4675514c0e70e7f',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fvec_5fbool_227',['set_vec_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a01f4a5a11c53b374a5dfff88a3c62fd6',1,'GenericContainerNamespace::GenericContainer::set_vec_bool(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab9fa72c52fff921260c400fb9e99f662',1,'GenericContainerNamespace::GenericContainer::set_vec_bool(vec_bool_type const &v)']]], + ['set_5fvec_5fcomplex_228',['set_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ade8aca0419e90ab2c4c3c7009859069e',1,'GenericContainerNamespace::GenericContainer::set_vec_complex(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5274bab7e31ec20584f9786304bec4df',1,'GenericContainerNamespace::GenericContainer::set_vec_complex(vec_complex_type const &v)']]], + ['set_5fvec_5fint_229',['set_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2c77a598c137d7c87996bfeb36565fe4',1,'GenericContainerNamespace::GenericContainer::set_vec_int(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8c1104417b2e6b512cf47282916fa598',1,'GenericContainerNamespace::GenericContainer::set_vec_int(vec_int_type const &v)']]], + ['set_5fvec_5flong_230',['set_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a819535664e101d7ae7b38246959c69eb',1,'GenericContainerNamespace::GenericContainer::set_vec_long(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3ade0d44d11f8235ca2b8f08f66791e0',1,'GenericContainerNamespace::GenericContainer::set_vec_long(vec_long_type const &v)']]], + ['set_5fvec_5fpointer_231',['set_vec_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a88f41504400f744f7eabfba403326d0c',1,'GenericContainerNamespace::GenericContainer::set_vec_pointer(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3b6e474fd73efb8a10c804a4c292d4c1',1,'GenericContainerNamespace::GenericContainer::set_vec_pointer(vec_pointer_type const &v)']]], + ['set_5fvec_5freal_232',['set_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a31fbfff50c9abd7feb8847751315a46e',1,'GenericContainerNamespace::GenericContainer::set_vec_real(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0350093975e6bcd53b773b6fb7f05f78',1,'GenericContainerNamespace::GenericContainer::set_vec_real(vec_real_type const &v)']]], + ['set_5fvec_5fstring_233',['set_vec_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6810f11e5993d0abd1641c9ec4aa9bd0',1,'GenericContainerNamespace::GenericContainer::set_vec_string(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a788c44fbd72085ee07a00095719bd79a',1,'GenericContainerNamespace::GenericContainer::set_vec_string(vec_string_type const &v)']]], + ['set_5fvector_234',['set_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a38d922364dfc09fa35037085364a4f2c',1,'GenericContainerNamespace::GenericContainer']]], + ['setauto_235',['setAuto',['../d1/df8/class_utils_1_1_console.html#a0cff118a0b82d48a8ebd1aee6f52db32',1,'Utils::Console']]], + ['setoff_236',['setOff',['../d1/df8/class_utils_1_1_console.html#a1867e89e77cdb0e248103f1c53d87079',1,'Utils::Console']]], + ['setup_237',['setup',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a23f99bb9dc9085736467a7d448c909b2',1,'PolynomialRoots::Quadratic::setup()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad08ac921b9175e4f6cff3a89bb232c3b',1,'PolynomialRoots::Cubic::setup()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a456cd442a681a5dd66956a1d553b1a41',1,'PolynomialRoots::Quartic::setup()']]], + ['simplesemaphore_238',['SimpleSemaphore',['../d5/d81/class_utils_1_1_simple_semaphore.html',1,'Utils']]], + ['sinc_239',['Sinc',['../d4/d9f/namespace_g2lib.html#a081bc3efca6442933577b14d6f3c2a06',1,'G2lib']]], + ['sinc_5fd_240',['Sinc_D',['../d4/d9f/namespace_g2lib.html#a70d38da7135fe9aa83b9e0d0e6ee7979',1,'G2lib']]], + ['sinc_5fdd_241',['Sinc_DD',['../d4/d9f/namespace_g2lib.html#a069d980b307edd06a1e9401e1a7bd5b4',1,'G2lib']]], + ['sinc_5fddd_242',['Sinc_DDD',['../d4/d9f/namespace_g2lib.html#a698f23b0a8d2f0dd431c908ba7bce967',1,'G2lib']]], + ['size_243',['size',['../dc/d87/class_utils_1_1_malloc.html#ad6d9c6bde288b796a339a05a908c5c63',1,'Utils::Malloc']]], + ['solve2x2_244',['Solve2x2',['../df/d84/class_g2lib_1_1_solve2x2.html',1,'G2lib']]], + ['solvelinearquadratic_245',['solveLinearQuadratic',['../d4/d9f/namespace_g2lib.html#aeebee0c0de28155447b2c5f0547b0b92',1,'G2lib']]], + ['solvelinearquadratic2_246',['solveLinearQuadratic2',['../d4/d9f/namespace_g2lib.html#afa9a9719ade11579b722aae68f7d4379',1,'G2lib']]], + ['spinlock_247',['SpinLock',['../d4/d63/class_utils_1_1_spin_lock.html',1,'Utils']]], + ['spinlock_5fbarrier_248',['SpinLock_barrier',['../d3/d23/class_utils_1_1_spin_lock__barrier.html',1,'Utils']]], + ['sqrtmachepsi_249',['sqrtMachepsi',['../d4/d9f/namespace_g2lib.html#ae2356d66f8dc864eddfdd3ad1db95266',1,'G2lib']]], + ['sqrtmachineeps_250',['sqrtMachineEps',['../d1/d7c/namespace_utils.html#a2982f0d481573b831d0bd86bd85696da',1,'Utils::sqrtMachineEps()'],['../d1/d7c/namespace_utils.html#a3ec38c04d6fe033229c63089f2ce047e',1,'Utils::sqrtMachineEps()']]] +]; diff --git a/docs/search/all_12.html b/docs/search/all_12.html new file mode 100644 index 00000000..ab934722 --- /dev/null +++ b/docs/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_12.js b/docs/search/all_12.js new file mode 100644 index 00000000..31c2cd79 --- /dev/null +++ b/docs/search/all_12.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['theta_251',['theta',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6cbe3ff94d935363956eb7e443524762',1,'G2lib::ClothoidCurve::theta()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa88a7c8f1e0f17c94520d37702e2f4ff',1,'G2lib::G2solve3arc::theta()'],['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a2e3e5acc94506d8e6fd8f0c73dd419a2',1,'G2lib::ClothoidData::theta(real_type s) const']]], + ['theta0_252',['theta0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a26adf754888519b16ac5729be60058b2',1,'G2lib::ClothoidData']]], + ['theta_5fd_253',['theta_D',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3ec97c2c59da8f8fdd4d35c1d2be2f65',1,'G2lib::ClothoidCurve::theta_D()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af14619058799ed10619b242c6f81e42c',1,'G2lib::G2solve3arc::theta_D()']]], + ['theta_5fdd_254',['theta_DD',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a242a4e41f94cbdf09e2c19e84c404665',1,'G2lib::ClothoidCurve::theta_DD()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af78faf667efc8e8e32e39e9f6a8744e5',1,'G2lib::G2solve3arc::theta_DD()']]], + ['theta_5fddd_255',['theta_DDD',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a32118a83e110c134465d050e59fa288b',1,'G2lib::ClothoidCurve::theta_DDD()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa828d4a8f22fb064ca542db282342c05',1,'G2lib::G2solve3arc::theta_DDD(real_type s) const']]], + ['thetabegin_256',['thetaBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a3f915172363f04278ae295f93ff3e5a3',1,'G2lib::G2solve3arc']]], + ['thetaend_257',['thetaEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a736478ca6344c91d1d5e314b2762ff15',1,'G2lib::G2solve3arc']]], + ['thetaminmax_258',['thetaMinMax',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a1d84829e5b2205ac90f8e20be4dd27f9',1,'G2lib::G2solve3arc']]], + ['thetatotalvariation_259',['thetaTotalVariation',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#aeef8d8f4d8e34d57e2339821a46e118d',1,'G2lib::ClothoidCurve::thetaTotalVariation()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a5ba78af28c93adb2a20684694e364905',1,'G2lib::G2solve3arc::thetaTotalVariation()']]], + ['threadpool_260',['ThreadPool',['../d2/d25/class_utils_1_1_thread_pool.html',1,'Utils']]], + ['tictoc_261',['TicToc',['../d7/df9/class_utils_1_1_tic_toc.html',1,'Utils']]], + ['to_5fyaml_262',['to_yaml',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad90a1f74a970d5c65c0cfdfbd7d476ea',1,'GenericContainerNamespace::GenericContainer']]], + ['totallength_263',['totalLength',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa1a4d37f05de3eab2bd61eb429c7dfc3',1,'G2lib::G2solve3arc']]], + ['triangle2d_264',['Triangle2D',['../d8/d7c/class_g2lib_1_1_triangle2_d.html',1,'G2lib']]], + ['tripleroot_265',['tripleRoot',['../d9/df7/class_polynomial_roots_1_1_cubic.html#acdfaafb3b8cf6ecd43790bfa43a5a6ac',1,'PolynomialRoots::Cubic']]], + ['type_266',['type',['../d2/d03/class_g2lib_1_1_base_curve.html#a15f0db809517d6274e82978a4608199e',1,'G2lib::BaseCurve']]] +]; diff --git a/docs/search/all_13.html b/docs/search/all_13.html new file mode 100644 index 00000000..51172c2f --- /dev/null +++ b/docs/search/all_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_13.js b/docs/search/all_13.js new file mode 100644 index 00000000..c81b2726 --- /dev/null +++ b/docs/search/all_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utils_267',['Utils',['../d1/d7c/namespace_utils.html',1,'']]] +]; diff --git a/docs/search/all_14.html b/docs/search/all_14.html new file mode 100644 index 00000000..afecf563 --- /dev/null +++ b/docs/search/all_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_14.js b/docs/search/all_14.js new file mode 100644 index 00000000..eb00a7cc --- /dev/null +++ b/docs/search/all_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['waitworker_268',['WaitWorker',['../d6/dde/class_utils_1_1_wait_worker.html',1,'Utils']]], + ['worker_269',['Worker',['../d4/d23/class_utils_1_1_worker.html',1,'Utils']]], + ['writeformatteddata_270',['writeFormattedData',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acbf29b18512dec69b7fdcbb3c8756af6',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/all_15.html b/docs/search/all_15.html new file mode 100644 index 00000000..69f382b3 --- /dev/null +++ b/docs/search/all_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_15.js b/docs/search/all_15.js new file mode 100644 index 00000000..dc2384bb --- /dev/null +++ b/docs/search/all_15.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['x_271',['X',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a2a5e30a42c75269d9d8fc562f75a5cb4',1,'G2lib::ClothoidCurve::X()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a2f6da8479c22bc26905312c93d1984ba',1,'G2lib::G2solve3arc::X()']]], + ['x0_272',['x0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#ab33fb67bfc9a15010c574bc84e6319e3',1,'G2lib::ClothoidData']]], + ['x_5fiso_273',['X_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7538c2f41e73811fede73ce211f62d7d',1,'G2lib::ClothoidCurve']]], + ['xbegin_274',['xBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a36a0f785736a1aaa4cc2170387d6eac1',1,'G2lib::G2solve3arc']]], + ['xend_275',['xEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a99cdf8cbd315f0e7ee73596f2935ce71',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/all_16.html b/docs/search/all_16.html new file mode 100644 index 00000000..b19867ad --- /dev/null +++ b/docs/search/all_16.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_16.js b/docs/search/all_16.js new file mode 100644 index 00000000..c0596d0b --- /dev/null +++ b/docs/search/all_16.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['y_276',['Y',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7cb54712d5b1808d5bdd6a7c2ac18644',1,'G2lib::ClothoidCurve::Y()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a43da3fe986f4af4a7d85b40081954dcd',1,'G2lib::G2solve3arc::Y()']]], + ['y0_277',['y0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a80102e5a1dde8d7f6df03b9d63bb0380',1,'G2lib::ClothoidData']]], + ['y_5fiso_278',['Y_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a70377475a5363c85bf5d9bda1d28c48f',1,'G2lib::ClothoidCurve']]], + ['ybegin_279',['yBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af189c0325e92e753129ea4df58928ad6',1,'G2lib::G2solve3arc']]], + ['yend_280',['yEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af662ea4e4bfbc3bd35ff7e67def7f6a4',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/all_17.html b/docs/search/all_17.html new file mode 100644 index 00000000..1ad5d34b --- /dev/null +++ b/docs/search/all_17.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_17.js b/docs/search/all_17.js new file mode 100644 index 00000000..69f366b1 --- /dev/null +++ b/docs/search/all_17.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7egenericcontainer_281',['~GenericContainer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adc6f56b9b2ee705582da0994255e709f',1,'GenericContainerNamespace::GenericContainer']]], + ['_7emalloc_282',['~Malloc',['../dc/d87/class_utils_1_1_malloc.html#a4a29eab209311174b15b3489d95b068f',1,'Utils::Malloc']]] +]; diff --git a/docs/search/all_2.html b/docs/search/all_2.html new file mode 100644 index 00000000..02cfffc2 --- /dev/null +++ b/docs/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_2.js b/docs/search/all_2.js new file mode 100644 index 00000000..439753ce --- /dev/null +++ b/docs/search/all_2.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['c_5fcomplex_5ftype_28',['c_complex_type',['../d6/d33/structc__complex__type.html',1,'']]], + ['check_29',['check',['../d8/dec/class_polynomial_roots_1_1_quartic.html#ada5c5e7de43b81360764921bb624adbc',1,'PolynomialRoots::Quartic::check()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#abd447de7ddc53cf62787084d6c3fa014',1,'PolynomialRoots::Cubic::check()'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a2f7bd0230325302ee7e3504185acdc7b',1,'PolynomialRoots::Quadratic::check()']]], + ['checknan_30',['checkNaN',['../d1/d7c/namespace_utils.html#a4444f67fe32acf5737fcaff991864e2d',1,'Utils']]], + ['circlearc_31',['CircleArc',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a8e2bbb75cb1c4415876ffd8f2eaf89f4',1,'G2lib::CircleArc::CircleArc(LineSegment const &LS)'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a7f7fce83d3bb253a45a68cb35edec46b',1,'G2lib::CircleArc::CircleArc(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)'],['../d7/dd9/class_g2lib_1_1_circle_arc.html',1,'G2lib::CircleArc']]], + ['clear_32',['clear',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a28db10734a28b2209c48ed24b7cb3ed8',1,'GenericContainerNamespace::GenericContainer::clear()'],['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a050439a72f941cb5dac7f7fe57c02b89',1,'G2lib::AABBtree::clear()']]], + ['closestpoint_5fiso_33',['closestPoint_ISO',['../d9/d0c/class_g2lib_1_1_line_segment.html#affb770feea0a99338cd88a08c597387a',1,'G2lib::LineSegment::closestPoint_ISO()'],['../dd/dd4/class_g2lib_1_1_biarc.html#a4f1197f075e5675a98d3503cbbecf62a',1,'G2lib::Biarc::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dd/dd4/class_g2lib_1_1_biarc.html#a0fb7c74cde2e97640b748eb6e511de5a',1,'G2lib::Biarc::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../df/d29/class_g2lib_1_1_biarc_list.html#a5bf55bdbaa3995a5b603f0b47db2245c',1,'G2lib::BiarcList::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../df/d29/class_g2lib_1_1_biarc_list.html#a410805b18713bb24f1a191107f534d04',1,'G2lib::BiarcList::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#afd50024b131a4f50a4cca08b28ba20b7',1,'G2lib::CircleArc::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#afb8e24a72e0b05f02664750bf4bdd5bd',1,'G2lib::CircleArc::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ad7b4dc1887f7d2bbf6c444a9c10ce95c',1,'G2lib::ClothoidCurve::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7dc100e2f15d3efa081dd7f1ce429eb8',1,'G2lib::ClothoidCurve::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a8d11a692dfc11664f7887ae60b70d16f',1,'G2lib::ClothoidList::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#ac6b90cce90218071c0252b9aebe57635',1,'G2lib::ClothoidList::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d2/d03/class_g2lib_1_1_base_curve.html#af11c80d9a40fe5eac9f46451745e036b',1,'G2lib::BaseCurve::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL'],['../d2/d03/class_g2lib_1_1_base_curve.html#a7684fc774ba8f21287f422c1c8c3fd4a',1,'G2lib::BaseCurve::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a3e63fec002416e705f095809446f1db8',1,'G2lib::LineSegment::closestPoint_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#a50c777e7024a18389e7d1fa680e7e0da',1,'G2lib::PolyLine::closestPoint_ISO(real_type x, real_type y, real_type &X, real_type &Y, real_type &S, real_type &T, real_type &DST) const UTILS_OVERRIDE'],['../d2/d00/class_g2lib_1_1_poly_line.html#a968d369d97c2ac275bbcce2cb56e6a1e',1,'G2lib::PolyLine::closestPoint_ISO(real_type, real_type, real_type, real_type &, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDE']]], + ['closestpoint_5fsae_34',['closestPoint_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#aa62d0ce6ff9cea6ef6d27005593a25e1',1,'G2lib::BaseCurve::closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const'],['../d2/d03/class_g2lib_1_1_base_curve.html#a746741928433953c9c86f982f66650d9',1,'G2lib::BaseCurve::closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const']]], + ['closestpointbysample_35',['closestPointBySample',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a66807f47dfcbcd3b50236a92f7297bd7',1,'G2lib::ClothoidCurve']]], + ['closestpointinrange_5fiso_36',['closestPointInRange_ISO',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a3033b5ba37cb6fa04e54ec381474546e',1,'G2lib::ClothoidList']]], + ['closestpointinrange_5fsae_37',['closestPointInRange_SAE',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a6eaa08631fd0e6c18730853ee7dc2caa',1,'G2lib::ClothoidList']]], + ['closestpointinsrange_5fiso_38',['closestPointInSRange_ISO',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a4753b13a9c51d819739bf66bbdaf3ef4',1,'G2lib::ClothoidList']]], + ['closestpointinsrange_5fsae_39',['closestPointInSRange_SAE',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a5040b571fe5a278c906ab9bd822c4847',1,'G2lib::ClothoidList']]], + ['closestsegment_40',['closestSegment',['../d7/d02/class_g2lib_1_1_clothoid_list.html#af0b9c3b98efd35fb11076424c1c743a8',1,'G2lib::ClothoidList']]], + ['clothoidcurve_41',['ClothoidCurve',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a178f69f026eeb10b49dd4dde3d2bda0b',1,'G2lib::ClothoidCurve::ClothoidCurve(real_type const P0[], real_type theta0, real_type const P1[], real_type theta1)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a36f45f7c9578fa6b2502d23f39a3568e',1,'G2lib::ClothoidCurve::ClothoidCurve(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html',1,'G2lib::ClothoidCurve']]], + ['clothoiddata_42',['ClothoidData',['../dc/d5d/class_g2lib_1_1_clothoid_data.html',1,'G2lib']]], + ['clothoidlist_43',['ClothoidList',['../d7/d02/class_g2lib_1_1_clothoid_list.html',1,'G2lib']]], + ['clothoidsplineg2_44',['ClothoidSplineG2',['../df/d4a/class_g2lib_1_1_clothoid_spline_g2.html',1,'G2lib']]], + ['collision_45',['collision',['../de/d56/class_g2lib_1_1_b_box.html#a3b98db48add6859ab67fb00a0710a21e',1,'G2lib::BBox::collision()'],['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#aa5f2407ae49df344ebac998fcdbed61a',1,'G2lib::AABBtree::collision()'],['../d4/d9f/namespace_g2lib.html#a4c868222f99a5c7c751321c2b653ebdf',1,'G2lib::collision(BaseCurve const &obj1, BaseCurve const &obj2)']]], + ['collision_5fiso_46',['collision_ISO',['../d4/d9f/namespace_g2lib.html#a92b3c0989db6aa5a20f9e7949b937d83',1,'G2lib']]], + ['collision_5fsae_47',['collision_SAE',['../d4/d9f/namespace_g2lib.html#aa5b1fe23ac7694a14290b292fe657cd2',1,'G2lib']]], + ['complexroots_48',['complexRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#abd0c3b31b5b8b8f00a00d38e82528bbc',1,'PolynomialRoots::Quadratic::complexRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a94b4aea56bb9fd1de453d3d4bc460681',1,'PolynomialRoots::Cubic::complexRoots()']]], + ['console_49',['Console',['../d1/df8/class_utils_1_1_console.html',1,'Utils']]], + ['console_5fstyle_50',['Console_style',['../dd/d68/class_utils_1_1_console_1_1_console__style.html',1,'Utils::Console']]], + ['container_20c_20interface_51',['Container C interface',['../d3/d67/group___generic.html',1,'']]], + ['cosc_52',['Cosc',['../d4/d9f/namespace_g2lib.html#ab3e73bcf98a8efc2749f2ad05a3fdc51',1,'G2lib']]], + ['cosc_5fd_53',['Cosc_D',['../d4/d9f/namespace_g2lib.html#a6a3e8c7ad85655c555cb6dc3825774c6',1,'G2lib']]], + ['cosc_5fdd_54',['Cosc_DD',['../d4/d9f/namespace_g2lib.html#ac10d1d52ae3cd16ef20171553d117b5b',1,'G2lib']]], + ['cosc_5fddd_55',['Cosc_DDD',['../d4/d9f/namespace_g2lib.html#ae6868bffc32e5a0425f93e65c41bc6de',1,'G2lib']]], + ['cubic_56',['Cubic',['../d9/df7/class_polynomial_roots_1_1_cubic.html',1,'PolynomialRoots']]], + ['curvatureminmax_57',['curvatureMinMax',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a4270e2364557bd978e23701074c179d9',1,'G2lib::G2solve3arc']]], + ['curvaturetotalvariation_58',['curvatureTotalVariation',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a11775b5ebbeb611ae9b22147a12e12e6',1,'G2lib::ClothoidCurve::curvatureTotalVariation()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a546a10664d1ea8d9e5078113e1cc44de',1,'G2lib::G2solve3arc::curvatureTotalVariation()']]] +]; diff --git a/docs/search/all_3.html b/docs/search/all_3.html new file mode 100644 index 00000000..39767b85 --- /dev/null +++ b/docs/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_3.js b/docs/search/all_3.js new file mode 100644 index 00000000..6a3747bc --- /dev/null +++ b/docs/search/all_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['deltatheta_59',['deltaTheta',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a90cb48f447b7902d48cb1f1e40340a2e',1,'G2lib::ClothoidCurve::deltaTheta()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#ab8fedcaee86845efcd3b5f25aed3e4ed',1,'G2lib::G2solve3arc::deltaTheta()']]], + ['distance_60',['distance',['../de/d56/class_g2lib_1_1_b_box.html#ac6fc969999b473220bc8ef684108ab74',1,'G2lib::BBox']]], + ['dk_61',['dk',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a8a733f1ca53db3d41d0a8217f5f9cea3',1,'G2lib::ClothoidData']]], + ['doubleroot_62',['doubleRoot',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#adef2391e342dbda3a8aa7daee125a859',1,'PolynomialRoots::Quadratic::doubleRoot()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a6aa77e261ab9ba83c2e5f05ce9f5e065',1,'PolynomialRoots::Cubic::doubleRoot()']]], + ['dump_63',['dump',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32dafe8b7173d45694ed2f911d4ead80',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/all_4.html b/docs/search/all_4.html new file mode 100644 index 00000000..fc40463c --- /dev/null +++ b/docs/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_4.js b/docs/search/all_4.js new file mode 100644 index 00000000..f936a967 --- /dev/null +++ b/docs/search/all_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['empty_64',['empty',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a94449a0c61075c09ea5da28060bcad84',1,'G2lib::AABBtree']]], + ['eval_65',['eval',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a91a6f596e2e61dcb6bf389eb676dbea7',1,'G2lib::G2solve3arc::eval()'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#afa60634784c14e22bddab37301513eb9',1,'PolynomialRoots::Quadratic::eval(valueType x) const'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a601bddea30473f330824752748c11e0c',1,'PolynomialRoots::Quadratic::eval(complexType const &x) const'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a92300761f92b2ecc3029f3a36e317727',1,'PolynomialRoots::Quadratic::eval(valueType x, valueType &p, valueType &dp) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad968adbbd1ed89d54c49701a46c655a7',1,'PolynomialRoots::Cubic::eval(valueType x) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#acb40bc15b906b0572eab3d16f6865fa9',1,'PolynomialRoots::Cubic::eval(complexType const &x) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a4d7f9db4076918699d52707f30a2de65',1,'PolynomialRoots::Cubic::eval(valueType x, valueType &p, valueType &dp) const'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a6a801bb7923c4f3e90e9bc21a3a0495f',1,'PolynomialRoots::Quartic::eval(valueType x) const'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a1a8a09e3324f87b77b0b6d20574d7a17',1,'PolynomialRoots::Quartic::eval(complexType const &x) const']]], + ['eval_5fiso_66',['eval_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#af2443e74b3eddf8049db26c91703f2f3',1,'G2lib::Biarc::eval_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a59a96673a305989ebb185107b2f75a11',1,'G2lib::BiarcList::eval_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a57766a8db1f2e196835c4a8ff48d0233',1,'G2lib::ClothoidCurve::eval_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a43f356867e66c76a6a6ba5e8dc056d6a',1,'G2lib::ClothoidList::eval_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a3698172a3440654cd0ba9985237f25ac',1,'G2lib::BaseCurve::eval_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ae8f6ac99d7012f2d5dbeb7f97d5a245a',1,'G2lib::LineSegment::eval_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#a732c65e584599f384c70f13fb1fb119b',1,'G2lib::PolyLine::eval_ISO()']]], + ['eval_5fiso_5fd_67',['eval_ISO_D',['../dd/dd4/class_g2lib_1_1_biarc.html#a43184ea89e03b0bf7ff1033309ecae6b',1,'G2lib::Biarc::eval_ISO_D()'],['../df/d29/class_g2lib_1_1_biarc_list.html#ad437577eb37b974e9cdcd681e8acfdfa',1,'G2lib::BiarcList::eval_ISO_D()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a90a9d35370c1e8753836f801eed166ec',1,'G2lib::ClothoidCurve::eval_ISO_D()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#abd80dcbaf4062f87097844c0edbe0427',1,'G2lib::ClothoidList::eval_ISO_D()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a22132936dc89926dfa5e2d3bb2f5a4db',1,'G2lib::BaseCurve::eval_ISO_D()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a1142d7f62cc292716ff76ec196c315c3',1,'G2lib::LineSegment::eval_ISO_D()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aa41244b674fa35b59f8bf2ec961df4dd',1,'G2lib::PolyLine::eval_ISO_D()']]], + ['eval_5fiso_5fdd_68',['eval_ISO_DD',['../dd/dd4/class_g2lib_1_1_biarc.html#a318ac2f1fdec4eb2967d3877e868cccd',1,'G2lib::Biarc::eval_ISO_DD()'],['../df/d29/class_g2lib_1_1_biarc_list.html#afb689e16cd07177783c98afc802fbad5',1,'G2lib::BiarcList::eval_ISO_DD()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6dd50960be5aff3440c21bff05d4cbef',1,'G2lib::ClothoidCurve::eval_ISO_DD()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a1c0b67cea5d1959269703cfdc1576e5d',1,'G2lib::ClothoidList::eval_ISO_DD()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a0407dd52c3aedff3e19b752e6df1f6f0',1,'G2lib::BaseCurve::eval_ISO_DD()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ad3b476b6a639bb931f4ae5967a8f8f49',1,'G2lib::LineSegment::eval_ISO_DD()'],['../d2/d00/class_g2lib_1_1_poly_line.html#ae269cd41ebc0cc639cdee6ad114a3987',1,'G2lib::PolyLine::eval_ISO_DD()']]], + ['eval_5fiso_5fddd_69',['eval_ISO_DDD',['../dd/dd4/class_g2lib_1_1_biarc.html#a12996f6da5685c9067418d6e55401cbd',1,'G2lib::Biarc::eval_ISO_DDD()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a0d7ada81a007434555e771ff851172d1',1,'G2lib::BiarcList::eval_ISO_DDD()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a418db1b8bcb4dfcb31697669dfd12dff',1,'G2lib::ClothoidCurve::eval_ISO_DDD()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a63d6c83db9e36388de3bb97916981c54',1,'G2lib::ClothoidList::eval_ISO_DDD()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a91490373a921ef1a85f3dd091b2f6fc0',1,'G2lib::BaseCurve::eval_ISO_DDD()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a431f35ac7b0203e94720d663aa7a2b15',1,'G2lib::LineSegment::eval_ISO_DDD()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aaa6fa70d56a56521d30b0667e8087f37',1,'G2lib::PolyLine::eval_ISO_DDD()']]], + ['eval_5fsae_70',['eval_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#ae1b73c2a8be8d0b12179fb05d96c3828',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fd_71',['eval_SAE_D',['../d2/d03/class_g2lib_1_1_base_curve.html#a8071ba383b1f84381bc84c5d170ae664',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fdd_72',['eval_SAE_DD',['../d2/d03/class_g2lib_1_1_base_curve.html#a7e88be8a60c2520e5b0ab4aff1253b36',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fddd_73',['eval_SAE_DDD',['../d2/d03/class_g2lib_1_1_base_curve.html#abec3d37c0e957015e6458f46d7bacde1',1,'G2lib::BaseCurve']]], + ['evalpoly_74',['evalPoly',['../d5/d44/namespace_polynomial_roots.html#a10432c297cc45cf292ed919347b974c3',1,'PolynomialRoots']]], + ['evalpolyc_75',['evalPolyC',['../d5/d44/namespace_polynomial_roots.html#a1956d2646b1d57af53c90c5bd565b57f',1,'PolynomialRoots']]], + ['exists_76',['exists',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a862c6c67eafb4fdc8887aad5c83c9617',1,'GenericContainerNamespace::GenericContainer']]], + ['export_5fruby_77',['export_ruby',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a5bd9b243abdc482d64e6099bf6b634b8',1,'G2lib::ClothoidList']]], + ['export_5ftable_78',['export_table',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a3e086852732f364db5dab16b76e526a6',1,'G2lib::ClothoidList']]] +]; diff --git a/docs/search/all_5.html b/docs/search/all_5.html new file mode 100644 index 00000000..9dd9344b --- /dev/null +++ b/docs/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_5.js b/docs/search/all_5.js new file mode 100644 index 00000000..f7a8da23 --- /dev/null +++ b/docs/search/all_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['findst1_79',['findST1',['../df/d29/class_g2lib_1_1_biarc_list.html#a31cff7d5392895562ff9ab1a1e1f7b90',1,'G2lib::BiarcList::findST1(real_type x, real_type y, real_type &s, real_type &t) const'],['../df/d29/class_g2lib_1_1_biarc_list.html#ad90927940d68804de3ef085f7d084ac7',1,'G2lib::BiarcList::findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a828ea5831543d8f29266b59f96c608bf',1,'G2lib::ClothoidList::findST1(real_type x, real_type y, real_type &s, real_type &t) const'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#aa1446853b831ca9596af92d53fe7f17a',1,'G2lib::ClothoidList::findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const']]], + ['foundnan_80',['foundNaN',['../d1/d7c/namespace_utils.html#a50faa937431429ecf7c50d8e70cdeaf1',1,'Utils']]], + ['free_81',['free',['../dc/d87/class_utils_1_1_malloc.html#a7946c0a122234c57b2e5abc4e8b84fe1',1,'Utils::Malloc']]], + ['free_5fpointer_82',['free_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab40991f49a687d9fe0649b183c07376b',1,'GenericContainerNamespace::GenericContainer']]], + ['fresnelcs_83',['FresnelCS',['../d4/d9f/namespace_g2lib.html#aee78c857e298d1605987e48534793843',1,'G2lib::FresnelCS(real_type x, real_type &C, real_type &S)'],['../d4/d9f/namespace_g2lib.html#a14e2411861dfb4515b8924b03d5eb8be',1,'G2lib::FresnelCS(int_type nk, real_type x, real_type C[], real_type S[])']]] +]; diff --git a/docs/search/all_6.html b/docs/search/all_6.html new file mode 100644 index 00000000..f1e516d7 --- /dev/null +++ b/docs/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_6.js b/docs/search/all_6.js new file mode 100644 index 00000000..2f780a4f --- /dev/null +++ b/docs/search/all_6.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['g2lib_84',['G2lib',['../d4/d9f/namespace_g2lib.html',1,'']]], + ['g2solve2arc_85',['G2solve2arc',['../da/da5/class_g2lib_1_1_g2solve2arc.html',1,'G2lib']]], + ['g2solve3arc_86',['G2solve3arc',['../d1/dec/class_g2lib_1_1_g2solve3arc.html',1,'G2lib']]], + ['g2solveclc_87',['G2solveCLC',['../da/dda/class_g2lib_1_1_g2solve_c_l_c.html',1,'G2lib']]], + ['generalizedfresnelcs_88',['GeneralizedFresnelCS',['../d4/d9f/namespace_g2lib.html#a38f18ccb6bd35e0f3170db935fc068bd',1,'G2lib::GeneralizedFresnelCS(int_type nk, real_type a, real_type b, real_type c, real_type intC[], real_type intS[])'],['../d4/d9f/namespace_g2lib.html#a67f7c38f4ad0d8256c2f4d0f92501bf2',1,'G2lib::GeneralizedFresnelCS(real_type a, real_type b, real_type c, real_type &intC, real_type &intS)']]], + ['genericcontainer_89',['GenericContainer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac64935261c932bd9fd12d19938ed10d6',1,'GenericContainerNamespace::GenericContainer::GenericContainer()'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad1cc83158f98ae9bc02e06e15e051dec',1,'GenericContainerNamespace::GenericContainer::GenericContainer(bool const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa2543089169900354b55f172e2dff970',1,'GenericContainerNamespace::GenericContainer::GenericContainer(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4bea3419030468416d93d3d3468e6777',1,'GenericContainerNamespace::GenericContainer::GenericContainer(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32d20516280d8a3313fc44be0496f1cd',1,'GenericContainerNamespace::GenericContainer::GenericContainer(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad422925e066e05782c5999bdc61ed864',1,'GenericContainerNamespace::GenericContainer::GenericContainer(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a07f182889776a19e9975f3eb673a809d',1,'GenericContainerNamespace::GenericContainer::GenericContainer(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a38d1e04c9a37e1289483ddac61eacd76',1,'GenericContainerNamespace::GenericContainer::GenericContainer(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac24521570a5894f1fca30f61470708c2',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a88f6ba0d7c6d0a2c4fb2feba31cff638',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad4356b585b662519e34605f5ec6b4910',1,'GenericContainerNamespace::GenericContainer::GenericContainer(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2a684c74d7a3ba074bb048aa40e82996',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab39999dd73448231a3b3117ff82b2f6a',1,'GenericContainerNamespace::GenericContainer::GenericContainer(pointer_type a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7e31ee70962b33577eeeb370b90e9a37',1,'GenericContainerNamespace::GenericContainer::GenericContainer(GenericContainer const &gc)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html',1,'GenericContainerNamespace::GenericContainer']]], + ['genericcontainerexplorer_90',['GenericContainerExplorer',['../d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html',1,'GenericContainerNamespace']]], + ['get_5fbool_91',['get_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac0c0cc9907941a7b7e799e654fd1f1fc',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fbool_5fat_92',['get_bool_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0a89eb4c672c6f831bf4b3062fcaf61e',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fcomplex_93',['get_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8ac2be920a1f257a895f5da356a21d14',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fcomplex_5fat_94',['get_complex_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af14d31044a8237625e9e7a1f3b16baf0',1,'GenericContainerNamespace::GenericContainer::get_complex_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7b30d3fc75fa2c20592955e04d7c6db5',1,'GenericContainerNamespace::GenericContainer::get_complex_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fcomplex_5fnumber_95',['get_complex_number',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a719d2f3d23079e0fba5e1cf2df49064b',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fgc_5fat_96',['get_gc_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a63cb7f514e5f6f6b74f309387232ac9e',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fint_97',['get_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae9a0a49e8842e77e75f83bd5bb2d8fa6',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fint_5fat_98',['get_int_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a23cd423997c087bd3f8fcbe13c37824a',1,'GenericContainerNamespace::GenericContainer::get_int_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2b85ad43cc164f10c027dee275aabb40',1,'GenericContainerNamespace::GenericContainer::get_int_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5flong_99',['get_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab1282fb919afb9f0455197cb63631381',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5flong_5fat_100',['get_long_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3653108d11f4f79d9f7cba527ad66c78',1,'GenericContainerNamespace::GenericContainer::get_long_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a45a95c5e9f83ad327cc291301372bf76',1,'GenericContainerNamespace::GenericContainer::get_long_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fmap_101',['get_map',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8bc7d3baf57cc0f36b680a206a61688c',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5fcomplex_102',['get_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af29454ddaee03e24e586e5e5875b6d58',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5fint_103',['get_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac74ff909d8a59ab63683a9f082dad592',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5flong_104',['get_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0564cf6e6d7450f83a566d8332844bf7',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5freal_105',['get_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa69b4b2300c8f436f050e99f81019e8b',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnum_5felements_106',['get_num_elements',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a750918a1b1757883a30a999379beb136',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnumber_107',['get_number',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a023496e600d6af8cc7b0131bd282c483',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnumber_5fat_108',['get_number_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adf2c20edeacf707c9e6dcde296bb38c7',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fpointer_5fat_109',['get_pointer_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acd9006b2b64855230f4de6288f9ff10a',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5freal_110',['get_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4c0e7e26da290b3710090483b791dedb',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5freal_5fat_111',['get_real_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5a9f5c79a47308543c08246d3ad17190',1,'GenericContainerNamespace::GenericContainer::get_real_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aeea637e808ada20266496c9dfb6cd5c7',1,'GenericContainerNamespace::GenericContainer::get_real_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fstring_112',['get_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8dd782a68b9c4a77896fac6690081815',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fstring_5fat_113',['get_string_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a40eaf47d705f5d81eade776ba14590f8',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5ftype_114',['get_type',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8eb71583cadd90c678411d81d9d2ead6',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5ftype_5fname_115',['get_type_name',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acc95eae1a5278b2689c0db61ccaa7487',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fbool_116',['get_vec_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a009ecb3ba195c3b221b636fc9be21e2c',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fcomplex_117',['get_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7a360729acc992c18eee51ac3f410aad',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fint_118',['get_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8bf39568f9e65934b284f3db07ce48eb',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5flong_119',['get_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a771b2b5e322e07082484637a2fb90c47',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fpointer_120',['get_vec_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a16ad988ece9f58a8640ac910abf9bf70',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5freal_121',['get_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a905ff9792eeee80b5315cc33b4b56894',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fstring_122',['get_vec_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a84bd0056ff4b9476097cc930962eca3a',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvector_123',['get_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a82c187e6a783622e53402f8d70a4e416',1,'GenericContainerNamespace::GenericContainer']]], + ['getnegativeroots_124',['getNegativeRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a58ddfc6317dad86057d6161f1c498317',1,'PolynomialRoots::Quadratic::getNegativeRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a7bef4c9418a7308b4f6b7a0a8cf37fbf',1,'PolynomialRoots::Cubic::getNegativeRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a7af065a783229bb7537550741c177682',1,'PolynomialRoots::Quartic::getNegativeRoots()']]], + ['getpositiveroots_125',['getPositiveRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ad53b8fdc5f6b4d517e450f115348053d',1,'PolynomialRoots::Quadratic::getPositiveRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ae064f673f4a9adb39374067972234b72',1,'PolynomialRoots::Cubic::getPositiveRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#af3cac92e66942add50f50efd54946ea0',1,'PolynomialRoots::Quartic::getPositiveRoots()']]], + ['getrealroots_126',['getRealRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a0870508a9856a9562500a4b9eb771e63',1,'PolynomialRoots::Quadratic::getRealRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ac5972d5a2e1b345f303b88cbd5b078fe',1,'PolynomialRoots::Cubic::getRealRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#ab891e8e38e581c5532059e2c1cd89269',1,'PolynomialRoots::Quartic::getRealRoots()']]], + ['gets0_127',['getS0',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a413e5767e3a07ee9ef4e554756306bd7',1,'G2lib::G2solve3arc']]], + ['gets1_128',['getS1',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a20c69bf8640e4512dd58ee94fa89665c',1,'G2lib::G2solve3arc']]], + ['getsm_129',['getSM',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af4dbf3d620ca204cd5e6b2f4fa1b99be',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/all_7.html b/docs/search/all_7.html new file mode 100644 index 00000000..8ddbf6c8 --- /dev/null +++ b/docs/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_7.js b/docs/search/all_7.js new file mode 100644 index 00000000..bd07eb71 --- /dev/null +++ b/docs/search/all_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['id_130',['Id',['../de/d56/class_g2lib_1_1_b_box.html#a8bb398efc89d9eb075daef4567a5a6e6',1,'G2lib::BBox']]], + ['info_131',['info',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7992994055f43baa87fc1de676f852f2',1,'GenericContainerNamespace::GenericContainer::info()'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ade27a47e7fedd85e1c6c6594a9129785',1,'PolynomialRoots::Quadratic::info()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#aff682d02041f8492e06f7265a6f84bcf',1,'PolynomialRoots::Cubic::info()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a776a4f9c59f37989ff7210d230e97576',1,'PolynomialRoots::Quartic::info()']]], + ['integralcurvature2_132',['integralCurvature2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a7d64669124be63ab8c8d9bc092ad3956',1,'G2lib::G2solve3arc']]], + ['integraljerk2_133',['integralJerk2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a1af307129ab4626cfed0331845734ebe',1,'G2lib::G2solve3arc']]], + ['integralsnap2_134',['integralSnap2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a2fe47d885181f923dd5637ed38ed76ec',1,'G2lib::G2solve3arc']]], + ['intersect_135',['intersect',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#af6d4320a6649e63c6ec6d8ccf828b626',1,'G2lib::AABBtree::intersect()'],['../d4/d9f/namespace_g2lib.html#af76e85d06ebb1983ab48ba391de0169f',1,'G2lib::intersect(BaseCurve const &obj1, BaseCurve const &obj2, IntersectList &ilist, bool swap_s_vals)']]], + ['intersect_5fiso_136',['intersect_ISO',['../d4/d9f/namespace_g2lib.html#a186697b462499b47e24ff961fd999fc2',1,'G2lib']]], + ['intersect_5fsae_137',['intersect_SAE',['../d4/d9f/namespace_g2lib.html#acdd344ff0a709df517956fc2e0545b2f',1,'G2lib']]], + ['intersectcirclecircle_138',['intersectCircleCircle',['../d4/d9f/namespace_g2lib.html#ae36e8b6d807fd513811a902aae403929',1,'G2lib']]], + ['ipos_139',['Ipos',['../de/d56/class_g2lib_1_1_b_box.html#ab57b93ed38844e1ee63a7bd699fca15c',1,'G2lib::BBox']]], + ['is_5fempty_140',['is_empty',['../dc/d87/class_utils_1_1_malloc.html#a50ff55be6ee5d9e07ca0e967c9b28760',1,'Utils::Malloc']]], + ['iscounterclockwise_141',['isCounterClockwise',['../d8/d7c/class_g2lib_1_1_triangle2_d.html#a94cd85d9a7546fe1fb18cca794bf3b35',1,'G2lib::Triangle2D::isCounterClockwise()'],['../d4/d9f/namespace_g2lib.html#aa74a7921fe7b6f963f181fff6a56e6b4',1,'G2lib::isCounterClockwise()']]], + ['isinside_142',['isInside',['../d8/d7c/class_g2lib_1_1_triangle2_d.html#a11ff99a05989018a2e08956cc8898a6c',1,'G2lib::Triangle2D']]], + ['ispointintriangle_143',['isPointInTriangle',['../d4/d9f/namespace_g2lib.html#a3635285692da7b1b56f84805b8d47879',1,'G2lib']]] +]; diff --git a/docs/search/all_8.html b/docs/search/all_8.html new file mode 100644 index 00000000..83c55ae2 --- /dev/null +++ b/docs/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_8.js b/docs/search/all_8.js new file mode 100644 index 00000000..a41cf6e7 --- /dev/null +++ b/docs/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['join_144',['join',['../de/d56/class_g2lib_1_1_b_box.html#ad0aaba5511ff29c7e0fd0049ea0da67b',1,'G2lib::BBox']]] +]; diff --git a/docs/search/all_9.html b/docs/search/all_9.html new file mode 100644 index 00000000..1e263c13 --- /dev/null +++ b/docs/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_9.js b/docs/search/all_9.js new file mode 100644 index 00000000..45044807 --- /dev/null +++ b/docs/search/all_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['kappa_145',['kappa',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a36ba3617c981e50be132e098d3ac5a12',1,'G2lib::ClothoidData']]], + ['kappa0_146',['kappa0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a83d3f26427d6b38c5fabdd6b97bc7eb1',1,'G2lib::ClothoidData']]], + ['kappabegin_147',['kappaBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#ac7882ab98e3e8a4def89d21fdc8a2521',1,'G2lib::G2solve3arc']]], + ['kappaend_148',['kappaEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#afdf06c1e6fb7510fdff049a640f310fd',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/all_a.html b/docs/search/all_a.html new file mode 100644 index 00000000..3a6cac10 --- /dev/null +++ b/docs/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_a.js b/docs/search/all_a.js new file mode 100644 index 00000000..0237c78d --- /dev/null +++ b/docs/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['length_149',['length',['../dd/dd4/class_g2lib_1_1_biarc.html#a4afde4b515d06d18a470d79686190b43',1,'G2lib::Biarc::length()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a2082269ecc778ee1ef1675776deb8c79',1,'G2lib::BiarcList::length()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a6410a8c1b74849707ae202c82b1490c6',1,'G2lib::CircleArc::length()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6b159f6828bc6c8ff7f8e97b18142e13',1,'G2lib::ClothoidCurve::length()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a0cfebb20680610a4b6e4602c96f18d7a',1,'G2lib::ClothoidList::length()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a40882891d52eb76ff3394de836b2f4b8',1,'G2lib::BaseCurve::length()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ae1f5ced93d8e2f5a10d18197fdb54691',1,'G2lib::LineSegment::length()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aa6730d91c35c08c337dba5d9bd41f0ca',1,'G2lib::PolyLine::length()']]], + ['length_5fiso_150',['length_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#a71a86562c9808d074ad8092933d0e800',1,'G2lib::Biarc::length_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a41911c8456e34a19f5bc3b931a598e57',1,'G2lib::BiarcList::length_ISO()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a37c3aa23aaef5f09c72522e6ee26b412',1,'G2lib::CircleArc::length_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3c43b33f8a89c547c1f748a9e5663654',1,'G2lib::ClothoidCurve::length_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a6cca689e13bdc838660e50c64c43215d',1,'G2lib::ClothoidList::length_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#aba02a6e87f8e1c7e07c84c4ea05f14d2',1,'G2lib::BaseCurve::length_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a70b2930a2bb557b8406d4a673228ea0e',1,'G2lib::LineSegment::length_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#a291000c70a5c6700441b7b65567e6ac7',1,'G2lib::PolyLine::length_ISO()']]], + ['length_5fsae_151',['length_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#af4e7c308bc05c9e51ffa393bd592c3b7',1,'G2lib::BaseCurve']]], + ['linesegment_152',['LineSegment',['../d9/d0c/class_g2lib_1_1_line_segment.html',1,'G2lib::LineSegment'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ad11d902f20b3b8f3a7f6456f297d0a99',1,'G2lib::LineSegment::LineSegment()']]], + ['load_153',['load',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab70cdaf6dae065e0dd7d2c71a59f01e7',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/all_b.html b/docs/search/all_b.html new file mode 100644 index 00000000..130deb4e --- /dev/null +++ b/docs/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_b.js b/docs/search/all_b.js new file mode 100644 index 00000000..78c4be9c --- /dev/null +++ b/docs/search/all_b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['m_5f1_5fsqrt_5fpi_154',['m_1_sqrt_pi',['../d4/d9f/namespace_g2lib.html#ab7ae60f08d4dcaa2b289bdd7bb3dc4ee',1,'G2lib']]], + ['machepsi_155',['machepsi',['../d4/d9f/namespace_g2lib.html#a87e08bc343d60eadd2938d68ebc1f61b',1,'G2lib']]], + ['machepsi10_156',['machepsi10',['../d4/d9f/namespace_g2lib.html#a22dc08fd48bd175798c0120ad68126f6',1,'G2lib']]], + ['machepsi100_157',['machepsi100',['../d4/d9f/namespace_g2lib.html#a83d7ce40a3e4a860b91dd8df81408892',1,'G2lib']]], + ['machepsi1000_158',['machepsi1000',['../d4/d9f/namespace_g2lib.html#a4e46ee577d28382a45d279842036eb86',1,'G2lib']]], + ['machineeps_159',['machineEps',['../d1/d7c/namespace_utils.html#ac48424f9b5e82381d95f8c3f805df7da',1,'Utils::machineEps()'],['../d1/d7c/namespace_utils.html#a90e8ad4441e2e6555c65774c565f1b9e',1,'Utils::machineEps()']]], + ['malloc_160',['Malloc',['../dc/d87/class_utils_1_1_malloc.html#a61987ff20d18c3f5bb43bda04a9cd253',1,'Utils::Malloc::Malloc()'],['../dc/d87/class_utils_1_1_malloc.html',1,'Utils::Malloc< T >']]], + ['malloc_3c_20real_5ftype_20_3e_161',['Malloc< real_type >',['../dc/d87/class_utils_1_1_malloc.html',1,'Utils']]], + ['mat_5ftype_162',['mat_type',['../d5/de4/class_generic_container_namespace_1_1mat__type.html',1,'GenericContainerNamespace']]], + ['maxdistance_163',['maxDistance',['../de/d56/class_g2lib_1_1_b_box.html#a9e35474d66ca0ff168dff368476066d5',1,'G2lib::BBox']]], + ['maximumvalue_164',['maximumValue',['../d1/d7c/namespace_utils.html#a1fa85a532b4b2fdd3eb8bc2252942348',1,'Utils::maximumValue()'],['../d1/d7c/namespace_utils.html#a8741a2e2bf4ee789b4d18fc11e89f174',1,'Utils::maximumValue()']]], + ['minimumvalue_165',['minimumValue',['../d1/d7c/namespace_utils.html#a3c1f7495b694dc45db206ed90e10b910',1,'Utils::minimumValue()'],['../d1/d7c/namespace_utils.html#acfbf9ec3663477187b89b462a092c66b',1,'Utils::minimumValue()']]], + ['minmax3_166',['minmax3',['../d4/d9f/namespace_g2lib.html#adcb636fc9381075c0ce6750a07f15a41',1,'G2lib']]], + ['must_5fbe_5fempty_167',['must_be_empty',['../dc/d87/class_utils_1_1_malloc.html#a63818da423ae026f18371addf09e085e',1,'Utils::Malloc']]] +]; diff --git a/docs/search/all_c.html b/docs/search/all_c.html new file mode 100644 index 00000000..3dd5af06 --- /dev/null +++ b/docs/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_c.js b/docs/search/all_c.js new file mode 100644 index 00000000..fbdbc32b --- /dev/null +++ b/docs/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['nan_168',['NaN',['../d1/d7c/namespace_utils.html#a8b9a28a18d7ba1b5d5bc16704fcc3f75',1,'Utils::NaN()'],['../d1/d7c/namespace_utils.html#a5016ec1ff7d16d8e7e81687c86fe7ee8',1,'Utils::NaN()']]], + ['numcomplexroots_169',['numComplexRoots',['../d8/dec/class_polynomial_roots_1_1_quartic.html#a0932673f6b5a4fae631a5d27b2fe860a',1,'PolynomialRoots::Quartic']]], + ['numrealroots_170',['numRealRoots',['../d8/dec/class_polynomial_roots_1_1_quartic.html#af647c59add0df604161cf6e3bc64e1c0',1,'PolynomialRoots::Quartic']]], + ['numroots_171',['numRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a0acee845244aae9f51add7dd478cc30d',1,'PolynomialRoots::Quadratic::numRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a86871c6ceafe895744a5bd0dade70779',1,'PolynomialRoots::Cubic::numRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a40ab733d024bb691c5a969db3369c43c',1,'PolynomialRoots::Quartic::numRoots()']]] +]; diff --git a/docs/search/all_d.html b/docs/search/all_d.html new file mode 100644 index 00000000..af7f2f0f --- /dev/null +++ b/docs/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_d.js b/docs/search/all_d.js new file mode 100644 index 00000000..910cc186 --- /dev/null +++ b/docs/search/all_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_28_29_172',['operator()',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a43b3ad295d58bd6c5c6ad38da74fa3f4',1,'GenericContainerNamespace::GenericContainer::operator()(unsigned i, char const msg[]=nullptr)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a46d76421ff4d771b56b6e405dc433ebb',1,'GenericContainerNamespace::GenericContainer::operator()(std::string const &s, char const msg[]=nullptr)'],['../dc/d87/class_utils_1_1_malloc.html#adc8042e4c7e2013628c9a65760ce55a9',1,'Utils::Malloc::operator()()']]], + ['operator_3d_173',['operator=',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acacfcbfa3495d42a3084b9568d1330cb',1,'GenericContainerNamespace::GenericContainer::operator=(bool const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab325271d3b21303a5f5fbc3065e93124',1,'GenericContainerNamespace::GenericContainer::operator=(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a752dfc97c23c1b862bbb8fcc830ed451',1,'GenericContainerNamespace::GenericContainer::operator=(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0b5a443ff826cd252f650789fccb7eab',1,'GenericContainerNamespace::GenericContainer::operator=(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2662174dae4baffc958b589d8dede997',1,'GenericContainerNamespace::GenericContainer::operator=(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a28faf5caad9ad1b1ee44617b724fa3a7',1,'GenericContainerNamespace::GenericContainer::operator=(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6c890078a7428595b45cdee08e265e67',1,'GenericContainerNamespace::GenericContainer::operator=(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1464e6620f3dac52a97c9c9cc3220a53',1,'GenericContainerNamespace::GenericContainer::operator=(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3e6af6bddca953f956d73dbe8d1dd712',1,'GenericContainerNamespace::GenericContainer::operator=(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aaa3fbd6305ee340dfc6d2d2c5d773531',1,'GenericContainerNamespace::GenericContainer::operator=(vec_bool_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac365f0f476f6735c61f0adef542ef528',1,'GenericContainerNamespace::GenericContainer::operator=(vec_int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5e9aa6573c509afd8a8ae72faae97137',1,'GenericContainerNamespace::GenericContainer::operator=(vec_long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a68ae16cec0cb0748feedc8edb7a1ab7b',1,'GenericContainerNamespace::GenericContainer::operator=(vec_real_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2b9755c337868af951ecf25607f03084',1,'GenericContainerNamespace::GenericContainer::operator=(vec_complex_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6ed4fa99af9b7415da142a974af92190',1,'GenericContainerNamespace::GenericContainer::operator=(vec_string_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1871e64523447f11442b78b796b1be80',1,'GenericContainerNamespace::GenericContainer::operator=(mat_int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7f09f2e7089d172e4d7b3313888cb0f8',1,'GenericContainerNamespace::GenericContainer::operator=(mat_long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a43b4e488b337430e1734a39de9aff84d',1,'GenericContainerNamespace::GenericContainer::operator=(mat_real_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a638404c1f7dc86803d36e24deb41806e',1,'GenericContainerNamespace::GenericContainer::operator=(mat_complex_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a614eec0173b18f5802ccb5de7daa6e1b',1,'GenericContainerNamespace::GenericContainer::operator=(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a22b528b0bba382927925a9c2dc7c2a7a',1,'GenericContainerNamespace::GenericContainer::operator=(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a776825c809fb6c4369eb2ffc62bd422e',1,'GenericContainerNamespace::GenericContainer::operator=(pointer_type a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#abd683b109b09a3d3b3690990cfe3ef09',1,'GenericContainerNamespace::GenericContainer::operator=(GenericContainer const &a)']]], + ['operator_5b_5d_174',['operator[]',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab344ed3c4a45125497924e7e69bc2f88',1,'GenericContainerNamespace::GenericContainer']]], + ['optimized_5fsample_5fiso_175',['optimized_sample_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#aa6ab52b77c6879ac5bb9e582579e9d46',1,'G2lib::ClothoidCurve']]] +]; diff --git a/docs/search/all_e.html b/docs/search/all_e.html new file mode 100644 index 00000000..e25df423 --- /dev/null +++ b/docs/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_e.js b/docs/search/all_e.js new file mode 100644 index 00000000..ebe2d815 --- /dev/null +++ b/docs/search/all_e.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['pointinsidecircle_176',['pointInsideCircle',['../d4/d9f/namespace_g2lib.html#a787008f61e79e40319f40bdc503f3136',1,'G2lib']]], + ['polyline_177',['PolyLine',['../d2/d00/class_g2lib_1_1_poly_line.html',1,'G2lib']]], + ['polynomialroots_178',['PolynomialRoots',['../d5/d44/namespace_polynomial_roots.html',1,'']]], + ['print_5fcontent_5ftypes_179',['print_content_types',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad432e3ba50c9d8b8eb52444d91f2702b',1,'GenericContainerNamespace::GenericContainer']]], + ['printtrace_180',['printTrace',['../d1/d7c/namespace_utils.html#ae0f9deab4d6a564dea82a5c5f81dadad',1,'Utils']]], + ['projectpointoncircle_181',['projectPointOnCircle',['../d4/d9f/namespace_g2lib.html#a8829b54b63a6e1880f15ccdfe57c2ecb',1,'G2lib']]], + ['projectpointoncirclearc_182',['projectPointOnCircleArc',['../d4/d9f/namespace_g2lib.html#acf4b8b1e2907ced4f4097f9dc5e301c3',1,'G2lib']]], + ['promote_5fto_5fcomplex_183',['promote_to_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa551b728b6ef064a631e193e681928a2',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fint_184',['promote_to_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a85b5e9c216977ac680a8773fce10bc47',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5flong_185',['promote_to_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae26bd10677f5cd11b2b856e10e3fe3db',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5fcomplex_186',['promote_to_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af2eb0acb621f3df216b9398bbb3922fd',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5fint_187',['promote_to_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae1b3882464bc1a80b6bd160fbd28bc90',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5flong_188',['promote_to_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac00a4695b4375fd8cdcdeb1d2a00435c',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5freal_189',['promote_to_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aef320936305bf3746142f73dfdb1cbd9',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5freal_190',['promote_to_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a752f94f7dfb50b0445c21ff13910c82b',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5fcomplex_191',['promote_to_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6d33236f26b3affacea012dad6302927',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5fint_192',['promote_to_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a074f4af215a8acbc669a009e455cfcad',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5flong_193',['promote_to_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a847f1a1b419c38367e9aeee86e5a5344',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5freal_194',['promote_to_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a45aaf134cdd8e002ec5459e8e216ec81',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvector_195',['promote_to_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a63651ab97042f7589240a1af4a923017',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fbool_196',['push_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa7d87c5807c4f1c79376002ee51c1339',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fcomplex_197',['push_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0678141badc18cf1e3fe2457d26ae2d9',1,'GenericContainerNamespace::GenericContainer::push_complex(complex_type &)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2343e8746f0c764f2afe03d3d84c4e37',1,'GenericContainerNamespace::GenericContainer::push_complex(real_type re, real_type im)']]], + ['push_5fint_198',['push_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4d780248125bd38e078221f3ecff708d',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5flong_199',['push_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3babc81e25d1425152131e0cde3c86e6',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5freal_200',['push_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac1a2b9c21e6f960f4144aa909335948e',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fstring_201',['push_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae48ebcdf7f6e01389db5ea6b3798ef9e',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/all_f.html b/docs/search/all_f.html new file mode 100644 index 00000000..b23da6ce --- /dev/null +++ b/docs/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_f.js b/docs/search/all_f.js new file mode 100644 index 00000000..ed2a22df --- /dev/null +++ b/docs/search/all_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['quadratic_202',['Quadratic',['../d5/ded/class_polynomial_roots_1_1_quadratic.html',1,'PolynomialRoots']]], + ['quartic_203',['Quartic',['../d8/dec/class_polynomial_roots_1_1_quartic.html',1,'PolynomialRoots']]] +]; diff --git a/docs/search/classes_0.html b/docs/search/classes_0.html new file mode 100644 index 00000000..af8159ee --- /dev/null +++ b/docs/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js new file mode 100644 index 00000000..e2ecb8bd --- /dev/null +++ b/docs/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['aabbtree_283',['AABBtree',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html',1,'G2lib']]], + ['asyplot_284',['AsyPlot',['../d2/d79/class_g2lib_1_1_asy_plot.html',1,'G2lib']]] +]; diff --git a/docs/search/classes_1.html b/docs/search/classes_1.html new file mode 100644 index 00000000..576e9168 --- /dev/null +++ b/docs/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js new file mode 100644 index 00000000..6fbd027a --- /dev/null +++ b/docs/search/classes_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['barrier_285',['Barrier',['../d8/d20/class_utils_1_1_barrier.html',1,'Utils']]], + ['basecurve_286',['BaseCurve',['../d2/d03/class_g2lib_1_1_base_curve.html',1,'G2lib']]], + ['bbox_287',['BBox',['../de/d56/class_g2lib_1_1_b_box.html',1,'G2lib']]], + ['biarc_288',['Biarc',['../dd/dd4/class_g2lib_1_1_biarc.html',1,'G2lib']]], + ['biarclist_289',['BiarcList',['../df/d29/class_g2lib_1_1_biarc_list.html',1,'G2lib']]], + ['binarysearch_290',['BinarySearch',['../d9/d96/class_utils_1_1_binary_search.html',1,'Utils']]], + ['binarysearch_3c_20int_5ftype_20_3e_291',['BinarySearch< int_type >',['../d9/d96/class_utils_1_1_binary_search.html',1,'Utils']]] +]; diff --git a/docs/search/classes_2.html b/docs/search/classes_2.html new file mode 100644 index 00000000..956405e5 --- /dev/null +++ b/docs/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js new file mode 100644 index 00000000..a5b3bb72 --- /dev/null +++ b/docs/search/classes_2.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['c_5fcomplex_5ftype_292',['c_complex_type',['../d6/d33/structc__complex__type.html',1,'']]], + ['circlearc_293',['CircleArc',['../d7/dd9/class_g2lib_1_1_circle_arc.html',1,'G2lib']]], + ['clothoidcurve_294',['ClothoidCurve',['../dc/d27/class_g2lib_1_1_clothoid_curve.html',1,'G2lib']]], + ['clothoiddata_295',['ClothoidData',['../dc/d5d/class_g2lib_1_1_clothoid_data.html',1,'G2lib']]], + ['clothoidlist_296',['ClothoidList',['../d7/d02/class_g2lib_1_1_clothoid_list.html',1,'G2lib']]], + ['clothoidsplineg2_297',['ClothoidSplineG2',['../df/d4a/class_g2lib_1_1_clothoid_spline_g2.html',1,'G2lib']]], + ['console_298',['Console',['../d1/df8/class_utils_1_1_console.html',1,'Utils']]], + ['console_5fstyle_299',['Console_style',['../dd/d68/class_utils_1_1_console_1_1_console__style.html',1,'Utils::Console']]], + ['cubic_300',['Cubic',['../d9/df7/class_polynomial_roots_1_1_cubic.html',1,'PolynomialRoots']]] +]; diff --git a/docs/search/classes_3.html b/docs/search/classes_3.html new file mode 100644 index 00000000..d33343bc --- /dev/null +++ b/docs/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js new file mode 100644 index 00000000..88500c16 --- /dev/null +++ b/docs/search/classes_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['g2solve2arc_301',['G2solve2arc',['../da/da5/class_g2lib_1_1_g2solve2arc.html',1,'G2lib']]], + ['g2solve3arc_302',['G2solve3arc',['../d1/dec/class_g2lib_1_1_g2solve3arc.html',1,'G2lib']]], + ['g2solveclc_303',['G2solveCLC',['../da/dda/class_g2lib_1_1_g2solve_c_l_c.html',1,'G2lib']]], + ['genericcontainer_304',['GenericContainer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html',1,'GenericContainerNamespace']]], + ['genericcontainerexplorer_305',['GenericContainerExplorer',['../d1/df7/class_generic_container_namespace_1_1_generic_container_explorer.html',1,'GenericContainerNamespace']]] +]; diff --git a/docs/search/classes_4.html b/docs/search/classes_4.html new file mode 100644 index 00000000..8430b07f --- /dev/null +++ b/docs/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js new file mode 100644 index 00000000..71aee2e4 --- /dev/null +++ b/docs/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linesegment_306',['LineSegment',['../d9/d0c/class_g2lib_1_1_line_segment.html',1,'G2lib']]] +]; diff --git a/docs/search/classes_5.html b/docs/search/classes_5.html new file mode 100644 index 00000000..c2f1b767 --- /dev/null +++ b/docs/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js new file mode 100644 index 00000000..0cfba392 --- /dev/null +++ b/docs/search/classes_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['malloc_307',['Malloc',['../dc/d87/class_utils_1_1_malloc.html',1,'Utils']]], + ['malloc_3c_20real_5ftype_20_3e_308',['Malloc< real_type >',['../dc/d87/class_utils_1_1_malloc.html',1,'Utils']]], + ['mat_5ftype_309',['mat_type',['../d5/de4/class_generic_container_namespace_1_1mat__type.html',1,'GenericContainerNamespace']]] +]; diff --git a/docs/search/classes_6.html b/docs/search/classes_6.html new file mode 100644 index 00000000..e39847ce --- /dev/null +++ b/docs/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js new file mode 100644 index 00000000..78f56c51 --- /dev/null +++ b/docs/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['polyline_310',['PolyLine',['../d2/d00/class_g2lib_1_1_poly_line.html',1,'G2lib']]] +]; diff --git a/docs/search/classes_7.html b/docs/search/classes_7.html new file mode 100644 index 00000000..a2c4d1a3 --- /dev/null +++ b/docs/search/classes_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_7.js b/docs/search/classes_7.js new file mode 100644 index 00000000..183e41dd --- /dev/null +++ b/docs/search/classes_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['quadratic_311',['Quadratic',['../d5/ded/class_polynomial_roots_1_1_quadratic.html',1,'PolynomialRoots']]], + ['quartic_312',['Quartic',['../d8/dec/class_polynomial_roots_1_1_quartic.html',1,'PolynomialRoots']]] +]; diff --git a/docs/search/classes_8.html b/docs/search/classes_8.html new file mode 100644 index 00000000..17003e48 --- /dev/null +++ b/docs/search/classes_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_8.js b/docs/search/classes_8.js new file mode 100644 index 00000000..bb7a6b1d --- /dev/null +++ b/docs/search/classes_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['runtime_5ferror_313',['Runtime_Error',['../db/d6b/class_utils_1_1_runtime___error.html',1,'Utils']]], + ['runtime_5ftraceerror_314',['Runtime_TraceError',['../d8/d7d/class_utils_1_1_runtime___trace_error.html',1,'Utils']]] +]; diff --git a/docs/search/classes_9.html b/docs/search/classes_9.html new file mode 100644 index 00000000..b8afa8cb --- /dev/null +++ b/docs/search/classes_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_9.js b/docs/search/classes_9.js new file mode 100644 index 00000000..a6c761e8 --- /dev/null +++ b/docs/search/classes_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['simplesemaphore_315',['SimpleSemaphore',['../d5/d81/class_utils_1_1_simple_semaphore.html',1,'Utils']]], + ['solve2x2_316',['Solve2x2',['../df/d84/class_g2lib_1_1_solve2x2.html',1,'G2lib']]], + ['spinlock_317',['SpinLock',['../d4/d63/class_utils_1_1_spin_lock.html',1,'Utils']]], + ['spinlock_5fbarrier_318',['SpinLock_barrier',['../d3/d23/class_utils_1_1_spin_lock__barrier.html',1,'Utils']]] +]; diff --git a/docs/search/classes_a.html b/docs/search/classes_a.html new file mode 100644 index 00000000..6788af27 --- /dev/null +++ b/docs/search/classes_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_a.js b/docs/search/classes_a.js new file mode 100644 index 00000000..71fe63c2 --- /dev/null +++ b/docs/search/classes_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['threadpool_319',['ThreadPool',['../d2/d25/class_utils_1_1_thread_pool.html',1,'Utils']]], + ['tictoc_320',['TicToc',['../d7/df9/class_utils_1_1_tic_toc.html',1,'Utils']]], + ['triangle2d_321',['Triangle2D',['../d8/d7c/class_g2lib_1_1_triangle2_d.html',1,'G2lib']]] +]; diff --git a/docs/search/classes_b.html b/docs/search/classes_b.html new file mode 100644 index 00000000..3fcb4985 --- /dev/null +++ b/docs/search/classes_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_b.js b/docs/search/classes_b.js new file mode 100644 index 00000000..faf2bda9 --- /dev/null +++ b/docs/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['waitworker_322',['WaitWorker',['../d6/dde/class_utils_1_1_wait_worker.html',1,'Utils']]], + ['worker_323',['Worker',['../d4/d23/class_utils_1_1_worker.html',1,'Utils']]] +]; diff --git a/docs/search/close.svg b/docs/search/close.svg new file mode 100644 index 00000000..a933eea1 --- /dev/null +++ b/docs/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/search/functions_0.html b/docs/search/functions_0.html new file mode 100644 index 00000000..eb4c5014 --- /dev/null +++ b/docs/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js new file mode 100644 index 00000000..89b97e6c --- /dev/null +++ b/docs/search/functions_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['allocate_327',['allocate',['../dc/d87/class_utils_1_1_malloc.html#a2eafcc9243bdad372ea35c00f3e94f9b',1,'Utils::Malloc']]], + ['approximate_5fcollision_5fiso_328',['approximate_collision_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a9cf262be946e13e3835e5e2683ec0c4b',1,'G2lib::ClothoidCurve']]], + ['atanc_329',['Atanc',['../d4/d9f/namespace_g2lib.html#ac0bbd1b03ec89b9ed1874b35849a82e7',1,'G2lib']]], + ['atanc_5fd_330',['Atanc_D',['../d4/d9f/namespace_g2lib.html#a634e4fa7089193123ec9146bd8e05d2b',1,'G2lib']]], + ['atanc_5fdd_331',['Atanc_DD',['../d4/d9f/namespace_g2lib.html#ab4c21b2f3f1a20a134429dfeb129c423',1,'G2lib']]], + ['atanc_5fddd_332',['Atanc_DDD',['../d4/d9f/namespace_g2lib.html#a448a0b9a486f6b9b16d74d80d133b10d',1,'G2lib']]] +]; diff --git a/docs/search/functions_1.html b/docs/search/functions_1.html new file mode 100644 index 00000000..ef4088b8 --- /dev/null +++ b/docs/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js new file mode 100644 index 00000000..d9e5a73d --- /dev/null +++ b/docs/search/functions_1.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['bbox_333',['bbox',['../dd/dd4/class_g2lib_1_1_biarc.html#a7112e8e6fe20c10bd6a4d8f09540e2d4',1,'G2lib::Biarc::bbox()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a4a4bd5ecbeac2824efbde671b63d56f7',1,'G2lib::BiarcList::bbox()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a79128dd27957d0689dba4ddedc5857b1',1,'G2lib::CircleArc::bbox()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a75c17f33f701dd46b6320837ae3324be',1,'G2lib::ClothoidCurve::bbox()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a0bac93a7a7435d1c63d3a2df908ba0c4',1,'G2lib::ClothoidList::bbox()'],['../d2/d03/class_g2lib_1_1_base_curve.html#ad08bc5424a8969b3de54f9b6dac4462d',1,'G2lib::BaseCurve::bbox()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a6c0a696ec1ace1ba6617ad5ed273d95b',1,'G2lib::LineSegment::bbox()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aacb769ac171bc0388c2623722f0a48b6',1,'G2lib::PolyLine::bbox()']]], + ['bbox_5fiso_334',['bbox_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#ad455e9dec46e11159b18988f7bf2c2b2',1,'G2lib::Biarc::bbox_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#aa9a7888a0b48915eb104b0166d6c1fc7',1,'G2lib::BiarcList::bbox_ISO()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a720b6bf5b2fdb6f7ed98f6e6d6743d22',1,'G2lib::CircleArc::bbox_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ad6cbd524c74a2b4cc32c8a8917c516b4',1,'G2lib::ClothoidCurve::bbox_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a4f60b2c885622b1adf2df271958c3cd6',1,'G2lib::ClothoidList::bbox_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#ad78cdead3876f252c25117319174bb7c',1,'G2lib::BaseCurve::bbox_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a6a1861c6999845dc359e27d6120c42da',1,'G2lib::LineSegment::bbox_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#ab4d9226f3f644dc29b48ffb1d2468439',1,'G2lib::PolyLine::bbox_ISO()']]], + ['bbox_5fsae_335',['bbox_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#ab822f14dc9b0093bae1ff1f8efbf1acc',1,'G2lib::BaseCurve']]], + ['bbtriangle_336',['bbTriangle',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a903071aebe6bc9f5f252c4f19d4e8c52',1,'G2lib::CircleArc::bbTriangle()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a53bedf212077946de2d7ba9ee6c3950d',1,'G2lib::ClothoidCurve::bbTriangle()']]], + ['bbtriangle_5fiso_337',['bbTriangle_ISO',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a34d9273302b43f4dc16a3a2d160dd7a8',1,'G2lib::CircleArc::bbTriangle_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a290ff294f8789d4a41415bced60bc3ec',1,'G2lib::ClothoidCurve::bbTriangle_ISO()']]], + ['bbtriangle_5fsae_338',['bbTriangle_SAE',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a455b3ec752001312da440acfa5c40786',1,'G2lib::CircleArc::bbTriangle_SAE()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#abe6116586d66476abe70fb5ee18ff7d7',1,'G2lib::ClothoidCurve::bbTriangle_SAE()']]], + ['biarc_339',['Biarc',['../dd/dd4/class_g2lib_1_1_biarc.html#ac17cadef4cc1e76804afa340df8bf339',1,'G2lib::Biarc']]], + ['build_340',['build',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a6d2d27b9e14f63ee054b9b3fc8b58390',1,'G2lib::AABBtree::build()'],['../dd/dd4/class_g2lib_1_1_biarc.html#af3cc02e0d7198e06e4c31a8a3c044caf',1,'G2lib::Biarc::build()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#aadb3a708d81a8b808325b5794dbd3d82',1,'G2lib::CircleArc::build()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a09165accf2adaa4cf313ff93e0ff5005',1,'G2lib::ClothoidCurve::build(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3416048f8cd2ef24409d5d5c729d741c',1,'G2lib::ClothoidCurve::build(LineSegment const &LS)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3bbfd57e34ff0bd3cf7c62f2212ed59a',1,'G2lib::ClothoidCurve::build(CircleArc const &C)'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a43cbe9c1211e489d995f3013aaa60872',1,'G2lib::G2solve3arc::build()']]], + ['build_5f2p_341',['build_2P',['../d9/d0c/class_g2lib_1_1_line_segment.html#ad8d1478263afc025e41665ff44bb3506',1,'G2lib::LineSegment::build_2P(real_type _x0, real_type _y0, real_type _x1, real_type _y1)'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a055830c5a0444747b0c364110e802aeb',1,'G2lib::LineSegment::build_2P(real_type const p0[2], real_type const p1[2])']]], + ['build_5f3p_342',['build_3P',['../dd/dd4/class_g2lib_1_1_biarc.html#af9706357eea6e63cf2d7502d37c0389c',1,'G2lib::Biarc::build_3P()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#ae80cb71537dede7a61e2c86f6ddb8400',1,'G2lib::CircleArc::build_3P()']]], + ['build_5ffixed_5flength_343',['build_fixed_length',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a601b8a5d0f81385c909f10e1d2b6cc40',1,'G2lib::G2solve3arc']]], + ['build_5fforward_344',['build_forward',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a46f30539e50fbf4647c2395355b571f8',1,'G2lib::ClothoidCurve']]], + ['build_5fg1_345',['build_G1',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a65f8974ebce97414d1917bc808c78ce5',1,'G2lib::CircleArc::build_G1()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ab65c8b860e5cdd5cb88410afb55ea614',1,'G2lib::ClothoidCurve::build_G1(real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1, real_type tol=1e-12)']]], + ['build_5fg1_5fd_346',['build_G1_D',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a02b41991375818cfdb19f395919762f5',1,'G2lib::ClothoidCurve']]] +]; diff --git a/docs/search/functions_10.html b/docs/search/functions_10.html new file mode 100644 index 00000000..1bdc1257 --- /dev/null +++ b/docs/search/functions_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js new file mode 100644 index 00000000..01b0f0d8 --- /dev/null +++ b/docs/search/functions_10.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['set_505',['set',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2ec2f5f7b132965357342992c10f6764',1,'GenericContainerNamespace::GenericContainer::set(bool const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aab6d7c0bf97e74d20632c81e4f94a818',1,'GenericContainerNamespace::GenericContainer::set(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32c6adce44b780c2c6c016412c19bcb2',1,'GenericContainerNamespace::GenericContainer::set(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a90242e0c03c1c884fa69f8a6572070dd',1,'GenericContainerNamespace::GenericContainer::set(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adda203bcf67e0d15e4c3fc4f2417ad6b',1,'GenericContainerNamespace::GenericContainer::set(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad51b344991a80964472c9860c25fb76c',1,'GenericContainerNamespace::GenericContainer::set(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a496b2bf177db9c6991342ceb2b2ae35d',1,'GenericContainerNamespace::GenericContainer::set(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a280fdc638c792291be053cfa11ccb997',1,'GenericContainerNamespace::GenericContainer::set(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adad9858d6cf2a3cfc0515f4ddad32c89',1,'GenericContainerNamespace::GenericContainer::set(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a26c2fd5fe22594d9cbcc1f76b3969464',1,'GenericContainerNamespace::GenericContainer::set(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0b2a0eb31cae7aefdba46a3cc65c43a8',1,'GenericContainerNamespace::GenericContainer::set(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad611c654f2e7936796e8c4e063203e76',1,'GenericContainerNamespace::GenericContainer::set(pointer_type a)']]], + ['set_5fbool_506',['set_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aaaf29585e01fd8d3b6dfacfc8695271d',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fcomplex_507',['set_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8cc5f821a28e55b5fdc91a28abd8f59a',1,'GenericContainerNamespace::GenericContainer::set_complex(complex_type &value)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad40e9be4d397175ce7a4b00066c3e5a9',1,'GenericContainerNamespace::GenericContainer::set_complex(real_type r, real_type i)']]], + ['set_5fint_508',['set_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#addaa210f721e719b6afa900e821b8610',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5flong_509',['set_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a23fa1ec511e6ef583c886cb434ee0750',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fmap_510',['set_map',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af6f0edf1be855c18cd4dd442cf0866ba',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fmat_5fcomplex_511',['set_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ada29b3469ceb734ceded55f017679ea0',1,'GenericContainerNamespace::GenericContainer::set_mat_complex(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aac70b74120590354dd9b263857cb11c3',1,'GenericContainerNamespace::GenericContainer::set_mat_complex(mat_complex_type const &m)']]], + ['set_5fmat_5fint_512',['set_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a613a5d6613216a54f1395f73a48622c2',1,'GenericContainerNamespace::GenericContainer::set_mat_int(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6151170cdcacd4dd3b11cc5c30c52bca',1,'GenericContainerNamespace::GenericContainer::set_mat_int(mat_int_type const &m)']]], + ['set_5fmat_5flong_513',['set_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5c0ba6969ce8827b358d7157c9df18d8',1,'GenericContainerNamespace::GenericContainer::set_mat_long(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a64f2261cdbb7af34316142cf0a96b26b',1,'GenericContainerNamespace::GenericContainer::set_mat_long(mat_long_type const &m)']]], + ['set_5fmat_5freal_514',['set_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8a081af4d46281e0dae63d5d195171ac',1,'GenericContainerNamespace::GenericContainer::set_mat_real(unsigned nr=0, unsigned nc=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7bade8a23f96b4493a7b988eadd0b8fe',1,'GenericContainerNamespace::GenericContainer::set_mat_real(mat_real_type const &m)']]], + ['set_5fpointer_515',['set_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6ddf71ec39a42a151eb4587043c0f0c3',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5freal_516',['set_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1f04451f3e1ebc56be35f927e172e9a5',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fstring_517',['set_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4126467e61006150c4675514c0e70e7f',1,'GenericContainerNamespace::GenericContainer']]], + ['set_5fvec_5fbool_518',['set_vec_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a01f4a5a11c53b374a5dfff88a3c62fd6',1,'GenericContainerNamespace::GenericContainer::set_vec_bool(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab9fa72c52fff921260c400fb9e99f662',1,'GenericContainerNamespace::GenericContainer::set_vec_bool(vec_bool_type const &v)']]], + ['set_5fvec_5fcomplex_519',['set_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ade8aca0419e90ab2c4c3c7009859069e',1,'GenericContainerNamespace::GenericContainer::set_vec_complex(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5274bab7e31ec20584f9786304bec4df',1,'GenericContainerNamespace::GenericContainer::set_vec_complex(vec_complex_type const &v)']]], + ['set_5fvec_5fint_520',['set_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2c77a598c137d7c87996bfeb36565fe4',1,'GenericContainerNamespace::GenericContainer::set_vec_int(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8c1104417b2e6b512cf47282916fa598',1,'GenericContainerNamespace::GenericContainer::set_vec_int(vec_int_type const &v)']]], + ['set_5fvec_5flong_521',['set_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a819535664e101d7ae7b38246959c69eb',1,'GenericContainerNamespace::GenericContainer::set_vec_long(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3ade0d44d11f8235ca2b8f08f66791e0',1,'GenericContainerNamespace::GenericContainer::set_vec_long(vec_long_type const &v)']]], + ['set_5fvec_5fpointer_522',['set_vec_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a88f41504400f744f7eabfba403326d0c',1,'GenericContainerNamespace::GenericContainer::set_vec_pointer(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3b6e474fd73efb8a10c804a4c292d4c1',1,'GenericContainerNamespace::GenericContainer::set_vec_pointer(vec_pointer_type const &v)']]], + ['set_5fvec_5freal_523',['set_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a31fbfff50c9abd7feb8847751315a46e',1,'GenericContainerNamespace::GenericContainer::set_vec_real(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0350093975e6bcd53b773b6fb7f05f78',1,'GenericContainerNamespace::GenericContainer::set_vec_real(vec_real_type const &v)']]], + ['set_5fvec_5fstring_524',['set_vec_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6810f11e5993d0abd1641c9ec4aa9bd0',1,'GenericContainerNamespace::GenericContainer::set_vec_string(unsigned sz=0)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a788c44fbd72085ee07a00095719bd79a',1,'GenericContainerNamespace::GenericContainer::set_vec_string(vec_string_type const &v)']]], + ['set_5fvector_525',['set_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a38d922364dfc09fa35037085364a4f2c',1,'GenericContainerNamespace::GenericContainer']]], + ['setauto_526',['setAuto',['../d1/df8/class_utils_1_1_console.html#a0cff118a0b82d48a8ebd1aee6f52db32',1,'Utils::Console']]], + ['setoff_527',['setOff',['../d1/df8/class_utils_1_1_console.html#a1867e89e77cdb0e248103f1c53d87079',1,'Utils::Console']]], + ['setup_528',['setup',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a23f99bb9dc9085736467a7d448c909b2',1,'PolynomialRoots::Quadratic::setup()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad08ac921b9175e4f6cff3a89bb232c3b',1,'PolynomialRoots::Cubic::setup()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a456cd442a681a5dd66956a1d553b1a41',1,'PolynomialRoots::Quartic::setup()']]], + ['sinc_529',['Sinc',['../d4/d9f/namespace_g2lib.html#a081bc3efca6442933577b14d6f3c2a06',1,'G2lib']]], + ['sinc_5fd_530',['Sinc_D',['../d4/d9f/namespace_g2lib.html#a70d38da7135fe9aa83b9e0d0e6ee7979',1,'G2lib']]], + ['sinc_5fdd_531',['Sinc_DD',['../d4/d9f/namespace_g2lib.html#a069d980b307edd06a1e9401e1a7bd5b4',1,'G2lib']]], + ['sinc_5fddd_532',['Sinc_DDD',['../d4/d9f/namespace_g2lib.html#a698f23b0a8d2f0dd431c908ba7bce967',1,'G2lib']]], + ['size_533',['size',['../dc/d87/class_utils_1_1_malloc.html#ad6d9c6bde288b796a339a05a908c5c63',1,'Utils::Malloc']]], + ['solvelinearquadratic_534',['solveLinearQuadratic',['../d4/d9f/namespace_g2lib.html#aeebee0c0de28155447b2c5f0547b0b92',1,'G2lib']]], + ['solvelinearquadratic2_535',['solveLinearQuadratic2',['../d4/d9f/namespace_g2lib.html#afa9a9719ade11579b722aae68f7d4379',1,'G2lib']]], + ['sqrtmachineeps_536',['sqrtMachineEps',['../d1/d7c/namespace_utils.html#a2982f0d481573b831d0bd86bd85696da',1,'Utils::sqrtMachineEps()'],['../d1/d7c/namespace_utils.html#a3ec38c04d6fe033229c63089f2ce047e',1,'Utils::sqrtMachineEps()']]] +]; diff --git a/docs/search/functions_11.html b/docs/search/functions_11.html new file mode 100644 index 00000000..188076ef --- /dev/null +++ b/docs/search/functions_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js new file mode 100644 index 00000000..5b4f40c3 --- /dev/null +++ b/docs/search/functions_11.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['theta_537',['theta',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6cbe3ff94d935363956eb7e443524762',1,'G2lib::ClothoidCurve::theta()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa88a7c8f1e0f17c94520d37702e2f4ff',1,'G2lib::G2solve3arc::theta()'],['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a2e3e5acc94506d8e6fd8f0c73dd419a2',1,'G2lib::ClothoidData::theta()']]], + ['theta_5fd_538',['theta_D',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3ec97c2c59da8f8fdd4d35c1d2be2f65',1,'G2lib::ClothoidCurve::theta_D()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af14619058799ed10619b242c6f81e42c',1,'G2lib::G2solve3arc::theta_D()']]], + ['theta_5fdd_539',['theta_DD',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a242a4e41f94cbdf09e2c19e84c404665',1,'G2lib::ClothoidCurve::theta_DD()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af78faf667efc8e8e32e39e9f6a8744e5',1,'G2lib::G2solve3arc::theta_DD()']]], + ['theta_5fddd_540',['theta_DDD',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a32118a83e110c134465d050e59fa288b',1,'G2lib::ClothoidCurve::theta_DDD()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa828d4a8f22fb064ca542db282342c05',1,'G2lib::G2solve3arc::theta_DDD(real_type s) const']]], + ['thetabegin_541',['thetaBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a3f915172363f04278ae295f93ff3e5a3',1,'G2lib::G2solve3arc']]], + ['thetaend_542',['thetaEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a736478ca6344c91d1d5e314b2762ff15',1,'G2lib::G2solve3arc']]], + ['thetaminmax_543',['thetaMinMax',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a1d84829e5b2205ac90f8e20be4dd27f9',1,'G2lib::G2solve3arc']]], + ['thetatotalvariation_544',['thetaTotalVariation',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#aeef8d8f4d8e34d57e2339821a46e118d',1,'G2lib::ClothoidCurve::thetaTotalVariation()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a5ba78af28c93adb2a20684694e364905',1,'G2lib::G2solve3arc::thetaTotalVariation()']]], + ['to_5fyaml_545',['to_yaml',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad90a1f74a970d5c65c0cfdfbd7d476ea',1,'GenericContainerNamespace::GenericContainer']]], + ['totallength_546',['totalLength',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#aa1a4d37f05de3eab2bd61eb429c7dfc3',1,'G2lib::G2solve3arc']]], + ['tripleroot_547',['tripleRoot',['../d9/df7/class_polynomial_roots_1_1_cubic.html#acdfaafb3b8cf6ecd43790bfa43a5a6ac',1,'PolynomialRoots::Cubic']]], + ['type_548',['type',['../d2/d03/class_g2lib_1_1_base_curve.html#a15f0db809517d6274e82978a4608199e',1,'G2lib::BaseCurve']]] +]; diff --git a/docs/search/functions_12.html b/docs/search/functions_12.html new file mode 100644 index 00000000..eb29d8f9 --- /dev/null +++ b/docs/search/functions_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js new file mode 100644 index 00000000..b369bf60 --- /dev/null +++ b/docs/search/functions_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['writeformatteddata_549',['writeFormattedData',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acbf29b18512dec69b7fdcbb3c8756af6',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/functions_13.html b/docs/search/functions_13.html new file mode 100644 index 00000000..3da2ea69 --- /dev/null +++ b/docs/search/functions_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js new file mode 100644 index 00000000..19e7ee42 --- /dev/null +++ b/docs/search/functions_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['x_550',['X',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a2a5e30a42c75269d9d8fc562f75a5cb4',1,'G2lib::ClothoidCurve::X()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a2f6da8479c22bc26905312c93d1984ba',1,'G2lib::G2solve3arc::X()']]], + ['x_5fiso_551',['X_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7538c2f41e73811fede73ce211f62d7d',1,'G2lib::ClothoidCurve']]], + ['xbegin_552',['xBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a36a0f785736a1aaa4cc2170387d6eac1',1,'G2lib::G2solve3arc']]], + ['xend_553',['xEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a99cdf8cbd315f0e7ee73596f2935ce71',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/functions_14.html b/docs/search/functions_14.html new file mode 100644 index 00000000..29237b44 --- /dev/null +++ b/docs/search/functions_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_14.js b/docs/search/functions_14.js new file mode 100644 index 00000000..c20d905b --- /dev/null +++ b/docs/search/functions_14.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['y_554',['Y',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7cb54712d5b1808d5bdd6a7c2ac18644',1,'G2lib::ClothoidCurve::Y()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a43da3fe986f4af4a7d85b40081954dcd',1,'G2lib::G2solve3arc::Y()']]], + ['y_5fiso_555',['Y_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a70377475a5363c85bf5d9bda1d28c48f',1,'G2lib::ClothoidCurve']]], + ['ybegin_556',['yBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af189c0325e92e753129ea4df58928ad6',1,'G2lib::G2solve3arc']]], + ['yend_557',['yEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af662ea4e4bfbc3bd35ff7e67def7f6a4',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/functions_15.html b/docs/search/functions_15.html new file mode 100644 index 00000000..6d5decd7 --- /dev/null +++ b/docs/search/functions_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_15.js b/docs/search/functions_15.js new file mode 100644 index 00000000..e1565c43 --- /dev/null +++ b/docs/search/functions_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7egenericcontainer_558',['~GenericContainer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adc6f56b9b2ee705582da0994255e709f',1,'GenericContainerNamespace::GenericContainer']]], + ['_7emalloc_559',['~Malloc',['../dc/d87/class_utils_1_1_malloc.html#a4a29eab209311174b15b3489d95b068f',1,'Utils::Malloc']]] +]; diff --git a/docs/search/functions_2.html b/docs/search/functions_2.html new file mode 100644 index 00000000..ca5aa10e --- /dev/null +++ b/docs/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js new file mode 100644 index 00000000..3d0f7bec --- /dev/null +++ b/docs/search/functions_2.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['check_347',['check',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a2f7bd0230325302ee7e3504185acdc7b',1,'PolynomialRoots::Quadratic::check()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#abd447de7ddc53cf62787084d6c3fa014',1,'PolynomialRoots::Cubic::check()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#ada5c5e7de43b81360764921bb624adbc',1,'PolynomialRoots::Quartic::check()']]], + ['checknan_348',['checkNaN',['../d1/d7c/namespace_utils.html#a4444f67fe32acf5737fcaff991864e2d',1,'Utils']]], + ['circlearc_349',['CircleArc',['../d7/dd9/class_g2lib_1_1_circle_arc.html#a7f7fce83d3bb253a45a68cb35edec46b',1,'G2lib::CircleArc::CircleArc(real_type x0, real_type y0, real_type theta0, real_type k, real_type L)'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a8e2bbb75cb1c4415876ffd8f2eaf89f4',1,'G2lib::CircleArc::CircleArc(LineSegment const &LS)']]], + ['clear_350',['clear',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a050439a72f941cb5dac7f7fe57c02b89',1,'G2lib::AABBtree::clear()'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a28db10734a28b2209c48ed24b7cb3ed8',1,'GenericContainerNamespace::GenericContainer::clear()']]], + ['closestpoint_5fiso_351',['closestPoint_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#a4f1197f075e5675a98d3503cbbecf62a',1,'G2lib::Biarc::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dd/dd4/class_g2lib_1_1_biarc.html#a0fb7c74cde2e97640b748eb6e511de5a',1,'G2lib::Biarc::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../df/d29/class_g2lib_1_1_biarc_list.html#a5bf55bdbaa3995a5b603f0b47db2245c',1,'G2lib::BiarcList::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../df/d29/class_g2lib_1_1_biarc_list.html#a410805b18713bb24f1a191107f534d04',1,'G2lib::BiarcList::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#afd50024b131a4f50a4cca08b28ba20b7',1,'G2lib::CircleArc::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#afb8e24a72e0b05f02664750bf4bdd5bd',1,'G2lib::CircleArc::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#ad7b4dc1887f7d2bbf6c444a9c10ce95c',1,'G2lib::ClothoidCurve::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a7dc100e2f15d3efa081dd7f1ce429eb8',1,'G2lib::ClothoidCurve::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a8d11a692dfc11664f7887ae60b70d16f',1,'G2lib::ClothoidList::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#ac6b90cce90218071c0252b9aebe57635',1,'G2lib::ClothoidList::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d2/d03/class_g2lib_1_1_base_curve.html#af11c80d9a40fe5eac9f46451745e036b',1,'G2lib::BaseCurve::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL'],['../d2/d03/class_g2lib_1_1_base_curve.html#a7684fc774ba8f21287f422c1c8c3fd4a',1,'G2lib::BaseCurve::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_PURE_VIRTUAL'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a3e63fec002416e705f095809446f1db8',1,'G2lib::LineSegment::closestPoint_ISO(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d9/d0c/class_g2lib_1_1_line_segment.html#affb770feea0a99338cd88a08c597387a',1,'G2lib::LineSegment::closestPoint_ISO(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const UTILS_OVERRIDE'],['../d2/d00/class_g2lib_1_1_poly_line.html#a50c777e7024a18389e7d1fa680e7e0da',1,'G2lib::PolyLine::closestPoint_ISO(real_type x, real_type y, real_type &X, real_type &Y, real_type &S, real_type &T, real_type &DST) const UTILS_OVERRIDE'],['../d2/d00/class_g2lib_1_1_poly_line.html#a968d369d97c2ac275bbcce2cb56e6a1e',1,'G2lib::PolyLine::closestPoint_ISO(real_type, real_type, real_type, real_type &, real_type &, real_type &, real_type &, real_type &) const UTILS_OVERRIDE']]], + ['closestpoint_5fsae_352',['closestPoint_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#a746741928433953c9c86f982f66650d9',1,'G2lib::BaseCurve::closestPoint_SAE(real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const'],['../d2/d03/class_g2lib_1_1_base_curve.html#aa62d0ce6ff9cea6ef6d27005593a25e1',1,'G2lib::BaseCurve::closestPoint_SAE(real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const']]], + ['closestpointbysample_353',['closestPointBySample',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a66807f47dfcbcd3b50236a92f7297bd7',1,'G2lib::ClothoidCurve']]], + ['closestpointinrange_5fiso_354',['closestPointInRange_ISO',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a3033b5ba37cb6fa04e54ec381474546e',1,'G2lib::ClothoidList']]], + ['closestpointinrange_5fsae_355',['closestPointInRange_SAE',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a6eaa08631fd0e6c18730853ee7dc2caa',1,'G2lib::ClothoidList']]], + ['closestpointinsrange_5fiso_356',['closestPointInSRange_ISO',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a4753b13a9c51d819739bf66bbdaf3ef4',1,'G2lib::ClothoidList']]], + ['closestpointinsrange_5fsae_357',['closestPointInSRange_SAE',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a5040b571fe5a278c906ab9bd822c4847',1,'G2lib::ClothoidList']]], + ['closestsegment_358',['closestSegment',['../d7/d02/class_g2lib_1_1_clothoid_list.html#af0b9c3b98efd35fb11076424c1c743a8',1,'G2lib::ClothoidList']]], + ['clothoidcurve_359',['ClothoidCurve',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a36f45f7c9578fa6b2502d23f39a3568e',1,'G2lib::ClothoidCurve::ClothoidCurve(real_type _x0, real_type _y0, real_type _theta0, real_type _k, real_type _dk, real_type _L)'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a178f69f026eeb10b49dd4dde3d2bda0b',1,'G2lib::ClothoidCurve::ClothoidCurve(real_type const P0[], real_type theta0, real_type const P1[], real_type theta1)']]], + ['collision_360',['collision',['../de/d56/class_g2lib_1_1_b_box.html#a3b98db48add6859ab67fb00a0710a21e',1,'G2lib::BBox::collision()'],['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#aa5f2407ae49df344ebac998fcdbed61a',1,'G2lib::AABBtree::collision()'],['../d4/d9f/namespace_g2lib.html#a4c868222f99a5c7c751321c2b653ebdf',1,'G2lib::collision(BaseCurve const &obj1, BaseCurve const &obj2)']]], + ['collision_5fiso_361',['collision_ISO',['../d4/d9f/namespace_g2lib.html#a92b3c0989db6aa5a20f9e7949b937d83',1,'G2lib']]], + ['collision_5fsae_362',['collision_SAE',['../d4/d9f/namespace_g2lib.html#aa5b1fe23ac7694a14290b292fe657cd2',1,'G2lib']]], + ['complexroots_363',['complexRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#abd0c3b31b5b8b8f00a00d38e82528bbc',1,'PolynomialRoots::Quadratic::complexRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a94b4aea56bb9fd1de453d3d4bc460681',1,'PolynomialRoots::Cubic::complexRoots()']]], + ['cosc_364',['Cosc',['../d4/d9f/namespace_g2lib.html#ab3e73bcf98a8efc2749f2ad05a3fdc51',1,'G2lib']]], + ['cosc_5fd_365',['Cosc_D',['../d4/d9f/namespace_g2lib.html#a6a3e8c7ad85655c555cb6dc3825774c6',1,'G2lib']]], + ['cosc_5fdd_366',['Cosc_DD',['../d4/d9f/namespace_g2lib.html#ac10d1d52ae3cd16ef20171553d117b5b',1,'G2lib']]], + ['cosc_5fddd_367',['Cosc_DDD',['../d4/d9f/namespace_g2lib.html#ae6868bffc32e5a0425f93e65c41bc6de',1,'G2lib']]], + ['curvatureminmax_368',['curvatureMinMax',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a4270e2364557bd978e23701074c179d9',1,'G2lib::G2solve3arc']]], + ['curvaturetotalvariation_369',['curvatureTotalVariation',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a11775b5ebbeb611ae9b22147a12e12e6',1,'G2lib::ClothoidCurve::curvatureTotalVariation()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a546a10664d1ea8d9e5078113e1cc44de',1,'G2lib::G2solve3arc::curvatureTotalVariation()']]] +]; diff --git a/docs/search/functions_3.html b/docs/search/functions_3.html new file mode 100644 index 00000000..d79f55b8 --- /dev/null +++ b/docs/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js new file mode 100644 index 00000000..72a4cd8c --- /dev/null +++ b/docs/search/functions_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['deltatheta_370',['deltaTheta',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a90cb48f447b7902d48cb1f1e40340a2e',1,'G2lib::ClothoidCurve::deltaTheta()'],['../d1/dec/class_g2lib_1_1_g2solve3arc.html#ab8fedcaee86845efcd3b5f25aed3e4ed',1,'G2lib::G2solve3arc::deltaTheta()']]], + ['distance_371',['distance',['../de/d56/class_g2lib_1_1_b_box.html#ac6fc969999b473220bc8ef684108ab74',1,'G2lib::BBox']]], + ['doubleroot_372',['doubleRoot',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#adef2391e342dbda3a8aa7daee125a859',1,'PolynomialRoots::Quadratic::doubleRoot()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a6aa77e261ab9ba83c2e5f05ce9f5e065',1,'PolynomialRoots::Cubic::doubleRoot()']]], + ['dump_373',['dump',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32dafe8b7173d45694ed2f911d4ead80',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/functions_4.html b/docs/search/functions_4.html new file mode 100644 index 00000000..1657cad0 --- /dev/null +++ b/docs/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js new file mode 100644 index 00000000..bf384475 --- /dev/null +++ b/docs/search/functions_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['empty_374',['empty',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#a94449a0c61075c09ea5da28060bcad84',1,'G2lib::AABBtree']]], + ['eval_375',['eval',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a91a6f596e2e61dcb6bf389eb676dbea7',1,'G2lib::G2solve3arc::eval()'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#afa60634784c14e22bddab37301513eb9',1,'PolynomialRoots::Quadratic::eval(valueType x) const'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a601bddea30473f330824752748c11e0c',1,'PolynomialRoots::Quadratic::eval(complexType const &x) const'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a92300761f92b2ecc3029f3a36e317727',1,'PolynomialRoots::Quadratic::eval(valueType x, valueType &p, valueType &dp) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad968adbbd1ed89d54c49701a46c655a7',1,'PolynomialRoots::Cubic::eval(valueType x) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#acb40bc15b906b0572eab3d16f6865fa9',1,'PolynomialRoots::Cubic::eval(complexType const &x) const'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a4d7f9db4076918699d52707f30a2de65',1,'PolynomialRoots::Cubic::eval(valueType x, valueType &p, valueType &dp) const'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a6a801bb7923c4f3e90e9bc21a3a0495f',1,'PolynomialRoots::Quartic::eval(valueType x) const'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a1a8a09e3324f87b77b0b6d20574d7a17',1,'PolynomialRoots::Quartic::eval(complexType const &x) const']]], + ['eval_5fiso_376',['eval_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#af2443e74b3eddf8049db26c91703f2f3',1,'G2lib::Biarc::eval_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a59a96673a305989ebb185107b2f75a11',1,'G2lib::BiarcList::eval_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a57766a8db1f2e196835c4a8ff48d0233',1,'G2lib::ClothoidCurve::eval_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a43f356867e66c76a6a6ba5e8dc056d6a',1,'G2lib::ClothoidList::eval_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a3698172a3440654cd0ba9985237f25ac',1,'G2lib::BaseCurve::eval_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ae8f6ac99d7012f2d5dbeb7f97d5a245a',1,'G2lib::LineSegment::eval_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#a732c65e584599f384c70f13fb1fb119b',1,'G2lib::PolyLine::eval_ISO()']]], + ['eval_5fiso_5fd_377',['eval_ISO_D',['../dd/dd4/class_g2lib_1_1_biarc.html#a43184ea89e03b0bf7ff1033309ecae6b',1,'G2lib::Biarc::eval_ISO_D()'],['../df/d29/class_g2lib_1_1_biarc_list.html#ad437577eb37b974e9cdcd681e8acfdfa',1,'G2lib::BiarcList::eval_ISO_D()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a90a9d35370c1e8753836f801eed166ec',1,'G2lib::ClothoidCurve::eval_ISO_D()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#abd80dcbaf4062f87097844c0edbe0427',1,'G2lib::ClothoidList::eval_ISO_D()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a22132936dc89926dfa5e2d3bb2f5a4db',1,'G2lib::BaseCurve::eval_ISO_D()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a1142d7f62cc292716ff76ec196c315c3',1,'G2lib::LineSegment::eval_ISO_D()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aa41244b674fa35b59f8bf2ec961df4dd',1,'G2lib::PolyLine::eval_ISO_D()']]], + ['eval_5fiso_5fdd_378',['eval_ISO_DD',['../dd/dd4/class_g2lib_1_1_biarc.html#a318ac2f1fdec4eb2967d3877e868cccd',1,'G2lib::Biarc::eval_ISO_DD()'],['../df/d29/class_g2lib_1_1_biarc_list.html#afb689e16cd07177783c98afc802fbad5',1,'G2lib::BiarcList::eval_ISO_DD()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6dd50960be5aff3440c21bff05d4cbef',1,'G2lib::ClothoidCurve::eval_ISO_DD()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a1c0b67cea5d1959269703cfdc1576e5d',1,'G2lib::ClothoidList::eval_ISO_DD()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a0407dd52c3aedff3e19b752e6df1f6f0',1,'G2lib::BaseCurve::eval_ISO_DD()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ad3b476b6a639bb931f4ae5967a8f8f49',1,'G2lib::LineSegment::eval_ISO_DD()'],['../d2/d00/class_g2lib_1_1_poly_line.html#ae269cd41ebc0cc639cdee6ad114a3987',1,'G2lib::PolyLine::eval_ISO_DD()']]], + ['eval_5fiso_5fddd_379',['eval_ISO_DDD',['../dd/dd4/class_g2lib_1_1_biarc.html#a12996f6da5685c9067418d6e55401cbd',1,'G2lib::Biarc::eval_ISO_DDD()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a0d7ada81a007434555e771ff851172d1',1,'G2lib::BiarcList::eval_ISO_DDD()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a418db1b8bcb4dfcb31697669dfd12dff',1,'G2lib::ClothoidCurve::eval_ISO_DDD()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a63d6c83db9e36388de3bb97916981c54',1,'G2lib::ClothoidList::eval_ISO_DDD()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a91490373a921ef1a85f3dd091b2f6fc0',1,'G2lib::BaseCurve::eval_ISO_DDD()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a431f35ac7b0203e94720d663aa7a2b15',1,'G2lib::LineSegment::eval_ISO_DDD()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aaa6fa70d56a56521d30b0667e8087f37',1,'G2lib::PolyLine::eval_ISO_DDD()']]], + ['eval_5fsae_380',['eval_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#ae1b73c2a8be8d0b12179fb05d96c3828',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fd_381',['eval_SAE_D',['../d2/d03/class_g2lib_1_1_base_curve.html#a8071ba383b1f84381bc84c5d170ae664',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fdd_382',['eval_SAE_DD',['../d2/d03/class_g2lib_1_1_base_curve.html#a7e88be8a60c2520e5b0ab4aff1253b36',1,'G2lib::BaseCurve']]], + ['eval_5fsae_5fddd_383',['eval_SAE_DDD',['../d2/d03/class_g2lib_1_1_base_curve.html#abec3d37c0e957015e6458f46d7bacde1',1,'G2lib::BaseCurve']]], + ['evalpoly_384',['evalPoly',['../d5/d44/namespace_polynomial_roots.html#a10432c297cc45cf292ed919347b974c3',1,'PolynomialRoots']]], + ['evalpolyc_385',['evalPolyC',['../d5/d44/namespace_polynomial_roots.html#a1956d2646b1d57af53c90c5bd565b57f',1,'PolynomialRoots']]], + ['exists_386',['exists',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a862c6c67eafb4fdc8887aad5c83c9617',1,'GenericContainerNamespace::GenericContainer']]], + ['export_5fruby_387',['export_ruby',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a5bd9b243abdc482d64e6099bf6b634b8',1,'G2lib::ClothoidList']]], + ['export_5ftable_388',['export_table',['../d7/d02/class_g2lib_1_1_clothoid_list.html#a3e086852732f364db5dab16b76e526a6',1,'G2lib::ClothoidList']]] +]; diff --git a/docs/search/functions_5.html b/docs/search/functions_5.html new file mode 100644 index 00000000..9301d6b9 --- /dev/null +++ b/docs/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js new file mode 100644 index 00000000..ea8c3891 --- /dev/null +++ b/docs/search/functions_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['findst1_389',['findST1',['../df/d29/class_g2lib_1_1_biarc_list.html#a31cff7d5392895562ff9ab1a1e1f7b90',1,'G2lib::BiarcList::findST1(real_type x, real_type y, real_type &s, real_type &t) const'],['../df/d29/class_g2lib_1_1_biarc_list.html#ad90927940d68804de3ef085f7d084ac7',1,'G2lib::BiarcList::findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a828ea5831543d8f29266b59f96c608bf',1,'G2lib::ClothoidList::findST1(real_type x, real_type y, real_type &s, real_type &t) const'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#aa1446853b831ca9596af92d53fe7f17a',1,'G2lib::ClothoidList::findST1(int_type ibegin, int_type iend, real_type x, real_type y, real_type &s, real_type &t) const']]], + ['foundnan_390',['foundNaN',['../d1/d7c/namespace_utils.html#a50faa937431429ecf7c50d8e70cdeaf1',1,'Utils']]], + ['free_391',['free',['../dc/d87/class_utils_1_1_malloc.html#a7946c0a122234c57b2e5abc4e8b84fe1',1,'Utils::Malloc']]], + ['free_5fpointer_392',['free_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab40991f49a687d9fe0649b183c07376b',1,'GenericContainerNamespace::GenericContainer']]], + ['fresnelcs_393',['FresnelCS',['../d4/d9f/namespace_g2lib.html#aee78c857e298d1605987e48534793843',1,'G2lib::FresnelCS(real_type x, real_type &C, real_type &S)'],['../d4/d9f/namespace_g2lib.html#a14e2411861dfb4515b8924b03d5eb8be',1,'G2lib::FresnelCS(int_type nk, real_type x, real_type C[], real_type S[])']]] +]; diff --git a/docs/search/functions_6.html b/docs/search/functions_6.html new file mode 100644 index 00000000..9c4f5fc6 --- /dev/null +++ b/docs/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js new file mode 100644 index 00000000..a097307f --- /dev/null +++ b/docs/search/functions_6.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['generalizedfresnelcs_394',['GeneralizedFresnelCS',['../d4/d9f/namespace_g2lib.html#a38f18ccb6bd35e0f3170db935fc068bd',1,'G2lib::GeneralizedFresnelCS(int_type nk, real_type a, real_type b, real_type c, real_type intC[], real_type intS[])'],['../d4/d9f/namespace_g2lib.html#a67f7c38f4ad0d8256c2f4d0f92501bf2',1,'G2lib::GeneralizedFresnelCS(real_type a, real_type b, real_type c, real_type &intC, real_type &intS)']]], + ['genericcontainer_395',['GenericContainer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa2543089169900354b55f172e2dff970',1,'GenericContainerNamespace::GenericContainer::GenericContainer(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4bea3419030468416d93d3d3468e6777',1,'GenericContainerNamespace::GenericContainer::GenericContainer(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a32d20516280d8a3313fc44be0496f1cd',1,'GenericContainerNamespace::GenericContainer::GenericContainer(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad422925e066e05782c5999bdc61ed864',1,'GenericContainerNamespace::GenericContainer::GenericContainer(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a07f182889776a19e9975f3eb673a809d',1,'GenericContainerNamespace::GenericContainer::GenericContainer(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a38d1e04c9a37e1289483ddac61eacd76',1,'GenericContainerNamespace::GenericContainer::GenericContainer(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac24521570a5894f1fca30f61470708c2',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a88f6ba0d7c6d0a2c4fb2feba31cff638',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad4356b585b662519e34605f5ec6b4910',1,'GenericContainerNamespace::GenericContainer::GenericContainer(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2a684c74d7a3ba074bb048aa40e82996',1,'GenericContainerNamespace::GenericContainer::GenericContainer(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab39999dd73448231a3b3117ff82b2f6a',1,'GenericContainerNamespace::GenericContainer::GenericContainer(pointer_type a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7e31ee70962b33577eeeb370b90e9a37',1,'GenericContainerNamespace::GenericContainer::GenericContainer(GenericContainer const &gc)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac64935261c932bd9fd12d19938ed10d6',1,'GenericContainerNamespace::GenericContainer::GenericContainer()'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad1cc83158f98ae9bc02e06e15e051dec',1,'GenericContainerNamespace::GenericContainer::GenericContainer(bool const &a)']]], + ['get_5fbool_396',['get_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac0c0cc9907941a7b7e799e654fd1f1fc',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fbool_5fat_397',['get_bool_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0a89eb4c672c6f831bf4b3062fcaf61e',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fcomplex_398',['get_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8ac2be920a1f257a895f5da356a21d14',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fcomplex_5fat_399',['get_complex_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af14d31044a8237625e9e7a1f3b16baf0',1,'GenericContainerNamespace::GenericContainer::get_complex_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7b30d3fc75fa2c20592955e04d7c6db5',1,'GenericContainerNamespace::GenericContainer::get_complex_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fcomplex_5fnumber_400',['get_complex_number',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a719d2f3d23079e0fba5e1cf2df49064b',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fgc_5fat_401',['get_gc_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a63cb7f514e5f6f6b74f309387232ac9e',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fint_402',['get_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae9a0a49e8842e77e75f83bd5bb2d8fa6',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fint_5fat_403',['get_int_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a23cd423997c087bd3f8fcbe13c37824a',1,'GenericContainerNamespace::GenericContainer::get_int_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2b85ad43cc164f10c027dee275aabb40',1,'GenericContainerNamespace::GenericContainer::get_int_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5flong_404',['get_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab1282fb919afb9f0455197cb63631381',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5flong_5fat_405',['get_long_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3653108d11f4f79d9f7cba527ad66c78',1,'GenericContainerNamespace::GenericContainer::get_long_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a45a95c5e9f83ad327cc291301372bf76',1,'GenericContainerNamespace::GenericContainer::get_long_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fmap_406',['get_map',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8bc7d3baf57cc0f36b680a206a61688c',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5fcomplex_407',['get_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af29454ddaee03e24e586e5e5875b6d58',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5fint_408',['get_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac74ff909d8a59ab63683a9f082dad592',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5flong_409',['get_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0564cf6e6d7450f83a566d8332844bf7',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fmat_5freal_410',['get_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa69b4b2300c8f436f050e99f81019e8b',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnum_5felements_411',['get_num_elements',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a750918a1b1757883a30a999379beb136',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnumber_412',['get_number',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a023496e600d6af8cc7b0131bd282c483',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fnumber_5fat_413',['get_number_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#adf2c20edeacf707c9e6dcde296bb38c7',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fpointer_5fat_414',['get_pointer_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acd9006b2b64855230f4de6288f9ff10a',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5freal_415',['get_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4c0e7e26da290b3710090483b791dedb',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5freal_5fat_416',['get_real_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5a9f5c79a47308543c08246d3ad17190',1,'GenericContainerNamespace::GenericContainer::get_real_at(unsigned i, char const msg[]) const'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aeea637e808ada20266496c9dfb6cd5c7',1,'GenericContainerNamespace::GenericContainer::get_real_at(unsigned i, unsigned j, char const msg[]) const']]], + ['get_5fstring_417',['get_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8dd782a68b9c4a77896fac6690081815',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fstring_5fat_418',['get_string_at',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a40eaf47d705f5d81eade776ba14590f8',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5ftype_419',['get_type',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8eb71583cadd90c678411d81d9d2ead6',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5ftype_5fname_420',['get_type_name',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acc95eae1a5278b2689c0db61ccaa7487',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fbool_421',['get_vec_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a009ecb3ba195c3b221b636fc9be21e2c',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fcomplex_422',['get_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7a360729acc992c18eee51ac3f410aad',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fint_423',['get_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a8bf39568f9e65934b284f3db07ce48eb',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5flong_424',['get_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a771b2b5e322e07082484637a2fb90c47',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fpointer_425',['get_vec_pointer',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a16ad988ece9f58a8640ac910abf9bf70',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5freal_426',['get_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a905ff9792eeee80b5315cc33b4b56894',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvec_5fstring_427',['get_vec_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a84bd0056ff4b9476097cc930962eca3a',1,'GenericContainerNamespace::GenericContainer']]], + ['get_5fvector_428',['get_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a82c187e6a783622e53402f8d70a4e416',1,'GenericContainerNamespace::GenericContainer']]], + ['getnegativeroots_429',['getNegativeRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a58ddfc6317dad86057d6161f1c498317',1,'PolynomialRoots::Quadratic::getNegativeRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a7bef4c9418a7308b4f6b7a0a8cf37fbf',1,'PolynomialRoots::Cubic::getNegativeRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a7af065a783229bb7537550741c177682',1,'PolynomialRoots::Quartic::getNegativeRoots()']]], + ['getpositiveroots_430',['getPositiveRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ad53b8fdc5f6b4d517e450f115348053d',1,'PolynomialRoots::Quadratic::getPositiveRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ae064f673f4a9adb39374067972234b72',1,'PolynomialRoots::Cubic::getPositiveRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#af3cac92e66942add50f50efd54946ea0',1,'PolynomialRoots::Quartic::getPositiveRoots()']]], + ['getrealroots_431',['getRealRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a0870508a9856a9562500a4b9eb771e63',1,'PolynomialRoots::Quadratic::getRealRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ac5972d5a2e1b345f303b88cbd5b078fe',1,'PolynomialRoots::Cubic::getRealRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#ab891e8e38e581c5532059e2c1cd89269',1,'PolynomialRoots::Quartic::getRealRoots()']]], + ['gets0_432',['getS0',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a413e5767e3a07ee9ef4e554756306bd7',1,'G2lib::G2solve3arc']]], + ['gets1_433',['getS1',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a20c69bf8640e4512dd58ee94fa89665c',1,'G2lib::G2solve3arc']]], + ['getsm_434',['getSM',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#af4dbf3d620ca204cd5e6b2f4fa1b99be',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/functions_7.html b/docs/search/functions_7.html new file mode 100644 index 00000000..46b5c0f6 --- /dev/null +++ b/docs/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js new file mode 100644 index 00000000..4cc57faf --- /dev/null +++ b/docs/search/functions_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['id_435',['Id',['../de/d56/class_g2lib_1_1_b_box.html#a8bb398efc89d9eb075daef4567a5a6e6',1,'G2lib::BBox']]], + ['info_436',['info',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7992994055f43baa87fc1de676f852f2',1,'GenericContainerNamespace::GenericContainer::info()'],['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ade27a47e7fedd85e1c6c6594a9129785',1,'PolynomialRoots::Quadratic::info()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#aff682d02041f8492e06f7265a6f84bcf',1,'PolynomialRoots::Cubic::info()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a776a4f9c59f37989ff7210d230e97576',1,'PolynomialRoots::Quartic::info()']]], + ['integralcurvature2_437',['integralCurvature2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a7d64669124be63ab8c8d9bc092ad3956',1,'G2lib::G2solve3arc']]], + ['integraljerk2_438',['integralJerk2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a1af307129ab4626cfed0331845734ebe',1,'G2lib::G2solve3arc']]], + ['integralsnap2_439',['integralSnap2',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#a2fe47d885181f923dd5637ed38ed76ec',1,'G2lib::G2solve3arc']]], + ['intersect_440',['intersect',['../d5/d1e/class_g2lib_1_1_a_a_b_btree.html#af6d4320a6649e63c6ec6d8ccf828b626',1,'G2lib::AABBtree::intersect()'],['../d4/d9f/namespace_g2lib.html#af76e85d06ebb1983ab48ba391de0169f',1,'G2lib::intersect(BaseCurve const &obj1, BaseCurve const &obj2, IntersectList &ilist, bool swap_s_vals)']]], + ['intersect_5fiso_441',['intersect_ISO',['../d4/d9f/namespace_g2lib.html#a186697b462499b47e24ff961fd999fc2',1,'G2lib']]], + ['intersect_5fsae_442',['intersect_SAE',['../d4/d9f/namespace_g2lib.html#acdd344ff0a709df517956fc2e0545b2f',1,'G2lib']]], + ['intersectcirclecircle_443',['intersectCircleCircle',['../d4/d9f/namespace_g2lib.html#ae36e8b6d807fd513811a902aae403929',1,'G2lib']]], + ['ipos_444',['Ipos',['../de/d56/class_g2lib_1_1_b_box.html#ab57b93ed38844e1ee63a7bd699fca15c',1,'G2lib::BBox']]], + ['is_5fempty_445',['is_empty',['../dc/d87/class_utils_1_1_malloc.html#a50ff55be6ee5d9e07ca0e967c9b28760',1,'Utils::Malloc']]], + ['iscounterclockwise_446',['isCounterClockwise',['../d8/d7c/class_g2lib_1_1_triangle2_d.html#a94cd85d9a7546fe1fb18cca794bf3b35',1,'G2lib::Triangle2D::isCounterClockwise()'],['../d4/d9f/namespace_g2lib.html#aa74a7921fe7b6f963f181fff6a56e6b4',1,'G2lib::isCounterClockwise()']]], + ['isinside_447',['isInside',['../d8/d7c/class_g2lib_1_1_triangle2_d.html#a11ff99a05989018a2e08956cc8898a6c',1,'G2lib::Triangle2D']]], + ['ispointintriangle_448',['isPointInTriangle',['../d4/d9f/namespace_g2lib.html#a3635285692da7b1b56f84805b8d47879',1,'G2lib']]] +]; diff --git a/docs/search/functions_8.html b/docs/search/functions_8.html new file mode 100644 index 00000000..31a1d950 --- /dev/null +++ b/docs/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js new file mode 100644 index 00000000..b21fbf7c --- /dev/null +++ b/docs/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['join_449',['join',['../de/d56/class_g2lib_1_1_b_box.html#ad0aaba5511ff29c7e0fd0049ea0da67b',1,'G2lib::BBox']]] +]; diff --git a/docs/search/functions_9.html b/docs/search/functions_9.html new file mode 100644 index 00000000..9a8e4290 --- /dev/null +++ b/docs/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js new file mode 100644 index 00000000..6b1390eb --- /dev/null +++ b/docs/search/functions_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['kappa_450',['kappa',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a36ba3617c981e50be132e098d3ac5a12',1,'G2lib::ClothoidData']]], + ['kappabegin_451',['kappaBegin',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#ac7882ab98e3e8a4def89d21fdc8a2521',1,'G2lib::G2solve3arc']]], + ['kappaend_452',['kappaEnd',['../d1/dec/class_g2lib_1_1_g2solve3arc.html#afdf06c1e6fb7510fdff049a640f310fd',1,'G2lib::G2solve3arc']]] +]; diff --git a/docs/search/functions_a.html b/docs/search/functions_a.html new file mode 100644 index 00000000..5ecc152c --- /dev/null +++ b/docs/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js new file mode 100644 index 00000000..45537523 --- /dev/null +++ b/docs/search/functions_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['length_453',['length',['../dd/dd4/class_g2lib_1_1_biarc.html#a4afde4b515d06d18a470d79686190b43',1,'G2lib::Biarc::length()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a2082269ecc778ee1ef1675776deb8c79',1,'G2lib::BiarcList::length()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a6410a8c1b74849707ae202c82b1490c6',1,'G2lib::CircleArc::length()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a6b159f6828bc6c8ff7f8e97b18142e13',1,'G2lib::ClothoidCurve::length()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a0cfebb20680610a4b6e4602c96f18d7a',1,'G2lib::ClothoidList::length()'],['../d2/d03/class_g2lib_1_1_base_curve.html#a40882891d52eb76ff3394de836b2f4b8',1,'G2lib::BaseCurve::length()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#ae1f5ced93d8e2f5a10d18197fdb54691',1,'G2lib::LineSegment::length()'],['../d2/d00/class_g2lib_1_1_poly_line.html#aa6730d91c35c08c337dba5d9bd41f0ca',1,'G2lib::PolyLine::length()']]], + ['length_5fiso_454',['length_ISO',['../dd/dd4/class_g2lib_1_1_biarc.html#a71a86562c9808d074ad8092933d0e800',1,'G2lib::Biarc::length_ISO()'],['../df/d29/class_g2lib_1_1_biarc_list.html#a41911c8456e34a19f5bc3b931a598e57',1,'G2lib::BiarcList::length_ISO()'],['../d7/dd9/class_g2lib_1_1_circle_arc.html#a37c3aa23aaef5f09c72522e6ee26b412',1,'G2lib::CircleArc::length_ISO()'],['../dc/d27/class_g2lib_1_1_clothoid_curve.html#a3c43b33f8a89c547c1f748a9e5663654',1,'G2lib::ClothoidCurve::length_ISO()'],['../d7/d02/class_g2lib_1_1_clothoid_list.html#a6cca689e13bdc838660e50c64c43215d',1,'G2lib::ClothoidList::length_ISO()'],['../d2/d03/class_g2lib_1_1_base_curve.html#aba02a6e87f8e1c7e07c84c4ea05f14d2',1,'G2lib::BaseCurve::length_ISO()'],['../d9/d0c/class_g2lib_1_1_line_segment.html#a70b2930a2bb557b8406d4a673228ea0e',1,'G2lib::LineSegment::length_ISO()'],['../d2/d00/class_g2lib_1_1_poly_line.html#a291000c70a5c6700441b7b65567e6ac7',1,'G2lib::PolyLine::length_ISO()']]], + ['length_5fsae_455',['length_SAE',['../d2/d03/class_g2lib_1_1_base_curve.html#af4e7c308bc05c9e51ffa393bd592c3b7',1,'G2lib::BaseCurve']]], + ['linesegment_456',['LineSegment',['../d9/d0c/class_g2lib_1_1_line_segment.html#ad11d902f20b3b8f3a7f6456f297d0a99',1,'G2lib::LineSegment']]], + ['load_457',['load',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab70cdaf6dae065e0dd7d2c71a59f01e7',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html new file mode 100644 index 00000000..e301fedd --- /dev/null +++ b/docs/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js new file mode 100644 index 00000000..c27ecc22 --- /dev/null +++ b/docs/search/functions_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['machineeps_458',['machineEps',['../d1/d7c/namespace_utils.html#ac48424f9b5e82381d95f8c3f805df7da',1,'Utils::machineEps()'],['../d1/d7c/namespace_utils.html#a90e8ad4441e2e6555c65774c565f1b9e',1,'Utils::machineEps()']]], + ['malloc_459',['Malloc',['../dc/d87/class_utils_1_1_malloc.html#a61987ff20d18c3f5bb43bda04a9cd253',1,'Utils::Malloc']]], + ['maxdistance_460',['maxDistance',['../de/d56/class_g2lib_1_1_b_box.html#a9e35474d66ca0ff168dff368476066d5',1,'G2lib::BBox']]], + ['maximumvalue_461',['maximumValue',['../d1/d7c/namespace_utils.html#a1fa85a532b4b2fdd3eb8bc2252942348',1,'Utils::maximumValue()'],['../d1/d7c/namespace_utils.html#a8741a2e2bf4ee789b4d18fc11e89f174',1,'Utils::maximumValue()']]], + ['minimumvalue_462',['minimumValue',['../d1/d7c/namespace_utils.html#a3c1f7495b694dc45db206ed90e10b910',1,'Utils::minimumValue()'],['../d1/d7c/namespace_utils.html#acfbf9ec3663477187b89b462a092c66b',1,'Utils::minimumValue()']]], + ['minmax3_463',['minmax3',['../d4/d9f/namespace_g2lib.html#adcb636fc9381075c0ce6750a07f15a41',1,'G2lib']]], + ['must_5fbe_5fempty_464',['must_be_empty',['../dc/d87/class_utils_1_1_malloc.html#a63818da423ae026f18371addf09e085e',1,'Utils::Malloc']]] +]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html new file mode 100644 index 00000000..c4f32687 --- /dev/null +++ b/docs/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js new file mode 100644 index 00000000..2050b4cb --- /dev/null +++ b/docs/search/functions_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['nan_465',['NaN',['../d1/d7c/namespace_utils.html#a8b9a28a18d7ba1b5d5bc16704fcc3f75',1,'Utils::NaN()'],['../d1/d7c/namespace_utils.html#a5016ec1ff7d16d8e7e81687c86fe7ee8',1,'Utils::NaN()']]], + ['numcomplexroots_466',['numComplexRoots',['../d8/dec/class_polynomial_roots_1_1_quartic.html#a0932673f6b5a4fae631a5d27b2fe860a',1,'PolynomialRoots::Quartic']]], + ['numrealroots_467',['numRealRoots',['../d8/dec/class_polynomial_roots_1_1_quartic.html#af647c59add0df604161cf6e3bc64e1c0',1,'PolynomialRoots::Quartic']]], + ['numroots_468',['numRoots',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#a0acee845244aae9f51add7dd478cc30d',1,'PolynomialRoots::Quadratic::numRoots()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#a86871c6ceafe895744a5bd0dade70779',1,'PolynomialRoots::Cubic::numRoots()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a40ab733d024bb691c5a969db3369c43c',1,'PolynomialRoots::Quartic::numRoots()']]] +]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html new file mode 100644 index 00000000..7a1ed065 --- /dev/null +++ b/docs/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js new file mode 100644 index 00000000..c12f03e5 --- /dev/null +++ b/docs/search/functions_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_28_29_469',['operator()',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a43b3ad295d58bd6c5c6ad38da74fa3f4',1,'GenericContainerNamespace::GenericContainer::operator()(unsigned i, char const msg[]=nullptr)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a46d76421ff4d771b56b6e405dc433ebb',1,'GenericContainerNamespace::GenericContainer::operator()(std::string const &s, char const msg[]=nullptr)'],['../dc/d87/class_utils_1_1_malloc.html#adc8042e4c7e2013628c9a65760ce55a9',1,'Utils::Malloc::operator()()']]], + ['operator_3d_470',['operator=',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#acacfcbfa3495d42a3084b9568d1330cb',1,'GenericContainerNamespace::GenericContainer::operator=(bool const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab325271d3b21303a5f5fbc3065e93124',1,'GenericContainerNamespace::GenericContainer::operator=(uint_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a752dfc97c23c1b862bbb8fcc830ed451',1,'GenericContainerNamespace::GenericContainer::operator=(int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0b5a443ff826cd252f650789fccb7eab',1,'GenericContainerNamespace::GenericContainer::operator=(ulong_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2662174dae4baffc958b589d8dede997',1,'GenericContainerNamespace::GenericContainer::operator=(long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a28faf5caad9ad1b1ee44617b724fa3a7',1,'GenericContainerNamespace::GenericContainer::operator=(float const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6c890078a7428595b45cdee08e265e67',1,'GenericContainerNamespace::GenericContainer::operator=(double const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1464e6620f3dac52a97c9c9cc3220a53',1,'GenericContainerNamespace::GenericContainer::operator=(std::complex< float > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3e6af6bddca953f956d73dbe8d1dd712',1,'GenericContainerNamespace::GenericContainer::operator=(std::complex< double > const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aaa3fbd6305ee340dfc6d2d2c5d773531',1,'GenericContainerNamespace::GenericContainer::operator=(vec_bool_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac365f0f476f6735c61f0adef542ef528',1,'GenericContainerNamespace::GenericContainer::operator=(vec_int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a5e9aa6573c509afd8a8ae72faae97137',1,'GenericContainerNamespace::GenericContainer::operator=(vec_long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a68ae16cec0cb0748feedc8edb7a1ab7b',1,'GenericContainerNamespace::GenericContainer::operator=(vec_real_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2b9755c337868af951ecf25607f03084',1,'GenericContainerNamespace::GenericContainer::operator=(vec_complex_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6ed4fa99af9b7415da142a974af92190',1,'GenericContainerNamespace::GenericContainer::operator=(vec_string_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a1871e64523447f11442b78b796b1be80',1,'GenericContainerNamespace::GenericContainer::operator=(mat_int_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a7f09f2e7089d172e4d7b3313888cb0f8',1,'GenericContainerNamespace::GenericContainer::operator=(mat_long_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a43b4e488b337430e1734a39de9aff84d',1,'GenericContainerNamespace::GenericContainer::operator=(mat_real_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a638404c1f7dc86803d36e24deb41806e',1,'GenericContainerNamespace::GenericContainer::operator=(mat_complex_type const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a614eec0173b18f5802ccb5de7daa6e1b',1,'GenericContainerNamespace::GenericContainer::operator=(char const a[])'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a22b528b0bba382927925a9c2dc7c2a7a',1,'GenericContainerNamespace::GenericContainer::operator=(std::string const &a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a776825c809fb6c4369eb2ffc62bd422e',1,'GenericContainerNamespace::GenericContainer::operator=(pointer_type a)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#abd683b109b09a3d3b3690990cfe3ef09',1,'GenericContainerNamespace::GenericContainer::operator=(GenericContainer const &a)']]], + ['operator_5b_5d_471',['operator[]',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ab344ed3c4a45125497924e7e69bc2f88',1,'GenericContainerNamespace::GenericContainer']]], + ['optimized_5fsample_5fiso_472',['optimized_sample_ISO',['../dc/d27/class_g2lib_1_1_clothoid_curve.html#aa6ab52b77c6879ac5bb9e582579e9d46',1,'G2lib::ClothoidCurve']]] +]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html new file mode 100644 index 00000000..22d2a6bf --- /dev/null +++ b/docs/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js new file mode 100644 index 00000000..94cc1b74 --- /dev/null +++ b/docs/search/functions_e.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['pointinsidecircle_473',['pointInsideCircle',['../d4/d9f/namespace_g2lib.html#a787008f61e79e40319f40bdc503f3136',1,'G2lib']]], + ['print_5fcontent_5ftypes_474',['print_content_types',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ad432e3ba50c9d8b8eb52444d91f2702b',1,'GenericContainerNamespace::GenericContainer']]], + ['printtrace_475',['printTrace',['../d1/d7c/namespace_utils.html#ae0f9deab4d6a564dea82a5c5f81dadad',1,'Utils']]], + ['projectpointoncircle_476',['projectPointOnCircle',['../d4/d9f/namespace_g2lib.html#a8829b54b63a6e1880f15ccdfe57c2ecb',1,'G2lib']]], + ['projectpointoncirclearc_477',['projectPointOnCircleArc',['../d4/d9f/namespace_g2lib.html#acf4b8b1e2907ced4f4097f9dc5e301c3',1,'G2lib']]], + ['promote_5fto_5fcomplex_478',['promote_to_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa551b728b6ef064a631e193e681928a2',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fint_479',['promote_to_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a85b5e9c216977ac680a8773fce10bc47',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5flong_480',['promote_to_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae26bd10677f5cd11b2b856e10e3fe3db',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5fcomplex_481',['promote_to_mat_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#af2eb0acb621f3df216b9398bbb3922fd',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5fint_482',['promote_to_mat_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae1b3882464bc1a80b6bd160fbd28bc90',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5flong_483',['promote_to_mat_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac00a4695b4375fd8cdcdeb1d2a00435c',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fmat_5freal_484',['promote_to_mat_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aef320936305bf3746142f73dfdb1cbd9',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5freal_485',['promote_to_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a752f94f7dfb50b0445c21ff13910c82b',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5fcomplex_486',['promote_to_vec_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a6d33236f26b3affacea012dad6302927',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5fint_487',['promote_to_vec_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a074f4af215a8acbc669a009e455cfcad',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5flong_488',['promote_to_vec_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a847f1a1b419c38367e9aeee86e5a5344',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvec_5freal_489',['promote_to_vec_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a45aaf134cdd8e002ec5459e8e216ec81',1,'GenericContainerNamespace::GenericContainer']]], + ['promote_5fto_5fvector_490',['promote_to_vector',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a63651ab97042f7589240a1af4a923017',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fbool_491',['push_bool',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#aa7d87c5807c4f1c79376002ee51c1339',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fcomplex_492',['push_complex',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a0678141badc18cf1e3fe2457d26ae2d9',1,'GenericContainerNamespace::GenericContainer::push_complex(complex_type &)'],['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a2343e8746f0c764f2afe03d3d84c4e37',1,'GenericContainerNamespace::GenericContainer::push_complex(real_type re, real_type im)']]], + ['push_5fint_493',['push_int',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a4d780248125bd38e078221f3ecff708d',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5flong_494',['push_long',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a3babc81e25d1425152131e0cde3c86e6',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5freal_495',['push_real',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ac1a2b9c21e6f960f4144aa909335948e',1,'GenericContainerNamespace::GenericContainer']]], + ['push_5fstring_496',['push_string',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#ae48ebcdf7f6e01389db5ea6b3798ef9e',1,'GenericContainerNamespace::GenericContainer']]] +]; diff --git a/docs/search/functions_f.html b/docs/search/functions_f.html new file mode 100644 index 00000000..54b7dee0 --- /dev/null +++ b/docs/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js new file mode 100644 index 00000000..d07680bb --- /dev/null +++ b/docs/search/functions_f.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['rangesymm_497',['rangeSymm',['../d4/d9f/namespace_g2lib.html#aeed539405134d26c4315fd644d5fa2ca',1,'G2lib']]], + ['readformatteddata_498',['readFormattedData',['../de/dfa/class_generic_container_namespace_1_1_generic_container.html#a9aaba1e918c5f842cc162b0ae2eb7fa8',1,'GenericContainerNamespace::GenericContainer']]], + ['real_5froot0_499',['real_root0',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#afbe2175aa53d7e9edaaf26a3af7f9eb2',1,'PolynomialRoots::Quadratic::real_root0()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ac93bcd6cd2f890e5154ef7601ea927f8',1,'PolynomialRoots::Cubic::real_root0()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a306b9920c4cba27dc95b0e5ebf2c436b',1,'PolynomialRoots::Quartic::real_root0()']]], + ['real_5froot1_500',['real_root1',['../d5/ded/class_polynomial_roots_1_1_quadratic.html#ac37348dfcf03d23ed5257a431e0fda0a',1,'PolynomialRoots::Quadratic::real_root1()'],['../d9/df7/class_polynomial_roots_1_1_cubic.html#ad856c3f23739fd6d211e3fc380746bff',1,'PolynomialRoots::Cubic::real_root1()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#aa98bd3956e05f5f7a15c811baf187bda',1,'PolynomialRoots::Quartic::real_root1()']]], + ['real_5froot2_501',['real_root2',['../d9/df7/class_polynomial_roots_1_1_cubic.html#a507800fa5c1735b7b71652877de3a4b9',1,'PolynomialRoots::Cubic::real_root2()'],['../d8/dec/class_polynomial_roots_1_1_quartic.html#a9cf3f98b2884f707b56ef49df37d1516',1,'PolynomialRoots::Quartic::real_root2() const']]], + ['real_5froot3_502',['real_root3',['../d8/dec/class_polynomial_roots_1_1_quartic.html#adde993af727a84f8bf3fbda30a387c61',1,'PolynomialRoots::Quartic']]], + ['roots_503',['roots',['../d5/d44/namespace_polynomial_roots.html#abcfe95455907d440930b77f57ca6d965',1,'PolynomialRoots']]], + ['run_504',['run',['../d2/d25/class_utils_1_1_thread_pool.html#a62919cad630c39985ed59609c9c6e5cb',1,'Utils::ThreadPool']]] +]; diff --git a/docs/search/groups_0.html b/docs/search/groups_0.html new file mode 100644 index 00000000..c600b497 --- /dev/null +++ b/docs/search/groups_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/groups_0.js b/docs/search/groups_0.js new file mode 100644 index 00000000..5e48c412 --- /dev/null +++ b/docs/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['container_20c_20interface_571',['Container C interface',['../d3/d67/group___generic.html',1,'']]] +]; diff --git a/docs/search/mag_sel.svg b/docs/search/mag_sel.svg new file mode 100644 index 00000000..03626f64 --- /dev/null +++ b/docs/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/search/namespaces_0.html b/docs/search/namespaces_0.html new file mode 100644 index 00000000..21db2c3a --- /dev/null +++ b/docs/search/namespaces_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js new file mode 100644 index 00000000..b8867f9c --- /dev/null +++ b/docs/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['g2lib_324',['G2lib',['../d4/d9f/namespace_g2lib.html',1,'']]] +]; diff --git a/docs/search/namespaces_1.html b/docs/search/namespaces_1.html new file mode 100644 index 00000000..a01efeb1 --- /dev/null +++ b/docs/search/namespaces_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/namespaces_1.js b/docs/search/namespaces_1.js new file mode 100644 index 00000000..1abe50a5 --- /dev/null +++ b/docs/search/namespaces_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['polynomialroots_325',['PolynomialRoots',['../d5/d44/namespace_polynomial_roots.html',1,'']]] +]; diff --git a/docs/search/namespaces_2.html b/docs/search/namespaces_2.html new file mode 100644 index 00000000..b46f2a5d --- /dev/null +++ b/docs/search/namespaces_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/namespaces_2.js b/docs/search/namespaces_2.js new file mode 100644 index 00000000..9acfd0e9 --- /dev/null +++ b/docs/search/namespaces_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utils_326',['Utils',['../d1/d7c/namespace_utils.html',1,'']]] +]; diff --git a/docs/search/nomatches.html b/docs/search/nomatches.html new file mode 100644 index 00000000..2b9360b6 --- /dev/null +++ b/docs/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/search/search.css b/docs/search/search.css new file mode 100644 index 00000000..9074198f --- /dev/null +++ b/docs/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/search/search.js b/docs/search/search.js new file mode 100644 index 00000000..fb226f73 --- /dev/null +++ b/docs/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/docs/search/search_r.png b/docs/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js new file mode 100644 index 00000000..b89b86b9 --- /dev/null +++ b/docs/search/searchdata.js @@ -0,0 +1,30 @@ +var indexSectionsWithContent = +{ + 0: "abcdefgijklmnopqrstuwxy~", + 1: "abcglmpqrstw", + 2: "gpu", + 3: "abcdefgijklmnoprstwxy~", + 4: "dkmstxy", + 5: "c" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "functions", + 4: "variables", + 5: "groups" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Namespaces", + 3: "Functions", + 4: "Variables", + 5: "Modules" +}; + diff --git a/docs/search/variables_0.html b/docs/search/variables_0.html new file mode 100644 index 00000000..1e477c08 --- /dev/null +++ b/docs/search/variables_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js new file mode 100644 index 00000000..11f7d62e --- /dev/null +++ b/docs/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dk_560',['dk',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a8a733f1ca53db3d41d0a8217f5f9cea3',1,'G2lib::ClothoidData']]] +]; diff --git a/docs/search/variables_1.html b/docs/search/variables_1.html new file mode 100644 index 00000000..ea73d9a4 --- /dev/null +++ b/docs/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js new file mode 100644 index 00000000..912a3e84 --- /dev/null +++ b/docs/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kappa0_561',['kappa0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a83d3f26427d6b38c5fabdd6b97bc7eb1',1,'G2lib::ClothoidData']]] +]; diff --git a/docs/search/variables_2.html b/docs/search/variables_2.html new file mode 100644 index 00000000..0580462e --- /dev/null +++ b/docs/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_2.js b/docs/search/variables_2.js new file mode 100644 index 00000000..321908d7 --- /dev/null +++ b/docs/search/variables_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['m_5f1_5fsqrt_5fpi_562',['m_1_sqrt_pi',['../d4/d9f/namespace_g2lib.html#ab7ae60f08d4dcaa2b289bdd7bb3dc4ee',1,'G2lib']]], + ['machepsi_563',['machepsi',['../d4/d9f/namespace_g2lib.html#a87e08bc343d60eadd2938d68ebc1f61b',1,'G2lib']]], + ['machepsi10_564',['machepsi10',['../d4/d9f/namespace_g2lib.html#a22dc08fd48bd175798c0120ad68126f6',1,'G2lib']]], + ['machepsi100_565',['machepsi100',['../d4/d9f/namespace_g2lib.html#a83d7ce40a3e4a860b91dd8df81408892',1,'G2lib']]], + ['machepsi1000_566',['machepsi1000',['../d4/d9f/namespace_g2lib.html#a4e46ee577d28382a45d279842036eb86',1,'G2lib']]] +]; diff --git a/docs/search/variables_3.html b/docs/search/variables_3.html new file mode 100644 index 00000000..0d69e761 --- /dev/null +++ b/docs/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js new file mode 100644 index 00000000..e6b8c52f --- /dev/null +++ b/docs/search/variables_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sqrtmachepsi_567',['sqrtMachepsi',['../d4/d9f/namespace_g2lib.html#ae2356d66f8dc864eddfdd3ad1db95266',1,'G2lib']]] +]; diff --git a/docs/search/variables_4.html b/docs/search/variables_4.html new file mode 100644 index 00000000..a4b6506b --- /dev/null +++ b/docs/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_4.js b/docs/search/variables_4.js new file mode 100644 index 00000000..4594657d --- /dev/null +++ b/docs/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['theta0_568',['theta0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a26adf754888519b16ac5729be60058b2',1,'G2lib::ClothoidData']]] +]; diff --git a/docs/search/variables_5.html b/docs/search/variables_5.html new file mode 100644 index 00000000..7e345d16 --- /dev/null +++ b/docs/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js new file mode 100644 index 00000000..eae7ad8a --- /dev/null +++ b/docs/search/variables_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x0_569',['x0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#ab33fb67bfc9a15010c574bc84e6319e3',1,'G2lib::ClothoidData']]] +]; diff --git a/docs/search/variables_6.html b/docs/search/variables_6.html new file mode 100644 index 00000000..7d48e75e --- /dev/null +++ b/docs/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js new file mode 100644 index 00000000..2998ef47 --- /dev/null +++ b/docs/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['y0_570',['y0',['../dc/d5d/class_g2lib_1_1_clothoid_data.html#a80102e5a1dde8d7f6df03b9d63bb0380',1,'G2lib::ClothoidData']]] +]; diff --git a/docs/splitbar.png b/docs/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/docs/sync_off.png b/docs/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/docs/sync_on.png b/docs/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/docs/tab_a.png b/docs/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/docs/tab_b.png b/docs/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/docs/tabs.css b/docs/tabs.css new file mode 100644 index 00000000..85a0cd5b --- /dev/null +++ b/docs/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file