Clean up multiple definitions of DLL_HEADER

- define DLL_HEADER only once in mydefs.hpp
- define/use NGLIB_API in nglib.h
- use NGCORE_API_EXPORT for explicit export of symbols
This commit is contained in:
Matthias Hochsteger 2021-02-18 11:37:05 +01:00 committed by mhochsteger
parent 979a695f62
commit b2fea6dec1
14 changed files with 168 additions and 204 deletions

View File

@ -1,4 +1,4 @@
add_definitions(-DNGLIB_EXPORTS) add_definitions(-DNGINTERFACE_EXPORTS)
add_library(geom2d ${NG_LIB_TYPE} csg2d.cpp genmesh2d.cpp geometry2d.cpp python_geom2d.cpp ) add_library(geom2d ${NG_LIB_TYPE} csg2d.cpp genmesh2d.cpp geometry2d.cpp python_geom2d.cpp )
if(APPLE) if(APPLE)
set_target_properties( geom2d PROPERTIES SUFFIX ".so") set_target_properties( geom2d PROPERTIES SUFFIX ".so")

View File

@ -17,7 +17,7 @@ namespace netgen
} }
DLL_HEADER void ExportGeom2d(py::module &m) NGCORE_API_EXPORT void ExportGeom2d(py::module &m)
{ {
py::class_<SplineSegExt, shared_ptr<SplineSegExt>> py::class_<SplineSegExt, shared_ptr<SplineSegExt>>
(m, "Spline", "Spline of a SplineGeometry object") (m, "Spline", "Spline of a SplineGeometry object")

View File

@ -11,22 +11,15 @@
defines for graphics, testmodes, ... defines for graphics, testmodes, ...
*/ */
#include <core/ngcore.hpp>
#define PACKAGE_VERSION "6.2-dev" #define PACKAGE_VERSION "6.2-dev"
// #define DEBUG // #define DEBUG
#ifdef WIN32 #if defined(NGINTERFACE_EXPORTS) || ( defined(WIN32) && (defined(NGLIB_EXPORTS) || defined(nglib_EXPORTS)) )
#if NGINTERFACE_EXPORTS || NGLIB_EXPORTS || nglib_EXPORTS #define DLL_HEADER NGCORE_API_EXPORT
#define DLL_HEADER __declspec(dllexport)
#else
#define DLL_HEADER __declspec(dllimport)
#endif
#else #else
#if __GNUC__ >= 4 #define DLL_HEADER NGCORE_API_IMPORT
#define DLL_HEADER __attribute__ ((visibility ("default")))
#else
#define DLL_HEADER
#endif
#endif #endif

View File

@ -11,22 +11,13 @@
/* Date: 20. Nov. 99 */ /* Date: 20. Nov. 99 */
/**************************************************************************/ /**************************************************************************/
#include <core/ngcore.hpp> #include "mydefs.hpp"
/* /*
Application program interface to Netgen Application program interface to Netgen
*/ */
#ifndef DLL_HEADER
#if NGINTERFACE_EXPORTS || NGLIB_EXPORTS || nglib_EXPORTS
#define DLL_HEADER NGCORE_API_EXPORT
#else
#define DLL_HEADER NGCORE_API_IMPORT
#endif
#endif
// max number of nodes per element // max number of nodes per element
#define NG_ELEMENT_MAXPOINTS 20 #define NG_ELEMENT_MAXPOINTS 20

View File

@ -8,7 +8,7 @@
/* Date: May 09 */ /* Date: May 09 */
/**************************************************************************/ /**************************************************************************/
#include <core/ngcore.hpp> #include "mydefs.hpp"
/* /*
C++ interface to Netgen C++ interface to Netgen

View File

@ -1,3 +1,4 @@
add_definitions(-DNGINTERFACE_EXPORTS)
add_library(stl ${NG_LIB_TYPE} add_library(stl ${NG_LIB_TYPE}
meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp
stlgeommesh.cpp stlline.cpp stltool.cpp stltopology.cpp python_stl.cpp stlgeommesh.cpp stlline.cpp stltool.cpp stltopology.cpp python_stl.cpp

View File

@ -6,10 +6,6 @@
#include <stlgeom.hpp> #include <stlgeom.hpp>
#include "../meshing/python_mesh.hpp" #include "../meshing/python_mesh.hpp"
#ifdef WIN32
#define DLL_HEADER __declspec(dllexport)
#endif
using namespace netgen; using namespace netgen;
namespace netgen namespace netgen
{ {
@ -125,7 +121,7 @@ void CreateSTLParametersFromKwargs(STLParameters& stlparam, py::dict kwargs)
} }
DLL_HEADER void ExportSTL(py::module & m) NGCORE_API_EXPORT void ExportSTL(py::module & m)
{ {
py::class_<STLGeometry,shared_ptr<STLGeometry>, NetgenGeometry> (m,"STLGeometry") py::class_<STLGeometry,shared_ptr<STLGeometry>, NetgenGeometry> (m,"STLGeometry")
.def(py::init<>()) .def(py::init<>())

View File

@ -1216,13 +1216,10 @@ void VisualSceneSTLMeshing :: MouseDblClick (int px, int py)
#ifdef NG_PYTHON #ifdef NG_PYTHON
#ifdef WIN32
#define DLL_HEADER __declspec(dllexport)
#endif
#include <../general/ngpython.hpp> #include <../general/ngpython.hpp>
#include <core/ngcore_api.hpp>
DLL_HEADER void ExportSTLVis(py::module &m) NGCORE_API_EXPORT void ExportSTLVis(py::module &m)
{ {
using namespace netgen; using namespace netgen;

View File

@ -10,30 +10,30 @@
namespace netgen namespace netgen
{ {
class VisualSceneSTLGeometry : public VisualScene class DLL_HEADER VisualSceneSTLGeometry : public VisualScene
{ {
NgArray<int> trilists; NgArray<int> trilists;
class STLGeometry * stlgeometry; class STLGeometry * stlgeometry;
public: public:
DLL_HEADER VisualSceneSTLGeometry (); VisualSceneSTLGeometry ();
DLL_HEADER virtual ~VisualSceneSTLGeometry (); virtual ~VisualSceneSTLGeometry ();
void SetGeometry (class STLGeometry * astlgeometry) { stlgeometry = astlgeometry; } void SetGeometry (class STLGeometry * astlgeometry) { stlgeometry = astlgeometry; }
DLL_HEADER virtual void BuildScene (int zoomall = 0); virtual void BuildScene (int zoomall = 0);
DLL_HEADER virtual void DrawScene (); virtual void DrawScene ();
}; };
class VisualSceneSTLMeshing : public VisualScene class DLL_HEADER VisualSceneSTLMeshing : public VisualScene
{ {
NgArray<int> trilists; NgArray<int> trilists;
int selecttrig, nodeofseltrig; int selecttrig, nodeofseltrig;
class STLGeometry * stlgeometry; class STLGeometry * stlgeometry;
public: public:
DLL_HEADER VisualSceneSTLMeshing (); VisualSceneSTLMeshing ();
DLL_HEADER virtual ~VisualSceneSTLMeshing (); virtual ~VisualSceneSTLMeshing ();
void SetGeometry (class STLGeometry * astlgeometry) { stlgeometry = astlgeometry; } void SetGeometry (class STLGeometry * astlgeometry) { stlgeometry = astlgeometry; }

View File

@ -1,29 +1,21 @@
#include <mystdlib.h> #include <mystdlib.h>
#include <inctcl.hpp> #include <inctcl.hpp>
#include <meshing.hpp> #include <meshing.hpp>
#include <core/ngcore_api.hpp>
#ifdef WIN32
#define DLL_HEADER_IMPORT __declspec(dllimport)
#define DLL_HEADER_EXPORT __declspec(dllexport)
#else
#define DLL_HEADER_IMPORT
#define DLL_HEADER_EXPORT
#endif
namespace netgen namespace netgen
{ {
DLL_HEADER_EXPORT Flags parameters; NGCORE_API_EXPORT Flags parameters;
} }
DLL_HEADER_EXPORT bool nodisplay = false; NGCORE_API_EXPORT bool nodisplay = false;
extern "C" int Ng_Init (Tcl_Interp * interp); extern "C" int Ng_Init (Tcl_Interp * interp);
extern "C" int Ng_Vis_Init (Tcl_Interp * interp); extern "C" int Ng_Vis_Init (Tcl_Interp * interp);
extern "C" void Ng_TclCmd(string); extern "C" void Ng_TclCmd(string);
// tcl package dynamic load // tcl package dynamic load
extern "C" int DLL_HEADER_EXPORT Gui_Init (Tcl_Interp * interp) extern "C" int NGCORE_API_EXPORT Gui_Init (Tcl_Interp * interp)
{ {
if (Ng_Init(interp) == TCL_ERROR) { if (Ng_Init(interp) == TCL_ERROR) {
cerr << "Problem in Ng_Init: " << endl; cerr << "Problem in Ng_Init: " << endl;

View File

@ -2,27 +2,21 @@
#include <iostream> #include <iostream>
#include <../general/ngpython.hpp> #include <../general/ngpython.hpp>
#include <core/ngcore_api.hpp>
#ifdef WIN32 void NGCORE_API_IMPORT ExportNetgenMeshing(py::module &m);
#define DLL_HEADER __declspec(dllimport) void NGCORE_API_IMPORT ExportMeshVis(py::module &m);
#else void NGCORE_API_IMPORT ExportCSG(py::module &m);
#define DLL_HEADER void NGCORE_API_IMPORT ExportCSGVis(py::module &m);
#endif void NGCORE_API_IMPORT ExportGeom2d(py::module &m);
void NGCORE_API_IMPORT ExportSTL(py::module &m);
void NGCORE_API_IMPORT ExportSTLVis(py::module &m);
void DLL_HEADER ExportNetgenMeshing(py::module &m);
void DLL_HEADER ExportMeshVis(py::module &m);
void DLL_HEADER ExportCSG(py::module &m);
void DLL_HEADER ExportCSGVis(py::module &m);
void DLL_HEADER ExportGeom2d(py::module &m);
void DLL_HEADER ExportSTL(py::module &m);
void DLL_HEADER ExportSTLVis(py::module &m);
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
void DLL_HEADER ExportNgOCC(py::module &m); void NGCORE_API_IMPORT ExportNgOCC(py::module &m);
#endif // OCCGEOMETRY #endif // OCCGEOMETRY
namespace netgen namespace netgen
{ {
std::vector<unsigned char> DLL_HEADER Snapshot( int w, int h ); std::vector<unsigned char> NGCORE_API_IMPORT Snapshot( int w, int h );
} }
PYBIND11_MODULE(libngpy, ngpy) PYBIND11_MODULE(libngpy, ngpy)

View File

@ -78,7 +78,7 @@ namespace nglib
// initialize, deconstruct Netgen library: // initialize, deconstruct Netgen library:
DLL_HEADER void Ng_Init () NGLIB_API void Ng_Init ()
{ {
mycout = &cout; mycout = &cout;
myerr = &cerr; myerr = &cerr;
@ -90,7 +90,7 @@ namespace nglib
// Clean-up functions before ending usage of nglib // Clean-up functions before ending usage of nglib
DLL_HEADER void Ng_Exit () NGLIB_API void Ng_Exit ()
{ {
; ;
} }
@ -99,7 +99,7 @@ namespace nglib
// Create a new netgen mesh object // Create a new netgen mesh object
DLL_HEADER Ng_Mesh * Ng_NewMesh () NGLIB_API Ng_Mesh * Ng_NewMesh ()
{ {
Mesh * mesh = new Mesh; Mesh * mesh = new Mesh;
mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1)); mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
@ -110,7 +110,7 @@ namespace nglib
// Delete an existing netgen mesh object // Delete an existing netgen mesh object
DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh) NGLIB_API void Ng_DeleteMesh (Ng_Mesh * mesh)
{ {
if(mesh != NULL) if(mesh != NULL)
{ {
@ -129,7 +129,7 @@ namespace nglib
// Save a netgen mesh in the native VOL format // Save a netgen mesh in the native VOL format
DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename) NGLIB_API void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)
{ {
((Mesh*)mesh)->Save(filename); ((Mesh*)mesh)->Save(filename);
} }
@ -138,7 +138,7 @@ namespace nglib
// Load a netgen native VOL mesh from a given file // Load a netgen native VOL mesh from a given file
DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename) NGLIB_API Ng_Mesh * Ng_LoadMesh(const char* filename)
{ {
Mesh * mesh = new Mesh; Mesh * mesh = new Mesh;
mesh->Load(filename); mesh->Load(filename);
@ -149,7 +149,7 @@ namespace nglib
// Merge another mesh file into the currently loaded one // Merge another mesh file into the currently loaded one
DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename) NGLIB_API Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)
{ {
Ng_Result status = NG_OK; Ng_Result status = NG_OK;
@ -190,7 +190,7 @@ namespace nglib
// Merge another mesh file into the currently loaded one // Merge another mesh file into the currently loaded one
DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2) NGLIB_API Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)
{ {
return NG_ERROR; return NG_ERROR;
} }
@ -199,7 +199,7 @@ namespace nglib
// Manually add a point to an existing mesh object // Manually add a point to an existing mesh object
DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x) NGLIB_API void Ng_AddPoint (Ng_Mesh * mesh, double * x)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
m->AddPoint (Point3d (x[0], x[1], x[2])); m->AddPoint (Point3d (x[0], x[1], x[2]));
@ -209,7 +209,7 @@ namespace nglib
// Manually add a surface element of a given type to an existing mesh object // Manually add a surface element of a given type to an existing mesh object
DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, NGLIB_API void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,
int * pi) int * pi)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -225,7 +225,7 @@ namespace nglib
// Manually add a volume element of a given type to an existing mesh object // Manually add a volume element of a given type to an existing mesh object
DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, NGLIB_API void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
int * pi) int * pi)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -242,7 +242,7 @@ namespace nglib
// Obtain the number of points in the mesh // Obtain the number of points in the mesh
DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh) NGLIB_API int Ng_GetNP (Ng_Mesh * mesh)
{ {
return ((Mesh*)mesh) -> GetNP(); return ((Mesh*)mesh) -> GetNP();
} }
@ -251,7 +251,7 @@ namespace nglib
// Obtain the number of surface elements in the mesh // Obtain the number of surface elements in the mesh
DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh) NGLIB_API int Ng_GetNSE (Ng_Mesh * mesh)
{ {
return ((Mesh*)mesh) -> GetNSE(); return ((Mesh*)mesh) -> GetNSE();
} }
@ -260,7 +260,7 @@ namespace nglib
// Obtain the number of volume elements in the mesh // Obtain the number of volume elements in the mesh
DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh) NGLIB_API int Ng_GetNE (Ng_Mesh * mesh)
{ {
return ((Mesh*)mesh) -> GetNE(); return ((Mesh*)mesh) -> GetNE();
} }
@ -269,7 +269,7 @@ namespace nglib
// Return point coordinates of a given point index in the mesh // Return point coordinates of a given point index in the mesh
DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x) NGLIB_API void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)
{ {
const Point3d & p = ((Mesh*)mesh)->Point(num); const Point3d & p = ((Mesh*)mesh)->Point(num);
x[0] = p.X(); x[0] = p.X();
@ -281,7 +281,7 @@ namespace nglib
// Return the surface element at a given index "pi" // Return the surface element at a given index "pi"
DLL_HEADER Ng_Surface_Element_Type NGLIB_API Ng_Surface_Element_Type
Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi) Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)
{ {
const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num); const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
@ -312,7 +312,7 @@ namespace nglib
// Return the volume element at a given index "pi" // Return the volume element at a given index "pi"
DLL_HEADER Ng_Volume_Element_Type NGLIB_API Ng_Volume_Element_Type
Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi) Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)
{ {
const Element & el = ((Mesh*)mesh)->VolumeElement(num); const Element & el = ((Mesh*)mesh)->VolumeElement(num);
@ -335,7 +335,7 @@ namespace nglib
// Set a global limit on the maximum mesh size allowed // Set a global limit on the maximum mesh size allowed
DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h) NGLIB_API void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)
{ {
((Mesh*)mesh) -> SetGlobalH (h); ((Mesh*)mesh) -> SetGlobalH (h);
} }
@ -344,7 +344,7 @@ namespace nglib
// Set a local limit on the maximum mesh size allowed around the given point // Set a local limit on the maximum mesh size allowed around the given point
DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h) NGLIB_API void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)
{ {
((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h); ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);
} }
@ -353,7 +353,7 @@ namespace nglib
// Set a local limit on the maximum mesh size allowed within a given box region // Set a local limit on the maximum mesh size allowed within a given box region
DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h) NGLIB_API void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)
{ {
for (double x = pmin[0]; x < pmax[0]; x += h) for (double x = pmin[0]; x < pmax[0]; x += h)
for (double y = pmin[1]; y < pmax[1]; y += h) for (double y = pmin[1]; y < pmax[1]; y += h)
@ -365,7 +365,7 @@ namespace nglib
// Generates volume mesh from an existing surface mesh // Generates volume mesh from an existing surface mesh
DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp) NGLIB_API Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -388,7 +388,7 @@ namespace nglib
/* ------------------ 2D Meshing Functions ------------------------- */ /* ------------------ 2D Meshing Functions ------------------------- */
DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x) NGLIB_API void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -398,7 +398,7 @@ namespace nglib
DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2) NGLIB_API void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -411,7 +411,7 @@ namespace nglib
DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh) NGLIB_API int Ng_GetNP_2D (Ng_Mesh * mesh)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
return m->GetNP(); return m->GetNP();
@ -420,7 +420,7 @@ namespace nglib
DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh) NGLIB_API int Ng_GetNE_2D (Ng_Mesh * mesh)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
return m->GetNSE(); return m->GetNSE();
@ -429,7 +429,7 @@ namespace nglib
DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh) NGLIB_API int Ng_GetNSeg_2D (Ng_Mesh * mesh)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
return m->GetNSeg(); return m->GetNSeg();
@ -438,7 +438,7 @@ namespace nglib
DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x) NGLIB_API void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)
{ {
Mesh * m = (Mesh*)mesh; Mesh * m = (Mesh*)mesh;
@ -450,7 +450,7 @@ namespace nglib
DLL_HEADER Ng_Surface_Element_Type NGLIB_API Ng_Surface_Element_Type
Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum) Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
{ {
const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num); const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
@ -485,7 +485,7 @@ namespace nglib
DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum) NGLIB_API void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
{ {
const Segment & seg = ((Mesh*)mesh)->LineSegment(num); const Segment & seg = ((Mesh*)mesh)->LineSegment(num);
pi[0] = seg[0]; pi[0] = seg[0];
@ -498,7 +498,7 @@ namespace nglib
DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename) NGLIB_API Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)
{ {
SplineGeometry2d * geom = new SplineGeometry2d(); SplineGeometry2d * geom = new SplineGeometry2d();
geom -> Load (filename); geom -> Load (filename);
@ -506,7 +506,7 @@ namespace nglib
} }
DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom, NGLIB_API Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
Ng_Mesh ** mesh, Ng_Mesh ** mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -527,7 +527,7 @@ namespace nglib
DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom, NGLIB_API void Ng_HP_Refinement (Ng_Geometry_2D * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
int levels) int levels)
{ {
@ -538,7 +538,7 @@ namespace nglib
DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom, NGLIB_API void Ng_HP_Refinement (Ng_Geometry_2D * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
int levels, double parameter) int levels, double parameter)
{ {
@ -553,7 +553,7 @@ namespace nglib
NgArray<Point<3> > readedges; //only before init stlgeometry NgArray<Point<3> > readedges; //only before init stlgeometry
// loads geometry from STL file // loads geometry from STL file
DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary) NGLIB_API Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)
{ {
int i; int i;
STLGeometry geom; STLGeometry geom;
@ -603,7 +603,7 @@ namespace nglib
// generate new STL Geometry // generate new STL Geometry
DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry () NGLIB_API Ng_STL_Geometry * Ng_STL_NewGeometry ()
{ {
return (Ng_STL_Geometry*)(void*)new STLGeometry; return (Ng_STL_Geometry*)(void*)new STLGeometry;
} }
@ -612,7 +612,7 @@ namespace nglib
// after adding triangles (and edges) initialize // after adding triangles (and edges) initialize
DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom) NGLIB_API Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)
{ {
STLGeometry* geo = (STLGeometry*)geom; STLGeometry* geo = (STLGeometry*)geom;
geo->InitSTLGeometry(readtrias); geo->InitSTLGeometry(readtrias);
@ -637,7 +637,7 @@ namespace nglib
// automatically generates edges: // automatically generates edges:
DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom, NGLIB_API Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
Ng_Mesh* mesh, Ng_Mesh* mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -683,7 +683,7 @@ namespace nglib
// generates mesh, empty mesh be already created. // generates mesh, empty mesh be already created.
DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom, NGLIB_API Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
Ng_Mesh* mesh, Ng_Mesh* mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -745,7 +745,7 @@ namespace nglib
// fills STL Geometry // fills STL Geometry
// positive orientation // positive orientation
// normal vector may be null-pointer // normal vector may be null-pointer
DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_AddTriangle (Ng_STL_Geometry * geom,
double * p1, double * p2, double * p3, double * p1, double * p2, double * p3,
double * nv) double * nv)
{ {
@ -764,7 +764,7 @@ namespace nglib
} }
// add (optional) edges: // add (optional) edges:
DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_AddEdge (Ng_STL_Geometry * geom,
double * p1, double * p2) double * p1, double * p2)
{ {
readedges.Append(Point3d(p1[0],p1[1],p1[2])); readedges.Append(Point3d(p1[0],p1[1],p1[2]));
@ -777,7 +777,7 @@ namespace nglib
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
// --------------------- OCC Geometry / Meshing Utility Functions ------------------- // --------------------- OCC Geometry / Meshing Utility Functions -------------------
// Create new OCC Geometry Object // Create new OCC Geometry Object
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry () NGLIB_API Ng_OCC_Geometry * Ng_OCC_NewGeometry ()
{ {
return (Ng_OCC_Geometry*)(void*)new OCCGeometry; return (Ng_OCC_Geometry*)(void*)new OCCGeometry;
} }
@ -786,7 +786,7 @@ namespace nglib
// Delete the OCC Geometry Object // Delete the OCC Geometry Object
DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom) NGLIB_API Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)
{ {
if (geom != NULL) if (geom != NULL)
{ {
@ -802,7 +802,7 @@ namespace nglib
// Loads geometry from STEP File // Loads geometry from STEP File
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename) NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)
{ {
// Call the STEP File Load function. Note.. the geometry class // Call the STEP File Load function. Note.. the geometry class
// is created and instantiated within the load function // is created and instantiated within the load function
@ -815,7 +815,7 @@ namespace nglib
// Loads geometry from IGES File // Loads geometry from IGES File
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename) NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)
{ {
// Call the IGES File Load function. Note.. the geometry class // Call the IGES File Load function. Note.. the geometry class
// is created and instantiated within the load function // is created and instantiated within the load function
@ -828,7 +828,7 @@ namespace nglib
// Loads geometry from BREP File // Loads geometry from BREP File
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename) NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)
{ {
// Call the BREP File Load function. Note.. the geometry class // Call the BREP File Load function. Note.. the geometry class
// is created and instantiated within the load function // is created and instantiated within the load function
@ -842,7 +842,7 @@ namespace nglib
// Locally limit the size of the mesh to be generated at various points // Locally limit the size of the mesh to be generated at various points
// based on the topology of the geometry // based on the topology of the geometry
DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -870,7 +870,7 @@ namespace nglib
// Mesh the edges and add Face descriptors to prepare for surface meshing // Mesh the edges and add Face descriptors to prepare for surface meshing
DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -896,7 +896,7 @@ namespace nglib
// Mesh the edges and add Face descriptors to prepare for surface meshing // Mesh the edges and add Face descriptors to prepare for surface meshing
DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp) Ng_Meshing_Parameters * mp)
{ {
@ -946,7 +946,7 @@ namespace nglib
// Extract the face map from the OCC geometry // Extract the face map from the OCC geometry
// The face map basically gives an index to each face in the geometry, // The face map basically gives an index to each face in the geometry,
// which can be used to access a specific face // which can be used to access a specific face
DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
Ng_OCC_TopTools_IndexedMapOfShape * FMap) Ng_OCC_TopTools_IndexedMapOfShape * FMap)
{ {
OCCGeometry* occgeom = (OCCGeometry*)geom; OCCGeometry* occgeom = (OCCGeometry*)geom;
@ -973,7 +973,7 @@ namespace nglib
// ------------------ Begin - Meshing Parameters related functions ------------------ // ------------------ Begin - Meshing Parameters related functions ------------------
// Constructor for the local nglib meshing parameters class // Constructor for the local nglib meshing parameters class
DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters() NGLIB_API Ng_Meshing_Parameters :: Ng_Meshing_Parameters()
{ {
uselocalh = 1; uselocalh = 1;
@ -1014,7 +1014,7 @@ namespace nglib
// Reset the local meshing parameters to the default values // Reset the local meshing parameters to the default values
DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters() NGLIB_API void Ng_Meshing_Parameters :: Reset_Parameters()
{ {
uselocalh = 1; uselocalh = 1;
@ -1055,7 +1055,7 @@ namespace nglib
// //
DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters() NGLIB_API void Ng_Meshing_Parameters :: Transfer_Parameters()
{ {
mparam.uselocalh = uselocalh; mparam.uselocalh = uselocalh;
@ -1088,7 +1088,7 @@ namespace nglib
// ------------------ Begin - Second Order Mesh generation functions ---------------- // ------------------ Begin - Second Order Mesh generation functions ----------------
DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh) NGLIB_API void Ng_Generate_SecondOrder(Ng_Mesh * mesh)
{ {
Refinement ref(*((Mesh*) mesh)->GetGeometry()); Refinement ref(*((Mesh*) mesh)->GetGeometry());
ref.MakeSecondOrder(*(Mesh*) mesh); ref.MakeSecondOrder(*(Mesh*) mesh);
@ -1097,7 +1097,7 @@ namespace nglib
DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom, NGLIB_API void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh ); ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );
@ -1106,7 +1106,7 @@ namespace nglib
DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh); ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
@ -1115,7 +1115,7 @@ namespace nglib
DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom, NGLIB_API void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh); ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
@ -1125,7 +1125,7 @@ namespace nglib
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom, NGLIB_API void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh); ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
@ -1137,7 +1137,7 @@ namespace nglib
// ------------------ Begin - Uniform Mesh Refinement functions --------------------- // ------------------ Begin - Uniform Mesh Refinement functions ---------------------
DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh) NGLIB_API void Ng_Uniform_Refinement (Ng_Mesh * mesh)
{ {
Refinement ref(*((Mesh*)mesh)->GetGeometry()); Refinement ref(*((Mesh*)mesh)->GetGeometry());
ref.Refine ( * (Mesh*) mesh ); ref.Refine ( * (Mesh*) mesh );
@ -1146,7 +1146,7 @@ namespace nglib
DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom, NGLIB_API void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh ); ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
@ -1155,7 +1155,7 @@ namespace nglib
DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh ); ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
@ -1164,7 +1164,7 @@ namespace nglib
DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom, NGLIB_API void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh ); ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
@ -1174,7 +1174,7 @@ namespace nglib
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom, NGLIB_API void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh) Ng_Mesh * mesh)
{ {
( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh ); ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
@ -1191,7 +1191,7 @@ namespace netgen
{ {
char geomfilename[255]; char geomfilename[255];
DLL_HEADER void MyError2 (const char * ch) NGLIB_API void MyError2 (const char * ch)
{ {
cerr << ch; cerr << ch;
} }
@ -1200,7 +1200,7 @@ namespace netgen
//Destination for messages, errors, ... //Destination for messages, errors, ...
DLL_HEADER void Ng_PrintDest2(const char * s) NGLIB_API void Ng_PrintDest2(const char * s)
{ {
#ifdef PARALLEL #ifdef PARALLEL
int id = 0; int id = 0;
@ -1212,7 +1212,7 @@ namespace netgen
/* /*
DLL_HEADER double GetTime () NGLIB_API double GetTime ()
{ {
return 0; return 0;
} }

View File

@ -23,15 +23,15 @@
// Philippose - 14.02.2009 // Philippose - 14.02.2009
// Modifications for creating a DLL in Windows // Modifications for creating a DLL in Windows
#ifndef DLL_HEADER #ifndef NGLIB_API
#ifdef WIN32 #ifdef WIN32
#ifdef NGLIB_EXPORTS || nglib_EXPORTS #ifdef NGLIB_EXPORTS || nglib_EXPORTS
#define DLL_HEADER __declspec(dllexport) #define NGLIB_API __declspec(dllexport)
#else #else
#define DLL_HEADER __declspec(dllimport) #define NGLIB_API __declspec(dllimport)
#endif #endif
#else #else
#define DLL_HEADER __attribute__((visibility("default"))) #define NGLIB_API __attribute__((visibility("default")))
#endif #endif
#endif #endif
@ -156,7 +156,7 @@ public:
- #check_overlap: 1 - #check_overlap: 1
- #check_overlapping_boundary: 1 - #check_overlapping_boundary: 1
*/ */
DLL_HEADER Ng_Meshing_Parameters(); NGLIB_API Ng_Meshing_Parameters();
@ -166,7 +166,7 @@ public:
This member function resets all the meshing parameters This member function resets all the meshing parameters
of the object to the default values of the object to the default values
*/ */
DLL_HEADER void Reset_Parameters(); NGLIB_API void Reset_Parameters();
@ -177,7 +177,7 @@ public:
defined in the local meshing parameters structure of nglib into defined in the local meshing parameters structure of nglib into
the internal meshing parameters structure used by the Netgen core the internal meshing parameters structure used by the Netgen core
*/ */
DLL_HEADER void Transfer_Parameters(); NGLIB_API void Transfer_Parameters();
}; };
@ -194,7 +194,7 @@ public:
program before beginning to use the other Netgen program before beginning to use the other Netgen
specific functions. specific functions.
*/ */
DLL_HEADER void Ng_Init (); NGLIB_API void Ng_Init ();
/*! \brief Exit the Netgen meshing kernel in a clean manner /*! \brief Exit the Netgen meshing kernel in a clean manner
@ -202,7 +202,7 @@ DLL_HEADER void Ng_Init ();
Use this function to exit the meshing sub-system in Use this function to exit the meshing sub-system in
a clean and orderly manner. a clean and orderly manner.
*/ */
DLL_HEADER void Ng_Exit (); NGLIB_API void Ng_Exit ();
/*! \brief Create a new (and empty) Netgen Mesh Structure /*! \brief Create a new (and empty) Netgen Mesh Structure
@ -215,7 +215,7 @@ DLL_HEADER void Ng_Exit ();
\return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh
*/ */
DLL_HEADER Ng_Mesh * Ng_NewMesh (); NGLIB_API Ng_Mesh * Ng_NewMesh ();
/*! \brief Delete an existing Netgen Mesh Structure /*! \brief Delete an existing Netgen Mesh Structure
@ -226,7 +226,7 @@ DLL_HEADER Ng_Mesh * Ng_NewMesh ();
\param mesh Pointer to an existing Netgen Mesh structure \param mesh Pointer to an existing Netgen Mesh structure
of type #Ng_Mesh of type #Ng_Mesh
*/ */
DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh); NGLIB_API void Ng_DeleteMesh (Ng_Mesh * mesh);
/*! \brief Save a Netgen Mesh to disk /*! \brief Save a Netgen Mesh to disk
@ -243,7 +243,7 @@ DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);
name of the file to which the mesh should name of the file to which the mesh should
be saved be saved
*/ */
DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename); NGLIB_API void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
/*! \brief Load a Netgen VOL Mesh from disk into memory /*! \brief Load a Netgen VOL Mesh from disk into memory
@ -256,7 +256,7 @@ DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
\return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing
the mesh loaded from disk the mesh loaded from disk
*/ */
DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename); NGLIB_API Ng_Mesh * Ng_LoadMesh(const char* filename);
/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory /*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory
@ -269,7 +269,7 @@ DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);
name of the file to load name of the file to load
\return Ng_Result Status of the merge operation \return Ng_Result Status of the merge operation
*/ */
DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename); NGLIB_API Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case /*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case
@ -286,7 +286,7 @@ DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
the parent mesh the parent mesh
\return Ng_Result Status of the merge operation \return Ng_Result Status of the merge operation
*/ */
DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2); NGLIB_API Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -310,7 +310,7 @@ DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
- x[1] = Y co-ordinate - x[1] = Y co-ordinate
- x[2] = Z co-ordinate - x[2] = Z co-ordinate
*/ */
DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x); NGLIB_API void Ng_AddPoint (Ng_Mesh * mesh, double * x);
/*! \brief Add a surface element to a given Netgen Mesh Structure /*! \brief Add a surface element to a given Netgen Mesh Structure
@ -333,7 +333,7 @@ DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);
\param pi Pointer to an array of integers containing the indices of the \param pi Pointer to an array of integers containing the indices of the
points which constitute the surface element being added points which constitute the surface element being added
*/ */
DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi); NGLIB_API void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);
/*! \brief Add a volume element to a given Netgen Mesh Structure /*! \brief Add a volume element to a given Netgen Mesh Structure
@ -357,7 +357,7 @@ DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et
points which constitute the volume element being added points which constitute the volume element being added
*/ */
DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi); NGLIB_API void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -384,7 +384,7 @@ DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
\param h Variable of type <i>double</i>, specifying the maximum \param h Variable of type <i>double</i>, specifying the maximum
allowable mesh size allowable mesh size
*/ */
DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h); NGLIB_API void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
/*! \brief Locally restrict the mesh element size at the given point /*! \brief Locally restrict the mesh element size at the given point
@ -408,7 +408,7 @@ DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
\param h Variable of type <i>double</i>, specifying the maximum \param h Variable of type <i>double</i>, specifying the maximum
allowable mesh size at that point allowable mesh size at that point
*/ */
DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h); NGLIB_API void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
/*! \brief Locally restrict the mesh element size within a specified box /*! \brief Locally restrict the mesh element size within a specified box
@ -439,7 +439,7 @@ DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
\param h Variable of type <i>double</i>, specifying the maximum \param h Variable of type <i>double</i>, specifying the maximum
allowable mesh size at that point allowable mesh size at that point
*/ */
DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h); NGLIB_API void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -470,7 +470,7 @@ DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double *
details regarding the return value can be details regarding the return value can be
found in the description of #Ng_Result found in the description of #Ng_Result
*/ */
DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp); NGLIB_API Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -489,7 +489,7 @@ DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameter
\return \return
Integer Data-type with the number of points in the Mesh Integer Data-type with the number of points in the Mesh
*/ */
DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh); NGLIB_API int Ng_GetNP (Ng_Mesh * mesh);
/*! \brief Returns the Number of Surface Elements present in the specified Mesh /*! \brief Returns the Number of Surface Elements present in the specified Mesh
@ -503,7 +503,7 @@ DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);
\return \return
Integer Data-type with the number of surface elements in the Mesh Integer Data-type with the number of surface elements in the Mesh
*/ */
DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh); NGLIB_API int Ng_GetNSE (Ng_Mesh * mesh);
/*! \brief Returns the Number of Volume Elements present in the specified Mesh /*! \brief Returns the Number of Volume Elements present in the specified Mesh
@ -517,7 +517,7 @@ DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);
\return \return
Integer Data-type with the number of volume elements in the Mesh Integer Data-type with the number of volume elements in the Mesh
*/ */
DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh); NGLIB_API int Ng_GetNE (Ng_Mesh * mesh);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -531,15 +531,15 @@ DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);
// Return the Point Coordinates of a specified Point // Return the Point Coordinates of a specified Point
// The x, y and z co-ordinates are returned in the array pointer as // The x, y and z co-ordinates are returned in the array pointer as
// x[0] = x ; x[1] = y ; x[2] = z // x[0] = x ; x[1] = y ; x[2] = z
DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x); NGLIB_API void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);
// return surface and volume element in pi // return surface and volume element in pi
DLL_HEADER Ng_Surface_Element_Type NGLIB_API Ng_Surface_Element_Type
Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi); Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);
DLL_HEADER Ng_Volume_Element_Type NGLIB_API Ng_Volume_Element_Type
Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi); Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -554,34 +554,34 @@ Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
// feeds points and boundary to mesh // feeds points and boundary to mesh
DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x); NGLIB_API void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);
DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2); NGLIB_API void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);
// ask for number of points, elements and boundary segments // ask for number of points, elements and boundary segments
DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh); NGLIB_API int Ng_GetNP_2D (Ng_Mesh * mesh);
DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh); NGLIB_API int Ng_GetNE_2D (Ng_Mesh * mesh);
DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh); NGLIB_API int Ng_GetNSeg_2D (Ng_Mesh * mesh);
// return point coordinates // return point coordinates
DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x); NGLIB_API void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);
// return 2d elements // return 2d elements
DLL_HEADER Ng_Surface_Element_Type NGLIB_API Ng_Surface_Element_Type
Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL); Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
// return 2d boundary segment // return 2d boundary segment
DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL); NGLIB_API void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
// load 2d netgen spline geometry // load 2d netgen spline geometry
DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename); NGLIB_API Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);
// generate 2d mesh, mesh is allocated by function // generate 2d mesh, mesh is allocated by function
DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom, NGLIB_API Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
Ng_Mesh ** mesh, Ng_Mesh ** mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom, NGLIB_API void Ng_HP_Refinement (Ng_Geometry_2D * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
int levels); int levels);
@ -595,35 +595,35 @@ DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
// loads geometry from STL file // loads geometry from STL file
DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0); NGLIB_API Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);
// generate new STL Geometry // generate new STL Geometry
DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry (); NGLIB_API Ng_STL_Geometry * Ng_STL_NewGeometry ();
// fills STL Geometry // fills STL Geometry
// positive orientation // positive orientation
// normal vector may be null-pointer // normal vector may be null-pointer
DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_AddTriangle (Ng_STL_Geometry * geom,
double * p1, double * p2, double * p3, double * p1, double * p2, double * p3,
double * nv = NULL); double * nv = NULL);
// add (optional) edges : // add (optional) edges :
DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_AddEdge (Ng_STL_Geometry * geom,
double * p1, double * p2); double * p1, double * p2);
// after adding triangles (and edges) initialize // after adding triangles (and edges) initialize
DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom); NGLIB_API Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);
// automatically generates edges: // automatically generates edges:
DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom, NGLIB_API Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
Ng_Mesh* mesh, Ng_Mesh* mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
// generates mesh, empty mesh must be already created. // generates mesh, empty mesh must be already created.
DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom, NGLIB_API Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
@ -638,10 +638,10 @@ DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
typedef void * Ng_ACIS_Geometry; typedef void * Ng_ACIS_Geometry;
// loads geometry from STL file // loads geometry from STL file
DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename); NGLIB_API Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);
// generates mesh, empty mesh must be already created. // generates mesh, empty mesh must be already created.
DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom, NGLIB_API Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
@ -657,37 +657,37 @@ DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
// ********************************************************** // **********************************************************
// Create new OCC Geometry Object // Create new OCC Geometry Object
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry (); NGLIB_API Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
// Delete an OCC Geometry Object // Delete an OCC Geometry Object
DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom); NGLIB_API Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
// Loads geometry from STEP file // Loads geometry from STEP file
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename); NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
// Loads geometry from IGES file // Loads geometry from IGES file
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename); NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
// Loads geometry from BREP file // Loads geometry from BREP file
DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename); NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
// Set the local mesh size based on geometry / topology // Set the local mesh size based on geometry / topology
DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
// Mesh the edges and add Face descriptors to prepare for surface meshing // Mesh the edges and add Face descriptors to prepare for surface meshing
DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
// Mesh the surfaces of an OCC geometry // Mesh the surfaces of an OCC geometry
DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh, Ng_Mesh * mesh,
Ng_Meshing_Parameters * mp); Ng_Meshing_Parameters * mp);
// Get the face map of an already loaded OCC geometry // Get the face map of an already loaded OCC geometry
DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, NGLIB_API Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
Ng_OCC_TopTools_IndexedMapOfShape * FMap); Ng_OCC_TopTools_IndexedMapOfShape * FMap);
#endif // OCCGEOMETRY #endif // OCCGEOMETRY
@ -699,22 +699,22 @@ DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
// ********************************************************** // **********************************************************
// uniform mesh refinement // uniform mesh refinement
DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh); NGLIB_API void Ng_Uniform_Refinement (Ng_Mesh * mesh);
// uniform mesh refinement with geometry adaption: // uniform mesh refinement with geometry adaption:
DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom, NGLIB_API void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom, NGLIB_API void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom, NGLIB_API void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
#endif #endif
@ -725,22 +725,22 @@ DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
// ********************************************************** // **********************************************************
// convert mesh to second order // convert mesh to second order
DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh); NGLIB_API void Ng_Generate_SecondOrder (Ng_Mesh * mesh);
// convert mesh to second order with geometry adaption: // convert mesh to second order with geometry adaption:
DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom, NGLIB_API void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom, NGLIB_API void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom, NGLIB_API void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
#ifdef OCCGEOMETRY #ifdef OCCGEOMETRY
DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom, NGLIB_API void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
Ng_Mesh * mesh); Ng_Mesh * mesh);
#endif #endif

View File

@ -27,7 +27,7 @@ void Parallel_Exit();
namespace netgen { namespace netgen {
extern AutoPtr<Mesh> mesh; extern AutoPtr<Mesh> mesh;
// extern VisualSceneMesh vsmesh; // extern VisualSceneMesh vsmesh;
extern DLL_HEADER MeshingParameters mparam; extern NGLIB_API MeshingParameters mparam;
} }
using namespace netgen; using namespace netgen;