mirror of
https://github.com/jhasse/poly2tri.git
synced 2024-11-29 16:53:30 +01:00
Merge pull request #42 from pierre-dejoue/dllexport
Rework on dllexport/dllimport definitions
This commit is contained in:
commit
dbc52ace16
@ -11,6 +11,13 @@ file(GLOB HEADERS poly2tri/*.h poly2tri/common/*.h poly2tri/sweep/*.h)
|
|||||||
add_library(poly2tri ${SOURCES} ${HEADERS})
|
add_library(poly2tri ${SOURCES} ${HEADERS})
|
||||||
target_include_directories(poly2tri INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(poly2tri INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
get_target_property(poly2tri_target_type poly2tri TYPE)
|
||||||
|
if(poly2tri_target_type STREQUAL SHARED_LIBRARY)
|
||||||
|
target_compile_definitions(poly2tri PRIVATE P2T_SHARED_EXPORTS)
|
||||||
|
else()
|
||||||
|
target_compile_definitions(poly2tri PUBLIC P2T_STATIC_EXPORTS)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(P2T_BUILD_TESTS)
|
if(P2T_BUILD_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_subdirectory(unittest)
|
add_subdirectory(unittest)
|
||||||
|
56
poly2tri/common/dll_symbol.h
Normal file
56
poly2tri/common/dll_symbol.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Poly2Tri Copyright (c) 2009-2022, Poly2Tri Contributors
|
||||||
|
* https://github.com/jhasse/poly2tri
|
||||||
|
*
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
* are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of Poly2Tri nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software without specific
|
||||||
|
* prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DLL_SYMBOL_H
|
||||||
|
#define DLL_SYMBOL_H
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
# define P2T_COMPILER_DLLEXPORT __declspec(dllexport)
|
||||||
|
# define P2T_COMPILER_DLLIMPORT __declspec(dllimport)
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
# define P2T_COMPILER_DLLEXPORT __attribute__ ((visibility ("default")))
|
||||||
|
# define P2T_COMPILER_DLLIMPORT __attribute__ ((visibility ("default")))
|
||||||
|
#else
|
||||||
|
# define P2T_COMPILER_DLLEXPORT
|
||||||
|
# define P2T_COMPILER_DLLIMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef P2T_DLL_SYMBOL
|
||||||
|
# if defined(P2T_STATIC_EXPORTS)
|
||||||
|
# define P2T_DLL_SYMBOL
|
||||||
|
# elif defined(P2T_SHARED_EXPORTS)
|
||||||
|
# define P2T_DLL_SYMBOL P2T_COMPILER_DLLEXPORT
|
||||||
|
# else
|
||||||
|
# define P2T_DLL_SYMBOL P2T_COMPILER_DLLIMPORT
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -33,6 +33,8 @@
|
|||||||
#ifndef SHAPES_H
|
#ifndef SHAPES_H
|
||||||
#define SHAPES_H
|
#define SHAPES_H
|
||||||
|
|
||||||
|
#include "dll_symbol.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
@ -42,7 +44,7 @@ namespace p2t {
|
|||||||
|
|
||||||
struct Edge;
|
struct Edge;
|
||||||
|
|
||||||
struct Point {
|
struct P2T_DLL_SYMBOL Point {
|
||||||
|
|
||||||
double x, y;
|
double x, y;
|
||||||
|
|
||||||
@ -119,10 +121,10 @@ struct Point {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream&, const Point&);
|
P2T_DLL_SYMBOL std::ostream& operator<<(std::ostream&, const Point&);
|
||||||
|
|
||||||
// Represents a simple polygon's edge
|
// Represents a simple polygon's edge
|
||||||
struct Edge {
|
struct P2T_DLL_SYMBOL Edge {
|
||||||
|
|
||||||
Point* p, *q;
|
Point* p, *q;
|
||||||
|
|
||||||
@ -149,7 +151,7 @@ struct Edge {
|
|||||||
// Triangle-based data structures are know to have better performance than quad-edge structures
|
// Triangle-based data structures are know to have better performance than quad-edge structures
|
||||||
// See: J. Shewchuk, "Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator"
|
// See: J. Shewchuk, "Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator"
|
||||||
// "Triangulations in CGAL"
|
// "Triangulations in CGAL"
|
||||||
class Triangle {
|
class P2T_DLL_SYMBOL Triangle {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// Constructor
|
/// Constructor
|
||||||
@ -324,7 +326,7 @@ inline void Triangle::IsInterior(bool b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Is this set a valid delaunay triangulation?
|
/// Is this set a valid delaunay triangulation?
|
||||||
bool IsDelaunay(const std::vector<p2t::Triangle*>&);
|
P2T_DLL_SYMBOL bool IsDelaunay(const std::vector<p2t::Triangle*>&);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include "sweep_context.h"
|
#include "sweep_context.h"
|
||||||
#include "sweep.h"
|
#include "sweep.h"
|
||||||
|
|
||||||
|
#include "../common/dll_symbol.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Mason Green <mason.green@gmail.com>
|
* @author Mason Green <mason.green@gmail.com>
|
||||||
@ -44,7 +46,7 @@
|
|||||||
|
|
||||||
namespace p2t {
|
namespace p2t {
|
||||||
|
|
||||||
class CDT
|
class P2T_DLL_SYMBOL CDT
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user