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) 2022 GeometryFactory (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Mesh_3/include/CGAL/Mesh_3/Detect_features_in_image.h $ // $Id: include/CGAL/Mesh_3/Detect_features_in_image.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Sebastien Loriot, Jane Tournois // //****************************************************************************** // //****************************************************************************** #ifndef CGAL_MESH_3_DETECT_FEATURES_IN_IMAGE_H #define CGAL_MESH_3_DETECT_FEATURES_IN_IMAGE_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef CGAL_DEBUG_TRIPLE_LINES #include #endif namespace CGAL { namespace Mesh_3 { namespace internal { // Protect the intersection of the object with the box of the image, // by declaring 1D-features. Note that `CGAL::polylines_to_protect` is // not documented. template std::vector> detect_features_in_image_with_know_word_type(const CGAL::Image_3& image, CGAL::Image_3& weights) { using GT = typename CGAL::Kernel_traits

::Kernel; using Point_3 = P; using Vector_3 = typename GT::Vector_3; using Polyline_type = std::vector; using Polylines = std::vector; CGAL::Mesh_3::Triple_line_extractor lines; Polylines features_inside; const double vx = image.vx(); const double vy = image.vy(); const double vz = image.vz(); const double dist_bound = (std::min)(vx, (std::min)(vy, vz)) / 256; const double sq_dist_bound = dist_bound * dist_bound; const std::size_t xdim = image.xdim(); const std::size_t ydim = image.ydim(); const std::size_t zdim = image.zdim(); const float tx = image.tx(); const float ty = image.ty(); const float tz = image.tz(); const bool postprocess_weights = weights.is_valid(); std::vector> black_voxels; using CGAL::IMAGEIO::static_evaluate; using Del = CGAL::Delaunay_triangulation_3; using Cell_handle = typename Del::Cell_handle; using Vertex_handle = typename Del::Vertex_handle; Del triangulation; Cell_handle start_cell; using Word //use unsigned integral Word type to use it as an index = typename CGAL::IMAGEIO::Word_type_generator::type; using Color_transform = internal::Color_transformation_helper; typename Color_transform::type color_transformation; std::array inv_color_transformation; using Permutation = internal::Permutation; using Coord = internal::Coordinates; for (std::size_t k = 0, end_k = zdim - 1; k < end_k; ++k) for (std::size_t j = 0, end_j = ydim - 1; j < end_j; ++j) for (std::size_t i = 0, end_i = xdim - 1; i < end_i; ++i) { Vector_3 translation{ i * vx + tx, j * vy + ty, k * vz + tz }; const std::array cube = { static_evaluate(image.image(), i , j , k), static_evaluate(image.image(), i + 1, j , k), static_evaluate(image.image(), i , j + 1, k), static_evaluate(image.image(), i + 1, j + 1, k), static_evaluate(image.image(), i , j , k + 1), static_evaluate(image.image(), i + 1, j , k + 1), static_evaluate(image.image(), i , j + 1, k + 1), static_evaluate(image.image(), i + 1, j + 1, k + 1), }; /// TODO: optimize the access to the image data bool monocolor = (cube[0] == cube[1]); for (int i = 2; i < 8; ++i) monocolor = monocolor && (cube[0] == cube[i]); if (monocolor) continue; Color_transform::reset(color_transformation); std::uint8_t nb_color = 0; for (int i = 0; i < 8; ++i) { if (!Color_transform::is_valid(color_transformation, cube[i])) { color_transformation[cube[i]] = nb_color; inv_color_transformation[nb_color] = cube[i]; ++nb_color; } } std::array reference_cube = { color_transformation[cube[0]], color_transformation[cube[1]], color_transformation[cube[2]], color_transformation[cube[3]], color_transformation[cube[4]], color_transformation[cube[5]], color_transformation[cube[6]], color_transformation[cube[7]] }; auto case_it = internal::find_case(internal::cases, reference_cube); const bool case_found = (case_it != std::end(internal::cases)); if (case_found) reference_cube = internal::combinations[(*case_it)[8]]; else { //std::cerr << "Warning: case not found: " << reference_cube << '\n'; CGAL_error(); }; #ifdef CGAL_DEBUG_TRIPLE_LINES CGAL::Mesh_3::internal::debug_cerr("Cube", cube); CGAL::Mesh_3::internal::debug_cerr("reference cube", reference_cube); CGAL::Mesh_3::internal::debug_cerr("with transformation", internal::cube_isometries[(*case_it)[9]]); #endif // CGAL_DEBUG_TRIPLE_LINES auto fct_it = lines.create_polylines_fcts.find(reference_cube); if (fct_it != lines.create_polylines_fcts.end()) { #ifdef CGAL_DEBUG_TRIPLE_LINES CGAL::Mesh_3::internal::debug_cerr("Using the function of", Cube(fct_it->first)); #endif // CGAL_DEBUG_TRIPLE_LINES if (postprocess_weights) black_voxels.push_back({ i, j, k }); Polylines cube_features = (fct_it->second)(10); if (case_found) { const Permutation& transformation = internal::cube_isometries[(*case_it)[9]]; Coord a1 = internal::coordinates[transformation[0]]; Coord u = internal::minus(internal::coordinates[transformation[1]], a1); Coord v = internal::minus(internal::coordinates[transformation[2]], a1); Coord w = internal::minus(internal::coordinates[transformation[4]], a1); const Point_3 pa{ a1[0], a1[1], a1[2] }; const Vector_3 vu{ u[0], u[1], u[2] }; const Vector_3 vv{ v[0], v[1], v[2] }; const Vector_3 vw{ w[0], w[1], w[2] }; #ifdef CGAL_DEBUG_TRIPLE_LINES std::cerr << "pa: " << pa << "\n"; std::cerr << "vu: " << vu << "\n"; std::cerr << "vv: " << vv << "\n"; std::cerr << "vw: " << vw << "\n"; #endif // CGAL_DEBUG_TRIPLE_LINES for (auto& polyline : cube_features) { for (auto& point : polyline) { point = pa + point.x() * vu + point.y() * vv + point.z() * vw; point = { vx * point.x(), vy * point.y(), vz * point.z(), }; point = point + translation; } for (int i = 0; i < 2; ++i) { Point_3& extremity = (i == 0) ? polyline.front() : polyline.back(); Vertex_handle vh = triangulation.nearest_vertex(extremity, start_cell); if (Vertex_handle() != vh) { if (squared_distance(vh->point(), extremity) < sq_dist_bound) { extremity = vh->point(); } } vh = triangulation.insert(extremity, start_cell); start_cell = vh->cell(); } features_inside.push_back(std::move(polyline)); } // end loop on polylines } // end case where the transformation is not the identity } // end if the reference_cube has polylines } // call the split_graph_into_polylines, to create long polylines from the // short polylines that were generated per voxel. Polylines polylines_inside; CGAL::polylines_to_protect(polylines_inside, features_inside.begin(), features_inside.end()); Polylines polylines_on_bbox; CGAL::polylines_to_protect_on_bbox(image, polylines_on_bbox, polylines_inside.begin(), polylines_inside.end()); polylines_inside.insert(polylines_inside.end(), polylines_on_bbox.begin(), polylines_on_bbox.end()); if (postprocess_weights) { internal::feature_voxels_on_image_bbox(image, black_voxels); internal::set_voxels(weights, black_voxels, 0/*black*/); } #ifdef CGAL_DEBUG_TRIPLE_LINES std::ofstream output_polylines("out-generated.polylines.txt"); output_polylines.precision(17); for (auto poly : boost::range::join(polylines_on_bbox, polylines_inside)) { output_polylines << poly.size(); for (auto p : poly) output_polylines << " " << p; output_polylines << std::endl; } #endif return polylines_inside; } }// namespace internal /*! * \ingroup PkgMesh3FeatureDetection * * Functor for feature detection in labeled images. */ struct Detect_features_in_image { public: /*! * detects and constructs the polylines that lie at the * intersection of three or more subdomains. * * Each subdomain inside the bounding box * of the input labeled image is defined as the set of voxels * with the same value. The outside of the bounding box * of the image is considered as a subdomain with voxel value * `value_outside` (see \link CGAL::Labeled_mesh_domain_3::create_labeled_image_mesh_domain `create_labeled_image_mesh_domain()` \endlink * parameters description). Hence, this function also computes * intersections with the image bounding box. * * \tparam Point class model of `Kernel::Point_3`. It * must match the triangulation point type. * * \param image the input image * * \returns a `std::vector>` * containing the constructed polylines for later feature protection. */ template std::vector> operator()(const CGAL::Image_3& image) const { CGAL::Image_3 no_weights; CGAL_IMAGE_IO_CASE(image.image(), return (internal::detect_features_in_image_with_know_word_type(image, no_weights)); ); CGAL_error_msg("This place should never be reached, because it would mean " "the image word type is a type that is not handled by " "CGAL_ImageIO."); return std::vector>(); } /*! * Similar to the above function, * but modifies `weights` to set the voxels that are * part of a polyline feature to 0. */ template std::vector> operator()(const CGAL::Image_3& image, CGAL::Image_3& weights) const { CGAL_assertion(weights.is_valid()); CGAL_IMAGE_IO_CASE(image.image(), return (internal::detect_features_in_image_with_know_word_type(image, weights)); ); CGAL_error_msg("This place should never be reached, because it would mean " "the image word type is a type that is not handled by " "CGAL_ImageIO."); return std::vector>(); } }; }//end namespace Mesh_3 }//end namespace CGAL #endif //CGAL_MESH_3_DETECT_FEATURES_IN_IMAGE_H