mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-26 05:50:32 +05:00
shared ptr in netgen
This commit is contained in:
parent
7df1699f2b
commit
7892d0eeec
@ -43,7 +43,7 @@ AC_ARG_WITH([occ],
|
|||||||
|
|
||||||
if test a$occon = atrue ; then
|
if test a$occon = atrue ; then
|
||||||
|
|
||||||
AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/oce"])
|
AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/oce -I/usr/include/opencascade"])
|
||||||
AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
|
AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
|
||||||
|
|
||||||
# -lTKDCAF
|
# -lTKDCAF
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
|
||||||
#include <new>
|
#include <new>
|
||||||
|
@ -152,17 +152,17 @@ namespace netgen
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Mesh;
|
||||||
|
|
||||||
class DLL_HEADER Ngx_Mesh
|
class DLL_HEADER Ngx_Mesh
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
class Mesh * mesh;
|
shared_ptr<Mesh> mesh;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Ngx_Mesh () { ; }
|
// Ngx_Mesh () { ; }
|
||||||
// Ngx_Mesh(class Mesh * amesh) : mesh(amesh) { ; }
|
// Ngx_Mesh(class Mesh * amesh) : mesh(amesh) { ; }
|
||||||
Ngx_Mesh(class Mesh * amesh = NULL);
|
Ngx_Mesh(shared_ptr<Mesh> amesh = NULL);
|
||||||
void LoadMesh (const string & filename);
|
void LoadMesh (const string & filename);
|
||||||
|
|
||||||
void LoadMesh (istream & str);
|
void LoadMesh (istream & str);
|
||||||
@ -228,6 +228,7 @@ namespace netgen
|
|||||||
bool build_searchtrees = false,
|
bool build_searchtrees = false,
|
||||||
int * const indices = NULL, int numind = 0) const;
|
int * const indices = NULL, int numind = 0) const;
|
||||||
|
|
||||||
|
shared_ptr<Mesh> SelectMesh () const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,13 +108,8 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
#include "writeuser.hpp"
|
#include "writeuser.hpp"
|
||||||
|
|
||||||
// global variable mesh (should not be used in libraries)
|
shared_ptr<Mesh> mesh;
|
||||||
AutoPtr<Mesh> mesh;
|
shared_ptr<NetgenGeometry> ng_geometry;
|
||||||
// NetgenGeometry * ng_geometry = NULL; // new NetgenGeometry;
|
|
||||||
AutoPtr<NetgenGeometry> ng_geometry;
|
|
||||||
|
|
||||||
// extern NetgenGeometry * ng_geometry;
|
|
||||||
// extern AutoPtr<Mesh> mesh;
|
|
||||||
|
|
||||||
#ifndef NOTCL
|
#ifndef NOTCL
|
||||||
extern Tcl_Interp * tcl_interp;
|
extern Tcl_Interp * tcl_interp;
|
||||||
@ -140,7 +135,7 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
// can be used to reset geometry
|
// can be used to reset geometry
|
||||||
if (!filename || strcmp(filename,"")==0)
|
if (!filename || strcmp(filename,"")==0)
|
||||||
{
|
{
|
||||||
ng_geometry.Reset (new NetgenGeometry());
|
ng_geometry.reset (new NetgenGeometry());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,8 +144,8 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
NetgenGeometry * hgeom = geometryregister[i]->Load (filename);
|
NetgenGeometry * hgeom = geometryregister[i]->Load (filename);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
ng_geometry.Reset (hgeom);
|
ng_geometry.reset (hgeom);
|
||||||
mesh.Reset();
|
mesh.reset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -163,7 +158,7 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
|
|
||||||
void Ng_LoadMeshFromStream ( istream & input )
|
void Ng_LoadMeshFromStream ( istream & input )
|
||||||
{
|
{
|
||||||
mesh.Reset (new Mesh());
|
mesh.reset (new Mesh());
|
||||||
mesh -> Load(input);
|
mesh -> Load(input);
|
||||||
|
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
for (int i = 0; i < geometryregister.Size(); i++)
|
||||||
@ -171,7 +166,7 @@ void Ng_LoadMeshFromStream ( istream & input )
|
|||||||
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (input);
|
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (input);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
ng_geometry.Reset (hgeom);
|
ng_geometry.reset (hgeom);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -195,7 +190,7 @@ void Ng_LoadMesh (const char * filename)
|
|||||||
strcmp (filename + (strlen (filename)-4), ".vol") != 0 )
|
strcmp (filename + (strlen (filename)-4), ".vol") != 0 )
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
mesh.Reset (new Mesh());
|
mesh.reset (new Mesh());
|
||||||
ReadFile(*mesh,filename);
|
ReadFile(*mesh,filename);
|
||||||
|
|
||||||
//mesh->SetGlobalH (mparam.maxh);
|
//mesh->SetGlobalH (mparam.maxh);
|
||||||
@ -280,7 +275,7 @@ void Ng_LoadMesh (const char * filename)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mesh.Reset (new Mesh());
|
mesh.reset (new Mesh());
|
||||||
mesh->SendRecvMesh();
|
mesh->SendRecvMesh();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -636,7 +631,7 @@ void Ng_GetNormalVector (int sei, int locpi, double * nv)
|
|||||||
nv[2] = n(2);
|
nv[2] = n(2);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.get());
|
||||||
if (geometry)
|
if (geometry)
|
||||||
{
|
{
|
||||||
n = geometry->GetSurface (surfi) -> GetNormalVector(p);
|
n = geometry->GetSurface (surfi) -> GetNormalVector(p);
|
||||||
@ -1505,8 +1500,8 @@ void Ng_UpdateTopology()
|
|||||||
|
|
||||||
Ng_Mesh Ng_SelectMesh (Ng_Mesh newmesh)
|
Ng_Mesh Ng_SelectMesh (Ng_Mesh newmesh)
|
||||||
{
|
{
|
||||||
Mesh * hmesh = mesh.Ptr();
|
Mesh * hmesh = mesh.get();
|
||||||
mesh.Ptr() = (Mesh*)newmesh;
|
mesh.reset((Mesh*)newmesh);
|
||||||
return hmesh;
|
return hmesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2135,7 +2130,7 @@ int Ng_Bisect_WithInfo ( const char * refinementfile, double ** qualityloss, int
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
// ref = new RefinementSurfaces(*geometry);
|
// ref = new RefinementSurfaces(*geometry);
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.get());
|
||||||
if (geometry)
|
if (geometry)
|
||||||
{
|
{
|
||||||
opt = new MeshOptimize2dSurfaces(*geometry);
|
opt = new MeshOptimize2dSurfaces(*geometry);
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
namespace netgen
|
namespace netgen
|
||||||
{
|
{
|
||||||
#include "writeuser.hpp"
|
#include "writeuser.hpp"
|
||||||
extern AutoPtr<Mesh> mesh;
|
extern shared_ptr<Mesh> mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -19,33 +19,41 @@ namespace netgen
|
|||||||
#define NGX_INLINE
|
#define NGX_INLINE
|
||||||
#include "nginterface_v2_impl.hpp"
|
#include "nginterface_v2_impl.hpp"
|
||||||
|
|
||||||
Ngx_Mesh :: Ngx_Mesh (class Mesh * amesh)
|
shared_ptr<Mesh> Ngx_Mesh :: SelectMesh () const
|
||||||
|
{
|
||||||
|
shared_ptr<Mesh> hmesh = netgen::mesh;
|
||||||
|
netgen::mesh = mesh;
|
||||||
|
return hmesh;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Ngx_Mesh :: Ngx_Mesh (shared_ptr<Mesh> amesh)
|
||||||
{
|
{
|
||||||
if (amesh)
|
if (amesh)
|
||||||
mesh = amesh;
|
mesh = amesh;
|
||||||
else
|
else
|
||||||
mesh = netgen::mesh.Ptr();
|
mesh = netgen::mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ngx_Mesh * LoadMesh (const string & filename)
|
Ngx_Mesh * LoadMesh (const string & filename)
|
||||||
{
|
{
|
||||||
netgen::mesh.Ptr() = NULL;
|
netgen::mesh.reset();
|
||||||
Ng_LoadMesh (filename.c_str());
|
Ng_LoadMesh (filename.c_str());
|
||||||
return new Ngx_Mesh (netgen::mesh.Ptr());
|
return new Ngx_Mesh (netgen::mesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ngx_Mesh :: LoadMesh (const string & filename)
|
void Ngx_Mesh :: LoadMesh (const string & filename)
|
||||||
{
|
{
|
||||||
netgen::mesh.Ptr() = NULL;
|
netgen::mesh.reset();
|
||||||
Ng_LoadMesh (filename.c_str());
|
Ng_LoadMesh (filename.c_str());
|
||||||
mesh = netgen::mesh.Ptr();
|
mesh = netgen::mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ngx_Mesh :: LoadMesh (istream & ist)
|
void Ngx_Mesh :: LoadMesh (istream & ist)
|
||||||
{
|
{
|
||||||
netgen::mesh.Reset (new Mesh);
|
netgen::mesh = make_shared<Mesh>();
|
||||||
netgen::mesh -> Load (ist);
|
netgen::mesh -> Load (ist);
|
||||||
mesh = netgen::mesh.Ptr();
|
mesh = netgen::mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ngx_Mesh :: SaveMesh (ostream & ost) const
|
void Ngx_Mesh :: SaveMesh (ostream & ost) const
|
||||||
@ -82,9 +90,12 @@ namespace netgen
|
|||||||
|
|
||||||
Ngx_Mesh :: ~Ngx_Mesh ()
|
Ngx_Mesh :: ~Ngx_Mesh ()
|
||||||
{
|
{
|
||||||
|
;
|
||||||
|
/*
|
||||||
if (netgen::mesh.Ptr() == mesh)
|
if (netgen::mesh.Ptr() == mesh)
|
||||||
netgen::mesh.Ptr() = NULL;
|
netgen::mesh.Ptr() = NULL;
|
||||||
delete mesh;
|
delete mesh;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
int Ngx_Mesh :: GetDimension() const
|
int Ngx_Mesh :: GetDimension() const
|
||||||
|
119
ng/ngpkg.cpp
119
ng/ngpkg.cpp
@ -17,7 +17,6 @@ The interface between the GUI and the netgen library
|
|||||||
|
|
||||||
#include <csg.hpp>
|
#include <csg.hpp>
|
||||||
|
|
||||||
|
|
||||||
#ifdef SOCKETS
|
#ifdef SOCKETS
|
||||||
#include "../libsrc/sockets/sockets.hpp"
|
#include "../libsrc/sockets/sockets.hpp"
|
||||||
#include "../libsrc/sockets/socketmanager.hpp"
|
#include "../libsrc/sockets/socketmanager.hpp"
|
||||||
@ -93,8 +92,8 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern AutoPtr<NetgenGeometry> ng_geometry;
|
extern std::shared_ptr<NetgenGeometry> ng_geometry;
|
||||||
extern AutoPtr<Mesh> mesh;
|
extern std::shared_ptr<Mesh> mesh;
|
||||||
Tcl_Interp * tcl_interp;
|
Tcl_Interp * tcl_interp;
|
||||||
|
|
||||||
|
|
||||||
@ -188,7 +187,7 @@ namespace netgen
|
|||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (strcmp (argv[1], "mesh") == 0)
|
if (strcmp (argv[1], "mesh") == 0)
|
||||||
mesh.Reset();
|
mesh.reset();
|
||||||
|
|
||||||
if (strcmp (argv[1], "geom") == 0)
|
if (strcmp (argv[1], "geom") == 0)
|
||||||
{
|
{
|
||||||
@ -196,7 +195,7 @@ namespace netgen
|
|||||||
delete ng_geometry;
|
delete ng_geometry;
|
||||||
ng_geometry = new NetgenGeometry;
|
ng_geometry = new NetgenGeometry;
|
||||||
*/
|
*/
|
||||||
ng_geometry.Reset (new NetgenGeometry);
|
ng_geometry = make_shared<NetgenGeometry>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
@ -222,7 +221,7 @@ namespace netgen
|
|||||||
|
|
||||||
PrintMessage (1, "load mesh from file ", filename);
|
PrintMessage (1, "load mesh from file ", filename);
|
||||||
|
|
||||||
mesh.Reset (new Mesh());
|
mesh = make_shared<Mesh>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
istream * infile;
|
istream * infile;
|
||||||
@ -245,7 +244,7 @@ namespace netgen
|
|||||||
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (*infile);
|
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (*infile);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
ng_geometry.Reset (hgeom);
|
ng_geometry = shared_ptr<NetgenGeometry>(hgeom);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -287,7 +286,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -327,7 +326,7 @@ namespace netgen
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.get());
|
||||||
|
|
||||||
//mesh -> Merge (filename);
|
//mesh -> Merge (filename);
|
||||||
ifstream infile(filename.c_str());
|
ifstream infile(filename.c_str());
|
||||||
@ -362,7 +361,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -394,7 +393,7 @@ namespace netgen
|
|||||||
const string filename (argv[1]);
|
const string filename (argv[1]);
|
||||||
PrintMessage (1, "import mesh from ", filename);
|
PrintMessage (1, "import mesh from ", filename);
|
||||||
|
|
||||||
mesh.Reset (new Mesh());
|
mesh = make_shared<Mesh>();
|
||||||
|
|
||||||
ReadFile (*mesh, filename);
|
ReadFile (*mesh, filename);
|
||||||
PrintMessage (2, mesh->GetNP(), " Points, ",
|
PrintMessage (2, mesh->GetNP(), " Points, ",
|
||||||
@ -412,7 +411,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -472,7 +471,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -492,7 +491,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argqc, tcl_const char *argv[])
|
int argqc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
mesh -> SetNextTimeStamp();
|
mesh -> SetNextTimeStamp();
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
@ -530,9 +529,9 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
// delete ng_geometry;
|
// delete ng_geometry;
|
||||||
// ng_geometry = hgeom;
|
// ng_geometry = hgeom;
|
||||||
ng_geometry.Reset (hgeom);
|
ng_geometry = shared_ptr<NetgenGeometry> (hgeom);
|
||||||
|
|
||||||
mesh.Reset();
|
mesh.reset();
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -597,7 +596,7 @@ namespace netgen
|
|||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
mesh.Reset();
|
mesh.reset();
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -673,7 +672,7 @@ namespace netgen
|
|||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
char buf[20], lstring[200];
|
char buf[20], lstring[200];
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
{
|
{
|
||||||
sprintf (buf, "%d", mesh->GetNP());
|
sprintf (buf, "%d", mesh->GetNP());
|
||||||
Tcl_SetVar (interp, "::status_np", buf, 0);
|
Tcl_SetVar (interp, "::status_np", buf, 0);
|
||||||
@ -752,14 +751,14 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
int facenr = atoi (argv[2]);
|
int facenr = atoi (argv[2]);
|
||||||
int bcnr = atoi (argv[3]);
|
int bcnr = atoi (argv[3]);
|
||||||
if (mesh.Ptr() && facenr >= 1 && facenr <= mesh->GetNFD())
|
if (mesh && facenr >= 1 && facenr <= mesh->GetNFD())
|
||||||
mesh->GetFaceDescriptor (facenr).SetBCProperty (bcnr);
|
mesh->GetFaceDescriptor (facenr).SetBCProperty (bcnr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp (argv[1], "setall") == 0)
|
if (strcmp (argv[1], "setall") == 0)
|
||||||
{
|
{
|
||||||
int bcnr = atoi (argv[2]);
|
int bcnr = atoi (argv[2]);
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
{
|
{
|
||||||
int nfd = mesh->GetNFD();
|
int nfd = mesh->GetNFD();
|
||||||
for (int i = 1; i <= nfd; i++)
|
for (int i = 1; i <= nfd; i++)
|
||||||
@ -770,7 +769,7 @@ namespace netgen
|
|||||||
if (strcmp (argv[1], "getbc") == 0)
|
if (strcmp (argv[1], "getbc") == 0)
|
||||||
{
|
{
|
||||||
int facenr = atoi (argv[2]);
|
int facenr = atoi (argv[2]);
|
||||||
if (mesh.Ptr() && facenr >= 1 && facenr <= mesh->GetNFD())
|
if (mesh && facenr >= 1 && facenr <= mesh->GetNFD())
|
||||||
{
|
{
|
||||||
sprintf (buf, "%d", mesh->GetFaceDescriptor(facenr).BCProperty());
|
sprintf (buf, "%d", mesh->GetFaceDescriptor(facenr).BCProperty());
|
||||||
}
|
}
|
||||||
@ -784,7 +783,7 @@ namespace netgen
|
|||||||
if (strcmp (argv[1], "getbcname") == 0)
|
if (strcmp (argv[1], "getbcname") == 0)
|
||||||
{
|
{
|
||||||
int facenr = atoi (argv[2]);
|
int facenr = atoi (argv[2]);
|
||||||
if (mesh.Ptr() && facenr >= 1 && facenr <= mesh->GetNFD())
|
if (mesh && facenr >= 1 && facenr <= mesh->GetNFD())
|
||||||
{
|
{
|
||||||
sprintf (buf, "%s", mesh->GetFaceDescriptor(facenr).GetBCName().c_str());
|
sprintf (buf, "%s", mesh->GetFaceDescriptor(facenr).GetBCName().c_str());
|
||||||
}
|
}
|
||||||
@ -805,7 +804,7 @@ namespace netgen
|
|||||||
if (strcmp (argv[1], "setactive") == 0)
|
if (strcmp (argv[1], "setactive") == 0)
|
||||||
{
|
{
|
||||||
int facenr = atoi (argv[2]);
|
int facenr = atoi (argv[2]);
|
||||||
if (mesh.Ptr() && facenr >= 1 && facenr <= mesh->GetNFD())
|
if (mesh && facenr >= 1 && facenr <= mesh->GetNFD())
|
||||||
{
|
{
|
||||||
vsmesh.SetSelectedFace (facenr);
|
vsmesh.SetSelectedFace (facenr);
|
||||||
}
|
}
|
||||||
@ -813,7 +812,7 @@ namespace netgen
|
|||||||
|
|
||||||
if (strcmp (argv[1], "getnfd") == 0)
|
if (strcmp (argv[1], "getnfd") == 0)
|
||||||
{
|
{
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
sprintf (buf, "%d", mesh->GetNFD());
|
sprintf (buf, "%d", mesh->GetNFD());
|
||||||
else
|
else
|
||||||
sprintf (buf, "0");
|
sprintf (buf, "0");
|
||||||
@ -831,7 +830,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -867,7 +866,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -904,7 +903,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -943,7 +942,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -965,7 +964,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -981,7 +980,7 @@ namespace netgen
|
|||||||
|
|
||||||
if (argc >= 2) opt.minref = atoi (argv[1]);
|
if (argc >= 2) opt.minref = atoi (argv[1]);
|
||||||
|
|
||||||
ZRefinement (*mesh, ng_geometry.Ptr(), opt);
|
ZRefinement (*mesh, ng_geometry.get(), opt);
|
||||||
|
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
@ -990,7 +989,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1014,7 +1013,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1034,7 +1033,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1062,7 +1061,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1083,7 +1082,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1164,7 +1163,7 @@ namespace netgen
|
|||||||
|
|
||||||
//BaseMoveableMem::totalsize = 0;
|
//BaseMoveableMem::totalsize = 0;
|
||||||
// 1048576 * atoi (Tcl_GetVar (interp, "::options.memory", 0));
|
// 1048576 * atoi (Tcl_GetVar (interp, "::options.memory", 0));
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
{
|
{
|
||||||
mesh->SetGlobalH (mparam.maxh);
|
mesh->SetGlobalH (mparam.maxh);
|
||||||
mesh->SetMinimalH (mparam.minh);
|
mesh->SetMinimalH (mparam.minh);
|
||||||
@ -1275,7 +1274,11 @@ namespace netgen
|
|||||||
else
|
else
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int res = ng_geometry -> GenerateMesh (mesh.Ptr(), mparam, perfstepsstart, perfstepsend);
|
Mesh * hmesh = NULL;
|
||||||
|
int res = ng_geometry -> GenerateMesh (hmesh, mparam, perfstepsstart, perfstepsend);
|
||||||
|
mesh = shared_ptr<Mesh> (hmesh);
|
||||||
|
|
||||||
|
// int res = ng_geometry -> GenerateMesh (mesh.Ptr(), mparam, perfstepsstart, perfstepsend);
|
||||||
if (res != MESHING3_OK)
|
if (res != MESHING3_OK)
|
||||||
{
|
{
|
||||||
multithread.task = savetask;
|
multithread.task = savetask;
|
||||||
@ -1288,7 +1291,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
ZRefinementOptions opt;
|
ZRefinementOptions opt;
|
||||||
opt.minref = 5;
|
opt.minref = 5;
|
||||||
ZRefinement (*mesh, ng_geometry.Ptr(), opt);
|
ZRefinement (*mesh, ng_geometry.get(), opt);
|
||||||
mesh -> SetNextMajorTimeStamp();
|
mesh -> SetNextMajorTimeStamp();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1414,7 +1417,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1455,7 +1458,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1469,7 +1472,7 @@ namespace netgen
|
|||||||
double angles[4];
|
double angles[4];
|
||||||
char buf[10];
|
char buf[10];
|
||||||
|
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
mesh->CalcMinMaxAngle(mparam.badellimit, angles);
|
mesh->CalcMinMaxAngle(mparam.badellimit, angles);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1491,7 +1494,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1521,7 +1524,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1541,7 +1544,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
mesh->ClearVolumeElements();
|
mesh->ClearVolumeElements();
|
||||||
|
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
@ -1552,7 +1555,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (mesh.Ptr())
|
if (mesh)
|
||||||
mesh->SplitSeparatedFaces ();
|
mesh->SplitSeparatedFaces ();
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
@ -1563,7 +1566,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1576,7 +1579,7 @@ namespace netgen
|
|||||||
|
|
||||||
if (argc != 3)
|
if (argc != 3)
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
|
|
||||||
|
|
||||||
@ -1608,7 +1611,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1621,7 +1624,7 @@ namespace netgen
|
|||||||
|
|
||||||
if (argc != 2)
|
if (argc != 2)
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
|
|
||||||
if (strcmp (argv[1], "edge") == 0)
|
if (strcmp (argv[1], "edge") == 0)
|
||||||
@ -1687,7 +1690,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1730,7 +1733,7 @@ namespace netgen
|
|||||||
// Tcl_Interp * interp,
|
// Tcl_Interp * interp,
|
||||||
// int argc, tcl_const char *argv[])
|
// int argc, tcl_const char *argv[])
|
||||||
// {
|
// {
|
||||||
// if (!mesh.Ptr())
|
// if (!mesh)
|
||||||
// {
|
// {
|
||||||
// Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
// Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
// return TCL_ERROR;
|
// return TCL_ERROR;
|
||||||
@ -1754,7 +1757,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
if (!mesh.Ptr())
|
if (!mesh)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
Tcl_SetResult (interp, err_needsmesh, TCL_STATIC);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1815,7 +1818,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
for (int i = 0; i < geometryregister.Size(); i++)
|
||||||
{
|
{
|
||||||
VisualScene * hvs = geometryregister[i]->GetVisualScene (ng_geometry.Ptr());
|
VisualScene * hvs = geometryregister[i]->GetVisualScene (ng_geometry.get());
|
||||||
if (hvs)
|
if (hvs)
|
||||||
{
|
{
|
||||||
vs = hvs;
|
vs = hvs;
|
||||||
@ -2823,10 +2826,10 @@ void PlayAnimFile(const char* name, int speed, int maxcnt)
|
|||||||
//extern Mesh * mesh;
|
//extern Mesh * mesh;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (mesh.Ptr()) mesh->DeleteMesh();
|
if (mesh) mesh->DeleteMesh();
|
||||||
if (!mesh.Ptr()) mesh = new Mesh();
|
if (!mesh) mesh = new Mesh();
|
||||||
*/
|
*/
|
||||||
mesh.Reset (new Mesh());
|
mesh = make_shared<Mesh>();
|
||||||
|
|
||||||
int ne, np, i;
|
int ne, np, i;
|
||||||
|
|
||||||
@ -3101,8 +3104,8 @@ void PlayAnimFile(const char* name, int speed, int maxcnt)
|
|||||||
MPI_Finalize();
|
MPI_Finalize();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mesh.Reset (NULL);
|
mesh.reset();
|
||||||
ng_geometry.Reset (NULL);
|
ng_geometry.reset();
|
||||||
|
|
||||||
if (testout != &cout)
|
if (testout != &cout)
|
||||||
delete testout;
|
delete testout;
|
||||||
|
@ -48,7 +48,7 @@ void Parallel_Exit();
|
|||||||
|
|
||||||
|
|
||||||
namespace netgen {
|
namespace netgen {
|
||||||
extern AutoPtr<Mesh> mesh;
|
extern shared_ptr<Mesh> mesh;
|
||||||
extern VisualSceneMesh vsmesh;
|
extern VisualSceneMesh vsmesh;
|
||||||
extern Flags parameters;
|
extern Flags parameters;
|
||||||
extern DLL_HEADER MeshingParameters mparam;
|
extern DLL_HEADER MeshingParameters mparam;
|
||||||
|
Loading…
Reference in New Issue
Block a user