netgen/libsrc/geom2d/geom2dpkg.cpp

73 lines
1.5 KiB
C++
Raw Normal View History

2011-02-19 03:50:58 +05:00
#include <meshing.hpp>
#include <geometry2d.hpp>
#include <visual.hpp>
2011-01-11 01:18:01 +05:00
2011-02-28 19:17:25 +05:00
#include "vsgeom2d.hpp"
2011-01-11 01:18:01 +05:00
2011-02-28 17:59:27 +05:00
// extern "C" int Ng_CSG_Init (Tcl_Interp * interp);
2011-01-11 01:18:01 +05:00
namespace netgen
{
extern DLL_HEADER NetgenGeometry * ng_geometry;
2011-01-11 01:18:01 +05:00
static VisualSceneGeometry2d vsgeom2d;
class SplineGeometryRegister : public GeometryRegister
{
public:
virtual NetgenGeometry * Load (string filename) const;
virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;
};
NetgenGeometry * SplineGeometryRegister :: Load (string filename) const
{
const char * cfilename = filename.c_str();
if (strcmp (&cfilename[strlen(cfilename)-4], "in2d") == 0)
{
PrintMessage (1, "Load 2D-Spline geometry file ", cfilename);
ifstream infile(cfilename);
SplineGeometry2d * hgeom = new SplineGeometry2d();
hgeom -> Load (cfilename);
return hgeom;
}
return NULL;
}
VisualScene * SplineGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
{
SplineGeometry2d * geometry = dynamic_cast<SplineGeometry2d*> (ng_geometry);
if (geometry)
{
vsgeom2d.SetGeometry (geometry);
return &vsgeom2d;
}
return NULL;
}
}
2011-03-04 03:03:01 +05:00
using namespace netgen;
#ifdef WIN32
extern "C" __declspec(dllexport) int Ng_geom2d_Init (Tcl_Interp * interp);
#else
2011-02-28 17:59:27 +05:00
extern "C" int Ng_geom2d_Init (Tcl_Interp * interp);
2011-03-04 03:03:01 +05:00
#endif
2011-01-11 01:18:01 +05:00
2011-02-28 17:59:27 +05:00
int Ng_geom2d_Init (Tcl_Interp * interp)
2011-01-11 01:18:01 +05:00
{
geometryregister.Append (new SplineGeometryRegister);
2011-02-28 18:34:54 +05:00
return TCL_OK;
2011-01-11 01:18:01 +05:00
}