mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 21:10:33 +05:00
fix mem-leaks, autoptr geometry
This commit is contained in:
parent
7aa0128d6f
commit
22d054bc89
@ -17,7 +17,8 @@ extern "C" int Ng_CSG_Init (Tcl_Interp * interp);
|
|||||||
|
|
||||||
namespace netgen
|
namespace netgen
|
||||||
{
|
{
|
||||||
extern DLL_HEADER NetgenGeometry * ng_geometry;
|
// extern DLL_HEADER NetgenGeometry * ng_geometry;
|
||||||
|
extern DLL_HEADER AutoPtr<NetgenGeometry> ng_geometry;
|
||||||
extern DLL_HEADER AutoPtr<Mesh> mesh;
|
extern DLL_HEADER AutoPtr<Mesh> mesh;
|
||||||
|
|
||||||
static VisualSceneGeometry vsgeom;
|
static VisualSceneGeometry vsgeom;
|
||||||
@ -33,7 +34,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * csgeom = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * csgeom = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (csgeom)
|
if (csgeom)
|
||||||
{
|
{
|
||||||
double detail = atof (Tcl_GetVar (interp, "::geooptions.detail", 0));
|
double detail = atof (Tcl_GetVar (interp, "::geooptions.detail", 0));
|
||||||
@ -52,7 +53,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
|
|
||||||
|
|
||||||
const char * command = argv[1];
|
const char * command = argv[1];
|
||||||
@ -107,7 +108,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -142,7 +143,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -180,7 +181,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -207,7 +208,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -245,7 +246,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -272,7 +273,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -305,7 +306,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -336,7 +337,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -367,7 +368,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -492,7 +493,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -521,7 +522,7 @@ namespace netgen
|
|||||||
Tcl_Interp * interp,
|
Tcl_Interp * interp,
|
||||||
int argc, tcl_const char *argv[])
|
int argc, tcl_const char *argv[])
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (!geometry)
|
if (!geometry)
|
||||||
{
|
{
|
||||||
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
Tcl_SetResult (interp, err_needscsgeometry, TCL_STATIC);
|
||||||
@ -610,7 +611,7 @@ namespace netgen
|
|||||||
|
|
||||||
VisualScene * CSGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
|
VisualScene * CSGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
|
||||||
{
|
{
|
||||||
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (geometry)
|
if (geometry)
|
||||||
{
|
{
|
||||||
vsgeom.SetGeometry (geometry);
|
vsgeom.SetGeometry (geometry);
|
||||||
|
@ -17,7 +17,7 @@ namespace netgen
|
|||||||
for ( int i = 0; i < bcnames.Size(); i++ )
|
for ( int i = 0; i < bcnames.Size(); i++ )
|
||||||
delete bcnames[i];
|
delete bcnames[i];
|
||||||
for (int i=0; i<materials.Size(); i++)
|
for (int i=0; i<materials.Size(); i++)
|
||||||
delete materials[i];
|
delete [] materials[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,7 +109,8 @@ namespace netgen
|
|||||||
|
|
||||||
// global variable mesh (should not be used in libraries)
|
// global variable mesh (should not be used in libraries)
|
||||||
AutoPtr<Mesh> mesh;
|
AutoPtr<Mesh> mesh;
|
||||||
NetgenGeometry * ng_geometry = NULL; // new NetgenGeometry;
|
// NetgenGeometry * ng_geometry = NULL; // new NetgenGeometry;
|
||||||
|
AutoPtr<NetgenGeometry> ng_geometry;
|
||||||
|
|
||||||
// extern NetgenGeometry * ng_geometry;
|
// extern NetgenGeometry * ng_geometry;
|
||||||
// extern AutoPtr<Mesh> mesh;
|
// extern AutoPtr<Mesh> mesh;
|
||||||
@ -145,9 +146,12 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
NetgenGeometry * hgeom = geometryregister[i]->Load (filename);
|
NetgenGeometry * hgeom = geometryregister[i]->Load (filename);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
delete ng_geometry;
|
delete ng_geometry;
|
||||||
ng_geometry = hgeom;
|
ng_geometry = hgeom;
|
||||||
|
*/
|
||||||
|
ng_geometry.Reset (hgeom);
|
||||||
|
|
||||||
mesh.Reset();
|
mesh.Reset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -157,8 +161,11 @@ void Ng_LoadGeometry (const char * filename)
|
|||||||
// can be used to reset geometry
|
// can be used to reset geometry
|
||||||
if (strcmp(filename,"")==0)
|
if (strcmp(filename,"")==0)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
delete ng_geometry;
|
delete ng_geometry;
|
||||||
ng_geometry = new NetgenGeometry();
|
ng_geometry = new NetgenGeometry();
|
||||||
|
*/
|
||||||
|
ng_geometry.Reset (new NetgenGeometry());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,55 +184,14 @@ void Ng_LoadMeshFromStream ( istream & input )
|
|||||||
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (input);
|
NetgenGeometry * hgeom = geometryregister[i]->LoadFromMeshFile (input);
|
||||||
if (hgeom)
|
if (hgeom)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
delete ng_geometry;
|
delete ng_geometry;
|
||||||
ng_geometry = hgeom;
|
ng_geometry = hgeom;
|
||||||
|
*/
|
||||||
|
ng_geometry.Reset (hgeom);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef LOADOLD
|
|
||||||
if(input.good())
|
|
||||||
{
|
|
||||||
string auxstring;
|
|
||||||
input >> auxstring;
|
|
||||||
if(auxstring == "csgsurfaces")
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
if (geometry)
|
|
||||||
{
|
|
||||||
geometry.Reset (new CSGeometry (""));
|
|
||||||
}
|
|
||||||
if (stlgeometry)
|
|
||||||
{
|
|
||||||
delete stlgeometry;
|
|
||||||
stlgeometry = NULL;
|
|
||||||
}
|
|
||||||
#ifdef OCCGEOMETRY
|
|
||||||
if (occgeometry)
|
|
||||||
{
|
|
||||||
delete occgeometry;
|
|
||||||
occgeometry = NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef ACIS
|
|
||||||
if (acisgeometry)
|
|
||||||
{
|
|
||||||
delete acisgeometry;
|
|
||||||
acisgeometry = NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
geometry2d.Reset (0);
|
|
||||||
*/
|
|
||||||
// geometry -> LoadSurfaces(input);
|
|
||||||
CSGeometry * geometry = new CSGeometry ("");
|
|
||||||
geometry -> LoadSurfaces(input);
|
|
||||||
|
|
||||||
delete ng_geometry;
|
|
||||||
ng_geometry = geometry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -236,9 +202,11 @@ void Ng_LoadMesh (const char * filename)
|
|||||||
#ifdef PARALLEL
|
#ifdef PARALLEL
|
||||||
MPI_Comm_size(MPI_COMM_WORLD, &ntasks);
|
MPI_Comm_size(MPI_COMM_WORLD, &ntasks);
|
||||||
MPI_Comm_rank(MPI_COMM_WORLD, &id);
|
MPI_Comm_rank(MPI_COMM_WORLD, &id);
|
||||||
#endif
|
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
{
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( (strlen (filename) > 4) &&
|
if ( (strlen (filename) > 4) &&
|
||||||
strcmp (filename + (strlen (filename)-4), ".vol") != 0 )
|
strcmp (filename + (strlen (filename)-4), ".vol") != 0 )
|
||||||
{
|
{
|
||||||
@ -318,9 +286,7 @@ void Ng_LoadMesh (const char * filename)
|
|||||||
mesh -> Distribute(volume_weights, surface_weights, segment_weights);
|
mesh -> Distribute(volume_weights, surface_weights, segment_weights);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#ifdef PARALLEL
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mesh.Reset (new Mesh());
|
mesh.Reset (new Mesh());
|
||||||
@ -688,7 +654,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);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (geometry)
|
if (geometry)
|
||||||
{
|
{
|
||||||
n = geometry->GetSurface (surfi) -> GetNormalVector(p);
|
n = geometry->GetSurface (surfi) -> GetNormalVector(p);
|
||||||
@ -2175,7 +2141,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);
|
CSGeometry * geometry = dynamic_cast<CSGeometry*> (ng_geometry.Ptr());
|
||||||
if (geometry)
|
if (geometry)
|
||||||
{
|
{
|
||||||
opt = new MeshOptimize2dSurfaces(*geometry);
|
opt = new MeshOptimize2dSurfaces(*geometry);
|
||||||
|
@ -31,5 +31,7 @@ libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
|
|||||||
parallelmesh.cpp paralleltop.cpp paralleltop.hpp basegeom.cpp
|
parallelmesh.cpp paralleltop.cpp paralleltop.hpp basegeom.cpp
|
||||||
|
|
||||||
libmesh_la_LIBADD = $(top_builddir)/libsrc/linalg/libla.la \
|
libmesh_la_LIBADD = $(top_builddir)/libsrc/linalg/libla.la \
|
||||||
$(top_builddir)/libsrc/gprim/libgprim.la \
|
$(top_builddir)/libsrc/gprim/libgprim.la \
|
||||||
$(top_builddir)/libsrc/general/libgen.la
|
$(top_builddir)/libsrc/general/libgen.la \
|
||||||
|
-lz
|
||||||
|
|
||||||
|
@ -211,17 +211,15 @@ namespace netgen
|
|||||||
RecPol (int amaxorder)
|
RecPol (int amaxorder)
|
||||||
{
|
{
|
||||||
maxorder = amaxorder;
|
maxorder = amaxorder;
|
||||||
// cout << "maxo = " << maxorder << endl;
|
|
||||||
|
|
||||||
a = new double[maxorder+1];
|
a = new double[maxorder+1];
|
||||||
b = new double[maxorder+1];
|
b = new double[maxorder+1];
|
||||||
c = new double[maxorder+1];
|
c = new double[maxorder+1];
|
||||||
}
|
}
|
||||||
~RecPol ()
|
~RecPol ()
|
||||||
{
|
{
|
||||||
delete a;
|
delete [] a;
|
||||||
delete b;
|
delete [] b;
|
||||||
delete c;
|
delete [] c;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class S, class T>
|
template <class S, class T>
|
||||||
|
@ -361,6 +361,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
|
|
||||||
ofstream outfile(filename.c_str());
|
ofstream outfile(filename.c_str());
|
||||||
|
// ogzstream outfile( (filename+".gz") .c_str());
|
||||||
|
|
||||||
Save(outfile);
|
Save(outfile);
|
||||||
}
|
}
|
||||||
@ -408,54 +409,38 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
if ((*this)[sei].GetIndex())
|
if ((*this)[sei].GetIndex())
|
||||||
{
|
{
|
||||||
outfile.width(8);
|
outfile << " " << GetFaceDescriptor((*this)[sei].GetIndex ()).SurfNr()+1;
|
||||||
outfile << GetFaceDescriptor((*this)[sei].GetIndex ()).SurfNr()+1;
|
outfile << " " << GetFaceDescriptor((*this)[sei].GetIndex ()).BCProperty();
|
||||||
outfile.width(8);
|
outfile << " " << GetFaceDescriptor((*this)[sei].GetIndex ()).DomainIn();
|
||||||
outfile << GetFaceDescriptor((*this)[sei].GetIndex ()).BCProperty();
|
outfile << " " << GetFaceDescriptor((*this)[sei].GetIndex ()).DomainOut();
|
||||||
outfile.width(8);
|
|
||||||
outfile << GetFaceDescriptor((*this)[sei].GetIndex ()).DomainIn();
|
|
||||||
outfile.width(8);
|
|
||||||
outfile << GetFaceDescriptor((*this)[sei].GetIndex ()).DomainOut();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
outfile << " 0 0 0";
|
outfile << " 0 0 0";
|
||||||
|
|
||||||
Element2d sel = (*this)[sei];
|
Element2d sel = (*this)[sei];
|
||||||
if (invertsurf)
|
if (invertsurf)
|
||||||
sel.Invert();
|
sel.Invert();
|
||||||
|
|
||||||
outfile.width(8);
|
outfile << " " << sel.GetNP();
|
||||||
outfile << sel.GetNP();
|
|
||||||
|
|
||||||
for (j = 0; j < sel.GetNP(); j++)
|
for (j = 0; j < sel.GetNP(); j++)
|
||||||
{
|
outfile << " " << sel[j];
|
||||||
outfile.width(8);
|
|
||||||
outfile << sel[j];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
switch (geomtype)
|
switch (geomtype)
|
||||||
{
|
{
|
||||||
case GEOM_STL:
|
case GEOM_STL:
|
||||||
for (j = 1; j <= sel.GetNP(); j++)
|
for (j = 1; j <= sel.GetNP(); j++)
|
||||||
{
|
outfile << " " << sel.GeomInfoPi(j).trignum;
|
||||||
outfile.width(7);
|
|
||||||
outfile << " " << sel.GeomInfoPi(j).trignum;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case GEOM_OCC: case GEOM_ACIS:
|
case GEOM_OCC: case GEOM_ACIS:
|
||||||
for (j = 1; j <= sel.GetNP(); j++)
|
for (j = 1; j <= sel.GetNP(); j++)
|
||||||
{
|
{
|
||||||
outfile.width(7);
|
|
||||||
outfile << " " << sel.GeomInfoPi(j).u;
|
outfile << " " << sel.GeomInfoPi(j).u;
|
||||||
outfile << " " << sel.GeomInfoPi(j).v;
|
outfile << " " << sel.GeomInfoPi(j).v;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
; // outfile << "\n";
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
outfile << "\n";
|
outfile << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user