nglib / nginterface interfaces

This commit is contained in:
Joachim Schoeberl 2011-03-07 16:38:43 +00:00
parent 7eb9da3ac1
commit f069933fc3
5 changed files with 176 additions and 8 deletions

View File

@ -215,6 +215,8 @@ extern "C" {
DLL_HEADER const NG_EDGE * Ng_ME_GetEdges (NG_ELEMENT_TYPE et);
DLL_HEADER const NG_FACE * Ng_ME_GetFaces (NG_ELEMENT_TYPE et);
DLL_HEADER void Ng_UpdateTopology();
DLL_HEADER int Ng_GetNEdges();
DLL_HEADER int Ng_GetNFaces();
@ -391,6 +393,10 @@ extern "C" {
// if qualityloss is not equal to NULL at input, a (1-based) list of qualitylosses (due to projection)
// is saved in *qualityloss, its size is the return value
DLL_HEADER int Ng_Bisect_WithInfo ( const char * refinementfile, double ** qualityloss);
typedef void * Ng_Mesh;
DLL_HEADER Ng_Mesh Ng_SelectMesh (Ng_Mesh mesh);
#ifdef __cplusplus
}
#endif

View File

@ -2,8 +2,9 @@ noinst_HEADERS = writeuser.hpp
AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface $(TCL_INCLUDES) -DOPENGL
METASOURCES = AUTO
noinst_LTLIBRARIES = libinterface.la
libinterface_la_SOURCES = read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
lib_LTLIBRARIES = libinterface.la
libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp

View File

@ -3,8 +3,8 @@ include_HEADERS =
AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface -DOPENGL -D$(TOGL_WINDOWINGSYSTEM) $(TCL_INCLUDES) $(MPI_INCLUDES) $(FFMPEG_INCLUDES) $(JPEGLIB_INCLUDES)
bin_PROGRAMS = netgen
netgen_SOURCES = demoview.cpp ngappinit.cpp onetcl.cpp nginterface.cpp nginterface_v2.cpp parallelfunc.cpp parallelinterface.cpp ngpkg.cpp demoview.hpp parallelfunc.hpp togl_1_7.h
netgen_SOURCES = demoview.cpp ngappinit.cpp onetcl.cpp parallelfunc.cpp parallelinterface.cpp ngpkg.cpp demoview.hpp parallelfunc.hpp togl_1_7.h
# nginterface.cpp nginterface_v2.cpp
netgen_LDADD = $(top_builddir)/libsrc/visualization/libvisual.a \
$(top_builddir)/libsrc/csg/libcsgvis.la \

View File

@ -31,9 +31,8 @@ The interface between the GUI and the netgen library
extern bool nodisplay;
// #include <nginterface.h>
extern "C" void RunParallel ( void * (*fun)(void *), void * in);
#include <nginterface.h>
// extern "C" void RunParallel ( void * (*fun)(void *), void * in);
@ -2637,6 +2636,157 @@ namespace netgen
#endif
// from ng_interface
void Ng_SetVisualizationParameter (const char * name, const char * value)
{
// #ifdef OPENGL
// #ifndef NOTCL
char buf[100];
sprintf (buf, "visoptions.%s", name);
if (printmessage_importance>0)
{
cout << "name = " << name << ", value = " << value << endl;
cout << "set tcl-variable " << buf << " to " << value << endl;
}
Tcl_SetVar (tcl_interp, buf, const_cast<char*> (value), 0);
Tcl_Eval (tcl_interp, "Ng_Vis_Set parameters;");
// #endif
// #endif
}
}
using namespace netgen;
void Ng_InitSolutionData (Ng_SolutionData * soldata)
{
soldata -> name = NULL;
soldata -> data = NULL;
soldata -> components = 1;
soldata -> dist = 1;
soldata -> order = 1;
soldata -> iscomplex = 0;
soldata -> draw_surface = 1;
soldata -> draw_volume = 1;
soldata -> soltype = NG_SOLUTION_NODAL;
soldata -> solclass = 0;
}
void Ng_SetSolutionData (Ng_SolutionData * soldata)
{
#ifdef OPENGL
// vssolution.ClearSolutionData ();
VisualSceneSolution::SolData * vss = new VisualSceneSolution::SolData;
vss->name = new char[strlen (soldata->name)+1];
strcpy (vss->name, soldata->name);
vss->data = soldata->data;
vss->components = soldata->components;
vss->dist = soldata->dist;
vss->order = soldata->order;
vss->iscomplex = bool(soldata->iscomplex);
vss->draw_surface = soldata->draw_surface;
vss->draw_volume = soldata->draw_volume;
vss->soltype = VisualSceneSolution::SolType (soldata->soltype);
vss->solclass = soldata->solclass;
vssolution.AddSolutionData (vss);
#endif
}
void Ng_ClearSolutionData ()
{
#ifdef OPENGL
vssolution.ClearSolutionData();
#endif
}
namespace netgen
{
extern void Render ();
}
void Ng_Redraw ()
{
#ifdef OPENGL
extern bool nodisplay; // he: global in ngappinit.cpp
if (!nodisplay)
{
netgen::vssolution.UpdateSolutionTimeStamp();
Render();
}
#endif
}
namespace netgen
{
int firsttime = 1;
int animcnt = 0;
void PlayAnimFile(const char* name, int speed, int maxcnt)
{
//extern Mesh * mesh;
/*
if (mesh.Ptr()) mesh->DeleteMesh();
if (!mesh.Ptr()) mesh = new Mesh();
*/
mesh.Reset (new Mesh());
int ne, np, i;
char str[80];
char str2[80];
//int tend = 5000;
// for (ti = 1; ti <= tend; ti++)
//{
int rti = (animcnt%(maxcnt-1)) + 1;
animcnt+=speed;
sprintf(str2,"%05i.sol",rti);
strcpy(str,"mbssol/");
strcat(str,name);
strcat(str,str2);
if (printmessage_importance>0)
cout << "read file '" << str << "'" << endl;
ifstream infile(str);
infile >> ne;
for (i = 1; i <= ne; i++)
{
int j;
Element2d tri(TRIG);
tri.SetIndex(1); //faceind
for (j = 1; j <= 3; j++)
infile >> tri.PNum(j);
infile >> np;
for (i = 1; i <= np; i++)
{
Point3d p;
infile >> p.X() >> p.Y() >> p.Z();
if (firsttime)
mesh->AddPoint (p);
else
mesh->Point(i) = Point<3> (p);
}
//firsttime = 0;
Ng_Redraw();
}
}
int Ng_SetVisParameters (ClientData clientData,
@ -2916,7 +3066,7 @@ namespace netgen
// extern "C" int Ng_occ_Init (Tcl_Interp * interp);
#endif
// extern "C" int Ng_Geom2d_Init (Tcl_Interp * interp);
// extern "C" int Ng_Geom2d_Init (Tcl_Interp * interp);
// int main_Eero (ClientData clientData,
// Tcl_Interp * interp,

View File

@ -22,6 +22,8 @@
#include <occgeom.hpp>
#endif
#include <nginterface.h>
namespace netgen {
extern void MeshFromSpline2D (SplineGeometry2d & geometry,
@ -1208,3 +1210,12 @@ namespace netgen
}
} // End of namespace netgen
void Ng_Redraw () { ; }
void Ng_ClearSolutionData () { ; }
void Ng_SetSolutionData (Ng_SolutionData * soldata) { ; }
void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }