1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// Copyright (c) 2019 CNRS and LIRIS' Establishments (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h $ // $Id: include/CGAL/draw_face_graph_with_paths.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand // Mostafa Ashraf // #ifndef CGAL_DRAW_FACE_GRAPH_WITH_PATHS_H #define CGAL_DRAW_FACE_GRAPH_WITH_PATHS_H #include #include #include #include #include #include #include #include #include #include namespace CGAL { // Specific graphics scene options template struct Graphics_scene_options_face_graph_with_paths : public CGAL::Graphics_scene_options { Graphics_scene_options_face_graph_with_paths() { color_of_path=[](std::size_t i)->CGAL::IO::Color { CGAL::Random random(static_cast(i)); return get_random_color(random); }; draw_path=[](std::size_t)->bool { return true; }; } const CGAL::IO::Color& color_of_marked_edges() const { return m_color_of_marked_edges; } void color_of_marked_edges(const CGAL::IO::Color& c) { m_color_of_marked_edges=c; } std::function color_of_path; std::function draw_path; protected: CGAL::IO::Color m_color_of_marked_edges=CGAL::IO::Color(0, 0, 255); }; namespace draw_function_for_lcc { // We need to reuse the namespace draw_function_for_lcc because we want to specialize // the previous struct LCC_geom_utils // template // struct LCC_geom_utils; // Specialization for face graph; otherwise use the LCC_geom_utils of LCC. template struct LCC_geom_utils, Local_kernel, 3> { static typename Get_traits::Vector get_face_normal(const CGAL::Face_graph_wrapper& mesh, typename CGAL::Face_graph_wrapper::Dart_const_descriptor dh) { typename Get_traits::Vector normal(CGAL::NULL_VECTOR); const typename Get_traits::Point* curr=&Get_traits::get_point(mesh.get_fg(), dh); typename CGAL::Face_graph_wrapper::Dart_const_descriptor adart=dh; unsigned int nb=0; do { const typename Get_traits::Point* next=&Get_traits::get_point(mesh.get_fg(), mesh.other_extremity(adart)); internal::newell_single_step_3_for_lcc(*curr, *next, normal); ++nb; curr=next; adart=mesh.next(adart); } while(adart!=dh); CGAL_assertion(nb>0); return typename Get_traits::Kernel::Construct_scaled_vector_3() (normal, 1.0/nb); } static typename Local_kernel::Vector_3 get_vertex_normal(const CGAL::Face_graph_wrapper& mesh, typename CGAL::Face_graph_wrapper::Dart_const_descriptor dh) { typename Get_traits::Vector normal(CGAL::NULL_VECTOR); unsigned int nb = 0; for ( typename CGAL::Face_graph_wrapper::template Dart_of_cell_range<0>:: const_iterator it=mesh.template darts_of_cell<0>(dh).begin(), itend=mesh.template darts_of_cell<0>(dh).end(); it!=itend; ++it ) { normal=typename Get_traits::Kernel::Construct_sum_of_vectors_3() (normal, get_face_normal(mesh, it)); ++nb; } if ( nb<2 ) return internal::Geom_utils ::Kernel, Local_kernel>:: get_local_vector(normal); return internal::Geom_utils ::Kernel, Local_kernel>:: get_local_vector(typename Get_traits::Kernel:: Construct_scaled_vector_3()(normal, 1.0/nb)); } }; } // namespace draw_function_for_lcc namespace draw_function_for_face_graph_with_paths { typedef CGAL::Exact_predicates_inexact_constructions_kernel Local_kernel; typedef Local_kernel::Point_3 Local_point; typedef Local_kernel::Vector_3 Local_vector; template const typename CGAL::Get_traits::Point& get_point (const Mesh &mesh, typename Get_map::type::Dart_const_descriptor dh) { return CGAL::Get_traits::get_point(mesh, dh); } template void compute_face(const Mesh& mesh, const typename Get_map::storage_type& lcc, typename Get_map::type::Dart_const_descriptor dh, CGAL::Graphics_scene& graphics_scene, GSOptions& gso) { if(!gso.are_faces_enabled() || !gso.draw_face(mesh, dh)) { return; } typedef typename Get_map::type LCC; typedef typename LCC::Dart_const_descriptor Dart_const_descriptor; // We fill only closed faces. Dart_const_descriptor cur=dh; Dart_const_descriptor min=dh; do { if (!lcc.is_next_exist(cur)) return; // open face=>not filled if (cur:: get_vertex_normal(lcc, cur)); cur=lcc.next(cur); } while(cur!=dh); graphics_scene.face_end(); } template void compute_edge(const Mesh &mesh, const typename Get_map::storage_type& lcc, typename Get_map::type::Dart_const_descriptor dh, CGAL::Graphics_scene& graphics_scene, GSOptions& gso, bool colored=false, const CGAL::IO::Color& color=CGAL::IO::black()) { if(!gso.are_edges_enabled() || !gso.draw_edge(mesh, dh)) { return; } typedef typename Get_map::type LCC; typedef typename LCC::Dart_const_descriptor Dart_const_descriptor; typedef typename CGAL::Get_traits::Point Point; Point p1=get_point(mesh, dh); Dart_const_descriptor d2=lcc.other_extremity(dh); if (d2!=LCC::null_descriptor) { if(colored) { graphics_scene.add_segment(p1, get_point(mesh, d2), color); } else { graphics_scene.add_segment(p1, get_point(mesh, d2)); } } } template void compute_edge(const Mesh &mesh, const typename Get_map::storage_type& lcc, typename Get_map::type::Dart_const_descriptor dh, CGAL::Graphics_scene& graphics_scene, GSOptions& gso, typename Get_map::type::size_type amark) { if(!gso.are_edges_enabled() || !gso.draw_edge(mesh, dh)) { return; } if (amark!=Get_map::type::INVALID_MARK && (lcc.is_marked(dh, amark) || lcc.is_marked(lcc.opposite2(dh), amark))) { compute_edge(mesh, lcc, dh, graphics_scene, gso, true, gso.color_of_marked_edges()); } else { if(gso.colored_edge(mesh, dh)) { compute_edge(mesh, lcc, dh, graphics_scene, gso, true, gso.edge_color(mesh, dh)); } else { compute_edge(mesh, lcc, dh, graphics_scene, gso, false); } } } template void compute_vertex(const Mesh &mesh, typename Get_map::type::Dart_const_descriptor dh, CGAL::Graphics_scene& graphics_scene, GSOptions& gso) { if(gso.are_vertices_enabled() && gso.draw_vertex(mesh, dh)) { if (gso.colored_vertex(mesh, dh)) { graphics_scene.add_point(get_point(mesh, dh), gso.vertex_color(mesh, dh)); } else { graphics_scene.add_point(get_point(mesh, dh)); } } } template void compute_path(const Mesh &mesh, const typename Get_map::storage_type& lcc, CGAL::Graphics_scene &graphics_scene, const GSOptions &gso, const std::vector>& paths, std::size_t i, typename Get_map::type::size_type amark) { if (paths[i].is_empty() || !gso.draw_path(i)) { return; } CGAL::IO::Color color=gso.color_of_path(i); graphics_scene.add_point(get_point(mesh, paths[i].get_ith_dart(0)), color); for (std::size_t j=0; j(paths[i].get_ith_dart(j), amark); } } } template void compute_elements(const Mesh &mesh, CGAL::Graphics_scene &graphics_scene, const GSOptions &gso, const std::vector>& paths, typename Get_map::type::size_type mark) { typedef typename Get_map::type LCC; typedef typename LCC::size_type size_type; typename Get_map::storage_type lcc(mesh); size_type oriented_mark = lcc.get_new_mark(); std::size_t current_path = paths.size(); typename LCC::size_type amark=mark==(std::numeric_limits::max)()? LCC::INVALID_MARK:mark; // If !=INVALID_MARK, show darts marked with this mark lcc.orient(oriented_mark); size_type markfaces = lcc.get_new_mark(); size_type markedges = lcc.get_new_mark(); size_type markvertices = lcc.get_new_mark(); if (current_path==paths.size()) { for (std::size_t i=0; i(it, markfaces); } if ( !lcc.is_marked(it, markedges) ) { compute_edge(mesh, lcc, it, graphics_scene, gso, amark); lcc.template mark_cell<1>(it, markedges); } if ( !lcc.is_marked(it, markvertices) ) { compute_vertex(mesh, it, graphics_scene, gso); lcc.template mark_cell<0>(it, markvertices); } } lcc.free_mark(markfaces); lcc.free_mark(markedges); lcc.free_mark(markvertices); } } // namespace draw_function_for_face_graph_with_paths template void add_to_graphics_scene(const Mesh& mesh, CGAL::Graphics_scene& graphics_scene, const GSOptions& gso, const std::vector>& paths, typename Get_map::type::size_type amark= Get_map::type::INVALID_MARK) { draw_function_for_face_graph_with_paths::compute_elements(mesh, graphics_scene, gso, paths, amark); } template void add_to_graphics_scene(const Mesh& mesh, CGAL::Graphics_scene& graphics_scene, const std::vector>& paths, typename Get_map::type::size_type amark= Get_map::type::INVALID_MARK) { // Default graphics view options. Graphics_scene_options_face_graph_with_paths::type::Dart_const_descriptor /*vh*/, typename Get_map::type::Dart_const_descriptor /*eh*/, typename Get_map::type::Dart_const_descriptor /*fh*/> gso; add_to_graphics_scene(mesh, graphics_scene, gso, paths, amark); } template void add_to_graphics_scene(const Mesh& mesh, CGAL::Graphics_scene& graphics_scene, const GSOptions& gso, std::initializer_list> l, typename Get_map::type::size_type amark= Get_map::type::INVALID_MARK) { std::vector> paths=l; add_to_graphics_scene(mesh, graphics_scene, gso, paths, amark); } template void add_to_graphics_scene(const Mesh& mesh, CGAL::Graphics_scene& graphics_scene, std::initializer_list> l, typename Get_map::type::size_type amark= Get_map::type::INVALID_MARK) { std::vector> paths=l; add_to_graphics_scene(mesh, graphics_scene, paths, amark); } template void draw(const Mesh& mesh, const std::vector >& paths, const GSOptions& gso, const char* title="Mesh Viewer With Path", typename Get_map::type::size_type amark= (std::numeric_limits::type::size_type>::max)()) { CGAL::Graphics_scene graphics_scene; add_to_graphics_scene(mesh, graphics_scene, paths, gso, amark); draw_graphics_scene(graphics_scene, title); } template void draw(const Mesh& mesh, const std::vector >& paths, const char* title="Mesh Viewer With Path", typename Get_map::type::size_type amark= (std::numeric_limits::type::size_type>::max)()) { CGAL::Graphics_scene graphics_scene; add_to_graphics_scene(mesh, graphics_scene, paths, amark); draw_graphics_scene(graphics_scene, title); } template void draw(const Mesh& mesh, std::initializer_list> l, const GSOptions& gso, const char* title="Mesh Viewer With Path", typename Get_map::type::size_type amark= (std::numeric_limits::type::size_type>::max)()) { std::vector> paths=l; draw(mesh, paths, gso, title, amark); } template void draw(const Mesh& mesh, std::initializer_list> l, const char* title="Mesh Viewer With Path", typename Get_map::type::size_type amark= (std::numeric_limits::type::size_type>::max)()) { std::vector> paths=l; draw(mesh, paths, title, amark); } } // End namespace CGAL #endif // CGAL_DRAW_FACE_GRAPH_WITH_PATHS_H