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) 2007-09 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/Point_set_processing_3/include/CGAL/IO/read_off_points.h $ // $Id: include/CGAL/IO/read_off_points.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret #ifndef CGAL_POINT_SET_PROCESSING_READ_OFF_POINTS_H #define CGAL_POINT_SET_PROCESSING_READ_OFF_POINTS_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace CGAL { namespace IO { /** \ingroup PkgPointSetProcessing3IOOff \brief reads points (positions + normals, if available), using the \ref IOStreamOFF. \tparam OutputIteratorValueType type of objects that can be put in `PointOutputIterator`. It must be a model of `DefaultConstructible` and defaults to `value_type_traits::%type`. It can be omitted when the default is fine. \tparam PointOutputIterator iterator over output points. \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" \param is input stream \param output output iterator over points \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below \cgalNamedParamsBegin \cgalParamNBegin{point_map} \cgalParamDescription{a property map associating points to the elements of the point range} \cgalParamType{a model of `WritablePropertyMap` with value type `geom_traits::Point_3`} \cgalParamDefault{`CGAL::Identity_property_map`} \cgalParamNEnd \cgalParamNBegin{normal_map} \cgalParamDescription{a property map associating normals to the elements of the point range} \cgalParamType{a model of `WritablePropertyMap` with value type `geom_traits::Vector_3`} \cgalParamDefault{If this parameter is omitted, normals in the input stream are ignored.} \cgalParamNEnd \cgalParamNBegin{geom_traits} \cgalParamDescription{an instance of a geometric traits class} \cgalParamType{a model of `Kernel`} \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} \cgalParamNEnd \cgalNamedParamsEnd \returns `true` if reading was successful, `false` otherwise. \sa \ref IOStreamOFF */ template bool read_OFF(std::istream& is, PointOutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , std::enable_if_t::value>* = nullptr #endif ) { using parameters::choose_parameter; using parameters::get_parameter; typedef Point_set_processing_3::Fake_point_range PointRange; // basic geometric types typedef Point_set_processing_3_np_helper NP_helper; typedef typename NP_helper::Point_map PointMap; typedef typename NP_helper::Normal_map NormalMap; typedef typename NP_helper::Geom_traits Kernel; typedef typename Kernel::FT FT; PointMap point_map = NP_helper::get_point_map(np); NormalMap normal_map = NP_helper::get_normal_map(np); // value_type_traits is a workaround as back_insert_iterator's value_type is void // typedef typename value_type_traits::type Enriched_point; typedef OutputIteratorValueType Enriched_point; typedef typename Kernel::Point_3 Point; typedef typename Kernel::Vector_3 Vector; if(!is) { std::cerr << "Error: cannot open file" << std::endl; return false; } // scan points std::string signature; long pointsCount = 0, facesCount = 0, edgesCount = 0; // number of items in file int pointsRead = 0; // current number of points read int lineNumber = 0; // current line number std::string line; std::istringstream iss; while(getline(is,line)) { iss.clear(); iss.str(line); // Ignore empty lines and comments if (line.empty () || line[0] == '#') continue; ++lineNumber; // Reads file signature on first line if (lineNumber == 1) { if ( !(iss >> signature) || (signature != "OFF" && signature != "NOFF") ) { // if wrong file format std::cerr << "Error line " << lineNumber << " of file (unexpected header)" << std::endl; return false; } } // Reads number of points on 2nd line else if (lineNumber == 2) { if ( !(iss >> pointsCount >> facesCount >> edgesCount) ) { std::cerr << "Error line " << lineNumber << " of file (incorrect header format)" << std::endl; return false; } } // Reads 3D points on next lines else if (pointsRead < pointsCount) { // Reads position + normal... double x,y,z; double nx,ny,nz; if (iss >> IO::iformat(x) >> IO::iformat(y) >> IO::iformat(z)) { Point point{FT(x), FT(y), FT(z)}; Vector normal = CGAL::NULL_VECTOR; // ... + normal... if (iss >> IO::iformat(nx)) { // In case we could read one number, we expect that there are two more if(iss >> IO::iformat(ny) >> IO::iformat(nz)){ normal = Vector(FT(nx),FT(ny),FT(nz)); } else { std::cerr << "Error line " << lineNumber << " of file (incomplete normal coordinates)" << std::endl; return false; } } else if (signature == "NOFF") { std::cerr << "Error line " << lineNumber << " of file (expected normal coordinates)" << std::endl; return false; } Enriched_point pwn; put(point_map, pwn, point); // point_map[&pwn] = point put(normal_map, pwn, normal); // normal_map[&pwn] = normal *output++ = pwn; ++pointsRead; } } } if(is.eof()) is.clear(is.rdstate() & ~std::ios_base::failbit); // set by getline return true; } /** \ingroup PkgPointSetProcessing3IOOff \brief reads points (positions + normals, if available), using the \ref IOStreamOFF. \tparam OutputIteratorValueType type of objects that can be put in `PointOutputIterator`. It must be a model of `DefaultConstructible` and defaults to `value_type_traits::%type`. It can be omitted when the default is fine. \tparam PointOutputIterator iterator over output points. \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" \param fname input file name \param output output iterator over points \param np optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below. \cgalNamedParamsBegin \cgalParamNBegin{point_map} \cgalParamDescription{a property map associating points to the elements of the point range} \cgalParamType{a model of `WritablePropertyMap` with value type `geom_traits::Point_3`} \cgalParamDefault{`CGAL::Identity_property_map`} \cgalParamNEnd \cgalParamNBegin{normal_map} \cgalParamDescription{a property map associating normals to the elements of the point range} \cgalParamType{a model of `WritablePropertyMap` with value type `geom_traits::Vector_3`} \cgalParamDefault{If this parameter is omitted, normals in the input stream are ignored.} \cgalParamNEnd \cgalParamNBegin{geom_traits} \cgalParamDescription{an instance of a geometric traits class} \cgalParamType{a model of `Kernel`} \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} \cgalParamNEnd \cgalNamedParamsEnd \returns `true` if reading was successful, `false` otherwise. \sa \ref IOStreamOFF */ template bool read_OFF(const std::string& fname, PointOutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , std::enable_if_t::value>* = nullptr #endif ) { std::ifstream is(fname); return read_OFF(is, output, np); } /// \cond SKIP_IN_MANUAL // variants with default output iterator value type template bool read_OFF(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), std::enable_if_t::value>* = nullptr) { return read_OFF::type>(is, output, np); } template bool read_OFF(const std::string& fname, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), std::enable_if_t::value>* = nullptr) { std::ifstream is(fname); return read_OFF::type>(is, output, np); } /// \endcond } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE /// \cond SKIP_IN_MANUAL template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. NormalPMap normal_map, ///< property map: value_type of OutputIterator -> Vector_3. const Kernel& /*kernel*/) ///< geometric traits. { return IO::read_OFF(is, output, parameters::point_map(point_map) .normal_map(normal_map) .geom_traits(Kernel())); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. NormalPMap normal_map, ///< property map: value_type of OutputIterator -> Vector_3. const Kernel& kernel) ///< geometric traits. { return IO::read_OFF::type>(is, output, parameters::point_map(point_map) .normal_map(normal_map) .geom_traits(kernel)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. NormalPMap normal_map) ///< property map: value_type of OutputIterator -> Vector_3. { return IO::read_OFF(is, output, parameters::point_map(point_map) .normal_map(normal_map)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. NormalPMap normal_map) ///< property map: value_type of OutputIterator -> Vector_3. { return IO::read_OFF::type>(is, output, parameters::point_map(point_map) .normal_map(normal_map)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. NormalPMap normal_map) ///< property map: value_type of OutputIterator -> Vector_3. { return IO::read_OFF(is, output, parameters::normal_map(normal_map)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points_and_normals(), please update your code") bool read_off_points_and_normals(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. NormalPMap normal_map) ///< property map: value_type of OutputIterator -> Vector_3. { return IO::read_OFF::type>(is, output, parameters::normal_map(normal_map)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points(), please update your code") bool read_off_points(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. const Kernel& kernel) ///< geometric traits. { return read_off_points(is, output, parameters::point_map(point_map) .geom_traits(kernel)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points(), please update your code") bool read_off_points(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map, ///< property map: value_type of OutputIterator -> Point_3. const Kernel& kernel) ///< geometric traits. { return read_off_points::type>(is, output, parameters::point_map(point_map) .geom_traits (kernel)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points(), please update your code") bool read_off_points(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map) ///< property map: value_type of OutputIterator -> Point_3. { return read_off_points(is, output, parameters::point_map (point_map)); } template CGAL_DEPRECATED_MSG("you are using the deprecated V1 API of CGAL::read_off_points(), please update your code") bool read_off_points(std::istream& is, ///< input stream. OutputIterator output, ///< output iterator over points. PointPMap point_map) ///< property map: value_type of OutputIterator -> Point_3. { return read_off_points::type>(is, output, parameters::point_map(point_map)); } /// \endcond template CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, output, np); } /// \cond SKIP_IN_MANUAL template CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output) { return IO::read_OFF(is, output); } // variant with default output iterator value type template CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, output, np); } /// \endcond #endif //CGAL_NO_DEPRECATED_CODE } // namespace CGAL #endif // CGAL_POINT_SET_PROCESSING_READ_OFF_POINTS_H