mirror of
https://github.com/NGSolve/netgen.git
synced 2025-05-12 05:30:49 +05:00
Merge de7ffc5906e0ce4117ca91f13c1e3a8f858cefd7 into 00d6c94bd9227bbe80f5a7d9e94f36acf2384889
This commit is contained in:
commit
b28baf0cd7
@ -1673,7 +1673,8 @@ namespace netgen
|
|||||||
public:
|
public:
|
||||||
CSGInit()
|
CSGInit()
|
||||||
{
|
{
|
||||||
geometryregister.Append (new CSGeometryRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new CSGeometryRegister);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -570,7 +570,8 @@ using namespace netgen;
|
|||||||
|
|
||||||
int Ng_CSG_Init (Tcl_Interp * interp)
|
int Ng_CSG_Init (Tcl_Interp * interp)
|
||||||
{
|
{
|
||||||
geometryregister.Append (new CSGeometryVisRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new CSGeometryVisRegister);
|
||||||
if (interp == NULL) return TCL_OK;
|
if (interp == NULL) return TCL_OK;
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ extern "C" int Ng_geom2d_Init (Tcl_Interp * interp);
|
|||||||
|
|
||||||
int Ng_geom2d_Init (Tcl_Interp * interp)
|
int Ng_geom2d_Init (Tcl_Interp * interp)
|
||||||
{
|
{
|
||||||
geometryregister.Append (new SplineGeometryVisRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new SplineGeometryVisRegister);
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
}
|
}
|
||||||
|
@ -1100,7 +1100,8 @@ namespace netgen
|
|||||||
public:
|
public:
|
||||||
SplineGeoInit()
|
SplineGeoInit()
|
||||||
{
|
{
|
||||||
geometryregister.Append (new SplineGeometryRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new SplineGeometryRegister);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -81,9 +81,10 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
GeometryRegisterArray &gra = FetchGeometryRegisterArray();
|
||||||
|
for (int i = 0; i < gra.Size(); i++)
|
||||||
{
|
{
|
||||||
NetgenGeometry * hgeom = geometryregister[i]->Load (filename);
|
NetgenGeometry * hgeom = gra[i]->Load (filename);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
ng_geometry.reset (hgeom);
|
ng_geometry.reset (hgeom);
|
||||||
@ -104,7 +105,8 @@ void Ng_LoadMeshFromStream ( istream & input )
|
|||||||
mesh -> Load(input);
|
mesh -> Load(input);
|
||||||
|
|
||||||
SetGlobalMesh (mesh);
|
SetGlobalMesh (mesh);
|
||||||
ng_geometry = geometryregister.LoadFromMeshFile (input);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
ng_geometry = gra.LoadFromMeshFile (input);
|
||||||
|
|
||||||
if (!ng_geometry)
|
if (!ng_geometry)
|
||||||
ng_geometry = make_shared<NetgenGeometry>();
|
ng_geometry = make_shared<NetgenGeometry>();
|
||||||
@ -259,7 +261,8 @@ void Ng_LoadMesh (const char * filename, ngcore::NgMPI_Comm comm)
|
|||||||
shared_ptr<NetgenGeometry> geo;
|
shared_ptr<NetgenGeometry> geo;
|
||||||
if(buf.Size()) { // if we had geom-info in the file, take it
|
if(buf.Size()) { // if we had geom-info in the file, take it
|
||||||
istringstream geom_infile(string((const char*)&buf[0], buf.Size()));
|
istringstream geom_infile(string((const char*)&buf[0], buf.Size()));
|
||||||
geo = geometryregister.LoadFromMeshFile(geom_infile);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
geo = gra.LoadFromMeshFile(geom_infile);
|
||||||
}
|
}
|
||||||
if(geo!=nullptr) {
|
if(geo!=nullptr) {
|
||||||
ng_geometry = geo;
|
ng_geometry = geo;
|
||||||
|
@ -29,9 +29,6 @@ namespace netgen
|
|||||||
double GetTolerance() { return tree.GetTolerance(); }
|
double GetTolerance() { return tree.GetTolerance(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
DLL_HEADER GeometryRegisterArray geometryregister;
|
|
||||||
//DLL_HEADER NgArray<GeometryRegister*> geometryregister;
|
|
||||||
|
|
||||||
GeometryRegister :: ~GeometryRegister()
|
GeometryRegister :: ~GeometryRegister()
|
||||||
{ ; }
|
{ ; }
|
||||||
|
|
||||||
@ -1167,4 +1164,10 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
static RegisterClassForArchive<NetgenGeometry> regnggeo;
|
static RegisterClassForArchive<NetgenGeometry> regnggeo;
|
||||||
|
|
||||||
|
GeometryRegisterArray& FetchGeometryRegisterArray (){
|
||||||
|
static GeometryRegisterArray *geometryregister = new GeometryRegisterArray();
|
||||||
|
return *geometryregister;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -339,15 +339,12 @@ namespace netgen
|
|||||||
public:
|
public:
|
||||||
virtual ~GeometryRegisterArray()
|
virtual ~GeometryRegisterArray()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < Size(); i++)
|
DeleteAll();
|
||||||
delete (*this)[i];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual shared_ptr<NetgenGeometry> LoadFromMeshFile (istream & ist) const;
|
virtual shared_ptr<NetgenGeometry> LoadFromMeshFile (istream & ist) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// extern DLL_HEADER NgArray<GeometryRegister*> geometryregister;
|
DLL_HEADER GeometryRegisterArray& FetchGeometryRegisterArray ();
|
||||||
extern DLL_HEADER GeometryRegisterArray geometryregister;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1660,7 +1660,8 @@ namespace netgen
|
|||||||
clusters -> Update();
|
clusters -> Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto geo = geometryregister.LoadFromMeshFile (infile);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
auto geo = gra.LoadFromMeshFile (infile);
|
||||||
if(geo)
|
if(geo)
|
||||||
geometry = geo;
|
geometry = geo;
|
||||||
|
|
||||||
|
@ -838,7 +838,8 @@ DLL_HEADER void ExportNetgenMeshing(py::module &m)
|
|||||||
shared_ptr<NetgenGeometry> geo;
|
shared_ptr<NetgenGeometry> geo;
|
||||||
if(buf.Size()) { // if we had geom-info in the file, take it
|
if(buf.Size()) { // if we had geom-info in the file, take it
|
||||||
istringstream geom_infile(string((const char*)buf.Data(), buf.Size()));
|
istringstream geom_infile(string((const char*)buf.Data(), buf.Size()));
|
||||||
geo = geometryregister.LoadFromMeshFile(geom_infile);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
geo = gra.LoadFromMeshFile(geom_infile);
|
||||||
}
|
}
|
||||||
if(geo!=nullptr) mesh->SetGeometry(geo);
|
if(geo!=nullptr) mesh->SetGeometry(geo);
|
||||||
else if(ng_geometry!=nullptr) mesh->SetGeometry(ng_geometry);
|
else if(ng_geometry!=nullptr) mesh->SetGeometry(ng_geometry);
|
||||||
|
@ -944,7 +944,8 @@ using namespace netgen;
|
|||||||
|
|
||||||
int Ng_occ_Init (Tcl_Interp * interp)
|
int Ng_occ_Init (Tcl_Interp * interp)
|
||||||
{
|
{
|
||||||
geometryregister.Append (new OCCGeometryRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new OCCGeometryRegister);
|
||||||
|
|
||||||
|
|
||||||
Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
|
Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
|
||||||
|
@ -3748,7 +3748,8 @@ void STLGeometry :: WriteChartToFile( ChartId chartnumber, filesystem::path file
|
|||||||
public:
|
public:
|
||||||
STLInit()
|
STLInit()
|
||||||
{
|
{
|
||||||
geometryregister.Append (new STLGeometryRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new STLGeometryRegister);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -521,8 +521,9 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
geometryregister[i] -> SetParameters (interp);
|
for (int i = 0; i < gra.Size(); i++)
|
||||||
|
gra[i]->SetParameters (interp);
|
||||||
|
|
||||||
|
|
||||||
Ng_SetMeshingParameters (clientData, interp, argc, argv);
|
Ng_SetMeshingParameters (clientData, interp, argc, argv);
|
||||||
@ -564,7 +565,8 @@ using namespace netgen;
|
|||||||
extern "C" int Ng_stl_Init (Tcl_Interp * interp);
|
extern "C" int Ng_stl_Init (Tcl_Interp * interp);
|
||||||
int Ng_stl_Init (Tcl_Interp * interp)
|
int Ng_stl_Init (Tcl_Interp * interp)
|
||||||
{
|
{
|
||||||
geometryregister.Append (new STLGeometryVisRegister);
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
gra.Append (new STLGeometryVisRegister);
|
||||||
|
|
||||||
Tcl_CreateCommand (interp, "Ng_SetSTLParameters", Ng_SetSTLParameters,
|
Tcl_CreateCommand (interp, "Ng_SetSTLParameters", Ng_SetSTLParameters,
|
||||||
(ClientData)NULL,
|
(ClientData)NULL,
|
||||||
|
@ -33,8 +33,10 @@ VisualSceneSTLMeshing :: VisualSceneSTLMeshing ()
|
|||||||
{
|
{
|
||||||
selecttrig = 0;
|
selecttrig = 0;
|
||||||
nodeofseltrig = 1;
|
nodeofseltrig = 1;
|
||||||
stlgeometry->SetSelectTrig(selecttrig);
|
if(stlgeometry){ // don't let the default initializer crash init
|
||||||
stlgeometry->SetNodeOfSelTrig(nodeofseltrig);
|
stlgeometry->SetSelectTrig(selecttrig);
|
||||||
|
stlgeometry->SetNodeOfSelTrig(nodeofseltrig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VisualSceneSTLMeshing :: ~VisualSceneSTLMeshing ()
|
VisualSceneSTLMeshing :: ~VisualSceneSTLMeshing ()
|
||||||
|
@ -33,8 +33,10 @@ VisualSceneSTLMeshing :: VisualSceneSTLMeshing ()
|
|||||||
{
|
{
|
||||||
selecttrig = 0;
|
selecttrig = 0;
|
||||||
nodeofseltrig = 1;
|
nodeofseltrig = 1;
|
||||||
stlgeometry->SetSelectTrig(selecttrig);
|
if(stlgeometry){ // don't let the default initializer crash init
|
||||||
stlgeometry->SetNodeOfSelTrig(nodeofseltrig);
|
stlgeometry->SetSelectTrig(selecttrig);
|
||||||
|
stlgeometry->SetNodeOfSelTrig(nodeofseltrig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VisualSceneSTLMeshing :: ~VisualSceneSTLMeshing ()
|
VisualSceneSTLMeshing :: ~VisualSceneSTLMeshing ()
|
||||||
|
17
ng/ngpkg.cpp
17
ng/ngpkg.cpp
@ -465,15 +465,16 @@ namespace netgen
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
for (int i = 0; i < gra.Size(); i++)
|
||||||
{
|
{
|
||||||
NetgenGeometry * hgeom = geometryregister[i]->Load (lgfilename);
|
NetgenGeometry * hgeom = gra[i]->Load (lgfilename);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
// delete ng_geometry;
|
// delete ng_geometry;
|
||||||
// ng_geometry = hgeom;
|
// ng_geometry = hgeom;
|
||||||
ng_geometry = shared_ptr<NetgenGeometry> (hgeom);
|
ng_geometry = shared_ptr<NetgenGeometry> (hgeom);
|
||||||
geometryregister[i]->SetParameters(interp);
|
gra[i]->SetParameters(interp);
|
||||||
|
|
||||||
mesh.reset();
|
mesh.reset();
|
||||||
return TCL_OK;
|
return TCL_OK;
|
||||||
@ -1473,8 +1474,9 @@ namespace netgen
|
|||||||
extern void Render(bool blocking);
|
extern void Render(bool blocking);
|
||||||
mparam.render_function = &Render;
|
mparam.render_function = &Render;
|
||||||
|
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
geometryregister[i] -> SetParameters (interp);
|
for (int i = 0; i < gra.Size(); i++)
|
||||||
|
gra[i]->SetParameters (interp);
|
||||||
|
|
||||||
|
|
||||||
Ng_SetMeshingParameters (clientData, interp, 0, argv);
|
Ng_SetMeshingParameters (clientData, interp, 0, argv);
|
||||||
@ -1924,9 +1926,10 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
if (strcmp (vismode, "geometry") == 0)
|
if (strcmp (vismode, "geometry") == 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < geometryregister.Size(); i++)
|
GeometryRegisterArray& gra = FetchGeometryRegisterArray();
|
||||||
|
for (int i = 0; i < gra.Size(); i++)
|
||||||
{
|
{
|
||||||
VisualScene * hvs = geometryregister[i]->GetVisualScene (ng_geometry.get());
|
VisualScene * hvs = gra[i]->GetVisualScene (ng_geometry.get());
|
||||||
if (hvs)
|
if (hvs)
|
||||||
{
|
{
|
||||||
vs = hvs;
|
vs = hvs;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user