mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-16 14:08:59 +07:00
add pnpoly.h module
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -52,3 +52,6 @@
|
|||||||
[submodule "modules/box2d"]
|
[submodule "modules/box2d"]
|
||||||
path = modules/box2d
|
path = modules/box2d
|
||||||
url = https://github.com/erincatto/box2d
|
url = https://github.com/erincatto/box2d
|
||||||
|
[submodule "modules/pnpoly.h"]
|
||||||
|
path = modules/pnpoly.h
|
||||||
|
url = https://github.com/BlackMATov/pnpoly.h
|
||||||
|
|||||||
1
modules/pnpoly.h
Submodule
1
modules/pnpoly.h
Submodule
Submodule modules/pnpoly.h added at 6a55491c4c
@@ -16,5 +16,6 @@ cloc \
|
|||||||
$SCRIPT_DIR/../modules/enum.hpp/untests \
|
$SCRIPT_DIR/../modules/enum.hpp/untests \
|
||||||
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/flat.hpp/untests \
|
$SCRIPT_DIR/../modules/flat.hpp/untests \
|
||||||
|
$SCRIPT_DIR/../modules/pnpoly.h \
|
||||||
$SCRIPT_DIR/../modules/promise.hpp/headers \
|
$SCRIPT_DIR/../modules/promise.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/promise.hpp/untests
|
$SCRIPT_DIR/../modules/promise.hpp/untests
|
||||||
|
|||||||
@@ -8,4 +8,5 @@ cloc \
|
|||||||
$SCRIPT_DIR/../modules/ecs.hpp/headers \
|
$SCRIPT_DIR/../modules/ecs.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/enum.hpp/headers \
|
$SCRIPT_DIR/../modules/enum.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
||||||
|
$SCRIPT_DIR/../modules/pnpoly.h \
|
||||||
$SCRIPT_DIR/../modules/promise.hpp/headers
|
$SCRIPT_DIR/../modules/promise.hpp/headers
|
||||||
|
|||||||
@@ -10,5 +10,6 @@ cloc \
|
|||||||
$SCRIPT_DIR/../modules/enum.hpp/untests \
|
$SCRIPT_DIR/../modules/enum.hpp/untests \
|
||||||
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
$SCRIPT_DIR/../modules/flat.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/flat.hpp/untests \
|
$SCRIPT_DIR/../modules/flat.hpp/untests \
|
||||||
|
$SCRIPT_DIR/../modules/pnpoly.h \
|
||||||
$SCRIPT_DIR/../modules/promise.hpp/headers \
|
$SCRIPT_DIR/../modules/promise.hpp/headers \
|
||||||
$SCRIPT_DIR/../modules/promise.hpp/untests
|
$SCRIPT_DIR/../modules/promise.hpp/untests
|
||||||
|
|||||||
@@ -105,6 +105,9 @@ cp -fv $MODULES_DIR/miniz/miniz_tinfl.h $SOURCES_RDPARTY_DIR/miniz/miniz_tinfl.h
|
|||||||
cp -fv $MODULES_DIR/miniz/miniz_zip.c $SOURCES_RDPARTY_DIR/miniz/miniz_zip.c
|
cp -fv $MODULES_DIR/miniz/miniz_zip.c $SOURCES_RDPARTY_DIR/miniz/miniz_zip.c
|
||||||
cp -fv $MODULES_DIR/miniz/miniz_zip.h $SOURCES_RDPARTY_DIR/miniz/miniz_zip.h
|
cp -fv $MODULES_DIR/miniz/miniz_zip.h $SOURCES_RDPARTY_DIR/miniz/miniz_zip.h
|
||||||
|
|
||||||
|
mkdir -p $SOURCES_RDPARTY_DIR/pnpoly.h
|
||||||
|
cp -fv $MODULES_DIR/pnpoly.h/pnpoly.h $SOURCES_RDPARTY_DIR/pnpoly.h/pnpoly.h
|
||||||
|
|
||||||
mkdir -p $HEADERS_RDPARTY_DIR/pugixml
|
mkdir -p $HEADERS_RDPARTY_DIR/pugixml
|
||||||
cp -rfv $MODULES_DIR/pugixml/src/. $HEADERS_RDPARTY_DIR/pugixml/
|
cp -rfv $MODULES_DIR/pugixml/src/. $HEADERS_RDPARTY_DIR/pugixml/
|
||||||
|
|
||||||
|
|||||||
77
sources/3rdparty/pnpoly.h/pnpoly.h
vendored
Normal file
77
sources/3rdparty/pnpoly.h/pnpoly.h
vendored
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* PNPOLY_INCLUDE_H
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef PNPOLY_INCLUDE_H
|
||||||
|
#define PNPOLY_INCLUDE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PNPOLY_DEF
|
||||||
|
# ifdef PNPOLY_STATIC
|
||||||
|
# define PNPOLY_DEF static
|
||||||
|
# else
|
||||||
|
# define PNPOLY_DEF extern
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
PNPOLY_DEF int pnpoly(int nvert, const float *vertx, const float *verty, float testx, float testy);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // PNPOLY_INCLUDE_H
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* PNPOLY_IMPLEMENTATION
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifdef PNPOLY_IMPLEMENTATION
|
||||||
|
|
||||||
|
PNPOLY_DEF int pnpoly(int nvert, const float *vertx, const float *verty, float testx, float testy)
|
||||||
|
{
|
||||||
|
int i, j, c = 0;
|
||||||
|
for (i = 0, j = nvert-1; i < nvert; j = i++) {
|
||||||
|
if ( ((verty[i]>testy) != (verty[j]>testy)) &&
|
||||||
|
(testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
|
||||||
|
c = !c;
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // PNPOLY_IMPLEMENTATION
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright (c) 1970-2003, Wm. Randolph Franklin
|
||||||
|
Copyright (c) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimers.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice in
|
||||||
|
the documentation and/or other materials provided with the distribution.
|
||||||
|
3. The name of W. Randolph Franklin may not be used to endorse or promote
|
||||||
|
products derived from this Software without specific prior written permission.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
Reference in New Issue
Block a user