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) 2004-2006 INRIA Sophia-Antipolis (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Mesh_2/include/CGAL/Mesh_2/Refine_faces.h $ // $Id: include/CGAL/Mesh_2/Refine_faces.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Laurent RINEAU #ifndef CGAL_MESH_2_REFINE_FACES_H #define CGAL_MESH_2_REFINE_FACES_H #include #include #include #include #include #include #include namespace CGAL { namespace Mesh_2 { // Previous is the whole previous edges_level. template class Refine_faces_base : public Triangulation_mesher_level_traits_2, public No_test_point_conflict, public No_after_no_insertion { /** \name Types from Tr. */ typedef Tr Triangulation; typedef typename Tr::Geom_traits Geom_traits; typedef typename Geom_traits::FT FT; typedef FT Squared_length; typedef typename Tr::Vertex_handle Vertex_handle; typedef typename Tr::Face_handle Face_handle; typedef typename Tr::Face_circulator Face_circulator; typedef typename Tr::Finite_faces_iterator Finite_faces_iterator; typedef typename Tr::All_faces_iterator All_faces_iterator; typedef typename Tr::Point Point; typedef Triangulation_mesher_level_traits_2 Triangulation_traits; typedef typename Triangulation_traits::Zone Zone; public: using Triangulation_mesher_level_traits_2::triangulation_ref_impl; protected: // --- PROTECTED TYPES --- /** Meshing criteria. */ typedef typename Criteria::Is_bad s_bad; typedef typename Criteria::Quality Quality; /** \name typedefs for private members types */ struct Face_compare { bool operator()(const Face_handle& fh1, const Face_handle& fh2) const { if(fh1->vertex(0)->point() < fh2->vertex(0)->point()) return true; else if(fh1->vertex(0)->point() == fh2->vertex(0)->point()) { if(fh1->vertex(1)->point() < fh2->vertex(1)->point()) return true; else if(fh1->vertex(1)->point() == fh2->vertex(1)->point() && fh1->vertex(2)->point() < fh2->vertex(2)->point()) return true; } return false; } }; typedef CGAL::Double_map Bad_faces; protected: // --- PROTECTED MEMBER DATA --- Criteria& criteria; /**is_in_domain() ) { Quality q; Mesh_2::Face_badness badness = is_bad(fit, q); if( badness != Mesh_2::NOT_BAD ) push_in_bad_faces(fit, q); } } } Zone conflicts_zone_impl(const Point& p, Face_handle fh) { Zone zone; zone.fh = triangulation_ref_impl().locate(p, zone.locate_type, zone.i, fh); zone.parent_face = fh; triangulation_ref_impl(). get_conflicts_and_boundary(p, std::back_inserter(zone.faces), std::back_inserter(zone.boundary_edges), fh ); #ifdef CGAL_MESH_2_DEBUG_CONFLICTS_ZONE std::cerr << "get_conflicts_and_boundary(" << p << "):" << std::endl << "faces: " << zone.faces.size() << std::endl << "edges: " << zone.boundary_edges.size() << std::endl; #endif // CGAL_MESH_2_DEBUG_CONFLICTS_ZONE return zone; } /** Tells if the map of faces to be conformed is empty or not. */ bool no_longer_element_to_refine_impl() const { return bad_faces.empty(); } /** Get the next face to conform. */ Face_handle get_next_element_impl() { Face_handle fh = bad_faces.front()->second; current_badness = is_bad(bad_faces.front()->first); CGAL_assertion_code (typename Geom_traits::Orientation_2 orientation = triangulation_ref_impl().geom_traits().orientation_2_object() ); CGAL_assertion(orientation(fh->vertex(0)->point(), fh->vertex(1)->point(), fh->vertex(2)->point()) != COLLINEAR ); return fh; } /** Pop the first face of the map. */ void pop_next_element_impl() { bad_faces.pop_front(); } /** Returns the circumcenter of the face. */ Point refinement_point_impl(const Face_handle& f) const { #ifdef CGAL_MESH_2_DEBUG_REFINEMENT_POINTS std::cerr << "refinement_point_impl(" << "#" << f->vertex(0)->time_stamp() << ": " << f->vertex(0)->point() << ", " << "#" << f->vertex(1)->time_stamp() << ": " << f->vertex(1)->point() << ", " << "#" << f->vertex(2)->time_stamp() << ": " << f->vertex(2)->point() << ") = "; auto p = triangulation_ref_impl().circumcenter(f); std::cerr << p << '\n'; return p; #endif // CGAL_MESH_2_DEBUG_BAD_FACES return triangulation_ref_impl().circumcenter(f); } /** \todo ?? */ void before_conflicts_impl(const Face_handle&, const Point&) { /// @todo modularize previous.set_imperative_refinement(current_badness == Mesh_2::IMPERATIVELY_BAD); } /** Remove the conflicting faces from the bad faces map. */ void before_insertion_impl(const Face_handle&, const Point&, Zone& zone) { /** @todo Perhaps this function is useless. */ for(typename Zone::Faces_iterator fh_it = zone.faces.begin(); fh_it != zone.faces.end(); ++fh_it) { if((*fh_it)->is_in_domain() ) remove_bad_face(*fh_it); (*fh_it)->set_in_domain(false); } } /** Restore markers in the star of `v`. */ void after_insertion_impl(const Vertex_handle& v) { #ifdef CGAL_MESH_2_VERBOSE std::cerr << "*"; #endif typename Tr::Face_circulator fc = triangulation_ref_impl().incident_faces(v), fcbegin(fc); do { fc->set_in_domain(true); } while (++fc != fcbegin); compute_new_bad_faces(v); } private: /** \name AUXILIARY FUNCTIONS */ /** Auxiliary function called to put a new face in the map. */ void push_in_bad_faces(Face_handle fh, const Quality& q); public: /** \name Functions that maintain the map of bad faces. */ /** * Updates the map with faces incident to the vertex \a v. * @todo The visitor should be made friend, instead of this function to * be public. */ void compute_new_bad_faces(Vertex_handle v); /** Auxiliary function called to erase a face handle from the map. */ void remove_bad_face(Face_handle fh); public: /** \name ACCESS FUNCTION */ Mesh_2::Face_badness is_bad(const Face_handle fh, Quality& q) const; Mesh_2::Face_badness is_bad(const Face_handle fh) const; Mesh_2::Face_badness is_bad(Quality q) const; /** * Adds the sequence `[begin, end[` to the list * of bad faces. * Use this overridden function if the list of bad faces can be * computed easily without testing all faces. * \param Fh_it is an iterator of `Face_Handle`. */ template void set_bad_faces(Fh_it begin, Fh_it end) { bad_faces.clear(); #ifdef CGAL_MESH_2_DEBUG_BAD_FACES std::cerr << "bad_faces.clear()\n"; #endif // CGAL_MESH_2_DEBUG_BAD_FACES for(Fh_it pfit=begin; pfit!=end; ++pfit) push_in_bad_faces(*pfit, Quality()); } }; // end class Refine_faces_base // --- PRIVATE MEMBER FUNCTIONS --- template inline void Refine_faces_base:: push_in_bad_faces(Face_handle fh, const Quality& q) { #ifdef CGAL_MESH_2_DEBUG_BAD_FACES std::cerr << "push_in_bad_faces(" << fh->vertex(0)->point() << "," << fh->vertex(1)->point() << "," << fh->vertex(2)->point() << ")\n"; #endif // CGAL_MESH_2_DEBUG_BAD_FACES CGAL_assertion_code (typename Geom_traits::Orientation_2 orientation = triangulation_ref_impl().geom_traits().orientation_2_object() ); CGAL_assertion( orientation(fh->vertex(0)->point(), fh->vertex(1)->point(), fh->vertex(2)->point()) != COLLINEAR ); CGAL_assertion(fh->is_in_domain()); bad_faces.insert(fh, q); } template inline void Refine_faces_base:: remove_bad_face(Face_handle fh) { #ifdef CGAL_MESH_2_DEBUG_BAD_FACES std::cerr << "bad_faces.erase(" << fh->vertex(0)->point() << "," << fh->vertex(1)->point() << "," << fh->vertex(2)->point() << ")\n"; #endif // CGAL_MESH_2_DEBUG_BAD_FACES bad_faces.erase(fh); } template void Refine_faces_base:: compute_new_bad_faces(Vertex_handle v) { typename Tr::Face_circulator fc = triangulation_ref_impl().incident_faces(v), fcbegin(fc); do { if(!triangulation_ref_impl().is_infinite(fc)) if( fc->is_in_domain() ) { Quality q; Mesh_2::Face_badness badness = is_bad(fc, q); if( badness != Mesh_2::NOT_BAD ) push_in_bad_faces(fc, q); } fc++; } while(fc!=fcbegin); } template inline Mesh_2::Face_badness Refine_faces_base:: is_bad(const Face_handle f, Quality& q) const { return criteria.is_bad_object()(f, q); } template inline Mesh_2::Face_badness Refine_faces_base:: is_bad(const Face_handle f) const { Quality q; return criteria.is_bad_object()(f, q); } template inline Mesh_2::Face_badness Refine_faces_base:: is_bad(Quality q) const { return criteria.is_bad_object()(q); } namespace details { template struct Refine_faces_types { typedef Mesher_level < Tr, Self, typename Tr::Face_handle, Previous, Triangulation_mesher_level_traits_2 > Faces_mesher_level; }; // end Refine_faces_types } // end namespace details template > class Refine_faces : public Base, public details::Refine_faces_types, Previous>::Faces_mesher_level { typedef typename Tr::Geom_traits Geom_traits; template struct Pair_get_first : public CGAL::cpp98::unary_function { typedef typename Pair::first_type result; const result& operator()(const Pair& p) const { return p.first; } }; public: typedef Refine_faces Self; typedef typename details::Refine_faces_types ::Faces_mesher_level Mesher; typedef Tr Triangulation; typedef typename Base::Bad_faces Bad_faces; typedef typename boost::transform_iterator< Pair_get_first, typename Bad_faces::const_iterator> Bad_faces_const_iterator; public: Refine_faces(Tr& t, Criteria& criteria, Previous& previous) : Base(t, criteria, previous), Mesher(previous) { } /** \name DEBUGGING FUNCTIONS */ Bad_faces_const_iterator begin() const { return Bad_faces_const_iterator(this->bad_faces.begin()); } Bad_faces_const_iterator end() const { return Bad_faces_const_iterator(this->bad_faces.end()); } bool check_bad_faces() { struct Output_bad_face { std::string operator()(typename Tr::Face_handle fh) { std::stringstream str; str << "(" << fh->vertex(0)->point() << ", " << fh->vertex(1)->point() << ", " << fh->vertex(2)->point() << ")"; return str.str(); } }; CGAL_assertion_code (typename Geom_traits::Orientation_2 orientation = this->triangulation_ref_impl().geom_traits().orientation_2_object() ); for(Bad_faces_const_iterator fit = begin(); fit != end(); ++fit) if( orientation((*fit)->vertex(0)->point(), (*fit)->vertex(1)->point(), (*fit)->vertex(2)->point()) == COLLINEAR ) { std::cerr << "collinear(" << (*fit)->vertex(0)->point() << ", " << (*fit)->vertex(1)->point() << ", " << (*fit)->vertex(2)->point()<< ") == true" << std::endl; std::cerr << "Dump of bad_faces:" << std::endl; this->bad_faces.dump_direct_func(std::cerr, Output_bad_face()); return false; } return true; } }; // end Refine_faces } // end namespace Mesh_2 } // end namespace CGAL #endif // CGAL_MESH_2_REFINE_FACES_H