diff --git a/build/CMakeFiles/HLlib.dir/compiler_depend.internal b/build/CMakeFiles/HLlib.dir/compiler_depend.internal index 83d8b6d..8022423 100644 --- a/build/CMakeFiles/HLlib.dir/compiler_depend.internal +++ b/build/CMakeFiles/HLlib.dir/compiler_depend.internal @@ -220,6 +220,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o /usr/include/c++/11.2.0/tr1/poly_hermite.tcc /usr/include/c++/11.2.0/tr1/poly_laguerre.tcc /usr/include/c++/11.2.0/tr1/riemann_zeta.tcc + /usr/include/c++/11.2.0/utility + /usr/include/c++/11.2.0/bits/stl_relops.h /home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h /usr/include/c++/11.2.0/set /usr/include/c++/11.2.0/bits/stl_tree.h diff --git a/build/CMakeFiles/HLlib.dir/compiler_depend.make b/build/CMakeFiles/HLlib.dir/compiler_depend.make index bbfcff4..ff7e373 100644 --- a/build/CMakeFiles/HLlib.dir/compiler_depend.make +++ b/build/CMakeFiles/HLlib.dir/compiler_depend.make @@ -219,6 +219,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \ /usr/include/c++/11.2.0/tr1/poly_hermite.tcc \ /usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \ /usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \ + /usr/include/c++/11.2.0/utility \ + /usr/include/c++/11.2.0/bits/stl_relops.h \ ../src/HiddenLines.h \ /usr/include/c++/11.2.0/set \ /usr/include/c++/11.2.0/bits/stl_tree.h \ @@ -270,6 +272,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \ /usr/include/c++/11.2.0/x86_64-pc-linux-gnu/bits/c++io.h: +/usr/include/c++/11.2.0/bits/stl_relops.h: + /usr/include/c++/11.2.0/fstream: /usr/include/c++/11.2.0/bits/vector.tcc: @@ -534,6 +538,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: ../src/HiddenLines.cpp \ /usr/include/bits/types/time_t.h: +/usr/include/c++/11.2.0/utility: + /usr/include/c++/11.2.0/debug/debug.h: /usr/include/c++/11.2.0/bits/predefined_ops.h: diff --git a/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o b/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o index 7272f45..7b598d5 100644 Binary files a/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o and b/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o differ diff --git a/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o.d b/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o.d index 164ccd6..b05846e 100644 --- a/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o.d +++ b/build/CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o.d @@ -158,6 +158,8 @@ CMakeFiles/HLlib.dir/src/HiddenLines.cpp.o: \ /usr/include/c++/11.2.0/tr1/poly_hermite.tcc \ /usr/include/c++/11.2.0/tr1/poly_laguerre.tcc \ /usr/include/c++/11.2.0/tr1/riemann_zeta.tcc \ + /usr/include/c++/11.2.0/utility \ + /usr/include/c++/11.2.0/bits/stl_relops.h \ /home/noah/Documents/School/CS-7353_Analysis-of-Algorithms/HW/HW4/src/HiddenLines.h \ /usr/include/c++/11.2.0/set /usr/include/c++/11.2.0/bits/stl_tree.h \ /usr/include/c++/11.2.0/ext/aligned_buffer.h \ diff --git a/build/CMakeFiles/main.dir/src/main.cpp.o b/build/CMakeFiles/main.dir/src/main.cpp.o index 0024c01..33bc6bf 100644 Binary files a/build/CMakeFiles/main.dir/src/main.cpp.o and b/build/CMakeFiles/main.dir/src/main.cpp.o differ diff --git a/build/libHLlib.a b/build/libHLlib.a index 8f362f8..160f57f 100644 Binary files a/build/libHLlib.a and b/build/libHLlib.a differ diff --git a/build/main b/build/main index 683145c..e22dc28 100755 Binary files a/build/main and b/build/main differ diff --git a/src/HiddenLines.cpp b/src/HiddenLines.cpp index 891cff0..af88472 100644 --- a/src/HiddenLines.cpp +++ b/src/HiddenLines.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "HiddenLines.h" @@ -17,13 +18,16 @@ HL::HL() void HL::print_sol() { - std::cout << "Not yet implemented" << std::endl; + for(auto itr = sol.begin(); itr != sol.end(); itr++) + std::cout << "Line ID " << std::get<0>(*itr) << " visible in range (" << + std::get<0>(std::get<1>(*itr)) << + "," << std::get<1>(std::get<1>(*itr)) << ")" << std::endl; } //Divide and Conquer Strategy using recursive call to divide ls and merge using merge() std::set HL::gen_sol(std::set& ls){ + HL inst = *this; if (ls.size() > 2){ - HL inst = *this; //Create left and right half sets int split = ceil(ls.size()/2); @@ -49,8 +53,8 @@ std::set HL::gen_sol(std::set& ls){ //Set with 2 lines is a base case: both are visible at +-inf respectively, and intersection is where they change //visibility else if (ls.size() == 2){ - auto l1 = *(ls.begin()); - auto l2 = *(ls.end()); + Line l1 = *(ls.begin()); + Line l2 = *(ls.end()); double isec = (l2.get_ycept() - l1.get_ycept())/(l1.get_slope() - l2.get_slope()); //Smaller Slope: vis from isec to inf @@ -62,6 +66,12 @@ std::set HL::gen_sol(std::set& ls){ l2.set_vis_start(-std::numeric_limits::infinity()); l2.set_vis_end(isec); + //Insert partial solutions + sol.insert(std::make_pair(l1.get_id(), std::make_pair(l1.get_vis_start(), l1.get_vis_end()))); + sol.insert(std::make_pair(l2.get_id(), std::make_pair(l2.get_vis_start(), l2.get_vis_end()))); + + inst.print_sol(); + return ls; } @@ -74,7 +84,9 @@ std::set HL::gen_sol(std::set& ls){ return ls; } - return sol; + //return sol; + std::set dummy; + return dummy; } std::set HL::construct_HWprob(){ @@ -145,5 +157,7 @@ std::set HL::get_lines(){ } std::set HL::get_sol(){ - return sol; + std::set dummy; + return dummy; + //return sol; } \ No newline at end of file diff --git a/src/HiddenLines.h b/src/HiddenLines.h index 387ff33..e67bc7d 100644 --- a/src/HiddenLines.h +++ b/src/HiddenLines.h @@ -17,9 +17,9 @@ class HL std::set get_sol(); private: - std::set sol; + //Solution is in form Line ID + std::set>> sol; std::set lines; - std::set> isec; }; std::set merge(std::set lh, std::set rh);