#include #include #include #include #include #include #include "vsgeom2d.hpp" extern "C" int Ng_CSG_Init (Tcl_Interp * interp); namespace netgen { extern NetgenGeometry * ng_geometry; 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 (ng_geometry); if (geometry) { vsgeom2d.SetGeometry (geometry); return &vsgeom2d; } return NULL; } } using namespace netgen; extern "C" int Ng_Geom2d_Init (Tcl_Interp * interp); int Ng_Geom2d_Init (Tcl_Interp * interp) { geometryregister.Append (new SplineGeometryRegister); }