├── doc ├── html │ ├── bc_s.png │ ├── bdwn.png │ ├── doc.png │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── closed.png │ ├── doxygen.png │ ├── index.html │ ├── sync_on.png │ ├── annotated.html │ ├── folderopen.png │ ├── hierarchy.html │ ├── splitbar.png │ ├── sync_off.png │ ├── folderclosed.png │ ├── search │ │ ├── close.png │ │ ├── mag_sel.png │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── all_11.js │ │ ├── classes_9.js │ │ ├── variables_6.js │ │ ├── all_1.js │ │ ├── functions_1.js │ │ ├── all_a.js │ │ ├── variables_1.js │ │ ├── variables_3.js │ │ ├── variables_5.js │ │ ├── variables_7.js │ │ ├── enums_0.js │ │ ├── enumvalues_0.js │ │ ├── enumvalues_1.js │ │ ├── enumvalues_2.js │ │ ├── variables_2.js │ │ ├── variables_8.js │ │ ├── functions_3.js │ │ ├── variables_0.js │ │ ├── functions_4.js │ │ ├── classes_0.js │ │ ├── functions_b.js │ │ ├── nomatches.html │ │ ├── searchdata.js │ │ ├── functions_9.js │ │ ├── all_4.js │ │ ├── classes_a.js │ │ ├── classes_4.js │ │ ├── classes_5.js │ │ ├── classes_8.js │ │ ├── classes_7.js │ │ ├── classes_6.js │ │ ├── functions_7.js │ │ ├── all_f.js │ │ ├── classes_2.js │ │ ├── functions_5.js │ │ ├── all_3.js │ │ ├── all_10.js │ │ ├── classes_1.js │ │ ├── all_0.html │ │ ├── all_1.html │ │ ├── all_2.html │ │ ├── all_3.html │ │ ├── all_4.html │ │ ├── all_5.html │ │ ├── all_6.html │ │ ├── all_7.html │ │ ├── all_8.html │ │ ├── all_9.html │ │ ├── all_a.html │ │ ├── all_b.html │ │ ├── all_c.html │ │ ├── all_d.html │ │ ├── all_e.html │ │ ├── all_f.html │ │ ├── all_10.html │ │ ├── all_11.html │ │ ├── enums_0.html │ │ ├── classes_0.html │ │ ├── classes_1.html │ │ ├── classes_2.html │ │ ├── classes_3.html │ │ ├── classes_4.html │ │ ├── classes_5.html │ │ ├── classes_6.html │ │ ├── classes_7.html │ │ ├── classes_8.html │ │ ├── classes_9.html │ │ ├── classes_a.html │ │ ├── enumvalues_0.html │ │ ├── enumvalues_1.html │ │ ├── enumvalues_2.html │ │ ├── functions_0.html │ │ ├── functions_1.html │ │ ├── functions_2.html │ │ ├── functions_3.html │ │ ├── functions_4.html │ │ ├── functions_5.html │ │ ├── functions_6.html │ │ ├── functions_7.html │ │ ├── functions_8.html │ │ ├── functions_9.html │ │ ├── functions_a.html │ │ ├── functions_b.html │ │ ├── functions_c.html │ │ ├── functions_d.html │ │ ├── variables_0.html │ │ ├── variables_1.html │ │ ├── variables_2.html │ │ ├── variables_3.html │ │ ├── variables_4.html │ │ ├── variables_5.html │ │ ├── variables_6.html │ │ ├── variables_7.html │ │ ├── variables_8.html │ │ ├── classes_3.js │ │ ├── all_c.js │ │ ├── functions_d.js │ │ ├── functions_a.js │ │ ├── all_5.js │ │ ├── functions_c.js │ │ ├── all_b.js │ │ ├── all_d.js │ │ ├── all_7.js │ │ ├── all_e.js │ │ ├── functions_8.js │ │ ├── all_2.js │ │ ├── functions_2.js │ │ ├── all_8.js │ │ ├── all_0.js │ │ └── functions_0.js │ ├── debug.log │ ├── visibility__solver_8h_source.html │ ├── classvisilib_1_1_visibility_solver.html │ ├── classvisilib_1_1_visibility_solver.png │ ├── visibility__exact__query_8h_source.html │ ├── classvisilib_1_1_silhouette_container.png │ ├── classvisilib_1_1_visibility_exact_query.png │ ├── visibility__aperture__finder_8h_source.html │ ├── classvisilib_1_1_i_visibility_exact_query.png │ ├── classvisilib_1_1_visibility_exact_query__.png │ ├── classvisilib_1_1_silhouette_container_embree.png │ ├── classvisilib_1_1_visibility_aperture_finder.html │ ├── classvisilib_1_1_visibility_aperture_finder.png │ ├── structvisilib_1_1_triangle_mesh_description.png │ ├── structvisilib_1_1_discrete_geometry_description.png │ ├── structvisilib_1_1_geometry_discrete_mesh_description.png │ ├── structvisilib_1_1_geometry_triangle_mesh_description.png │ ├── menu.js │ ├── functions_enum.html │ ├── dir_b6c2a257bfab6380ca9b3cb94b12cb25.html │ └── dir_a031cde05aa4de998632f6e6ef4c5e1a.html └── latex │ ├── structvisilib_1_1_intersect_context_multi_hit.tex │ ├── structvisilib_1_1_geometry_intersect_context_multi_hit.tex │ ├── structvisilib_1_1_silhouette_1_1_hash.tex │ ├── structvisilib_1_1_ray_multi_hit.tex │ ├── structvisilib_1_1_geometry_ray_multi_hit.tex │ ├── structvisilib_1_1_triangle_mesh_description.tex │ ├── structvisilib_1_1_geometry_triangle_mesh_description.tex │ ├── structvisilib_1_1_silhouette_edge.tex │ └── structvisilib_1_1_discrete_geometry_description.tex ├── paper └── paper_egsr_2005.pdf ├── visilib ├── visibility_solver.h ├── external │ └── convexHull │ │ └── convexHull.h ├── geometry_position_type.h ├── visilib_core.h ├── visibility_ray.h ├── geometry_aabbox.h ├── plucker_polytope_complex.h ├── geometry_mesh_description.h └── CMakeLists.txt ├── configure.sh ├── demo ├── external │ └── freeglut │ │ ├── x64 │ │ ├── freeglut.dll │ │ └── freeglut.lib │ │ ├── Win32 │ │ ├── freeglut.dll │ │ └── freeglut.lib │ │ ├── include │ │ └── GL │ │ │ ├── glut.h │ │ │ └── freeglut.h │ │ └── LICENSE.txt ├── CMakeLists.txt ├── demo_debug_visualisation_gl.h └── demo_helper.h ├── generateProject.sh ├── .github └── workflows │ └── c-cpp.yml ├── test ├── src │ ├── test_definition.h │ └── test_full.cpp └── CMakeLists.txt ├── cmake └── modules │ ├── FindGLUT.cmake │ ├── FindLEDA.cmake │ ├── FindEmbree.cmake │ └── FindCGAL.cmake └── generateProject.bat /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/bdwn.png -------------------------------------------------------------------------------- /doc/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/doc.png -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/nav_g.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/index.html -------------------------------------------------------------------------------- /doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/sync_on.png -------------------------------------------------------------------------------- /doc/html/annotated.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/annotated.html -------------------------------------------------------------------------------- /doc/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/folderopen.png -------------------------------------------------------------------------------- /doc/html/hierarchy.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/hierarchy.html -------------------------------------------------------------------------------- /doc/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/splitbar.png -------------------------------------------------------------------------------- /doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/sync_off.png -------------------------------------------------------------------------------- /doc/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/folderclosed.png -------------------------------------------------------------------------------- /doc/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/search/close.png -------------------------------------------------------------------------------- /paper/paper_egsr_2005.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/paper/paper_egsr_2005.pdf -------------------------------------------------------------------------------- /doc/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/search/mag_sel.png -------------------------------------------------------------------------------- /doc/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/search/search_l.png -------------------------------------------------------------------------------- /doc/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/search/search_m.png -------------------------------------------------------------------------------- /doc/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/search/search_r.png -------------------------------------------------------------------------------- /visilib/visibility_solver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/visilib/visibility_solver.h -------------------------------------------------------------------------------- /configure.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | mkdir build 4 | cd build 5 | cmake cmake -DCMAKE_BUILD_TYPE=Debug .. 6 | cd .. 7 | -------------------------------------------------------------------------------- /demo/external/freeglut/x64/freeglut.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/demo/external/freeglut/x64/freeglut.dll -------------------------------------------------------------------------------- /demo/external/freeglut/x64/freeglut.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/demo/external/freeglut/x64/freeglut.lib -------------------------------------------------------------------------------- /visilib/external/convexHull/convexHull.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/visilib/external/convexHull/convexHull.h -------------------------------------------------------------------------------- /demo/external/freeglut/Win32/freeglut.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/demo/external/freeglut/Win32/freeglut.dll -------------------------------------------------------------------------------- /demo/external/freeglut/Win32/freeglut.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/demo/external/freeglut/Win32/freeglut.lib -------------------------------------------------------------------------------- /doc/html/debug.log: -------------------------------------------------------------------------------- 1 | [1226/181638.063:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) 2 | -------------------------------------------------------------------------------- /doc/html/visibility__solver_8h_source.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/visibility__solver_8h_source.html -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_solver.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_solver.html -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_solver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_solver.png -------------------------------------------------------------------------------- /doc/html/visibility__exact__query_8h_source.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/visibility__exact__query_8h_source.html -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_silhouette_container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_silhouette_container.png -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_exact_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_exact_query.png -------------------------------------------------------------------------------- /doc/html/visibility__aperture__finder_8h_source.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/visibility__aperture__finder_8h_source.html -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_i_visibility_exact_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_i_visibility_exact_query.png -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_exact_query__.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_exact_query__.png -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_silhouette_container_embree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_silhouette_container_embree.png -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_aperture_finder.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_aperture_finder.html -------------------------------------------------------------------------------- /doc/html/classvisilib_1_1_visibility_aperture_finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/classvisilib_1_1_visibility_aperture_finder.png -------------------------------------------------------------------------------- /doc/html/structvisilib_1_1_triangle_mesh_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/structvisilib_1_1_triangle_mesh_description.png -------------------------------------------------------------------------------- /doc/html/structvisilib_1_1_discrete_geometry_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/structvisilib_1_1_discrete_geometry_description.png -------------------------------------------------------------------------------- /doc/html/structvisilib_1_1_geometry_discrete_mesh_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/structvisilib_1_1_geometry_discrete_mesh_description.png -------------------------------------------------------------------------------- /doc/html/structvisilib_1_1_geometry_triangle_mesh_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dhaumont/visilib/HEAD/doc/html/structvisilib_1_1_geometry_triangle_mesh_description.png -------------------------------------------------------------------------------- /doc/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['zero',['Zero',['../classvisilib_1_1_math_plucker6.html#a5e37c518bdd1d8f00fe5e25fd52ea52a',1,'visilib::MathPlucker6']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['trianglemeshdescription',['TriangleMeshDescription',['../structvisilib_1_1_triangle_mesh_description.html',1,'visilib']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['org',['org',['../structvisilib_1_1_visibility_ray.html#a8c78b0461d9f6e5425c5e14fcd24a9d1',1,'visilib::VisibilityRay']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build',['build',['../classvisilib_1_1_plucker_polytope_builder.html#a408e2ce76e25ae9545abeb7babc51713',1,'visilib::PluckerPolytopeBuilder']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build',['build',['../classvisilib_1_1_plucker_polytope_builder.html#a408e2ce76e25ae9545abeb7babc51713',1,'visilib::PluckerPolytopeBuilder']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['normalarray',['normalArray',['../structvisilib_1_1_geometry_discrete_mesh_description.html#aaa05beffdab2fd2f4cf4ac28a86eaf3e',1,'visilib::GeometryDiscreteMeshDescription']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['facecount',['faceCount',['../structvisilib_1_1_geometry_discrete_mesh_description.html#a62095a1d44914be5e4876494c3301f1e',1,'visilib::GeometryDiscreteMeshDescription']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['indexarray',['indexArray',['../structvisilib_1_1_geometry_triangle_mesh_description.html#a161f5e6343b08d34bac9eb58b6ee6aa5',1,'visilib::GeometryTriangleMeshDescription']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['normalarray',['normalArray',['../structvisilib_1_1_geometry_discrete_mesh_description.html#aaa05beffdab2fd2f4cf4ac28a86eaf3e',1,'visilib::GeometryDiscreteMeshDescription']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['precision',['precision',['../structvisilib_1_1_visibility_exact_query_configuration.html#a85a72847cd60b3d5d41d0a893e439a71',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['precisiontype',['PrecisionType',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8b',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /generateProject.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | mkdir debug 4 | cd debug 5 | cmake cmake -DCMAKE_BUILD_TYPE=Debug .. 6 | make 7 | cd .. 8 | 9 | mkdir release 10 | cd release 11 | cmake cmake -DCMAKE_BUILD_TYPE=Release .. 12 | make 13 | cd .. 14 | 15 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['double',['DOUBLE',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8bae6d683564c0978e72ac4b6be27998aa5',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['exact',['EXACT',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8bad3b9971ac7b554145ebb1ee55bdd97c7',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['float',['FLOAT',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8ba804621a91ffab216263ead381509cbb9',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hyperspherenormalization',['hyperSphereNormalization',['../structvisilib_1_1_visibility_exact_query_configuration.html#ae3f308c718e6e7051c9d8a1d08065def',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['representativelinesampling',['representativeLineSampling',['../structvisilib_1_1_visibility_exact_query_configuration.html#adadc6d7391bfcfdd0b8f20efe79c81cf',1,'visilib::VisibilityExactQueryConfiguration']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['displaystatistic',['displayStatistic',['../classvisilib_1_1_visibility_exact_query__.html#a7134e18dd518e8accb0f08e523149e6b',1,'visilib::VisibilityExactQuery_']]], 4 | ['dot',['dot',['../classvisilib_1_1_math_plucker6.html#af687399a207b6f747277436df1e11e52',1,'visilib::MathPlucker6']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['detectapertureonly',['detectApertureOnly',['../structvisilib_1_1_visibility_exact_query_configuration.html#aea2fdde8a10663bb824ac5308a42b991',1,'visilib::VisibilityExactQueryConfiguration']]], 4 | ['dir',['dir',['../structvisilib_1_1_visibility_ray.html#ad3c5fe1430162ea249feb953f6a5a347',1,'visilib::VisibilityRay']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['extractconnectedmeshfaces',['extractConnectedMeshFaces',['../classvisilib_1_1_geometry_occluder_set.html#af27ea9d9989db7c759054b8024317d58',1,'visilib::GeometryOccluderSet']]], 4 | ['extractsilhouette',['extractSilhouette',['../classvisilib_1_1_silhouette_processor.html#adf8cb49855ad70e3994ff65bc4740fb2',1,'visilib::SilhouetteProcessor']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['democonfiguration',['DemoConfiguration',['../structvisilib_demo_1_1_demo_configuration.html',1,'visilibDemo']]], 4 | ['demodebugvisualisationgl',['DemoDebugVisualisationGl',['../classvisilib_demo_1_1_demo_debug_visualisation_gl.html',1,'visilibDemo']]], 5 | ['demohelper',['DemoHelper',['../classvisilib_demo_1_1_demo_helper.html',1,'visilibDemo']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /.github/workflows/c-cpp.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ CI 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: configure 17 | run: cmake . 18 | - name: make 19 | run: make 20 | - name: test 21 | run: ./test/visilibTest 22 | 23 | -------------------------------------------------------------------------------- /doc/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['prepare',['prepare',['../classvisilib_1_1_geometry_occluder_set.html#a9ad0f12014c07ed08cdd6be981faf704',1,'visilib::GeometryOccluderSet::prepare()'],['../classvisilib_1_1_helper_triangle_mesh.html#a075a6a388607a78ec69f21562b43e4c2',1,'visilib::HelperTriangleMesh::prepare()'],['../classvisilib_1_1_silhouette_container_embree.html#ad3d6193f5484b3fb56096efd8a1230a8',1,'visilib::SilhouetteContainerEmbree::prepare()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdefghimnoprstvz", 4 | 1: "dghmpsv", 5 | 2: "abcdefghimoprstz", 6 | 3: "dfhimnoprstv", 7 | 4: "p", 8 | 5: "def" 9 | }; 10 | 11 | var indexSectionNames = 12 | { 13 | 0: "all", 14 | 1: "classes", 15 | 2: "functions", 16 | 3: "variables", 17 | 4: "enums", 18 | 5: "enumvalues" 19 | }; 20 | 21 | var indexSectionLabels = 22 | { 23 | 0: "All", 24 | 1: "Classes", 25 | 2: "Functions", 26 | 3: "Variables", 27 | 4: "Enumerations", 28 | 5: "Enumerator" 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mathplucker6',['MathPlucker6',['../classvisilib_1_1_math_plucker6.html#ac56bcce7088d86f451167cba2f07f7af',1,'visilib::MathPlucker6::MathPlucker6(S x0, S x1, S x2, S x3, S x4, S x5)'],['../classvisilib_1_1_math_plucker6.html#a2124f8379e533d4655656cd23786341b',1,'visilib::MathPlucker6::MathPlucker6(const MathPlucker6< S > &v)'],['../classvisilib_1_1_math_plucker6.html#a060a09fe5b53ad953b9c32aa28d454f2',1,'visilib::MathPlucker6::MathPlucker6(const MathVector3d &aBegin, const MathVector3d &anEnd)']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['exact',['EXACT',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8bad3b9971ac7b554145ebb1ee55bdd97c7',1,'visilib::VisibilityExactQueryConfiguration']]], 4 | ['extractconnectedmeshfaces',['extractConnectedMeshFaces',['../classvisilib_1_1_geometry_occluder_set.html#af27ea9d9989db7c759054b8024317d58',1,'visilib::GeometryOccluderSet']]], 5 | ['extractsilhouette',['extractSilhouette',['../classvisilib_1_1_silhouette_processor.html#adf8cb49855ad70e3994ff65bc4740fb2',1,'visilib::SilhouetteProcessor']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/classes_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['visibilityaperturefinder',['VisibilityApertureFinder',['../classvisilib_1_1_visibility_aperture_finder.html',1,'visilib']]], 4 | ['visibilityexactquery',['VisibilityExactQuery',['../classvisilib_1_1_visibility_exact_query.html',1,'visilib']]], 5 | ['visibilitysolver',['VisibilitySolver',['../classvisilib_1_1_visibility_solver.html',1,'visilib']]], 6 | ['visilibdemomain',['VisilibDemoMain',['../classvisilib_demo_1_1_visilib_demo_main.html',1,'visilibDemo']]], 7 | ['visualdebugger',['VisualDebugger',['../classvisilib_1_1_visual_debugger.html',1,'visilib']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pluckerpolyhedron',['PluckerPolyhedron',['../classvisilib_1_1_plucker_polyhedron.html',1,'visilib']]], 4 | ['pluckerpolytope',['PluckerPolytope',['../classvisilib_1_1_plucker_polytope.html',1,'visilib']]], 5 | ['pluckerpolytopebuilder',['PluckerPolytopeBuilder',['../classvisilib_1_1_plucker_polytope_builder.html',1,'visilib']]], 6 | ['pluckerpolytopecomplex',['PluckerPolytopeComplex',['../classvisilib_1_1_plucker_polytope_complex.html',1,'visilib']]], 7 | ['pluckerpolytopesplitter',['PluckerPolytopeSplitter',['../classvisilib_1_1_plucker_polytope_splitter.html',1,'visilib']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/html/search/classes_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['silhouette',['Silhouette',['../classvisilib_1_1_silhouette.html',1,'visilib']]], 4 | ['silhouettecontainer',['SilhouetteContainer',['../classvisilib_1_1_silhouette_container.html',1,'visilib']]], 5 | ['silhouettecontainerembree',['SilhouetteContainerEmbree',['../classvisilib_1_1_silhouette_container_embree.html',1,'visilib']]], 6 | ['silhouetteedge',['SilhouetteEdge',['../structvisilib_1_1_silhouette_edge.html',1,'visilib']]], 7 | ['silhouettemeshface',['SilhouetteMeshFace',['../classvisilib_1_1_silhouette_mesh_face.html',1,'visilib']]], 8 | ['silhouetteprocessor',['SilhouetteProcessor',['../classvisilib_1_1_silhouette_processor.html',1,'visilib']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /demo/external/freeglut/include/GL/glut.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLUT_H__ 2 | #define __GLUT_H__ 3 | 4 | /* 5 | * glut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | #include "freeglut_std.h" 18 | 19 | /*** END OF FILE ***/ 20 | 21 | #endif /* __GLUT_H__ */ 22 | -------------------------------------------------------------------------------- /doc/html/search/classes_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['visibilityaperturefinder',['VisibilityApertureFinder',['../classvisilib_1_1_visibility_aperture_finder.html',1,'visilib']]], 4 | ['visibilityexactquery',['VisibilityExactQuery',['../classvisilib_1_1_visibility_exact_query.html',1,'visilib']]], 5 | ['visibilityexactqueryconfiguration',['VisibilityExactQueryConfiguration',['../structvisilib_1_1_visibility_exact_query_configuration.html',1,'visilib']]], 6 | ['visibilityray',['VisibilityRay',['../structvisilib_1_1_visibility_ray.html',1,'visilib']]], 7 | ['visibilitysolver',['VisibilitySolver',['../classvisilib_1_1_visibility_solver.html',1,'visilib']]], 8 | ['visilibdemomain',['VisilibDemoMain',['../classvisilib_demo_1_1_visilib_demo_main.html',1,'visilibDemo']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/classes_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['visibilityaperturefinder',['VisibilityApertureFinder',['../classvisilib_1_1_visibility_aperture_finder.html',1,'visilib']]], 4 | ['visibilityexactquery_5f',['VisibilityExactQuery_',['../classvisilib_1_1_visibility_exact_query__.html',1,'visilib']]], 5 | ['visibilityexactqueryconfiguration',['VisibilityExactQueryConfiguration',['../structvisilib_1_1_visibility_exact_query_configuration.html',1,'visilib']]], 6 | ['visibilityray',['VisibilityRay',['../structvisilib_1_1_visibility_ray.html',1,'visilib']]], 7 | ['visibilitysolver',['VisibilitySolver',['../classvisilib_1_1_visibility_solver.html',1,'visilib']]], 8 | ['visilibdemomain',['VisilibDemoMain',['../classvisilib_demo_1_1_visilib_demo_main.html',1,'visilibDemo']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /demo/external/freeglut/include/GL/freeglut.h: -------------------------------------------------------------------------------- 1 | #ifndef __FREEGLUT_H__ 2 | #define __FREEGLUT_H__ 3 | 4 | /* 5 | * freeglut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | #include "freeglut_std.h" 18 | #include "freeglut_ext.h" 19 | 20 | /*** END OF FILE ***/ 21 | 22 | #endif /* __FREEGLUT_H__ */ 23 | -------------------------------------------------------------------------------- /doc/html/search/classes_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['visibilityaperturefinder',['VisibilityApertureFinder',['../classvisilib_1_1_visibility_aperture_finder.html',1,'visilib']]], 4 | ['visibilityexactquery',['VisibilityExactQuery',['../classvisilib_1_1_visibility_exact_query.html',1,'visilib']]], 5 | ['visibilityexactquery_5f',['VisibilityExactQuery_',['../classvisilib_1_1_visibility_exact_query__.html',1,'visilib']]], 6 | ['visibilityexactqueryconfiguration',['VisibilityExactQueryConfiguration',['../structvisilib_1_1_visibility_exact_query_configuration.html',1,'visilib']]], 7 | ['visibilityray',['VisibilityRay',['../structvisilib_1_1_visibility_ray.html',1,'visilib']]], 8 | ['visibilitysolver',['VisibilitySolver',['../classvisilib_1_1_visibility_solver.html',1,'visilib']]], 9 | ['visilibdemomain',['VisilibDemoMain',['../classvisilib_demo_1_1_visilib_demo_main.html',1,'visilibDemo']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /test/src/test_definition.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2020 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | 22 | bool MathCombinatorialTest(std::string&); 23 | bool testConfiguration(bool& retflag); 24 | bool VisibilityTest(std::string&); -------------------------------------------------------------------------------- /doc/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hasalledgescollapsed',['hasAllEdgesCollapsed',['../classvisilib_1_1_plucker_polytope.html#ac5f9ad5e1bd02b000b77c1360a2d1f67',1,'visilib::PluckerPolytope']]], 4 | ['hasfacet',['hasFacet',['../classvisilib_1_1_math_combinatorial.html#a7b63205c6b27719a20d8ffdb1e7ef7c5',1,'visilib::MathCombinatorial']]], 5 | ['haspluckeredgewithquadricintersection',['hasPluckerEdgeWithQuadricIntersection',['../classvisilib_1_1_math_geometry.html#a29d14c13f99b5a47942062dd82487b89',1,'visilib::MathGeometry']]], 6 | ['haveatleastncommonfacets',['haveAtLeastNCommonFacets',['../classvisilib_1_1_math_combinatorial.html#add385e8d5b8bfb586e3d16dee08c5cd1',1,'visilib::MathCombinatorial']]], 7 | ['hitsboundingbox',['hitsBoundingBox',['../classvisilib_1_1_math_geometry.html#af19a3bdb94d0e929dbe8ffcda093c57e',1,'visilib::MathGeometry']]], 8 | ['hitstriangle',['hitsTriangle',['../classvisilib_1_1_math_geometry.html#ae24dedad7a35b9c818759ea566b8b3c5',1,'visilib::MathGeometry']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tfar',['tfar',['../structvisilib_1_1_visibility_ray.html#ad086e44a14588e12ebfb760803a07b47',1,'visilib::VisibilityRay']]], 4 | ['tnear',['tnear',['../structvisilib_1_1_visibility_ray.html#afcf9585cadf9308044ff540f2206a890',1,'visilib::VisibilityRay']]], 5 | ['tolerance',['Tolerance',['../classvisilib_1_1_math_arithmetic.html#a402058efef79b2039522f78fda6ffddb',1,'visilib::MathArithmetic']]], 6 | ['translate',['translate',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a31c66cba420f7938e7f246bea7057e54',1,'visilib::HelperSyntheticMeshBuilder::translate(HelperTriangleMeshContainer *scene, const MathVector3f &translation)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a0aa6474a7b23671b81ebdbb842ad06c1',1,'visilib::HelperSyntheticMeshBuilder::translate(HelperTriangleMesh *mesh, const MathVector3f &translation)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a402945280e56b8d4195a205094e0a24c',1,'visilib::HelperSyntheticMeshBuilder::translate(std::vector< MathVector3f > &vertices, const MathVector3f &translation)']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hash',['Hash',['../structvisilib_1_1_silhouette_1_1_hash.html',1,'visilib::Silhouette::Hash'],['../structvisilib_1_1_math_vector2___1_1_hash.html',1,'visilib::MathVector2_< S >::Hash']]], 4 | ['helpergeometryscenereader',['HelperGeometrySceneReader',['../classvisilib_1_1_helper_geometry_scene_reader.html',1,'visilib']]], 5 | ['helperscopedtimer',['HelperScopedTimer',['../classvisilib_1_1_helper_scoped_timer.html',1,'visilib']]], 6 | ['helperstatisticcollector',['HelperStatisticCollector',['../classvisilib_1_1_helper_statistic_collector.html',1,'visilib']]], 7 | ['helpersyntheticmeshbuilder',['HelperSyntheticMeshBuilder',['../classvisilib_1_1_helper_synthetic_mesh_builder.html',1,'visilib']]], 8 | ['helpertrianglemesh',['HelperTriangleMesh',['../classvisilib_1_1_helper_triangle_mesh.html',1,'visilib']]], 9 | ['helpertrianglemeshcontainer',['HelperTriangleMeshContainer',['../classvisilib_1_1_helper_triangle_mesh_container.html',1,'visilib']]], 10 | ['helpervisualdebugger',['HelperVisualDebugger',['../classvisilib_1_1_helper_visual_debugger.html',1,'visilib']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /cmake/modules/FindGLUT.cmake: -------------------------------------------------------------------------------- 1 | # Visilib, an open source library for exact visibility computation. 2 | # Copyright(C) 2017 by Denis Haumont 3 | # 4 | # This file is part of Visilib. 5 | # 6 | # Visilib is free software : you can redistribute it and / or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Visilib is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Visilib. If not, see 18 | 19 | #ADD_LIBRARY(GLUT_LIBRARY STATIC IMPORTED) 20 | #SET_TARGET_PROPERTIES(GLUT_LIBRARY PROPERTIES 21 | # IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/../demo/external/freeglut/x64/freeglut.lib) 22 | 23 | set(GLUT_LIBRARY ${CMAKE_CURRENT_BINARY_DIR}/../demo/external/freeglut/x64/freeglut.lib) 24 | set(GLUT_FOUND true) 25 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_intersect_context_multi_hit.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_intersect_context_multi_hit}{}\section{visilib\+::Intersect\+Context\+Multi\+Hit Struct Reference} 2 | \label{structvisilib_1_1_intersect_context_multi_hit}\index{visilib::IntersectContextMultiHit@{visilib::IntersectContextMultiHit}} 3 | \subsection*{Public Attributes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | \mbox{\Hypertarget{structvisilib_1_1_intersect_context_multi_hit_afff2b3111ac044ae51e6131e38a9afaa}\label{structvisilib_1_1_intersect_context_multi_hit_afff2b3111ac044ae51e6131e38a9afaa}} 7 | R\+T\+C\+Intersect\+Context {\bfseries context} 8 | \item 9 | \mbox{\Hypertarget{structvisilib_1_1_intersect_context_multi_hit_a97b445eecd320513cd9c1bc70324ba41}\label{structvisilib_1_1_intersect_context_multi_hit_a97b445eecd320513cd9c1bc70324ba41}} 10 | \mbox{\hyperlink{structvisilib_1_1_ray_multi_hit}{Ray\+Multi\+Hit}} $\ast$ {\bfseries ray} 11 | \end{DoxyCompactItemize} 12 | 13 | 14 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 15 | \item 16 | C\+:/code/github/visilib/visilib/silhouette\+\_\+container\+\_\+embree.\+h\end{DoxyCompactItemize} 17 | -------------------------------------------------------------------------------- /doc/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['findnextedge',['findNextEdge',['../classvisilib_1_1_visibility_exact_query__.html#ae0bb735eb2795124dee5cc542f754128',1,'visilib::VisibilityExactQuery_']]], 4 | ['findpluckeredgewithquadricintersection',['findPluckerEdgeWithQuadricIntersection',['../classvisilib_1_1_math_geometry.html#a0b130b390ddefe87d092eabb11bbcc09',1,'visilib::MathGeometry::findPluckerEdgeWithQuadricIntersection(const P &v1, const P &v2, GeometryPositionType p1, GeometryPositionType p2, std::vector< P > &result, bool newtonRaphson, S tolerance)'],['../classvisilib_1_1_math_geometry.html#ab2821b2a4ac9021467e5885ed08cff63',1,'visilib::MathGeometry::findPluckerEdgeWithQuadricIntersection(const P &v1, const P &v2, GeometryPositionType p1, GeometryPositionType p2, std::vector< P > &result, S tolerance)']]], 5 | ['findsceneintersection',['findSceneIntersection',['../classvisilib_1_1_visibility_exact_query__.html#a9aecc3e02e9f23bfd1911f67833db419',1,'visilib::VisibilityExactQuery_']]], 6 | ['findsilhouette',['findSilhouette',['../classvisilib_1_1_silhouette_processor.html#a8b2f9edf695dd88b637e4a8b663214a0',1,'visilib::SilhouetteProcessor']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['democonfiguration',['DemoConfiguration',['../structvisilib_demo_1_1_demo_configuration.html',1,'visilibDemo']]], 4 | ['demodebugvisualisationgl',['DemoDebugVisualisationGl',['../classvisilib_demo_1_1_demo_debug_visualisation_gl.html',1,'visilibDemo']]], 5 | ['demohelper',['DemoHelper',['../classvisilib_demo_1_1_demo_helper.html',1,'visilibDemo']]], 6 | ['detectapertureonly',['detectApertureOnly',['../structvisilib_1_1_visibility_exact_query_configuration.html#aea2fdde8a10663bb824ac5308a42b991',1,'visilib::VisibilityExactQueryConfiguration']]], 7 | ['dir',['dir',['../structvisilib_1_1_visibility_ray.html#ad3c5fe1430162ea249feb953f6a5a347',1,'visilib::VisibilityRay']]], 8 | ['displaystatistic',['displayStatistic',['../classvisilib_1_1_visibility_exact_query__.html#a7134e18dd518e8accb0f08e523149e6b',1,'visilib::VisibilityExactQuery_']]], 9 | ['dot',['dot',['../classvisilib_1_1_math_plucker6.html#af687399a207b6f747277436df1e11e52',1,'visilib::MathPlucker6']]], 10 | ['double',['DOUBLE',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8bae6d683564c0978e72ac4b6be27998aa5',1,'visilib::VisibilityExactQueryConfiguration']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Visilib, an open source library for exact visibility computation. 2 | # Copyright(C) 2021 by Denis Haumont 3 | # 4 | # This file is part of Visilib. 5 | # 6 | # Visilib is free software : you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Visilib is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Visilib. If not, see 18 | 19 | set(Src 20 | demo_debug_visualisation_gl.h 21 | demo_debug_visualisation_gl.cpp 22 | demo_helper.h 23 | demo_helper.cpp 24 | demo_main.cpp 25 | demo_viewer_glut.h 26 | ) 27 | 28 | include_directories( external/freeglut/include/ ) 29 | include_directories( ../visilib/ ) 30 | 31 | add_executable( ${VISILIB_DEMO_NAME} ${Src}) 32 | 33 | target_link_libraries(${VISILIB_DEMO_NAME} ${LIBS} ) -------------------------------------------------------------------------------- /doc/html/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vertexarray',['vertexArray',['../structvisilib_1_1_geometry_discrete_mesh_description.html#ac6f07aa7316e876d2405150af6cbf1f5',1,'visilib::GeometryDiscreteMeshDescription']]], 4 | ['vertexcount',['vertexCount',['../structvisilib_1_1_geometry_discrete_mesh_description.html#a05af40870e65c9fb19a27ea6fac9aff1',1,'visilib::GeometryDiscreteMeshDescription']]], 5 | ['visibilityaperturefinder',['VisibilityApertureFinder',['../classvisilib_1_1_visibility_aperture_finder.html',1,'visilib']]], 6 | ['visibilityexactquery',['VisibilityExactQuery',['../classvisilib_1_1_visibility_exact_query.html',1,'visilib']]], 7 | ['visibilityexactquery_5f',['VisibilityExactQuery_',['../classvisilib_1_1_visibility_exact_query__.html',1,'visilib']]], 8 | ['visibilityexactqueryconfiguration',['VisibilityExactQueryConfiguration',['../structvisilib_1_1_visibility_exact_query_configuration.html',1,'visilib']]], 9 | ['visibilityray',['VisibilityRay',['../structvisilib_1_1_visibility_ray.html',1,'visilib']]], 10 | ['visibilitysolver',['VisibilitySolver',['../classvisilib_1_1_visibility_solver.html',1,'visilib']]], 11 | ['visilibdemomain',['VisilibDemoMain',['../classvisilib_demo_1_1_visilib_demo_main.html',1,'visilibDemo']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_geometry_intersect_context_multi_hit.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_geometry_intersect_context_multi_hit}{}\section{visilib\+::Geometry\+Intersect\+Context\+Multi\+Hit Struct Reference} 2 | \label{structvisilib_1_1_geometry_intersect_context_multi_hit}\index{visilib::GeometryIntersectContextMultiHit@{visilib::GeometryIntersectContextMultiHit}} 3 | \subsection*{Public Attributes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | \mbox{\Hypertarget{structvisilib_1_1_geometry_intersect_context_multi_hit_adba46f2fcac02da50667f26d19b92beb}\label{structvisilib_1_1_geometry_intersect_context_multi_hit_adba46f2fcac02da50667f26d19b92beb}} 7 | R\+T\+C\+Intersect\+Context {\bfseries context} 8 | \item 9 | \mbox{\Hypertarget{structvisilib_1_1_geometry_intersect_context_multi_hit_a96815be3c2cee4068ed365a5299cf0a6}\label{structvisilib_1_1_geometry_intersect_context_multi_hit_a96815be3c2cee4068ed365a5299cf0a6}} 10 | \mbox{\hyperlink{structvisilib_1_1_geometry_ray_multi_hit}{Geometry\+Ray\+Multi\+Hit}} $\ast$ {\bfseries ray} 11 | \end{DoxyCompactItemize} 12 | 13 | 14 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 15 | \item 16 | C\+:/code/github/visilib/visilib/silhouette\+\_\+container\+\_\+embree.\+h\end{DoxyCompactItemize} 17 | -------------------------------------------------------------------------------- /cmake/modules/FindLEDA.cmake: -------------------------------------------------------------------------------- 1 | # Visilib, an open source library for exact visibility computation. 2 | # Copyright(C) 2017 by Denis Haumont 3 | # 4 | # This file is part of Visilib. 5 | # 6 | # Visilib is free software : you can redistribute it and / or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Visilib is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Visilib. If not, see 18 | 19 | if (EXISTS "$ENV{LEDA_DIR}/incl/LEDA/numbers/real.h" AND EXISTS "$ENV{LEDA_DIR}/leda_mt.lib" ) 20 | message("LEDA found: " $ENV{LEDA_DIR}) 21 | 22 | set (LEDA_INCLUDE_DIR $ENV{LEDA_DIR}/incl) 23 | set (LEDA_LIBRARY $ENV{LEDA_DIR}/leda_mt.lib) 24 | set(LEDA_FOUND True) 25 | else() 26 | message("Could not locate LEDA at " $ENV{LEDA_DIR} ) 27 | message("Please define the environment variable LEDA_DIR") 28 | endif() 29 | 30 | -------------------------------------------------------------------------------- /generateProject.bat: -------------------------------------------------------------------------------- 1 | set EMBREE_INSTALL_DIR=c:\Program Files\Intel\Embree3 x64 2 | set CGAL_DIR=C:\dev\CGAL-4.13.1 3 | set BOOST_INCLUDEDIR=C:\code\boost\boost_1_70_0\ 4 | set BOOST_ROOT=C:\code\boost\boost_1_70_0\ 5 | set LEDA_DIR=C:\Algorithmic Solutions\LEDA-6.3-free-win64-msc10-std 6 | 7 | mkdir build 8 | cd build 9 | Cmake .. 10 | cd .. 11 | 12 | xcopy /y demo\external\freeglut\x64\freeglut.dll build\demo\Debug\ 13 | xcopy /y demo\external\freeglut\x64\freeglut.dll build\demo\Release\ 14 | 15 | if exist "%EMBREE_INSTALL_DIR%\bin\embree3.dll" xcopy /y "%EMBREE_INSTALL_DIR%\bin\*.dll" build\demo\Debug\ 16 | if exist "%EMBREE_INSTALL_DIR%\bin\embree3.dll" xcopy /y "%EMBREE_INSTALL_DIR%\bin\*.dll" build\demo\Release\ 17 | 18 | if exist "%EMBREE_INSTALL_DIR%\bin\embree3.dll" xcopy /y "%EMBREE_INSTALL_DIR%\bin\*.dll" build\test\Debug\ 19 | if exist "%EMBREE_INSTALL_DIR%\bin\embree3.dll" xcopy /y "%EMBREE_INSTALL_DIR%\bin\*.dll" build\test\Release\ 20 | 21 | if exist "%LEDA_DIR%\leda_md.dll" xcopy /y "%LEDA_DIR%\*.dll" build\demo\Debug\ 22 | if exist "%LEDA_DIR%\leda_md.dll" xcopy /y "%LEDA_DIR%\*.dll" build\demo\Release\ 23 | 24 | if exist "%LEDA_DIR%\leda_md.dll" xcopy /y "%LEDA_DIR%\*.dll" build\test\Debug\ 25 | if exist "%LEDA_DIR%\leda_md.dll" xcopy /y "%LEDA_DIR%\*.dll" build\test\Release\ -------------------------------------------------------------------------------- /test/src/test_full.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #include 22 | #include 23 | 24 | #include "test_definition.h" 25 | 26 | int main() 27 | { 28 | std::string errorMessage; 29 | 30 | if (!MathCombinatorialTest(errorMessage)) 31 | { 32 | std::cout << "MathCombinatorialTest SUCCESS" << std::endl; 33 | return 1; 34 | } 35 | 36 | if (!VisibilityTest(errorMessage)) 37 | { 38 | std::cout << "VisibilityTest ERROR" << std::endl; 39 | return 1; 40 | } 41 | 42 | return 0; 43 | } -------------------------------------------------------------------------------- /doc/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['geometryaabb',['GeometryAABB',['../classvisilib_1_1_geometry_a_a_b_b.html',1,'visilib']]], 4 | ['geometryconvexhull',['GeometryConvexHull',['../classvisilib_1_1_geometry_convex_hull.html',1,'visilib']]], 5 | ['geometryconvexhullbuilder',['GeometryConvexHullBuilder',['../classvisilib_1_1_geometry_convex_hull_builder.html',1,'visilib']]], 6 | ['geometryconvexpolygon',['GeometryConvexPolygon',['../classvisilib_1_1_geometry_convex_polygon.html',1,'visilib']]], 7 | ['geometrydiscretemeshdescription',['GeometryDiscreteMeshDescription',['../structvisilib_1_1_geometry_discrete_mesh_description.html',1,'visilib']]], 8 | ['geometryintersectcontextmultihit',['GeometryIntersectContextMultiHit',['../structvisilib_1_1_geometry_intersect_context_multi_hit.html',1,'visilib']]], 9 | ['geometryoccluderset',['GeometryOccluderSet',['../classvisilib_1_1_geometry_occluder_set.html',1,'visilib']]], 10 | ['geometryray',['GeometryRay',['../classvisilib_1_1_geometry_ray.html',1,'visilib']]], 11 | ['geometryraymultihit',['GeometryRayMultiHit',['../structvisilib_1_1_geometry_ray_multi_hit.html',1,'visilib']]], 12 | ['geometrytrianglemeshdescription',['GeometryTriangleMeshDescription',['../structvisilib_1_1_geometry_triangle_mesh_description.html',1,'visilib']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_silhouette_1_1_hash.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_silhouette_1_1_hash}{}\section{visilib\+::Silhouette\+::Hash Struct Reference} 2 | \label{structvisilib_1_1_silhouette_1_1_hash}\index{visilib::Silhouette::Hash@{visilib::Silhouette::Hash}} 3 | 4 | 5 | A hash associated to a silhouette edge for storage in the silhouette. 6 | 7 | 8 | \subsection*{Public Member Functions} 9 | \begin{DoxyCompactItemize} 10 | \item 11 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_1_1_hash_af79d4fadbc66f764514cfd46517f0272}\label{structvisilib_1_1_silhouette_1_1_hash_af79d4fadbc66f764514cfd46517f0272}} 12 | std\+::size\+\_\+t \mbox{\hyperlink{structvisilib_1_1_silhouette_1_1_hash_af79d4fadbc66f764514cfd46517f0272}{operator()}} (std\+::pair$<$ \mbox{\hyperlink{classvisilib_1_1_silhouette_mesh_face}{Silhouette\+Mesh\+Face}} $\ast$, size\+\_\+t $>$ pair) const 13 | \begin{DoxyCompactList}\small\item\em Compute the haskey of a given silhouette edge. \end{DoxyCompactList}\end{DoxyCompactItemize} 14 | 15 | 16 | \subsection{Detailed Description} 17 | A hash associated to a silhouette edge for storage in the silhouette. 18 | 19 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 20 | \item 21 | C\+:/code/github/visilib/visilib/silhouette.\+h\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /visilib/geometry_position_type.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | namespace visilib 24 | { 25 | /**@brief The relative position of a point with regards to another geometric entity*/ 26 | enum GeometryPositionType 27 | { 28 | ON_BOUNDARY = 1, /**< @brief The points lies on the geometric entity*/ 29 | ON_NEGATIVE_SIDE = 0, /**< @brief The points lies on the negative side of geometric entity*/ 30 | ON_POSITIVE_SIDE = 2 /**< @brief The points lies on the postive side of the geometric entity*/ 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /doc/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/enumvalues_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/functions_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /cmake/modules/FindEmbree.cmake: -------------------------------------------------------------------------------- 1 | # Visilib, an open source library for exact visibility computation. 2 | # Copyright(C) 2017 by Denis Haumont 3 | # 4 | # This file is part of Visilib. 5 | # 6 | # Visilib is free software : you can redistribute it and / or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Visilib is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Visilib. If not, see 18 | 19 | if (EXISTS "$ENV{EMBREE_INSTALL_DIR}/include/embree3/rtcore.h" AND EXISTS "$ENV{EMBREE_INSTALL_DIR}/lib/embree3.lib" ) 20 | message("Embree found: " $ENV{EMBREE_INSTALL_DIR}) 21 | set(EMBREE_INCLUDE_DIRS $ENV{EMBREE_INSTALL_DIR}/include) 22 | set(EMBREE_LIBRARY $ENV{EMBREE_INSTALL_DIR}/lib/embree3.lib) 23 | set(embree_FOUND True) 24 | else() 25 | message("Could not locate embree at " $ENV{EMBREE_INSTALL_DIR}) 26 | 27 | # under Windows: 28 | message("Please define the environment variable EMBREE_INSTALL_DIR") 29 | endif() -------------------------------------------------------------------------------- /doc/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['matharithmetic',['MathArithmetic',['../classvisilib_1_1_math_arithmetic.html',1,'visilib']]], 4 | ['mathcombinatorial',['MathCombinatorial',['../classvisilib_1_1_math_combinatorial.html',1,'visilib']]], 5 | ['mathgeometry',['MathGeometry',['../classvisilib_1_1_math_geometry.html',1,'visilib']]], 6 | ['mathmatrix_5f',['MathMatrix_',['../classvisilib_1_1_math_matrix__.html',1,'visilib']]], 7 | ['mathplane3_5f',['MathPlane3_',['../classvisilib_1_1_math_plane3__.html',1,'visilib']]], 8 | ['mathplane3_5f_3c_20double_20_3e',['MathPlane3_< double >',['../classvisilib_1_1_math_plane3__.html',1,'visilib']]], 9 | ['mathplucker2',['MathPlucker2',['../classvisilib_1_1_math_plucker2.html',1,'visilib']]], 10 | ['mathplucker6',['MathPlucker6',['../classvisilib_1_1_math_plucker6.html',1,'visilib']]], 11 | ['mathpredicates',['MathPredicates',['../classvisilib_1_1_math_predicates.html',1,'visilib']]], 12 | ['mathvector2_5f',['MathVector2_',['../classvisilib_1_1_math_vector2__.html',1,'visilib']]], 13 | ['mathvector3_5f',['MathVector3_',['../classvisilib_1_1_math_vector3__.html',1,'visilib']]], 14 | ['mathvector3_5f_3c_20double_20_3e',['MathVector3_< double >',['../classvisilib_1_1_math_vector3__.html',1,'visilib']]], 15 | ['mathvector3_5f_3c_20float_20_3e',['MathVector3_< float >',['../classvisilib_1_1_math_vector3__.html',1,'visilib']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /doc/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pluckerpolyhedron',['PluckerPolyhedron',['../classvisilib_1_1_plucker_polyhedron.html',1,'visilib']]], 4 | ['pluckerpolytope',['PluckerPolytope',['../classvisilib_1_1_plucker_polytope.html',1,'visilib']]], 5 | ['pluckerpolytopebuilder',['PluckerPolytopeBuilder',['../classvisilib_1_1_plucker_polytope_builder.html',1,'visilib']]], 6 | ['pluckerpolytopecomplex',['PluckerPolytopeComplex',['../classvisilib_1_1_plucker_polytope_complex.html',1,'visilib']]], 7 | ['pluckerpolytopesplitter',['PluckerPolytopeSplitter',['../classvisilib_1_1_plucker_polytope_splitter.html',1,'visilib']]], 8 | ['precision',['precision',['../structvisilib_1_1_visibility_exact_query_configuration.html#a85a72847cd60b3d5d41d0a893e439a71',1,'visilib::VisibilityExactQueryConfiguration']]], 9 | ['precisiontype',['PrecisionType',['../structvisilib_1_1_visibility_exact_query_configuration.html#a1cd44b0dffc3d51eb0bd5af35eeb9a8b',1,'visilib::VisibilityExactQueryConfiguration']]], 10 | ['prepare',['prepare',['../classvisilib_1_1_geometry_occluder_set.html#a9ad0f12014c07ed08cdd6be981faf704',1,'visilib::GeometryOccluderSet::prepare()'],['../classvisilib_1_1_helper_triangle_mesh.html#a075a6a388607a78ec69f21562b43e4c2',1,'visilib::HelperTriangleMesh::prepare()'],['../classvisilib_1_1_silhouette_container_embree.html#ad3d6193f5484b3fb56096efd8a1230a8',1,'visilib::SilhouetteContainerEmbree::prepare()']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /doc/html/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['scale',['scale',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a3ad2d53409b8fd3335e5acec7dd62e7a',1,'visilib::HelperSyntheticMeshBuilder::scale(HelperTriangleMeshContainer *scene, float scale)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a8b37a0fe23de8994cefeb27b39a5cb3f',1,'visilib::HelperSyntheticMeshBuilder::scale(HelperTriangleMesh *mesh, float scale)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a2387e4616a262b88bedfe6048646a2e2',1,'visilib::HelperSyntheticMeshBuilder::scale(std::vector< MathVector3f > &vertices, float scale)']]], 4 | ['setgeometry',['setGeometry',['../classvisilib_1_1_silhouette_mesh_face.html#a4fd7d7ee6b556712f7771aecf9685ae1',1,'visilib::SilhouetteMeshFace']]], 5 | ['setneighbour',['setNeighbour',['../classvisilib_1_1_silhouette_mesh_face.html#a481d2d1b6544e3be14c55842ee37ab0a',1,'visilib::SilhouetteMeshFace']]], 6 | ['setoccluderconnectedfaces',['setOccluderConnectedFaces',['../classvisilib_1_1_geometry_occluder_set.html#a64be17502b1343e735a4385edeaf223f',1,'visilib::GeometryOccluderSet']]], 7 | ['split',['split',['../classvisilib_1_1_plucker_polytope_splitter.html#a50150fef5b24618c067c14c5e5fdb438',1,'visilib::PluckerPolytopeSplitter']]], 8 | ['subdivide',['subdivide',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a296e5adbc26d762b483b482e264632dd',1,'visilib::HelperSyntheticMeshBuilder']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /visilib/visilib_core.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | #ifdef EXACT_ARITHMETIC 24 | #include 25 | #include 26 | typedef CGAL::Lazy_exact_nt exact; 27 | #endif 28 | 29 | #include 30 | #include 31 | #include 32 | 33 | namespace visilib 34 | { 35 | #ifdef INTEGRITY_CHECK 36 | #define V_ASSERT(X) assert(X) 37 | #else 38 | #define V_ASSERT(X) ((void)0) 39 | #endif 40 | 41 | #ifdef OUTPUT_DEBUG_FILE 42 | inline void V_LOG(std::ostream& out, const std::string& message, std::string prefix = "") 43 | { 44 | out << "["< 18 | 19 | set(KIT visilibTest) 20 | 21 | # ${KIT}CxxTests.cpp 22 | 23 | set(Tests 24 | ./src/test_full.cpp 25 | ./src/test_math.cpp 26 | ./src/test_visibility.cpp 27 | ../demo/demo_helper.cpp 28 | ) 29 | 30 | include_directories( ../visilib/ ) 31 | 32 | add_executable(visilibTest ${Tests}) 33 | 34 | target_link_libraries(visilibTest ${LIBS}) 35 | 36 | #add_test(NAME stc_test_math COMMAND ${KIT}CxxTests stc_test_math}) 37 | add_test(NAME visilibTest COMMAND visilibTest) 38 | 39 | # remove the test driver source file 40 | set (TestsToRun ${Tests}) 41 | list ( REMOVE_ITEM TestsToRun src/test_full.cxx) 42 | 43 | # Add all the ADD_TEST for each test 44 | foreach (test ${TestsToRun}) 45 | get_filename_component (TName ${test} NAME_WE) 46 | add_test (NAME ${TName} COMMAND test_full ${TName}) 47 | endforeach () 48 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_ray_multi_hit.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_ray_multi_hit}{}\section{visilib\+::Ray\+Multi\+Hit Struct Reference} 2 | \label{structvisilib_1_1_ray_multi_hit}\index{visilib::RayMultiHit@{visilib::RayMultiHit}} 3 | 4 | 5 | Extended ray structure to store all the hits along the ray. 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$silhouette\+\_\+container\+\_\+embree.\+h$>$} 11 | 12 | \subsection*{Public Attributes} 13 | \begin{DoxyCompactItemize} 14 | \item 15 | \mbox{\Hypertarget{structvisilib_1_1_ray_multi_hit_a3f8a378c9a5b213d64f0616262322dad}\label{structvisilib_1_1_ray_multi_hit_a3f8a378c9a5b213d64f0616262322dad}} 16 | R\+T\+C\+Ray\+Hit {\bfseries ray\+Hit} 17 | \item 18 | \mbox{\Hypertarget{structvisilib_1_1_ray_multi_hit_a6a0dcd46cec9bc639a43b2151b05105a}\label{structvisilib_1_1_ray_multi_hit_a6a0dcd46cec9bc639a43b2151b05105a}} 19 | unsigned int {\bfseries first\+Hit} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_ray_multi_hit_a03e1f83d769c1405441cc31afc7d67fc}\label{structvisilib_1_1_ray_multi_hit_a03e1f83d769c1405441cc31afc7d67fc}} 22 | unsigned int {\bfseries last\+Hit} 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_ray_multi_hit_abd9e86ea3f60605b165a9ff24ceb2e35}\label{structvisilib_1_1_ray_multi_hit_abd9e86ea3f60605b165a9ff24ceb2e35}} 25 | unsigned int {\bfseries hit\+\_\+geom\+I\+Ds} \mbox{[}H\+I\+T\+\_\+\+L\+I\+S\+T\+\_\+\+L\+E\+N\+G\+TH\mbox{]} 26 | \end{DoxyCompactItemize} 27 | 28 | 29 | \subsection{Detailed Description} 30 | Extended ray structure to store all the hits along the ray. 31 | 32 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 33 | \item 34 | C\+:/code/github/visilib/visilib/silhouette\+\_\+container\+\_\+embree.\+h\end{DoxyCompactItemize} 35 | -------------------------------------------------------------------------------- /doc/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['removedegeneratedtriangles',['removeDegeneratedTriangles',['../classvisilib_1_1_helper_triangle_mesh.html#a8e1d36896b60a29eded64c1cc28c00cc',1,'visilib::HelperTriangleMesh::removeDegeneratedTriangles()'],['../classvisilib_1_1_helper_triangle_mesh_container.html#ac7b69c0fc33554617cda85f0f8a107f5',1,'visilib::HelperTriangleMeshContainer::removeDegeneratedTriangles()']]], 4 | ['removefaces',['removeFaces',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a23adb9695595040ccf8782bd29f364c4',1,'visilib::HelperSyntheticMeshBuilder']]], 5 | ['representativelinesampling',['representativeLineSampling',['../structvisilib_1_1_visibility_exact_query_configuration.html#adadc6d7391bfcfdd0b8f20efe79c81cf',1,'visilib::VisibilityExactQueryConfiguration']]], 6 | ['rescaletounitbox',['rescaleToUnitBox',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a408cd0c312a1053f6a479fc2fbea847f',1,'visilib::HelperSyntheticMeshBuilder']]], 7 | ['restoreoccluderconnectedfaces',['restoreOccluderConnectedFaces',['../classvisilib_1_1_geometry_occluder_set.html#a01d2de1cfec62e4000ca3b5b262ae4bb',1,'visilib::GeometryOccluderSet']]], 8 | ['rotate',['rotate',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a47c189c29ad2889310e1667a30eb2ad7',1,'visilib::HelperSyntheticMeshBuilder::rotate(HelperTriangleMeshContainer *scene, float pitch, float yaw, float roll)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#ab61dd13855f074658c44c93fb9dce953',1,'visilib::HelperSyntheticMeshBuilder::rotate(HelperTriangleMesh *mesh, float pitch, float yaw, float roll)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#aac6ebe32f62401531e2f2836d8da86a9',1,'visilib::HelperSyntheticMeshBuilder::rotate(std::vector< MathVector3f > &vertices, float pitch, float yaw, float roll)']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /visilib/visibility_ray.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | #include 23 | 24 | namespace visilib 25 | { 26 | /** @brief Represents a 3D ray, and contains the list of intersected geometries.*/ 27 | 28 | struct VisibilityRay 29 | { 30 | float org[3]; /**< @brief Ray origin*/ 31 | float dir[3]; /**< @brief Ray direction*/ 32 | float tnear; /**< @brief Start of ray segment*/ 33 | float tfar; /**< @brief End of ray segment (set to hit distance)*/ 34 | 35 | void addIntersection(size_t geometryId, size_t primitiveId, double t) 36 | { 37 | mGeometryIds.push_back(geometryId); 38 | mPrimitiveIds.push_back(primitiveId); 39 | mTs.push_back(t); 40 | } 41 | 42 | std::vector mGeometryIds; /**< @brief Intersected geometry mesh*/ 43 | std::vector mPrimitiveIds; /**< @brief Intersected primitve of the mesh*/ 44 | std::vector mTs; /**< @brief Intersected primitve of the mesh*/ 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_geometry_ray_multi_hit.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_geometry_ray_multi_hit}{}\section{visilib\+::Geometry\+Ray\+Multi\+Hit Struct Reference} 2 | \label{structvisilib_1_1_geometry_ray_multi_hit}\index{visilib::GeometryRayMultiHit@{visilib::GeometryRayMultiHit}} 3 | 4 | 5 | Extended ray structure to store all the hits along the ray. 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$silhouette\+\_\+container\+\_\+embree.\+h$>$} 11 | 12 | \subsection*{Public Attributes} 13 | \begin{DoxyCompactItemize} 14 | \item 15 | \mbox{\Hypertarget{structvisilib_1_1_geometry_ray_multi_hit_afae4c896c73b645bd216321622f6a92b}\label{structvisilib_1_1_geometry_ray_multi_hit_afae4c896c73b645bd216321622f6a92b}} 16 | R\+T\+C\+Ray\+Hit {\bfseries ray\+Hit} 17 | \item 18 | \mbox{\Hypertarget{structvisilib_1_1_geometry_ray_multi_hit_ad5d5b5118b46c96eecb5a53270ff351d}\label{structvisilib_1_1_geometry_ray_multi_hit_ad5d5b5118b46c96eecb5a53270ff351d}} 19 | unsigned int {\bfseries first\+Hit} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_geometry_ray_multi_hit_abb8d1627292c4e26f86eb376cb931fdd}\label{structvisilib_1_1_geometry_ray_multi_hit_abb8d1627292c4e26f86eb376cb931fdd}} 22 | unsigned int {\bfseries last\+Hit} 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_geometry_ray_multi_hit_a56b29113dfe810532eaf05f71aae5b09}\label{structvisilib_1_1_geometry_ray_multi_hit_a56b29113dfe810532eaf05f71aae5b09}} 25 | unsigned int {\bfseries hit\+\_\+geom\+I\+Ds} \mbox{[}H\+I\+T\+\_\+\+L\+I\+S\+T\+\_\+\+L\+E\+N\+G\+TH\mbox{]} 26 | \end{DoxyCompactItemize} 27 | 28 | 29 | \subsection{Detailed Description} 30 | Extended ray structure to store all the hits along the ray. 31 | 32 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 33 | \item 34 | C\+:/code/github/visilib/visilib/silhouette\+\_\+container\+\_\+embree.\+h\end{DoxyCompactItemize} 35 | -------------------------------------------------------------------------------- /demo/demo_debug_visualisation_gl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | #include "visilib.h" 24 | #include "helper_triangle_mesh_container.h" 25 | 26 | namespace visilibDemo 27 | { 28 | class DemoDebugVisualisationGl 29 | { 30 | public: 31 | static size_t draw(const visilib::GeometryAABB& aabb); 32 | static size_t drawPolygonEdges(const std::vector& vertices); 33 | static size_t drawPolygonPoints(const std::vector& vertices); 34 | static size_t drawPolygon(const std::vector& vertices); 35 | static size_t drawScene(const visilib::HelperTriangleMeshContainer& aScene); 36 | static size_t drawMesh(const visilib::GeometryTriangleMeshDescription& aMesh); 37 | static size_t drawLines(const visilib::GeometryTriangleMeshDescription& info); 38 | static size_t drawTriangles(const visilib::GeometryTriangleMeshDescription& info); 39 | 40 | static size_t display(visilib::HelperVisualDebugger* debugger, const visilib::HelperTriangleMeshContainer& aScene, const std::vector& v0, const std::vector& v1, visilib::VisibilityResult result, int drawGeometryType); 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /visilib/geometry_aabbox.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | #include "math_vector_3.h" 24 | 25 | namespace visilib 26 | { 27 | /** @brief 28 | Store an axis aligned bounding box in 3D space 29 | */ 30 | 31 | class GeometryAABB 32 | { 33 | public: 34 | GeometryAABB() 35 | : mMin(0, 0, 0), mMax(0, 0, 0) 36 | { 37 | } 38 | 39 | GeometryAABB(const MathVector3f& aMin, const MathVector3f& aMax) 40 | :mMin(aMin), 41 | mMax(aMax) 42 | { 43 | } 44 | 45 | GeometryAABB(const GeometryAABB& aBox) 46 | :mMin(aBox.mMin), 47 | mMax(aBox.mMax) 48 | { 49 | } 50 | 51 | const MathVector3f& getMin() const 52 | { 53 | return mMin; 54 | } 55 | 56 | const MathVector3f getMax() const 57 | { 58 | return mMax; 59 | } 60 | 61 | void init(const MathVector3f& aMin, const MathVector3f& aMax) 62 | { 63 | mMin = aMin; mMax = aMax; 64 | } 65 | 66 | 67 | private: 68 | MathVector3f mMin; 69 | MathVector3f mMax; 70 | }; 71 | } 72 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_triangle_mesh_description.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_triangle_mesh_description}{}\section{visilib\+::Triangle\+Mesh\+Description Struct Reference} 2 | \label{structvisilib_1_1_triangle_mesh_description}\index{visilib::TriangleMeshDescription@{visilib::TriangleMeshDescription}} 3 | 4 | 5 | Representation of a triangle mesh. 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$visilib.\+h$>$} 11 | 12 | Inheritance diagram for visilib\+::Triangle\+Mesh\+Description\+:\begin{figure}[H] 13 | \begin{center} 14 | \leavevmode 15 | \includegraphics[height=2.000000cm]{structvisilib_1_1_triangle_mesh_description} 16 | \end{center} 17 | \end{figure} 18 | \subsection*{Public Member Functions} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_triangle_mesh_description_ad9125f498b0e5eb05001e8706e7393f6}\label{structvisilib_1_1_triangle_mesh_description_ad9125f498b0e5eb05001e8706e7393f6}} 22 | virtual std\+::vector$<$ int $>$ {\bfseries get\+Indices} (size\+\_\+t a\+Face) const override 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_triangle_mesh_description_a2ad71fb110d51e86900312b4d2ac5cfd}\label{structvisilib_1_1_triangle_mesh_description_a2ad71fb110d51e86900312b4d2ac5cfd}} 25 | virtual size\+\_\+t {\bfseries get\+Index\+Count} () const override 26 | \end{DoxyCompactItemize} 27 | \subsection*{Public Attributes} 28 | \begin{DoxyCompactItemize} 29 | \item 30 | \mbox{\Hypertarget{structvisilib_1_1_triangle_mesh_description_ad066f88f5351109e3900ae7356da5675}\label{structvisilib_1_1_triangle_mesh_description_ad066f88f5351109e3900ae7356da5675}} 31 | const int $\ast$ \mbox{\hyperlink{structvisilib_1_1_triangle_mesh_description_ad066f88f5351109e3900ae7356da5675}{index\+Array}} 32 | \begin{DoxyCompactList}\small\item\em Pointer to the index table. \end{DoxyCompactList}\end{DoxyCompactItemize} 33 | 34 | 35 | \subsection{Detailed Description} 36 | Representation of a triangle mesh. 37 | 38 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 39 | \item 40 | C\+:/code/github/visilib/visilib/visilib.\+h\item 41 | C\+:/code/github/visilib/visilib/visilib.\+hpp\end{DoxyCompactItemize} 42 | -------------------------------------------------------------------------------- /doc/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hasalledgescollapsed',['hasAllEdgesCollapsed',['../classvisilib_1_1_plucker_polytope.html#ac5f9ad5e1bd02b000b77c1360a2d1f67',1,'visilib::PluckerPolytope']]], 4 | ['hasfacet',['hasFacet',['../classvisilib_1_1_math_combinatorial.html#a7b63205c6b27719a20d8ffdb1e7ef7c5',1,'visilib::MathCombinatorial']]], 5 | ['hash',['Hash',['../structvisilib_1_1_silhouette_1_1_hash.html',1,'visilib::Silhouette::Hash'],['../structvisilib_1_1_math_vector2___1_1_hash.html',1,'visilib::MathVector2_< S >::Hash']]], 6 | ['haspluckeredgewithquadricintersection',['hasPluckerEdgeWithQuadricIntersection',['../classvisilib_1_1_math_geometry.html#a29d14c13f99b5a47942062dd82487b89',1,'visilib::MathGeometry']]], 7 | ['haveatleastncommonfacets',['haveAtLeastNCommonFacets',['../classvisilib_1_1_math_combinatorial.html#add385e8d5b8bfb586e3d16dee08c5cd1',1,'visilib::MathCombinatorial']]], 8 | ['helpergeometryscenereader',['HelperGeometrySceneReader',['../classvisilib_1_1_helper_geometry_scene_reader.html',1,'visilib']]], 9 | ['helperscopedtimer',['HelperScopedTimer',['../classvisilib_1_1_helper_scoped_timer.html',1,'visilib']]], 10 | ['helperstatisticcollector',['HelperStatisticCollector',['../classvisilib_1_1_helper_statistic_collector.html',1,'visilib']]], 11 | ['helpersyntheticmeshbuilder',['HelperSyntheticMeshBuilder',['../classvisilib_1_1_helper_synthetic_mesh_builder.html',1,'visilib']]], 12 | ['helpertrianglemesh',['HelperTriangleMesh',['../classvisilib_1_1_helper_triangle_mesh.html',1,'visilib']]], 13 | ['helpertrianglemeshcontainer',['HelperTriangleMeshContainer',['../classvisilib_1_1_helper_triangle_mesh_container.html',1,'visilib']]], 14 | ['helpervisualdebugger',['HelperVisualDebugger',['../classvisilib_1_1_helper_visual_debugger.html',1,'visilib']]], 15 | ['hitsboundingbox',['hitsBoundingBox',['../classvisilib_1_1_math_geometry.html#af19a3bdb94d0e929dbe8ffcda093c57e',1,'visilib::MathGeometry']]], 16 | ['hitstriangle',['hitsTriangle',['../classvisilib_1_1_math_geometry.html#ae24dedad7a35b9c818759ea566b8b3c5',1,'visilib::MathGeometry']]], 17 | ['hyperspherenormalization',['hyperSphereNormalization',['../structvisilib_1_1_visibility_exact_query_configuration.html#ae3f308c718e6e7051c9d8a1d08065def',1,'visilib::VisibilityExactQueryConfiguration']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_geometry_triangle_mesh_description.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_geometry_triangle_mesh_description}{}\section{visilib\+::Geometry\+Triangle\+Mesh\+Description Struct Reference} 2 | \label{structvisilib_1_1_geometry_triangle_mesh_description}\index{visilib::GeometryTriangleMeshDescription@{visilib::GeometryTriangleMeshDescription}} 3 | 4 | 5 | Representation of a triangle mesh. 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$geometry\+\_\+mesh\+\_\+description.\+h$>$} 11 | 12 | Inheritance diagram for visilib\+::Geometry\+Triangle\+Mesh\+Description\+:\begin{figure}[H] 13 | \begin{center} 14 | \leavevmode 15 | \includegraphics[height=2.000000cm]{structvisilib_1_1_geometry_triangle_mesh_description} 16 | \end{center} 17 | \end{figure} 18 | \subsection*{Public Member Functions} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_geometry_triangle_mesh_description_ac3bbf60ef76b5bbbd8731ca75113a1c7}\label{structvisilib_1_1_geometry_triangle_mesh_description_ac3bbf60ef76b5bbbd8731ca75113a1c7}} 22 | virtual std\+::vector$<$ int $>$ {\bfseries get\+Indices} (size\+\_\+t a\+Face) const override 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_geometry_triangle_mesh_description_a7fd6d7e8f1a287607a18ad507be4c283}\label{structvisilib_1_1_geometry_triangle_mesh_description_a7fd6d7e8f1a287607a18ad507be4c283}} 25 | virtual size\+\_\+t {\bfseries get\+Index\+Count} () const override 26 | \end{DoxyCompactItemize} 27 | \subsection*{Public Attributes} 28 | \begin{DoxyCompactItemize} 29 | \item 30 | \mbox{\Hypertarget{structvisilib_1_1_geometry_triangle_mesh_description_a161f5e6343b08d34bac9eb58b6ee6aa5}\label{structvisilib_1_1_geometry_triangle_mesh_description_a161f5e6343b08d34bac9eb58b6ee6aa5}} 31 | const int $\ast$ \mbox{\hyperlink{structvisilib_1_1_geometry_triangle_mesh_description_a161f5e6343b08d34bac9eb58b6ee6aa5}{index\+Array}} 32 | \begin{DoxyCompactList}\small\item\em Pointer to the index table. \end{DoxyCompactList}\end{DoxyCompactItemize} 33 | 34 | 35 | \subsection{Detailed Description} 36 | Representation of a triangle mesh. 37 | 38 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 39 | \item 40 | C\+:/code/github/visilib/visilib/geometry\+\_\+mesh\+\_\+description.\+h\end{DoxyCompactItemize} 41 | -------------------------------------------------------------------------------- /doc/html/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['scale',['scale',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a3ad2d53409b8fd3335e5acec7dd62e7a',1,'visilib::HelperSyntheticMeshBuilder::scale(HelperTriangleMeshContainer *scene, float scale)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a8b37a0fe23de8994cefeb27b39a5cb3f',1,'visilib::HelperSyntheticMeshBuilder::scale(HelperTriangleMesh *mesh, float scale)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a2387e4616a262b88bedfe6048646a2e2',1,'visilib::HelperSyntheticMeshBuilder::scale(std::vector< MathVector3f > &vertices, float scale)']]], 4 | ['setgeometry',['setGeometry',['../classvisilib_1_1_silhouette_mesh_face.html#a4fd7d7ee6b556712f7771aecf9685ae1',1,'visilib::SilhouetteMeshFace']]], 5 | ['setneighbour',['setNeighbour',['../classvisilib_1_1_silhouette_mesh_face.html#a481d2d1b6544e3be14c55842ee37ab0a',1,'visilib::SilhouetteMeshFace']]], 6 | ['setoccluderconnectedfaces',['setOccluderConnectedFaces',['../classvisilib_1_1_geometry_occluder_set.html#a64be17502b1343e735a4385edeaf223f',1,'visilib::GeometryOccluderSet']]], 7 | ['silhouette',['Silhouette',['../classvisilib_1_1_silhouette.html',1,'visilib']]], 8 | ['silhouettecontainer',['SilhouetteContainer',['../classvisilib_1_1_silhouette_container.html',1,'visilib']]], 9 | ['silhouettecontainerembree',['SilhouetteContainerEmbree',['../classvisilib_1_1_silhouette_container_embree.html',1,'visilib']]], 10 | ['silhouetteedge',['SilhouetteEdge',['../structvisilib_1_1_silhouette_edge.html',1,'visilib']]], 11 | ['silhouettemeshface',['SilhouetteMeshFace',['../classvisilib_1_1_silhouette_mesh_face.html',1,'visilib']]], 12 | ['silhouetteoptimization',['silhouetteOptimization',['../structvisilib_1_1_visibility_exact_query_configuration.html#a9c7e192417bf965199370bc13fe4d572',1,'visilib::VisibilityExactQueryConfiguration']]], 13 | ['silhouetteprocessor',['SilhouetteProcessor',['../classvisilib_1_1_silhouette_processor.html',1,'visilib']]], 14 | ['split',['split',['../classvisilib_1_1_plucker_polytope_splitter.html#a50150fef5b24618c067c14c5e5fdb438',1,'visilib::PluckerPolytopeSplitter']]], 15 | ['subdivide',['subdivide',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a296e5adbc26d762b483b482e264632dd',1,'visilib::HelperSyntheticMeshBuilder']]], 16 | ['sx',['Sx',['../classvisilib_1_1_geometry_ray.html#a19a4fc7cd519d2e28c6ce37d91dac6e4',1,'visilib::GeometryRay']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_silhouette_edge.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_silhouette_edge}{}\section{visilib\+::Silhouette\+Edge Struct Reference} 2 | \label{structvisilib_1_1_silhouette_edge}\index{visilib::SilhouetteEdge@{visilib::SilhouetteEdge}} 3 | 4 | 5 | Store a silhouette edge, containing the mesh face and the support hyperplane. 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$silhouette.\+h$>$} 11 | 12 | \subsection*{Public Member Functions} 13 | \begin{DoxyCompactItemize} 14 | \item 15 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_a894736143f0b9d6b0320922216192a46}\label{structvisilib_1_1_silhouette_edge_a894736143f0b9d6b0320922216192a46}} 16 | {\bfseries Silhouette\+Edge} (\mbox{\hyperlink{classvisilib_1_1_silhouette_mesh_face}{Silhouette\+Mesh\+Face}} $\ast$a\+Face, size\+\_\+t an\+Edge\+Index, size\+\_\+t an\+Hyperplane\+Index) 17 | \end{DoxyCompactItemize} 18 | \subsection*{Public Attributes} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_aec1b2891776743cef966392f1959caed}\label{structvisilib_1_1_silhouette_edge_aec1b2891776743cef966392f1959caed}} 22 | size\+\_\+t {\bfseries m\+Hyper\+Plane\+Index} 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_abcaefffdb0a72f109060c0053f30c9e1}\label{structvisilib_1_1_silhouette_edge_abcaefffdb0a72f109060c0053f30c9e1}} 25 | \mbox{\hyperlink{classvisilib_1_1_silhouette_mesh_face}{Silhouette\+Mesh\+Face}} $\ast$ {\bfseries m\+Face} 26 | \item 27 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_add5ccfee703556c1d453d40bcf2fc969}\label{structvisilib_1_1_silhouette_edge_add5ccfee703556c1d453d40bcf2fc969}} 28 | size\+\_\+t {\bfseries m\+Edge\+Index} 29 | \item 30 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_af4db80b5161c888d044ad4b7fd15435b}\label{structvisilib_1_1_silhouette_edge_af4db80b5161c888d044ad4b7fd15435b}} 31 | double {\bfseries m\+Score} 32 | \item 33 | \mbox{\Hypertarget{structvisilib_1_1_silhouette_edge_ab5327c9ef3df2a50ac8e462b0c24b2e9}\label{structvisilib_1_1_silhouette_edge_ab5327c9ef3df2a50ac8e462b0c24b2e9}} 34 | bool {\bfseries m\+Is\+Active} 35 | \end{DoxyCompactItemize} 36 | 37 | 38 | \subsection{Detailed Description} 39 | Store a silhouette edge, containing the mesh face and the support hyperplane. 40 | 41 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 42 | \item 43 | C\+:/code/github/visilib/visilib/silhouette.\+h\end{DoxyCompactItemize} 44 | -------------------------------------------------------------------------------- /visilib/plucker_polytope_complex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | #include 24 | #include "math_plucker_6.h" 25 | 26 | namespace visilib 27 | { 28 | template 29 | class PluckerPolytope; 30 | template 31 | class PluckerPolyhedron; 32 | class HelperStatisticCollector; 33 | template 34 | class VisibilityExactQuery_; 35 | class GeometryConvexPolygon; 36 | 37 | 38 | /** @brief Represents a complex of polytopes in Plucker space. 39 | 40 | Currently only the initial polytope and the polyhedron in Pluker space are stored explicitely 41 | */ 42 | 43 | template 44 | class PluckerPolytopeComplex 45 | { 46 | public: 47 | PluckerPolytopeComplex(); 48 | 49 | ~PluckerPolytopeComplex(); 50 | 51 | bool hasPolytope()const 52 | { 53 | return mRoot != nullptr; 54 | } 55 | 56 | void setRoot(PluckerPolytope

* polytope) 57 | { 58 | V_ASSERT(!hasPolytope()); 59 | mRoot = polytope; 60 | } 61 | 62 | PluckerPolyhedron

* getPolyhedron() { return mPolyhedron; } 63 | PluckerPolytope

* getRoot() { return mRoot; } 64 | private: 65 | 66 | PluckerPolyhedron

* mPolyhedron; 67 | PluckerPolytope

* mRoot; 68 | }; 69 | 70 | template 71 | inline PluckerPolytopeComplex

::PluckerPolytopeComplex() 72 | { 73 | mRoot = nullptr; 74 | mPolyhedron = new PluckerPolyhedron

(); 75 | } 76 | 77 | template 78 | inline PluckerPolytopeComplex

::~PluckerPolytopeComplex() 79 | { 80 | delete mRoot; 81 | delete mPolyhedron; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /demo/demo_helper.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | #include 24 | #include "helper_triangle_mesh_container.h" 25 | 26 | namespace visilibDemo 27 | { 28 | struct DemoConfiguration 29 | { 30 | std::string getStatusString(bool enable) 31 | { 32 | return enable ? "ON" : "OFF"; 33 | } 34 | size_t vertexCount0 = 3; 35 | size_t vertexCount1 = 3; 36 | bool silhouetteOptimisation = true; 37 | VisibilityExactQueryConfiguration::PrecisionType precisionType = VisibilityExactQueryConfiguration::DOUBLE; 38 | bool detectApertureOnly = false; 39 | bool normalization = true; 40 | float scaling = 0.1f; 41 | float phi = 0; 42 | float eta = 0; 43 | int sceneIndex = 2; 44 | float globalScaling = 1; 45 | double tolerance = -1; 46 | #if EMBREE 47 | bool embree = false; 48 | #endif 49 | void displaySettings(); 50 | void readConfig(const std::string& filename); 51 | void writeConfig(const std::string& filename); 52 | void displaySummary(); 53 | }; 54 | 55 | class DemoHelper 56 | { 57 | public: 58 | static void generatePolygon(std::vector& v, size_t vertexCount, float size, float phi, float scaling); 59 | static bool load(visilib::HelperTriangleMeshContainer* scene, const std::string& fileName, bool rempveDegeneratedTriangles = false); 60 | static HelperTriangleMeshContainer* createScene(int s, float globalScalingFactor); 61 | static GeometryOccluderSet* createOccluderSet(HelperTriangleMeshContainer* aContainer); 62 | static void configureDemoConfiguration(const std::string& name, DemoConfiguration& configuration); 63 | }; 64 | } 65 | -------------------------------------------------------------------------------- /visilib/geometry_mesh_description.h: -------------------------------------------------------------------------------- 1 | /* 2 | Visilib, an open source library for exact visibility computation. 3 | Copyright(C) 2021 by Denis Haumont 4 | 5 | This file is part of Visilib. 6 | 7 | Visilib is free software : you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | Visilib is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with Visilib. If not, see 19 | */ 20 | 21 | #pragma once 22 | 23 | namespace visilib 24 | { 25 | 26 | /** @brief Description of a discrete geometry (ie a mesh).*/ 27 | 28 | struct GeometryDiscreteMeshDescription 29 | { 30 | GeometryDiscreteMeshDescription(); 31 | 32 | virtual ~GeometryDiscreteMeshDescription() 33 | { 34 | } 35 | 36 | virtual std::vector getIndices(size_t aFace) const = 0; 37 | virtual size_t getIndexCount() const = 0; 38 | 39 | size_t vertexCount; /**< @brief Number of vertices*/ 40 | size_t faceCount; /**< @brief Number of faces*/ 41 | const float* vertexArray; /**< @brief Pointer to the vertex table*/ 42 | const float* normalArray; /**< @brief Pointer to the normal table (optional)*/ 43 | 44 | }; 45 | 46 | /** @brief Representation of a triangle mesh.*/ 47 | 48 | struct GeometryTriangleMeshDescription : public GeometryDiscreteMeshDescription 49 | { 50 | GeometryTriangleMeshDescription(); 51 | 52 | virtual std::vector getIndices(size_t aFace) const override 53 | { 54 | return std::vector{indexArray[aFace * 3], indexArray[aFace * 3 + 1], indexArray[aFace * 3 + 2] }; 55 | } 56 | 57 | virtual size_t getIndexCount() const override 58 | { 59 | return faceCount * 3; 60 | } 61 | 62 | const int* indexArray; /**< @brief Pointer to the index table*/ 63 | }; 64 | 65 | inline GeometryDiscreteMeshDescription::GeometryDiscreteMeshDescription() 66 | : vertexCount(0), 67 | faceCount(0), 68 | vertexArray(nullptr), 69 | normalArray(nullptr) 70 | { 71 | } 72 | 73 | inline GeometryTriangleMeshDescription::GeometryTriangleMeshDescription() 74 | : GeometryDiscreteMeshDescription(), 75 | indexArray(nullptr) 76 | { 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /doc/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['init',['init',['../classvisilib_1_1_silhouette_processor.html#a8225d6744e57ae62d2f649e50fd4b0a2',1,'visilib::SilhouetteProcessor']]], 4 | ['initconvexhull',['initConvexHull',['../classvisilib_1_1_silhouette_processor.html#a75124a633d2221e1fa7218b5eefb09bb',1,'visilib::SilhouetteProcessor']]], 5 | ['initfacets',['initFacets',['../classvisilib_1_1_math_combinatorial.html#ae4b0f9e26c345cde34d7a6b1924e9f04',1,'visilib::MathCombinatorial']]], 6 | ['initfacetsdescription',['initFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#a456acedaa72507e04a07234bd99d91d6',1,'visilib::PluckerPolyhedron']]], 7 | ['interpolate',['interpolate',['../classvisilib_1_1_math_geometry.html#ab6a7122ce9ad4d17b406e12ad1bd125f',1,'visilib::MathGeometry']]], 8 | ['intersect',['intersect',['../classvisilib_1_1_math_geometry.html#ad92f7fd332aca0943d17f622327a67c3',1,'visilib::MathGeometry::intersect()'],['../classvisilib_1_1_silhouette_container_embree.html#a3cc23503bfa6f2db55762cf0851d6c69',1,'visilib::SilhouetteContainerEmbree::intersect()']]], 9 | ['isedgepotentiallyinsideshaft',['isEdgePotentiallyInsideShaft',['../classvisilib_1_1_math_geometry.html#adac5d1f80cdb58ce8a53901e6e142a87',1,'visilib::MathGeometry']]], 10 | ['isfinite',['isFinite',['../classvisilib_1_1_math_arithmetic.html#a8380e91fbec3559877651450282153cb',1,'visilib::MathArithmetic::isFinite(S a)'],['../classvisilib_1_1_math_arithmetic.html#ad4df0d69c8a2c36a68f5a1345eea1a41',1,'visilib::MathArithmetic::isFinite(MathVector3_< S > a)']]], 11 | ['isnormalized',['isNormalized',['../classvisilib_1_1_plucker_polyhedron.html#a215fcdba3dc71993795ef9a2d89f1751',1,'visilib::PluckerPolyhedron']]], 12 | ['ispointinsidepolygon',['isPointInsidePolygon',['../classvisilib_1_1_math_geometry.html#ad65e69745c8a1f786d279ebf0a8c7fb7',1,'visilib::MathGeometry']]], 13 | ['ispolygonbetweensourceplanes',['isPolygonBetweenSourcePlanes',['../classvisilib_1_1_silhouette_processor.html#a0b85bda058a2412f2abfab105af75a64',1,'visilib::SilhouetteProcessor']]], 14 | ['ispotentialsilhouetteedge',['isPotentialSilhouetteEdge',['../classvisilib_1_1_silhouette_processor.html#a860d7b7a18d3b97ff8a87234dc13fb53',1,'visilib::SilhouetteProcessor']]], 15 | ['ispotentialsilhouetteedgeinternal',['isPotentialSilhouetteEdgeInternal',['../classvisilib_1_1_silhouette_processor.html#a802ca9581c1496e8904ea4dc81ea12e4',1,'visilib::SilhouetteProcessor']]], 16 | ['issamesign',['isSameSign',['../classvisilib_1_1_math_arithmetic.html#a8266820603880540bcc75d4985cbeb99',1,'visilib::MathArithmetic']]], 17 | ['isvalid',['isValid',['../classvisilib_1_1_plucker_polyhedron.html#aab25f8beb468ef198b0d1667722e9687',1,'visilib::PluckerPolyhedron::isValid()'],['../classvisilib_1_1_plucker_polytope.html#a8a766bb84150935065deee93b472de85',1,'visilib::PluckerPolytope::isValid()']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /doc/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['checkfacetsdescription',['checkFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#ad2cc2148a11d7b63f999fc25f1a13489',1,'visilib::PluckerPolyhedron']]], 4 | ['clear',['clear',['../classvisilib_1_1_helper_visual_debugger.html#a1e1fdc98ebf978b83785e508ddaed3f4',1,'visilib::HelperVisualDebugger']]], 5 | ['clipwithgardband',['clipWithGardBand',['../classvisilib_1_1_math_geometry.html#a6b3430d7013a6d749d613c4b95bd071c',1,'visilib::MathGeometry']]], 6 | ['collectalloccluders',['collectAllOccluders',['../classvisilib_1_1_visibility_exact_query__.html#a37d430f305c3024cc8ab9efb7dbaf534',1,'visilib::VisibilityExactQuery_']]], 7 | ['computeedgesintersectingquadric',['computeEdgesIntersectingQuadric',['../classvisilib_1_1_plucker_polytope.html#a3137c0414f0cfb604cd4dd06c1dbaeaf',1,'visilib::PluckerPolytope']]], 8 | ['computeextremalstabbinglines',['computeExtremalStabbingLines',['../classvisilib_1_1_plucker_polytope.html#a0ec26e8b054116d8f4a5031589dde6ae',1,'visilib::PluckerPolytope']]], 9 | ['computenormal',['computeNormal',['../classvisilib_1_1_helper_triangle_mesh.html#a30b254ee3c7690c88c80aa671b4f00fa',1,'visilib::HelperTriangleMesh']]], 10 | ['computeplane',['computePlane',['../classvisilib_1_1_math_geometry.html#a8ebbe0b6e95a1335f9067d7b8b01016d',1,'visilib::MathGeometry::computePlane(const GeometryConvexPolygon &polygon)'],['../classvisilib_1_1_math_geometry.html#a2a0a78fe422814f59109cda4885af760',1,'visilib::MathGeometry::computePlane(const MathVector3_< S > &v0, const MathVector3_< S > &v1, const MathVector3_< S > &v2)']]], 11 | ['computeplanefromapproximatenormal',['computePlaneFromApproximateNormal',['../classvisilib_1_1_math_geometry.html#af1319565cb7ce7ab64ffc79a2c60a35b',1,'visilib::MathGeometry']]], 12 | ['computerayparameters',['computeRayParameters',['../classvisilib_1_1_math_geometry.html#a73f9ca6d8b008ced426ce0c1388b5fa0',1,'visilib::MathGeometry']]], 13 | ['computerepresentativeline',['computeRepresentativeLine',['../classvisilib_1_1_math_geometry.html#ad6d2f79eb23fdfd9ce23bca5d36fc403',1,'visilib::MathGeometry']]], 14 | ['containsotherlineswithsamefacetsdescription',['containsOtherLinesWithSameFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#ae9e79e8652ffe2b28040e6cb0650933b',1,'visilib::PluckerPolyhedron']]], 15 | ['containsreallines',['containsRealLines',['../classvisilib_1_1_plucker_polytope.html#a54c6bf6d962cd35f9220e9ca447cbb3a',1,'visilib::PluckerPolytope']]], 16 | ['createinitialpolygons',['createInitialPolygons',['../classvisilib_1_1_visibility_exact_query__.html#a8f1759e155f8d6e1880d725ecc74bde3',1,'visilib::VisibilityExactQuery_']]], 17 | ['createtrianglemeshdescription',['createTriangleMeshDescription',['../classvisilib_1_1_helper_triangle_mesh_container.html#adef9e75e930431227494fdcd5de664da',1,'visilib::HelperTriangleMeshContainer']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /doc/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['checkfacetsdescription',['checkFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#ad2cc2148a11d7b63f999fc25f1a13489',1,'visilib::PluckerPolyhedron']]], 4 | ['clear',['clear',['../classvisilib_1_1_helper_visual_debugger.html#a1e1fdc98ebf978b83785e508ddaed3f4',1,'visilib::HelperVisualDebugger']]], 5 | ['clipwithgardband',['clipWithGardBand',['../classvisilib_1_1_math_geometry.html#a6b3430d7013a6d749d613c4b95bd071c',1,'visilib::MathGeometry']]], 6 | ['collectalloccluders',['collectAllOccluders',['../classvisilib_1_1_visibility_exact_query__.html#a37d430f305c3024cc8ab9efb7dbaf534',1,'visilib::VisibilityExactQuery_']]], 7 | ['computeedgesintersectingquadric',['computeEdgesIntersectingQuadric',['../classvisilib_1_1_plucker_polytope.html#a3137c0414f0cfb604cd4dd06c1dbaeaf',1,'visilib::PluckerPolytope']]], 8 | ['computeextremalstabbinglines',['computeExtremalStabbingLines',['../classvisilib_1_1_plucker_polytope.html#a0ec26e8b054116d8f4a5031589dde6ae',1,'visilib::PluckerPolytope']]], 9 | ['computenormal',['computeNormal',['../classvisilib_1_1_helper_triangle_mesh.html#a30b254ee3c7690c88c80aa671b4f00fa',1,'visilib::HelperTriangleMesh']]], 10 | ['computeplane',['computePlane',['../classvisilib_1_1_math_geometry.html#a8ebbe0b6e95a1335f9067d7b8b01016d',1,'visilib::MathGeometry::computePlane(const GeometryConvexPolygon &polygon)'],['../classvisilib_1_1_math_geometry.html#a2a0a78fe422814f59109cda4885af760',1,'visilib::MathGeometry::computePlane(const MathVector3_< S > &v0, const MathVector3_< S > &v1, const MathVector3_< S > &v2)']]], 11 | ['computeplanefromapproximatenormal',['computePlaneFromApproximateNormal',['../classvisilib_1_1_math_geometry.html#af1319565cb7ce7ab64ffc79a2c60a35b',1,'visilib::MathGeometry']]], 12 | ['computerayparameters',['computeRayParameters',['../classvisilib_1_1_math_geometry.html#a73f9ca6d8b008ced426ce0c1388b5fa0',1,'visilib::MathGeometry']]], 13 | ['computerepresentativeline',['computeRepresentativeLine',['../classvisilib_1_1_math_geometry.html#ad6d2f79eb23fdfd9ce23bca5d36fc403',1,'visilib::MathGeometry']]], 14 | ['containsotherlineswithsamefacetsdescription',['containsOtherLinesWithSameFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#ae9e79e8652ffe2b28040e6cb0650933b',1,'visilib::PluckerPolyhedron']]], 15 | ['containsreallines',['containsRealLines',['../classvisilib_1_1_plucker_polytope.html#a54c6bf6d962cd35f9220e9ca447cbb3a',1,'visilib::PluckerPolytope']]], 16 | ['createinitialpolygons',['createInitialPolygons',['../classvisilib_1_1_visibility_exact_query__.html#a8f1759e155f8d6e1880d725ecc74bde3',1,'visilib::VisibilityExactQuery_']]], 17 | ['createtrianglemeshdescription',['createTriangleMeshDescription',['../classvisilib_1_1_helper_triangle_mesh_container.html#adef9e75e930431227494fdcd5de664da',1,'visilib::HelperTriangleMeshContainer']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /doc/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['indexarray',['indexArray',['../structvisilib_1_1_geometry_triangle_mesh_description.html#a161f5e6343b08d34bac9eb58b6ee6aa5',1,'visilib::GeometryTriangleMeshDescription']]], 4 | ['init',['init',['../classvisilib_1_1_silhouette_processor.html#a8225d6744e57ae62d2f649e50fd4b0a2',1,'visilib::SilhouetteProcessor']]], 5 | ['initconvexhull',['initConvexHull',['../classvisilib_1_1_silhouette_processor.html#a75124a633d2221e1fa7218b5eefb09bb',1,'visilib::SilhouetteProcessor']]], 6 | ['initfacets',['initFacets',['../classvisilib_1_1_math_combinatorial.html#ae4b0f9e26c345cde34d7a6b1924e9f04',1,'visilib::MathCombinatorial']]], 7 | ['initfacetsdescription',['initFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#a456acedaa72507e04a07234bd99d91d6',1,'visilib::PluckerPolyhedron']]], 8 | ['interpolate',['interpolate',['../classvisilib_1_1_math_geometry.html#ab6a7122ce9ad4d17b406e12ad1bd125f',1,'visilib::MathGeometry']]], 9 | ['intersect',['intersect',['../classvisilib_1_1_math_geometry.html#ad92f7fd332aca0943d17f622327a67c3',1,'visilib::MathGeometry::intersect()'],['../classvisilib_1_1_silhouette_container_embree.html#a3cc23503bfa6f2db55762cf0851d6c69',1,'visilib::SilhouetteContainerEmbree::intersect()']]], 10 | ['isedgepotentiallyinsideshaft',['isEdgePotentiallyInsideShaft',['../classvisilib_1_1_math_geometry.html#adac5d1f80cdb58ce8a53901e6e142a87',1,'visilib::MathGeometry']]], 11 | ['isfinite',['isFinite',['../classvisilib_1_1_math_arithmetic.html#a8380e91fbec3559877651450282153cb',1,'visilib::MathArithmetic::isFinite(S a)'],['../classvisilib_1_1_math_arithmetic.html#ad4df0d69c8a2c36a68f5a1345eea1a41',1,'visilib::MathArithmetic::isFinite(MathVector3_< S > a)']]], 12 | ['isnormalized',['isNormalized',['../classvisilib_1_1_plucker_polyhedron.html#a215fcdba3dc71993795ef9a2d89f1751',1,'visilib::PluckerPolyhedron']]], 13 | ['ispointinsidepolygon',['isPointInsidePolygon',['../classvisilib_1_1_math_geometry.html#ad65e69745c8a1f786d279ebf0a8c7fb7',1,'visilib::MathGeometry']]], 14 | ['ispolygonbetweensourceplanes',['isPolygonBetweenSourcePlanes',['../classvisilib_1_1_silhouette_processor.html#a0b85bda058a2412f2abfab105af75a64',1,'visilib::SilhouetteProcessor']]], 15 | ['ispotentialsilhouetteedge',['isPotentialSilhouetteEdge',['../classvisilib_1_1_silhouette_processor.html#a860d7b7a18d3b97ff8a87234dc13fb53',1,'visilib::SilhouetteProcessor']]], 16 | ['ispotentialsilhouetteedgeinternal',['isPotentialSilhouetteEdgeInternal',['../classvisilib_1_1_silhouette_processor.html#a802ca9581c1496e8904ea4dc81ea12e4',1,'visilib::SilhouetteProcessor']]], 17 | ['issamesign',['isSameSign',['../classvisilib_1_1_math_arithmetic.html#a8266820603880540bcc75d4985cbeb99',1,'visilib::MathArithmetic']]], 18 | ['isvalid',['isValid',['../classvisilib_1_1_plucker_polyhedron.html#aab25f8beb468ef198b0d1667722e9687',1,'visilib::PluckerPolyhedron::isValid()'],['../classvisilib_1_1_plucker_polytope.html#a8a766bb84150935065deee93b472de85',1,'visilib::PluckerPolytope::isValid()']]] 19 | ]; 20 | -------------------------------------------------------------------------------- /doc/html/menu.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2017 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | @licend The above is the entire license notice 22 | for the JavaScript code in this file 23 | */ 24 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 25 | function makeTree(data,relPath) { 26 | var result=''; 27 | if ('children' in data) { 28 | result+='

'; 35 | } 36 | return result; 37 | } 38 | 39 | $('#main-nav').append(makeTree(menudata,relPath)); 40 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 41 | if (searchEnabled) { 42 | if (serverSide) { 43 | $('#main-menu').append('
  • '); 44 | } else { 45 | $('#main-menu').append('
  • '); 46 | } 47 | } 48 | $('#main-menu').smartmenus(); 49 | } 50 | /* @license-end */ 51 | -------------------------------------------------------------------------------- /doc/html/functions_enum.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | visilib: Class Members - Enumerations 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    visilib 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
    49 | 50 |
    54 |
    55 | 56 | 57 |
    58 | 61 |
    62 | 63 |
    64 |   69 |
    70 | 71 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /visilib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Visilib, an open source library for exact visibility computation. 2 | # Copyright(C) 2021 by Denis Haumont 3 | # 4 | # This file is part of Visilib. 5 | # 6 | # Visilib is free software : you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # Visilib is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with Visilib. If not, see 18 | 19 | set(GeometrySrc 20 | geometry_aabbox.h 21 | geometry_convex_polygon.h 22 | geometry_ray.h 23 | geometry_convex_hull.h 24 | geometry_position_type.h 25 | geometry_mesh_description.h 26 | geometry_occluder_set.h 27 | ) 28 | 29 | set(HelperSrc 30 | helper_statistic_collector.h 31 | helper_geometry_scene_reader.h 32 | helper_synthetic_mesh_builder.h 33 | helper_triangle_mesh.h 34 | helper_triangle_mesh_container.h 35 | helper_visual_debugger.h 36 | ) 37 | 38 | set(MathSrc 39 | math_arithmetic.h 40 | math_geometry.h 41 | math_combinatorial.h 42 | math_predicates.h 43 | math_matrix_4.h 44 | math_plucker_2.h 45 | math_plucker_6.h 46 | math_vector_2.h 47 | math_vector_3.h 48 | math_plane_3.h 49 | ) 50 | 51 | set(PluckerSrc 52 | plucker_polyhedron.h 53 | plucker_polytope.h 54 | plucker_polytope_builder.h 55 | plucker_polytope_complex.h 56 | plucker_polytope_splitter.h 57 | ) 58 | 59 | set(VisibilitySrc 60 | visibility_solver.h 61 | visibility_aperture_finder.h 62 | visibility_exact_query.h 63 | visibility_ray.h 64 | ) 65 | 66 | set(SilhouetteSrc 67 | silhouette_processor.h 68 | silhouette.h 69 | silhouette_container.h 70 | silhouette_container_embree.h 71 | silhouette_mesh_face.h 72 | ) 73 | set(ConvexHullSrc 74 | external/convexHull/convexHull.h 75 | ) 76 | 77 | set(Headers 78 | visilib.h 79 | visilib.hpp 80 | visilib_core.h 81 | ) 82 | 83 | source_group( geometry FILES ${GeometrySrc} ) 84 | source_group( helper FILES ${HelperSrc} ) 85 | source_group( math FILES ${MathSrc} ) 86 | source_group( plucker FILES ${PluckerSrc} ) 87 | source_group( silhouette FILES ${SilhouetteSrc} ) 88 | source_group( visibility FILES ${VisibilitySrc} ) 89 | source_group( external FILES ${ConvexHullSrc} ) 90 | source_group( include FILES ${Headers} ) 91 | source_group( src FILES ${Sources} ) 92 | 93 | add_library( ${VISILIB_LIB_NAME} INTERFACE 94 | ${GeometrySrc} 95 | ${GeometryHeader} 96 | ${HelperSrc} 97 | ${MathSrc} 98 | ${PluckerSrc} 99 | ${SilhouetteSrc} 100 | ${VisibilitySrc} 101 | ${ConvexHullSrc} 102 | ${RootSrc} 103 | ${Headers} 104 | ) 105 | 106 | set_target_properties(${VISILIB_LIB_NAME} PROPERTIES LINKER_LANGUAGE CXX) 107 | -------------------------------------------------------------------------------- /cmake/modules/FindCGAL.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # The following module is based on FindVTK.cmake 3 | # 4 | 5 | # - Find a CGAL installation or binary tree. 6 | # The following variables are set if CGAL is found. If CGAL is not 7 | # found, CGAL_FOUND is set to false. 8 | # 9 | # CGAL_FOUND - Set to true when CGAL is found. 10 | # CGAL_USE_FILE - CMake file to use CGAL. 11 | # 12 | 13 | # Construct consitent error messages for use below. 14 | set(CGAL_DIR_DESCRIPTION "directory containing CGALConfig.cmake. This is either the binary directory where CGAL was configured or PREFIX/lib/CGAL for an installation.") 15 | set(CGAL_DIR_MESSAGE "CGAL not found. Set the CGAL_DIR cmake variable or environment variable to the ${CGAL_DIR_DESCRIPTION}") 16 | 17 | if ( NOT CGAL_DIR ) 18 | 19 | # Get the system search path as a list. 20 | if(UNIX) 21 | string(REGEX MATCHALL "[^:]+" CGAL_DIR_SEARCH1 "$ENV{PATH}") 22 | else() 23 | string(REGEX REPLACE "\\\\" "/" CGAL_DIR_SEARCH1 "$ENV{PATH}") 24 | endif() 25 | 26 | string(REGEX REPLACE "/;" ";" CGAL_DIR_SEARCH2 "${CGAL_DIR_SEARCH1}") 27 | 28 | # Construct a set of paths relative to the system search path. 29 | set(CGAL_DIR_SEARCH "") 30 | 31 | foreach(dir ${CGAL_DIR_SEARCH2}) 32 | 33 | set(CGAL_DIR_SEARCH ${CGAL_DIR_SEARCH} ${dir}/../lib/CGAL ) 34 | 35 | endforeach() 36 | 37 | 38 | # 39 | # Look for an installation or build tree. 40 | # 41 | find_path(CGAL_DIR CGALConfig.cmake 42 | 43 | # Look for an environment variable CGAL_DIR. 44 | $ENV{CGAL_DIR} 45 | 46 | # Look in places relative to the system executable search path. 47 | ${CGAL_DIR_SEARCH} 48 | 49 | # Look in standard UNIX install locations. 50 | /usr/local/lib/CGAL 51 | /usr/lib/CGAL 52 | 53 | # Read from the CMakeSetup registry entries. It is likely that 54 | # CGAL will have been recently built. 55 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] 56 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] 57 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] 58 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] 59 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] 60 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] 61 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] 62 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] 63 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] 64 | [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] 65 | 66 | # Help the user find it if we cannot. 67 | DOC "The ${CGAL_DIR_DESCRIPTION}" 68 | ) 69 | 70 | endif() 71 | 72 | if ( CGAL_DIR ) 73 | 74 | if ( EXISTS "${CGAL_DIR}/CGALConfig.cmake" ) 75 | include( "${CGAL_DIR}/CGALConfig.cmake" ) 76 | set( CGAL_FOUND TRUE ) 77 | endif() 78 | 79 | endif() 80 | 81 | if( NOT CGAL_FOUND) 82 | if(CGAL_FIND_REQUIRED) 83 | MESSAGE(FATAL_ERROR ${CGAL_DIR_MESSAGE}) 84 | else() 85 | if(NOT CGAL_FIND_QUIETLY) 86 | MESSAGE(STATUS ${CGAL_DIR_MESSAGE}) 87 | endif() 88 | endif() 89 | endif() 90 | -------------------------------------------------------------------------------- /doc/html/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | visilib: C:/code/github/visilib/demo Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    visilib 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
    53 |
    54 | 55 | 56 |
    57 | 60 |
    61 | 62 | 66 |
    67 |
    68 |
    69 |
    demo Directory Reference
    70 |
    71 |
    72 |
    73 | 74 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /doc/html/dir_a031cde05aa4de998632f6e6ef4c5e1a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | visilib: C:/code/github/visilib/visilib Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    visilib 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
    53 |
    54 | 55 | 56 |
    57 | 60 |
    61 | 62 | 66 |
    67 |
    68 |
    69 |
    visilib Directory Reference
    70 |
    71 |
    72 |
    73 | 74 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /doc/latex/structvisilib_1_1_discrete_geometry_description.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structvisilib_1_1_discrete_geometry_description}{}\section{visilib\+::Discrete\+Geometry\+Description Struct Reference} 2 | \label{structvisilib_1_1_discrete_geometry_description}\index{visilib::DiscreteGeometryDescription@{visilib::DiscreteGeometryDescription}} 3 | 4 | 5 | Description of a discrete geometry (ie a mesh). 6 | 7 | 8 | 9 | 10 | {\ttfamily \#include $<$visilib.\+h$>$} 11 | 12 | Inheritance diagram for visilib\+::Discrete\+Geometry\+Description\+:\begin{figure}[H] 13 | \begin{center} 14 | \leavevmode 15 | \includegraphics[height=2.000000cm]{structvisilib_1_1_discrete_geometry_description} 16 | \end{center} 17 | \end{figure} 18 | \subsection*{Public Member Functions} 19 | \begin{DoxyCompactItemize} 20 | \item 21 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_a69b9b700b3f03b54f919c4b90da51cdf}\label{structvisilib_1_1_discrete_geometry_description_a69b9b700b3f03b54f919c4b90da51cdf}} 22 | virtual std\+::vector$<$ int $>$ {\bfseries get\+Indices} (size\+\_\+t a\+Face) const =0 23 | \item 24 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_a3a41016600ed8cd641fbbee519c17584}\label{structvisilib_1_1_discrete_geometry_description_a3a41016600ed8cd641fbbee519c17584}} 25 | virtual size\+\_\+t {\bfseries get\+Index\+Count} () const =0 26 | \end{DoxyCompactItemize} 27 | \subsection*{Public Attributes} 28 | \begin{DoxyCompactItemize} 29 | \item 30 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_af027f5588becd10f57feacdd969c36e8}\label{structvisilib_1_1_discrete_geometry_description_af027f5588becd10f57feacdd969c36e8}} 31 | size\+\_\+t \mbox{\hyperlink{structvisilib_1_1_discrete_geometry_description_af027f5588becd10f57feacdd969c36e8}{vertex\+Count}} 32 | \begin{DoxyCompactList}\small\item\em Number of vertices. \end{DoxyCompactList}\item 33 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_ad3e0036614577235871af289b06e9153}\label{structvisilib_1_1_discrete_geometry_description_ad3e0036614577235871af289b06e9153}} 34 | size\+\_\+t \mbox{\hyperlink{structvisilib_1_1_discrete_geometry_description_ad3e0036614577235871af289b06e9153}{face\+Count}} 35 | \begin{DoxyCompactList}\small\item\em Number of faces. \end{DoxyCompactList}\item 36 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_ae4c6fc2ef794048d08127ffec2963ff9}\label{structvisilib_1_1_discrete_geometry_description_ae4c6fc2ef794048d08127ffec2963ff9}} 37 | const float $\ast$ \mbox{\hyperlink{structvisilib_1_1_discrete_geometry_description_ae4c6fc2ef794048d08127ffec2963ff9}{vertex\+Array}} 38 | \begin{DoxyCompactList}\small\item\em Pointer to the vertex table. \end{DoxyCompactList}\item 39 | \mbox{\Hypertarget{structvisilib_1_1_discrete_geometry_description_acfd5e09da7d73d29b54380455db56e37}\label{structvisilib_1_1_discrete_geometry_description_acfd5e09da7d73d29b54380455db56e37}} 40 | const float $\ast$ \mbox{\hyperlink{structvisilib_1_1_discrete_geometry_description_acfd5e09da7d73d29b54380455db56e37}{normal\+Array}} 41 | \begin{DoxyCompactList}\small\item\em Pointer to the normal table (optional) \end{DoxyCompactList}\end{DoxyCompactItemize} 42 | 43 | 44 | \subsection{Detailed Description} 45 | Description of a discrete geometry (ie a mesh). 46 | 47 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 48 | \item 49 | C\+:/code/github/visilib/visilib/visilib.\+h\item 50 | C\+:/code/github/visilib/visilib/visilib.\+hpp\end{DoxyCompactItemize} 51 | -------------------------------------------------------------------------------- /doc/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['add',['add',['../classvisilib_1_1_helper_triangle_mesh_container.html#ab29cb0e681a4cc58ad6a31c08ba371e5',1,'visilib::HelperTriangleMeshContainer::add()'],['../classvisilib_1_1_plucker_polyhedron.html#a6c9fa6964a332bd0bf42b69835088223',1,'visilib::PluckerPolyhedron::add()']]], 4 | ['addedge',['addEdge',['../classvisilib_1_1_plucker_polytope.html#af3cfb4c40c20fe5eff92efaf2f1820a0',1,'visilib::PluckerPolytope::addEdge()'],['../classvisilib_1_1_silhouette.html#a64735427a7ab9ae48d9d2b4f16230868',1,'visilib::Silhouette::addEdge()']]], 5 | ['addedges',['addEdges',['../classvisilib_1_1_plucker_polytope_builder.html#a7af3c78c82093b0b1cebff631edc1387',1,'visilib::PluckerPolytopeBuilder']]], 6 | ['addextremalstabbingline',['addExtremalStabbingLine',['../classvisilib_1_1_helper_visual_debugger.html#accd7a72ba6f9efc0078f22ec9eb53312',1,'visilib::HelperVisualDebugger::addExtremalStabbingLine()'],['../classvisilib_1_1_plucker_polytope.html#a1fa9e55e2b8058ab39d94c3b5ff87c53',1,'visilib::PluckerPolytope::addExtremalStabbingLine()']]], 7 | ['addextremalstabbinglines',['addExtremalStabbingLines',['../classvisilib_1_1_plucker_polytope_builder.html#adc471ddde614669033182397d6be20d7',1,'visilib::PluckerPolytopeBuilder']]], 8 | ['addrandomness',['addRandomness',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a180737b641ccd8da503b6416559d3153',1,'visilib::HelperSyntheticMeshBuilder::addRandomness(HelperTriangleMesh *mesh, float randomness)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#aa9390281029ec6f6c72c07eec8a6e59b',1,'visilib::HelperSyntheticMeshBuilder::addRandomness(std::vector< MathVector3f > &vertices, float randomness)']]], 9 | ['addremovededge',['addRemovedEdge',['../classvisilib_1_1_helper_visual_debugger.html#aff3c8cf06f92da983c9de380e58817c4',1,'visilib::HelperVisualDebugger']]], 10 | ['addremovedtriangle',['addRemovedTriangle',['../classvisilib_1_1_helper_visual_debugger.html#a69bc1d302d408341e1443acd0655f939',1,'visilib::HelperVisualDebugger']]], 11 | ['addsamplingline',['addSamplingLine',['../classvisilib_1_1_helper_visual_debugger.html#a829462582410bd53ecebfa0ee7bc609a',1,'visilib::HelperVisualDebugger']]], 12 | ['addsilhouette',['addSilhouette',['../classvisilib_1_1_plucker_polytope.html#a1d9cb1f11e21d670134becc102cff168',1,'visilib::PluckerPolytope::addSilhouette()'],['../classvisilib_1_1_silhouette_processor.html#aaf5d17542177191ea02b748f88c957be',1,'visilib::SilhouetteProcessor::addSilhouette()']]], 13 | ['addsourcepolygonedgesashyperplanes',['addSourcePolygonEdgesAsHyperplanes',['../classvisilib_1_1_plucker_polytope_builder.html#a5074ddd2e6fd2a48cb5770cd6af067f9',1,'visilib::PluckerPolytopeBuilder']]], 14 | ['addstabbingline',['addStabbingLine',['../classvisilib_1_1_helper_visual_debugger.html#a60c0d6368a506b0a352b0ca5bc2e1255',1,'visilib::HelperVisualDebugger']]], 15 | ['addtofacetsdescription',['addToFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#a027bd5891e7b3a091549bfc8865ae9aa',1,'visilib::PluckerPolyhedron']]], 16 | ['arepolygonsvisible',['arePolygonsVisible',['../classvisilib_1_1_visibility_exact_query__.html#a615c47cec68794e091d30852e959dbb9',1,'visilib::VisibilityExactQuery_']]], 17 | ['attachvisualisationdebugger',['attachVisualisationDebugger',['../classvisilib_1_1_silhouette_processor.html#aac871de2acba542af88585a6ae66fe0d',1,'visilib::SilhouetteProcessor::attachVisualisationDebugger()'],['../classvisilib_1_1_visibility_exact_query__.html#aaf24602cc5844a5ef5f7ae6fe3df0f56',1,'visilib::VisibilityExactQuery_::attachVisualisationDebugger()']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /doc/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['add',['add',['../classvisilib_1_1_helper_triangle_mesh_container.html#ab29cb0e681a4cc58ad6a31c08ba371e5',1,'visilib::HelperTriangleMeshContainer::add()'],['../classvisilib_1_1_plucker_polyhedron.html#a6c9fa6964a332bd0bf42b69835088223',1,'visilib::PluckerPolyhedron::add()']]], 4 | ['addedge',['addEdge',['../classvisilib_1_1_plucker_polytope.html#af3cfb4c40c20fe5eff92efaf2f1820a0',1,'visilib::PluckerPolytope::addEdge()'],['../classvisilib_1_1_silhouette.html#a64735427a7ab9ae48d9d2b4f16230868',1,'visilib::Silhouette::addEdge()']]], 5 | ['addedges',['addEdges',['../classvisilib_1_1_plucker_polytope_builder.html#a7af3c78c82093b0b1cebff631edc1387',1,'visilib::PluckerPolytopeBuilder']]], 6 | ['addextremalstabbingline',['addExtremalStabbingLine',['../classvisilib_1_1_helper_visual_debugger.html#accd7a72ba6f9efc0078f22ec9eb53312',1,'visilib::HelperVisualDebugger::addExtremalStabbingLine()'],['../classvisilib_1_1_plucker_polytope.html#a1fa9e55e2b8058ab39d94c3b5ff87c53',1,'visilib::PluckerPolytope::addExtremalStabbingLine()']]], 7 | ['addextremalstabbinglines',['addExtremalStabbingLines',['../classvisilib_1_1_plucker_polytope_builder.html#adc471ddde614669033182397d6be20d7',1,'visilib::PluckerPolytopeBuilder']]], 8 | ['addrandomness',['addRandomness',['../classvisilib_1_1_helper_synthetic_mesh_builder.html#a180737b641ccd8da503b6416559d3153',1,'visilib::HelperSyntheticMeshBuilder::addRandomness(HelperTriangleMesh *mesh, float randomness)'],['../classvisilib_1_1_helper_synthetic_mesh_builder.html#aa9390281029ec6f6c72c07eec8a6e59b',1,'visilib::HelperSyntheticMeshBuilder::addRandomness(std::vector< MathVector3f > &vertices, float randomness)']]], 9 | ['addremovededge',['addRemovedEdge',['../classvisilib_1_1_helper_visual_debugger.html#aff3c8cf06f92da983c9de380e58817c4',1,'visilib::HelperVisualDebugger']]], 10 | ['addremovedtriangle',['addRemovedTriangle',['../classvisilib_1_1_helper_visual_debugger.html#a69bc1d302d408341e1443acd0655f939',1,'visilib::HelperVisualDebugger']]], 11 | ['addsamplingline',['addSamplingLine',['../classvisilib_1_1_helper_visual_debugger.html#a829462582410bd53ecebfa0ee7bc609a',1,'visilib::HelperVisualDebugger']]], 12 | ['addsilhouette',['addSilhouette',['../classvisilib_1_1_plucker_polytope.html#a1d9cb1f11e21d670134becc102cff168',1,'visilib::PluckerPolytope::addSilhouette()'],['../classvisilib_1_1_silhouette_processor.html#aaf5d17542177191ea02b748f88c957be',1,'visilib::SilhouetteProcessor::addSilhouette()']]], 13 | ['addsourcepolygonedgesashyperplanes',['addSourcePolygonEdgesAsHyperplanes',['../classvisilib_1_1_plucker_polytope_builder.html#a5074ddd2e6fd2a48cb5770cd6af067f9',1,'visilib::PluckerPolytopeBuilder']]], 14 | ['addstabbingline',['addStabbingLine',['../classvisilib_1_1_helper_visual_debugger.html#a60c0d6368a506b0a352b0ca5bc2e1255',1,'visilib::HelperVisualDebugger']]], 15 | ['addtofacetsdescription',['addToFacetsDescription',['../classvisilib_1_1_plucker_polyhedron.html#a027bd5891e7b3a091549bfc8865ae9aa',1,'visilib::PluckerPolyhedron']]], 16 | ['arepolygonsvisible',['arePolygonsVisible',['../classvisilib_1_1_visibility_exact_query__.html#a615c47cec68794e091d30852e959dbb9',1,'visilib::VisibilityExactQuery_']]], 17 | ['attachvisualisationdebugger',['attachVisualisationDebugger',['../classvisilib_1_1_silhouette_processor.html#aac871de2acba542af88585a6ae66fe0d',1,'visilib::SilhouetteProcessor::attachVisualisationDebugger()'],['../classvisilib_1_1_visibility_exact_query__.html#aaf24602cc5844a5ef5f7ae6fe3df0f56',1,'visilib::VisibilityExactQuery_::attachVisualisationDebugger()']]] 18 | ]; 19 | --------------------------------------------------------------------------------