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) 2012-2013, IGN France. // Copyright (c) 2012-2024, Oslandia. // Copyright (c) 2024-2025, SFCGAL team. // SPDX-License-Identifier: LGPL-2.0-or-later #ifndef SFCGAL_ENVELOPE_H_ #define SFCGAL_ENVELOPE_H_ #include #include #include #include #include "SFCGAL/config.h" #include "SFCGAL/Coordinate.h" #include "SFCGAL/detail/Interval.h" namespace SFCGAL { class LineString; class Polygon; class Solid; class PolyhedralSurface; /** * Represents a bounding box * @todo add asText instead of "print"? * @todo add basic operations (especialy intersects/intersects3D) */ class SFCGAL_API Envelope { public: /** * default constructor (empty bounding box) */ Envelope(); /** * 2D box constructor with min,max values */ Envelope(const double &xmin, const double &xmax, const double &ymin, const double &ymax); /** * 3D box constructor with min,max values */ Envelope(const double &xmin, const double &xmax, const double &ymin, const double &ymax, const double &zmin, const double &zmax); /** * default constructor (empty bounding box) */ Envelope(const Coordinate &p); /** * default constructor (empty bounding box) */ Envelope(const Coordinate &p1, const Coordinate &p2); /** * copy constructor */ Envelope(const Envelope &other); /** * assign operator */ Envelope & operator=(const Envelope &other); /** * indicates if the bounding box is empty */ bool isEmpty() const; /** * indicates if the bounding box has a 3D component */ bool is3D() const; /** * expand the box to include coordinate */ void expandToInclude(const Coordinate &coordinate); inline const double & xMin() const { return _bounds[0].lower(); } inline const double & yMin() const { return _bounds[1].lower(); } inline const double & zMin() const { return _bounds[2].lower(); } inline const double & xMax() const { return _bounds[0].upper(); } inline const double & yMax() const { return _bounds[1].upper(); } inline const double & zMax() const { return _bounds[2].upper(); } /** * returns the n-th bound */ inline detail::Interval & boundsN(const size_t &n) { BOOST_ASSERT(n < 3); return _bounds[n]; } /** * returns the n-th bound */ inline const detail::Interval & boundsN(const size_t &n) const { BOOST_ASSERT(n < 3); return _bounds[n]; } /** * Convenience function. Convert to CGAL::BBox_2 */ inline CGAL::Bbox_2 toBbox_2() const { BOOST_ASSERT(!isEmpty()); return CGAL::Bbox_2(_bounds[0].lower(), _bounds[1].lower(), _bounds[0].upper(), _bounds[1].upper()); } /** * Convenience function. Convert to CGAL::BBox_3 */ inline CGAL::Bbox_3 toBbox_3() const { if (is3D()) { return CGAL::Bbox_3(_bounds[0].lower(), _bounds[1].lower(), _bounds[2].lower(), _bounds[0].upper(), _bounds[1].upper(), _bounds[2].upper()); } return CGAL::Bbox_3(_bounds[0].lower(), _bounds[1].lower(), 0.0, _bounds[0].upper(), _bounds[1].upper(), 0.0); } /** * Global binary operator on Envelopes. Test if A's bounding box contains B's * FIXME: consider moving that outside of the class */ static bool contains(const Envelope &a, const Envelope &b); /** * Global binary operator on Envelopes. Test if A's bounding box overlaps B's */ static bool overlaps(const Envelope &a, const Envelope &b); //-- helpers /** * @brief convenience method to convert to 2D Polygon ring * @warning empty LineString for empty Envelope, may be X or Y collapsed */ std::unique_ptr toRing() const; /** * @brief convenience method to convert to 2D Polygon * @warning empty Polygon for empty Envelope, may be X or Y collapsed */ std::unique_ptr toPolygon() const; /** * @brief convenience method to convert to 3D Shell * @warning empty Solid for empty or non 3D Envelope, may be X, Y or Z * collapsed */ std::unique_ptr toShell() const; /** * @brief convenience method to convert to 3D Solid * @warning empty Solid for empty or non 3D Envelope, may be X, Y or Z * collapsed */ std::unique_ptr toSolid() const; /* * Display method */ std::ostream & print(std::ostream &) const; private: /** * bounds of the interval ((xmin,xmax),(ymin,ymax),(zmin,zmax)) */ detail::Interval _bounds[3]; }; /** * Global comparison operator on Envelope */ SFCGAL_API bool operator==(const Envelope &, const Envelope &); } // namespace SFCGAL #endif