Merging with WPdev

This commit is contained in:
abd 2007-02-07 12:33:37 +00:00
parent 90e60e9d4a
commit a32024e0bc
41 changed files with 1811 additions and 393 deletions

View File

@ -0,0 +1,54 @@
# Check availability of Geom binary distribution
#
# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
#
AC_DEFUN([CHECK_GEOM],[
AC_CHECKING(for Geom)
Geom_ok=no
AC_ARG_WITH(geom,
[ --with-geom=DIR root directory path of GEOM installation ],
GEOM_DIR="$withval",GEOM_DIR="")
if test "x$GEOM_DIR" == "x" ; then
# no --with-geom-dir option used
if test "x$GEOM_ROOT_DIR" != "x" ; then
# GEOM_ROOT_DIR environment variable defined
GEOM_DIR=$GEOM_ROOT_DIR
else
# search Geom binaries in PATH variable
AC_PATH_PROG(TEMP, libGEOM_Swig.py)
if test "x$TEMP" != "x" ; then
GEOM_BIN_DIR=`dirname $TEMP`
GEOM_DIR=`dirname $GEOM_BIN_DIR`
fi
fi
#
fi
if test -f ${GEOM_DIR}/bin/salome/libGEOM_Swig.py ; then
Geom_ok=yes
AC_MSG_RESULT(Using Geom module distribution in ${GEOM_DIR})
if test "x$GEOM_ROOT_DIR" == "x" ; then
GEOM_ROOT_DIR=${GEOM_DIR}
fi
AC_SUBST(GEOM_ROOT_DIR)
else
AC_MSG_WARN("Cannot find compiled Geom module distribution")
fi
AC_MSG_RESULT(for Geom: $Geom_ok)
])dnl

View File

@ -0,0 +1,145 @@
AC_DEFUN([CHECK_NETGEN],[
AC_REQUIRE([AC_PROG_CXX])dnl
AC_REQUIRE([AC_PROG_CXXCPP])dnl
AC_CHECKING(for Netgen 4.5 and higher Libraries)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_ARG_WITH(netgen,
[ --with-netgen=DIR root directory path of NETGEN installation],
NETGEN_HOME=$withval,NETGEN_HOME="")
NETGEN_INCLUDES=""
NETGEN_LIBS_DIR=""
Netgen_ok=no
if test "x$NETGEN_HOME" == "x" ; then
# no --with-netgen option used
if test "x$NETGENHOME" != "x" ; then
# NETGENHOME environment variable defined
NETGEN_HOME=$NETGENHOME
fi
#
fi
if test "x$NETGEN_HOME" != "x"; then
echo
echo
echo -------------------------------------------------
echo You are about to choose to use somehow the
echo Netgen Library to generate Tetrahedric mesh.
echo
echo WARNING
echo ----------------------------------------------------------
echo ----------------------------------------------------------
echo You are strongly advised to consult the file
echo NETGENPLUGIN_SRC/src/NETGEN/ReadMeForNgUsers, particularly about
echo assumptions made on the installation of the Netgen
echo application and libraries.
echo Ask your system administrator for those details.
echo ----------------------------------------------------------
echo ----------------------------------------------------------
echo
echo
NETGEN_INCLUDES="-I${NETGEN_HOME}/include"
# check ${NETGEN_HOME}/lib/LINUX directory for libraries
if test -f ${NETGEN_HOME}/lib/LINUX/libcsg.a ; then
NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX"
else
# check ${NETGEN_HOME}/lib/LINUX64 directory for libraries
if test -f ${NETGEN_HOME}/lib/LINUX64/libcsg.a ; then
NETGEN_LIBS_DIR="${NETGEN_HOME}/lib/LINUX64"
else
NETGEN_LIBS_DIR="${NETGEN_HOME}/lib"
fi
fi
echo "NETGEN_LIBS_DIR = $NETGEN_LIBS_DIR"
CPPFLAGS_old="$CPPFLAGS"
CXXFLAGS_old="$CXXFLAGS"
CPPFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CPPFLAGS"
CXXFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CXXFLAGS"
AC_MSG_CHECKING(for Netgen header file)
AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no)
if test "x$Netgen_ok" == "xyes"; then
AC_MSG_CHECKING(for Netgen libraries)
LDFLAGS_old="$LDFLAGS"
LDFLAGS="-L. -lNETGEN $CAS_LDPATH -lTKBRep -lTKShHealing -lTKSTEP -lTKXSBase -lTKIGES -lTKSTL -lTKTopAlgo $LDFLAGS"
AC_TRY_COMPILE(#include <iostream.h>
#include <fstream.h>
namespace nglib {
#include "nglib.h"
}
#define OCCGEOMETRY
#include <occgeom.hpp>
,nglib::Ng_Init();
netgen::OCCGeometry occgeo;
nglib::Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR/libnginterface.a";
ar x "$NETGEN_LIBS_DIR/libocc.a";
ar x "$NETGEN_LIBS_DIR/libcsg.a";
ar x "$NETGEN_LIBS_DIR/libgprim.a";
ar x "$NETGEN_LIBS_DIR/libmesh.a";
ar x "$NETGEN_LIBS_DIR/libopti.a";
ar x "$NETGEN_LIBS_DIR/libgen.a";
ar x "$NETGEN_LIBS_DIR/libla.a";
ar x "$NETGEN_LIBS_DIR/libstlgeom.a";
ar x "$NETGEN_LIBS_DIR/libgeom2d.a";
$CXX -shared linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o -o libNETGEN.so;
rm -rf linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o csgparser.o dynamicmem.o extrusion.o occconstruction.o parthreads.o readuser.o writeabaqus.o writediffpack.o writeelmer.o writefeap.o writefluent.o writegmsh.o writejcm.o writepermas.o writetecplot.o writetochnog.o writeuser.o wuchemnitz.o,
Netgen_ok=no)
AC_CACHE_VAL(salome_netgen_lib,[
AC_TRY_LINK(
#include <iostream.h>
#include <fstream.h>
namespace nglib {
#include "nglib.h"
}
#define OCCGEOMETRY
#include <occgeom.hpp>
,nglib::Ng_Init();
netgen::OCCGeometry occgeo;
nglib::Ng_Exit();,
eval "salome_netgen_lib=yes";rm -rf libNETGEN.so,eval "salome_netgen_lib=no";rm -rf libNETGEN.so)
])
Netgen_ok="$salome_netgen_lib"
LDFLAGS="$LDFLAGS_old"
fi
CPPFLAGS="$CPPFLAGS_old"
CXXFLAGS="$CXXFLAGS_old"
if test "x$Netgen_ok" == xno ; then
AC_MSG_RESULT(no)
AC_MSG_WARN(Netgen libraries not found or not properly installed)
else
AC_MSG_RESULT(yes)
fi
fi
AC_SUBST(NETGEN_INCLUDES)
AC_SUBST(NETGEN_LIBS_DIR)
AC_LANG_RESTORE
])dnl

View File

@ -1,132 +1,53 @@
AC_DEFUN([CHECK_NETGEN],[
#------------------------------------------------------------
# Check availability of Salome NETGEN mesh plugin module
# distribution
#------------------------------------------------------------
AC_REQUIRE([AC_PROG_CXX])dnl
AC_REQUIRE([AC_PROG_CXXCPP])dnl
AC_DEFUN([CHECK_NETGENPLUGIN],[
AC_CHECKING(for Netgen 4.5 and higher Libraries)
AC_CHECKING(for NETGEN mesh plugin)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
NGplugin_ok=no
AC_ARG_WITH(netgen,
[ --with-netgen=DIR root directory path of NETGEN installation],
NETGEN_HOME=$withval,NETGEN_HOME="")
NETGENPLUGIN_LDLAGS=""
NETGENPLUGIN_CXXFLAGS=""
NETGEN_INCLUDES=""
NETGEN_LIBS_DIR=""
AC_ARG_WITH(netgenplugin,
[ --with-netgenplugin=DIR root directory path of NETGEN mesh plugin installation ],
NETGENPLUGIN_DIR="$withval",NETGENPLUGIN_DIR="")
Netgen_ok=no
if test "x$NETGENPLUGIN_DIR" == "x" ; then
if test "x$NETGEN_HOME" == "x" ; then
# no --with-netgenplugin-dir option used
# no --with-netgen option used
if test "x$NETGENHOME" != "x" ; then
if test "x$NETGENPLUGIN_ROOT_DIR" != "x" ; then
# NETGENHOME environment variable defined
NETGEN_HOME=$NETGENHOME
# NETGENPLUGIN_ROOT_DIR environment variable defined
NETGENPLUGIN_DIR=$NETGENPLUGIN_ROOT_DIR
fi
#
fi
if test "x$NETGEN_HOME" != "x"; then
if test -f ${NETGENPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libNETGENEngine.so ; then
NGplugin_ok=yes
AC_MSG_RESULT(Using NETGEN mesh plugin distribution in ${NETGENPLUGIN_DIR})
echo
echo
echo -------------------------------------------------
echo You are about to choose to use somehow the
echo Netgen Library to generate Tetrahedric mesh.
echo
echo WARNING
echo ----------------------------------------------------------
echo ----------------------------------------------------------
echo You are strongly advised to consult the file
echo NETGENPLUGIN_SRC/src/ReadMeForNgUsers, particularly about
echo assumptions made on the installation of the Netgen
echo application and libraries.
echo Ask your system administrator for those details.
echo ----------------------------------------------------------
echo ----------------------------------------------------------
echo
echo
if test "x$NETGENPLUGIN_ROOT_DIR" == "x" ; then
NETGENPLUGIN_ROOT_DIR=${NETGENPLUGIN_DIR}
fi
AC_SUBST(NETGENPLUGIN_ROOT_DIR)
NETGENPLUGIN_LDFLAGS=-L${NETGENPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome
NETGENPLUGIN_CXXFLAGS=-I${NETGENPLUGIN_DIR}/include/salome
NETGEN_INCLUDES="-I$NETGEN_HOME/include"
NETGEN_LIBS_DIR="$NETGEN_HOME/lib/LINUX"
AC_SUBST(NETGENPLUGIN_LDFLAGS)
AC_SUBST(NETGENPLUGIN_CXXFLAGS)
CPPFLAGS_old="$CPPFLAGS"
CXXFLAGS_old="$CXXFLAGS"
CPPFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CPPFLAGS"
CXXFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CXXFLAGS"
AC_MSG_CHECKING(for Netgen header file)
AC_CHECK_HEADER(nglib.h,Netgen_ok=yes,Netgen_ok=no)
if test "x$Netgen_ok" == "xyes"; then
AC_MSG_CHECKING(for Netgen libraries)
LDFLAGS_old="$LDFLAGS"
LDFLAGS="-L. -lNETGEN $CAS_LDPATH -lTKBRep -lTKShHealing -lTKSTEP -lTKXSBase -lTKIGES -lTKSTL -lTKTopAlgo $LDFLAGS"
AC_TRY_COMPILE(#include <iostream.h>
#include <fstream.h>
namespace nglib {
#include "nglib.h"
}
#define OCCGEOMETRY
#include <occgeom.hpp>
,nglib::Ng_Init();
netgen::OCCGeometry occgeo;
nglib::Ng_Exit();,Netgen_ok=yes;ar x "$NETGEN_LIBS_DIR/libnginterface.a";
ar x "$NETGEN_LIBS_DIR/libocc.a";
ar x "$NETGEN_LIBS_DIR/libcsg.a";
ar x "$NETGEN_LIBS_DIR/libgprim.a";
ar x "$NETGEN_LIBS_DIR/libmesh.a";
ar x "$NETGEN_LIBS_DIR/libopti.a";
ar x "$NETGEN_LIBS_DIR/libgen.a";
ar x "$NETGEN_LIBS_DIR/libla.a";
ar x "$NETGEN_LIBS_DIR/libstlgeom.a";
ar x "$NETGEN_LIBS_DIR/libgeom2d.a";
$CXX -shared linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o -o libNETGEN.so;
rm -rf linopt.o bfgs.o linsearch.o global.o bisect.o meshtool.o refine.o ruler3.o improve3.o adfront3.o tetrarls.o prism2rls.o profiler.o pyramidrls.o pyramid2rls.o netrule3.o ruler2.o meshclass.o improve2.o adfront2.o netrule2.o triarls.o geomsearch.o secondorder.o meshtype.o parser3.o quadrls.o specials.o parser2.o meshing2.o meshing3.o meshfunc.o localh.o improve2gen.o delaunay.o boundarylayer.o msghandler.o meshfunc2d.o smoothing2.o smoothing3.o topology.o curvedelems_new.o clusters.o zrefine.o ngexception.o geomtest3d.o geom2d.o geom2dmesh.o geom3d.o adtree.o transform3d.o geomfuncs.o polynomial.o densemat.o vector.o basemat.o sparsmat.o algprim.o brick.o manifold.o bspline2d.o meshsurf.o csgeom.o polyhedra.o curve2d.o singularref.o edgeflw.o solid.o explicitcurve2d.o specpoin.o gencyl.o revolution.o genmesh.o genmesh2d.o spline3d.o surface.o identify.o triapprox.o meshstlsurface.o stlline.o stltopology.o stltool.o stlgeom.o stlgeomchart.o stlgeommesh.o table.o optmem.o spbita2d.o hashtabl.o sort.o flags.o seti.o bitarray.o array.o symbolta.o mystring.o moveablemem.o spline.o splinegeometry.o ngnewdelete.o nglib.o hprefinement.o Partition_Inter2d.o Partition_Loop.o Partition_Loop3d.o Partition_Inter3d.o Partition_Loop2d.o Partition_Spliter.o occgeom.o occgenmesh.o occmeshsurf.o csgparser.o dynamicmem.o extrusion.o occconstruction.o parthreads.o readuser.o writeabaqus.o writediffpack.o writeelmer.o writefeap.o writefluent.o writegmsh.o writejcm.o writepermas.o writetecplot.o writetochnog.o writeuser.o wuchemnitz.o,
Netgen_ok=no)
AC_CACHE_VAL(salome_netgen_lib,[
AC_TRY_LINK(
#include <iostream.h>
#include <fstream.h>
namespace nglib {
#include "nglib.h"
}
#define OCCGEOMETRY
#include <occgeom.hpp>
,nglib::Ng_Init();
netgen::OCCGeometry occgeo;
nglib::Ng_Exit();,
eval "salome_netgen_lib=yes";rm -rf libNETGEN.so,eval "salome_netgen_lib=no";rm -rf libNETGEN.so)
])
Netgen_ok="$salome_netgen_lib"
LDFLAGS="$LDFLAGS_old"
fi
CPPFLAGS="$CPPFLAGS_old"
CXXFLAGS="$CXXFLAGS_old"
if test "x$Netgen_ok" == xno ; then
AC_MSG_RESULT(no)
AC_MSG_WARN(Netgen libraries not found or not properly installed)
else
AC_MSG_RESULT(yes)
fi
else
AC_MSG_WARN("Cannot find compiled NETGEN mesh plugin distribution")
fi
AC_SUBST(NETGEN_INCLUDES)
AC_SUBST(NETGEN_LIBS_DIR)
AC_LANG_RESTORE
AC_MSG_RESULT(for NETGEN mesh plugin: $NGplugin_ok)
])dnl

View File

@ -0,0 +1,54 @@
# Check availability of SMesh binary distribution
#
# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
#
AC_DEFUN([CHECK_SMESH],[
AC_CHECKING(for SMesh)
SMesh_ok=no
AC_ARG_WITH(smesh,
[ --with-smesh=DIR root directory path of SMESH installation ],
SMESH_DIR="$withval",SMESH_DIR="")
if test "x$SMESH_DIR" == "x" ; then
# no --with-smesh option used
if test "x$SMESH_ROOT_DIR" != "x" ; then
# SMESH_ROOT_DIR environment variable defined
SMESH_DIR=$SMESH_ROOT_DIR
else
# search SMESH binaries in PATH variable
AC_PATH_PROG(TEMP, libSMESH_Swig.py)
if test "x$TEMP" != "x" ; then
SMESH_BIN_DIR=`dirname $TEMP`
SMESH_DIR=`dirname $SMESH_BIN_DIR`
fi
fi
#
fi
if test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
SMesh_ok=yes
AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})
if test "x$SMESH_ROOT_DIR" == "x" ; then
SMESH_ROOT_DIR=${SMESH_DIR}
fi
AC_SUBST(SMESH_ROOT_DIR)
else
AC_MSG_WARN("Cannot find compiled SMesh module distribution")
fi
AC_MSG_RESULT(for SMesh: $SMesh_ok)
])dnl

View File

@ -12,7 +12,7 @@ HAVE_SSTREAM=@HAVE_SSTREAM@
LIBS=@LIBS@
LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome
# add libstdc++ to link c++ library with libtool !
LDFLAGS+= -lstdc++
@ -175,7 +175,7 @@ SALOME_INCLUDES = \
CPPFLAGS += -DSOLIDGEOM -DLINUX $(OCC_INCLUDES) $(SALOME_INCLUDES) $(BOOST_CPPFLAGS)
CXXFLAGS += -DSOLIDGEOM -DLINUX $(OCC_CXXFLAGS) $(SALOME_INCLUDES)
LDFLAGS += -lSMESHimpl -lSMESHEngine -lStdMeshers -lStdMeshersEngine -L${KERNEL_ROOT_DIR}/lib/salome -L${SMESH_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeGenericObj
LDFLAGS += -lSMESHimpl -lSMESHEngine -lStdMeshers -lStdMeshersEngine -L${KERNEL_ROOT_DIR}/lib@LIB_LOCATION_SUFFIX@/salome -L${SMESH_ROOT_DIR}/lib@LIB_LOCATION_SUFFIX@/salome -L${GEOM_ROOT_DIR}/lib@LIB_LOCATION_SUFFIX@/salome -lSalomeGenericObj
# add corba libs when link salome application !
#LDFLAGS+= $(CORBA_LIBS)
@ -205,7 +205,7 @@ LN_S=@LN_S@
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@/salome
libdir=@libdir@/salome
libdir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/salome
# warning : if user give this path in configure we could have salome/salome :-(
includedir=@includedir@/salome
datadir=@datadir@/salome

View File

@ -22,8 +22,8 @@ AC_CANONICAL_HOST
PACKAGE=salome
AC_SUBST(PACKAGE)
VERSION=3.2.2
XVERSION=0x030202
VERSION=3.2.4
XVERSION=0x030204
AC_SUBST(VERSION)
AC_SUBST(XVERSION)
@ -360,7 +360,7 @@ else
fi
# make other build directories
for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources/${MODULE_NAME} idl
for rep in salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources/${MODULE_NAME} idl
do
# if test ! -d $rep ; then
# eval mkdir $rep

View File

@ -46,7 +46,7 @@ $(IDL_FILES:%=$(top_builddir)/idl/salome/%):$(IDL_FILES:%=$(top_srcdir)/idl/%)
# python wrap
lib: pyidl
PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
PYTHON_BUILD_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)

View File

@ -7,8 +7,8 @@
<meshers-group name="NETGEN"
resources="NETGENPlugin"
server-lib="libNETGENEngine.so"
gui-lib="libNETGENPluginGUI.so">
server-lib="NETGENEngine"
gui-lib="NETGENPluginGUI">
<hypotheses>
<hypothesis type="NETGEN_Parameters"
label-id="NETGEN 3D Parameters"

View File

@ -67,8 +67,7 @@ CPPFLAGS += $(QT_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \
CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-I${GEOM_ROOT_DIR}/include/salome -I${SMESH_ROOT_DIR}/include/salome
LDFLAGS += -lSMESH $(OCC_KERNEL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome \
-L${GUI_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome \
-L${SMESH_ROOT_DIR}/lib/salome
LDFLAGS += $(OCC_KERNEL_LIBS) $(KERNEL_LDFLAGS) $(GUI_LDFLAGS) ${GEOM_LDFLAGS} ${SMESH_LDFLAGS} -lSMESH
@CONCLUDE@

View File

@ -35,6 +35,7 @@
//=============================================================================
extern "C"
{
NETGENPLUGIN_GUI_EXPORT
SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator( const QString& aHypType )
{
SMESHGUI_GenericHypothesisCreator* aCreator = NULL;

View File

@ -28,6 +28,16 @@
#ifndef NETGENPLUGINGUI_HypothesisCreator_HeaderFile
#define NETGENPLUGINGUI_HypothesisCreator_HeaderFile
#ifdef WIN32
#ifdef NETGENPLUGIN_GUI_EXPORTS
#define NETGENPLUGIN_GUI_EXPORT __declspec( dllexport )
#else
#define NETGENPLUGIN_GUI_EXPORT __declspec( dllimport )
#endif
#else
#define NETGENPLUGIN_GUI_EXPORT
#endif
#include <SMESHGUI_Hypotheses.h>
class QtxDblSpinBox;
@ -46,7 +56,7 @@ typedef struct
/*!
* \brief Class for creation of NETGEN2D and NETGEN3D hypotheses
*/
class NETGENPluginGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
class NETGENPLUGIN_GUI_EXPORT NETGENPluginGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
{
Q_OBJECT

View File

@ -1,28 +1,40 @@
The Netgen 4.5 from the web location : http://www.hpfem.jku.at/netgen/
(CVS access) is used in the SMESH Module of Salome3 distribution.
How to build Netgen for Salome
1. How to build Netgen for Salome
------------------------------
Patch the netgen 4.5 distribution:
1.1. Download Netgen 4.5 from the NETGEN home site (see above).
1.2. Unpack the downloaded Netgen 4.5 archive
(hereafter we assume that this is netgen45 directory)
1.3. Patch the netgen 4.5 distribution for SALOME:
$ cd netgen45
$ patch -p1 < patch_directory/netgen45ForSalome.patch
Set CASROOT environment variable to OCCT installation path,
as Netgen 4.5 uses Open CASCADE Technology:
1.4. For 64-bit platform you also need to apply another patch:
$ cd netgen45
$ patch -p1 < patch_directory/netgen45lib64.patch
1.5. Set CASROOT environment variable to OCCT installation path,
since Netgen 4.5 requires Open CASCADE Technology:
$ setenv CASROOT <occt_installation_path>
Then run makeForSalome.sh (it will be created by the patch):
1.6. Compile and install netgen 4.5. To do this, simply run
makeForSalome.sh script (it is created from the patch):
$ sh makeForSalome.sh
Additional information for maintainers
2. Additional information for maintainers
--------------------------------------
The file check_NETGENPLUGIN.m4 assumes
that Netgen is installed in the directory <netgen_installation_path> as follow:
The file check_NETGEN.m4 assumes that Netgen is installed in
the directory <netgen_installation_path> as follow:
prompt> ls <netgen_installation_path>
@ -55,17 +67,16 @@ edgeflw.hpp hpref_pyramid.hpp msghandler.hpp sparsmat.hpp
prompt> ls <netgen_installation_path>/lib
LINUX/
prompt> ls <netgen_installation_path>/lib/LINUX
libcsg.a libgeom2d.a libla.a libnginterface.a libopti.a
libgen.a libgprim.a libmesh.a libocc.a libstlgeom.a
The library files can be also installed in the LINUX or LINUX64
subfolder of the lib directory.
All the libraries *.a should be compiled without the option -DOPENGL.
netgen45 is assumed to be the directory downloaded from the above web
location archive of Netgen. The library
<netgen_installation_path>/lib/LINUX/libnginterface.a should contain the objects
<netgen_installation_path>/lib/libnginterface.a should contain the objects
nglib.o (from netgen45/libsrc/interface/nglib.cpp) and ngnewdelete.o
(from netgen45/ngtcltk/ngnewdelete.cpp).

View File

@ -0,0 +1,221 @@
diff -N -r -u netgen43/libsrc/include/spline2d.hpp /tmp/netgen43/libsrc/include/spline2d.hpp
--- netgen43/libsrc/include/spline2d.hpp 1970-01-01 01:00:00.000000000 +0100
+++ /tmp/netgen43/libsrc/include/spline2d.hpp 2003-12-10 16:28:12.000000000 +0100
@@ -0,0 +1 @@
+#include "../geom2d/spline2d.hpp"
diff -N -r -u netgen43/libsrc/include/splinegeometry2.hpp /tmp/netgen43/libsrc/include/splinegeometry2.hpp
--- netgen43/libsrc/include/splinegeometry2.hpp 1970-01-01 01:00:00.000000000 +0100
+++ /tmp/netgen43/libsrc/include/splinegeometry2.hpp 2003-12-10 16:28:23.000000000 +0100
@@ -0,0 +1 @@
+#include "../geom2d/splinegeometry2.hpp"
diff -N -r -u netgen43/libsrc/interface/Makefile /tmp/netgen43/libsrc/interface/Makefile
--- netgen43/libsrc/interface/Makefile 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/interface/Makefile 2003-12-10 15:59:47.000000000 +0100
@@ -1,4 +1,4 @@
-src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp readuser.cpp importsolution.cpp
+src = writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp readuser.cpp importsolution.cpp nglib.cpp ngnewdelete.cpp
#
lib = nginterface
libpath = libsrc/interface
diff -N -r -u netgen43/libsrc/interface/nglib.cpp /tmp/netgen43/libsrc/interface/nglib.cpp
--- netgen43/libsrc/interface/nglib.cpp 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/interface/nglib.cpp 2003-12-10 16:32:54.000000000 +0100
@@ -23,6 +23,20 @@
#include "nglib.h"
+namespace netgen
+{
+ char geomfilename [100];
+
+ //Destination for messages, errors, ...
+ void Ng_PrintDest(const char * s)
+ {
+ (*mycout) << s << flush;
+ }
+
+#include <spline2d.hpp>
+#include <splinegeometry2.hpp>
+}
+
using namespace netgen;
// constants and types:
@@ -171,8 +185,6 @@
// CSG Geometry
// FlexLexer * lexer;
-char geomfilename [100];
-
// 2D Meshing Functions:
@@ -362,7 +374,18 @@
cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
}
*/
- geo->AddEdges(readedges);
+
+ ARRAY< Point<3> > readedges1;
+
+ for (i = 1; i <= readedges.Size(); i++)
+ {
+ Point3d readedgesData = readedges.Get(i);
+ Point <3> readedges1Data = Point<3>(readedgesData.X(),readedgesData.Y(),readedgesData.Z());
+
+ readedges1.Append(readedges1Data);
+ }
+
+ geo->AddEdges(readedges1);
}
if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
@@ -472,7 +495,14 @@
n = Vec3d(nv[0],nv[1],nv[2]);
}
- readtrias.Append(STLReadTriangle(apts,n));
+ Point<3> apts1[3];
+ apts1[0] = Point<3>(p1[0],p1[1],p1[2]);
+ apts1[1] = Point<3>(p2[0],p2[1],p2[2]);
+ apts1[2] = Point<3>(p3[0],p3[1],p3[2]);
+
+ Vec<3> n1 = Vec<3>(n.X(),n.Y(),n.Z());
+
+ readtrias.Append(STLReadTriangle(apts1,n1));
}
// add (optional) edges:
@@ -487,30 +517,29 @@
// compatibility functions:
-void MyError (const char * ch)
+void netgen::MyError (const char * ch)
{
cerr << ch;
}
-//Destination for messages, errors, ...
-void Ng_PrintDest(const char * s)
-{
- (*mycout) << s << flush;
-}
-
-
-double GetTime ()
+double netgen::GetTime ()
{
return 0;
}
-void ResetTime ()
+void netgen::ResetTime ()
{
;
}
-void MyBeep (int i)
+void netgen::MyBeep (int i)
{
;
}
+void MeshFromSpline2D (SplineGeometry2d & geometry,
+ Mesh *& mesh,
+ MeshingParameters & mp)
+{
+ MeshFromSpline2D (geometry, mesh, mp);
+}
diff -N -r -u netgen43/libsrc/makefile.mach.LINUX /tmp/netgen43/libsrc/makefile.mach.LINUX
--- netgen43/libsrc/makefile.mach.LINUX 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/makefile.mach.LINUX 2003-12-10 15:12:18.000000000 +0100
@@ -14,7 +14,8 @@
#
CFLAGS2 =
# pg stands for profiling - also in linkflags2
-CPLUSPLUSFLAGS2 = -O2 -I/usr/X11R6/include -DLINUX -DOPENGL
+#CPLUSPLUSFLAGS2 = -O2 -I/usr/X11R6/include -DLINUX -DOPENGL
+CPLUSPLUSFLAGS2 = -O2 -I/usr/X11R6/include -DLINUX
# -fomit-frame-pointer
# -ffast-math
#
diff -N -r -u netgen43/libsrc/meshing/improve2.cpp /tmp/netgen43/libsrc/meshing/improve2.cpp
--- netgen43/libsrc/meshing/improve2.cpp 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/meshing/improve2.cpp 2003-12-10 15:42:00.000000000 +0100
@@ -3,7 +3,7 @@
#include "meshing.hpp"
#include <opti.hpp>
-#include <visual.hpp>
+/*#include <visual.hpp>*/
namespace netgen
diff -N -r -u netgen43/libsrc/meshing/meshing2.cpp /tmp/netgen43/libsrc/meshing/meshing2.cpp
--- netgen43/libsrc/meshing/meshing2.cpp 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/meshing/meshing2.cpp 2003-12-10 15:34:35.000000000 +0100
@@ -1785,7 +1785,7 @@
#else
-void glrender (int wait)
+void netgen::glrender (int wait)
{
;
}
diff -N -r -u netgen43/libsrc/visualization/stlmeshing.cpp /tmp/netgen43/libsrc/visualization/stlmeshing.cpp
--- netgen43/libsrc/visualization/stlmeshing.cpp 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/libsrc/visualization/stlmeshing.cpp 2003-12-10 15:52:53.000000000 +0100
@@ -5,7 +5,7 @@
#include <stlgeom.hpp>
#include <meshing.hpp>
-#include <visual.hpp>
+/*#include <visual.hpp>*/
namespace netgen
{
diff -N -r -u netgen43/Makefile /tmp/netgen43/Makefile
--- netgen43/Makefile 2003-05-07 16:01:43.000000000 +0200
+++ /tmp/netgen43/Makefile 2003-12-10 15:11:41.000000000 +0100
@@ -35,7 +35,8 @@
.SUFFIXES: .cpp .o
#
#
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
+#CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
+CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include
LINKFLAGS1 = -lGL -lGLU -lX11 -lXext -lXmu
#
CPLUSPLUSFLAGS = $(CPLUSPLUSFLAGS1) $(CPLUSPLUSFLAGS2) $(CPLUSPLUSFLAGS3)
diff -N -r -u netgen43/makeForSalome.sh /tmp/netgen43/makeForSalome.sh
--- netgen43/makeForSalome.sh 1970-01-01 01:00:00.000000000 +0100
+++ /tmp/netgen43/makeForSalome.sh 2004-01-05 12:33:59.000000000 +0100
@@ -0,0 +1,26 @@
+#! /bin/sh
+cp ngtcltk/ngnewdelete.* libsrc/interface/
+
+MACHINE=LINUX
+export MACHINE
+make -C libsrc/csg
+make -C libsrc/general
+make -C libsrc/geom2d
+make -C libsrc/gprim
+make -C libsrc/interface
+make -C libsrc/linalg
+make -C libsrc/meshing
+make -C libsrc/opti
+make -C libsrc/stlgeom
+
+if [ ! -d install ] ; then
+ mkdir install
+fi
+
+cp -r lib install/
+
+if [ ! -d install/include ] ; then
+ mkdir install/include
+fi
+
+cp libsrc/interface/nglib.h install/include

File diff suppressed because it is too large Load Diff

45
src/NETGEN/netgen45lib64.patch Executable file
View File

@ -0,0 +1,45 @@
diff -ur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
--- netgen-4.5/libsrc/makefile.inc 2006-04-27 13:12:54.000000000 +0400
+++ netgen-4.5/libsrc/makefile.inc 2006-09-05 14:16:32.000000000 +0400
@@ -14,7 +14,7 @@
#
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
#
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
+CPLUSPLUSFLAGS1 = -c -m64 -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
-DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
#
ARFLAGS = r
diff -ur netgen-4.5.old/libsrc/makefile.mach.LINUX64 netgen-4.5.new/libsrc/makefile.mach.LINUX64
--- netgen-4.5/libsrc/makefile.mach.LINUX64 2006-03-29 15:09:32.000000000 +0400
+++ netgen-4.5/libsrc/makefile.mach.LINUX64 2006-09-07 15:48:39.000000000 +0400
@@ -11,7 +11,7 @@
#
#
CFLAGS2 =
-CPLUSPLUSFLAGS2 = -pg -march=nocona -O2 -DLINUX -DOPENGL \
+CPLUSPLUSFLAGS2 = -pg -march=nocona -O2 -DLINUX \
-ftemplate-depth-99 -finline-limit=100000 \
-fforce-addr -funroll-loops \
-DTRAFO -DNGSOLVE -DnoADDON -DnoLAPACK -DnoFAST \
@@ -23,7 +23,7 @@
#
#
-LINKFLAGS2 = -pg -L/usr/openwin/lib64 -L/usr/X11R6/lib64 -L/usr/lib/GL3.5 -L/usr/lib64
+LINKFLAGS2 = -fPIC -pg -L/usr/openwin/lib64 -L/usr/X11R6/lib64 -L/usr/lib/GL3.5 -L/usr/lib64
SYSLIB2 = -lstdc++
diff -ur netgen-4.5.old/Makefile netgen-4.5.new/Makefile
--- netgen-4.5/Makefile 2006-03-29 15:09:12.000000000 +0400
+++ netgen-4.5/Makefile 2006-09-07 15:46:07.000000000 +0400
@@ -72,7 +72,7 @@
#
#CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -DOPENGL -I$(METISINC)
+CPLUSPLUSFLAGS1 = -c -m64 -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -I$(METISINC)
LINKFLAGS1 = -lGL -lGLU -lX11 -lXext -lXmu
#

View File

@ -52,6 +52,9 @@ LIB_SERVER_IDL = NETGENPlugin_Algorithm.idl
LIB_CLIENT_IDL = \
SALOME_Component.idl \
SALOME_Comm.idl \
SALOME_Exception.idl \
SALOME_GenericObj.idl \
SMESH_Hypothesis.idl \
GEOM_Gen.idl \
MED.idl
@ -61,6 +64,6 @@ LIB = libNETGENEngine.la
NETGEN_INCLUDES = @NETGEN_INCLUDES@
CPPFLAGS += $(NETGEN_INCLUDES)
CXXFLAGS += $(NETGEN_INCLUDES)
LDFLAGS += -lNETGEN
LDFLAGS += -L${NETGENPLUGIN_ROOT_DIR}/lib@LIB_LOCATION_SUFFIX@/salome -lNETGEN
@CONCLUDE@

View File

@ -0,0 +1,37 @@
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//=============================================================================
// File : NETGENPlugin_Defs.hxx
// Author : Alexander A. BORODIN
#ifndef _NETGENPlugin_DEFS_HXX_
#define _NETGENPlugin_DEFS_HXX_
#ifdef WIN32
#ifdef NETGENPLUGIN_EXPORTS
#define NETGENPLUGIN_EXPORT __declspec( dllexport )
#else
#define NETGENPLUGIN_EXPORT __declspec( dllimport )
#endif
#else
#define NETGENPLUGIN_EXPORT
#endif
#endif

View File

@ -26,10 +26,11 @@
// $Header$
//=============================================================================
using namespace std;
#include <NETGENPlugin_Hypothesis.hxx>
#include <utilities.h>
using namespace std;
//=============================================================================
/*!
*

View File

@ -29,13 +29,17 @@
#ifndef _NETGENPlugin_Hypothesis_HXX_
#define _NETGENPlugin_Hypothesis_HXX_
#include "NETGENPlugin_Defs.hxx"
#include "SMESH_Hypothesis.hxx"
#include "Utils_SALOME_Exception.hxx"
// Parameters for work of NETGEN
//
class NETGENPlugin_Hypothesis: public SMESH_Hypothesis
using namespace std;
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis: public SMESH_Hypothesis
{
public:
@ -87,8 +91,8 @@ public:
// Persistence
virtual ostream & SaveTo(ostream & save);
virtual istream & LoadFrom(istream & load);
friend ostream & operator <<(ostream & save, NETGENPlugin_Hypothesis & hyp);
friend istream & operator >>(istream & load, NETGENPlugin_Hypothesis & hyp);
friend NETGENPLUGIN_EXPORT ostream & operator <<(ostream & save, NETGENPlugin_Hypothesis & hyp);
friend NETGENPLUGIN_EXPORT istream & operator >>(istream & load, NETGENPlugin_Hypothesis & hyp);
/*!
* \brief Does nothing

View File

@ -26,10 +26,11 @@
// $Header$
//=============================================================================
using namespace std;
#include <NETGENPlugin_Hypothesis_2D.hxx>
#include <utilities.h>
using namespace std;
//=============================================================================
/*!
*

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_Hypothesis_2D_HXX_
#define _NETGENPlugin_Hypothesis_2D_HXX_
#include "NETGENPlugin_Defs.hxx"
#include "NETGENPlugin_Hypothesis.hxx"
#include "Utils_SALOME_Exception.hxx"
@ -36,7 +38,7 @@
// This class is just to give 2D dimension, actually
// it inherits all behaviour of the parent
class NETGENPlugin_Hypothesis_2D: public NETGENPlugin_Hypothesis
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis_2D: public NETGENPlugin_Hypothesis
{
public:

View File

@ -25,8 +25,6 @@
// Project : SALOME
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_Hypothesis_2D_i.hxx"
#include "SMESH_Gen.hxx"
#include "SMESH_PythonDump.hxx"
@ -34,6 +32,8 @@ using namespace std;
#include "Utils_CorbaException.hxx"
#include "utilities.h"
using namespace std;
//=============================================================================
/*!
* NETGENPlugin_Hypothesis_2D_i::NETGENPlugin_Hypothesis_2D_i

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_Hypothesis_2D_i_HXX_
#define _NETGENPlugin_Hypothesis_2D_i_HXX_
#include "NETGENPlugin_Defs.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@ -39,7 +41,7 @@ class SMESH_Gen;
// NETGENPlugin parameters hypothesis (2D case)
class NETGENPlugin_Hypothesis_2D_i:
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis_2D_i:
public virtual POA_NETGENPlugin::NETGENPlugin_Hypothesis_2D,
public NETGENPlugin_Hypothesis_i
{

View File

@ -25,8 +25,6 @@
// Project : SALOME
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_Hypothesis_i.hxx"
#include "SMESH_Gen.hxx"
#include "SMESH_PythonDump.hxx"
@ -34,6 +32,8 @@ using namespace std;
#include "Utils_CorbaException.hxx"
#include "utilities.h"
using namespace std;
//=============================================================================
/*!
* NETGENPlugin_Hypothesis_i::NETGENPlugin_Hypothesis_i

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_Hypothesis_i_HXX_
#define _NETGENPlugin_Hypothesis_i_HXX_
#include "NETGENPlugin_Defs.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@ -39,7 +41,7 @@ class SMESH_Gen;
// NETGENPlugin parameters hypothesis
class NETGENPlugin_Hypothesis_i:
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis_i:
public virtual POA_NETGENPlugin::NETGENPlugin_Hypothesis,
public virtual SMESH_Hypothesis_i
{

View File

@ -25,8 +25,6 @@
// Project : SALOME
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_Mesher.hxx"
#include "NETGENPlugin_Hypothesis_2D.hxx"
@ -56,6 +54,8 @@ namespace netgen {
extern MeshingParameters mparam;
}
using namespace std;
//=============================================================================
/*!
*
@ -70,22 +70,27 @@ NETGENPlugin_Mesher::NETGENPlugin_Mesher (SMESHDS_Mesh* meshDS,
_isVolume(isVolume),
_optimize(true)
{
#ifdef WNT
netgen::MeshingParameters& mparams = netgen::GlobalMeshingParameters();
#else
netgen::MeshingParameters& mparams = netgen::mparam;
#endif
// Initialize global NETGEN parameters by default values:
// maximal mesh edge size
netgen::mparam.maxh = NETGENPlugin_Hypothesis::GetDefaultMaxSize();
mparams.maxh = NETGENPlugin_Hypothesis::GetDefaultMaxSize();
// minimal number of segments per edge
netgen::mparam.segmentsperedge = NETGENPlugin_Hypothesis::GetDefaultNbSegPerEdge();
mparams.segmentsperedge = NETGENPlugin_Hypothesis::GetDefaultNbSegPerEdge();
// rate of growth of size between elements
netgen::mparam.grading = NETGENPlugin_Hypothesis::GetDefaultGrowthRate();
mparams.grading = NETGENPlugin_Hypothesis::GetDefaultGrowthRate();
// safety factor for curvatures (elements per radius)
netgen::mparam.curvaturesafety = NETGENPlugin_Hypothesis::GetDefaultNbSegPerRadius();
mparams.curvaturesafety = NETGENPlugin_Hypothesis::GetDefaultNbSegPerRadius();
// create elements of second order
netgen::mparam.secondorder = NETGENPlugin_Hypothesis::GetDefaultSecondOrder() ? 1 : 0;
mparams.secondorder = NETGENPlugin_Hypothesis::GetDefaultSecondOrder() ? 1 : 0;
// quad-dominated surface meshing
if (_isVolume)
netgen::mparam.quad = 0;
mparams.quad = 0;
else
netgen::mparam.quad = NETGENPlugin_Hypothesis_2D::GetDefaultQuadAllowed() ? 1 : 0;
mparams.quad = NETGENPlugin_Hypothesis_2D::GetDefaultQuadAllowed() ? 1 : 0;
}
//=============================================================================
@ -97,21 +102,26 @@ void NETGENPlugin_Mesher::SetParameters(const NETGENPlugin_Hypothesis* hyp)
{
if (hyp)
{
#ifdef WNT
netgen::MeshingParameters& mparams = netgen::GlobalMeshingParameters();
#else
netgen::MeshingParameters& mparams = netgen::mparam;
#endif
// Initialize global NETGEN parameters:
// maximal mesh segment size
netgen::mparam.maxh = hyp->GetMaxSize();
mparams.maxh = hyp->GetMaxSize();
// minimal number of segments per edge
netgen::mparam.segmentsperedge = hyp->GetNbSegPerEdge();
mparams.segmentsperedge = hyp->GetNbSegPerEdge();
// rate of growth of size between elements
netgen::mparam.grading = hyp->GetGrowthRate();
mparams.grading = hyp->GetGrowthRate();
// safety factor for curvatures (elements per radius)
netgen::mparam.curvaturesafety = hyp->GetNbSegPerRadius();
mparams.curvaturesafety = hyp->GetNbSegPerRadius();
// create elements of second order
netgen::mparam.secondorder = hyp->GetSecondOrder() ? 1 : 0;
mparams.secondorder = hyp->GetSecondOrder() ? 1 : 0;
// quad-dominated surface meshing
// only triangles are allowed for volumic mesh
if (!_isVolume)
netgen::mparam.quad = static_cast<const NETGENPlugin_Hypothesis_2D*>
mparams.quad = static_cast<const NETGENPlugin_Hypothesis_2D*>
(hyp)->GetQuadAllowed() ? 1 : 0;
_optimize = hyp->GetOptimize();
}
@ -147,14 +157,19 @@ Standard_Boolean IsEqual(const Link& aLink1, const Link& aLink2)
//=============================================================================
bool NETGENPlugin_Mesher::Compute()
{
#ifdef WNT
netgen::MeshingParameters& mparams = netgen::GlobalMeshingParameters();
#else
netgen::MeshingParameters& mparams = netgen::mparam;
#endif
MESSAGE("Compute with:\n"
" max size = " << netgen::mparam.maxh << "\n"
" segments per edge = " << netgen::mparam.segmentsperedge);
" max size = " << mparams.maxh << "\n"
" segments per edge = " << mparams.segmentsperedge);
MESSAGE("\n"
" growth rate = " << netgen::mparam.grading << "\n"
" elements per radius = " << netgen::mparam.curvaturesafety << "\n"
" second order = " << netgen::mparam.secondorder << "\n"
" quad allowed = " << netgen::mparam.quad);
" growth rate = " << mparams.grading << "\n"
" elements per radius = " << mparams.curvaturesafety << "\n"
" second order = " << mparams.secondorder << "\n"
" quad allowed = " << mparams.quad);
nglib::Ng_Init();
@ -190,7 +205,7 @@ bool NETGENPlugin_Mesher::Compute()
int endWith = (_optimize
? (_isVolume ? netgen::MESHCONST_OPTVOLUME : netgen::MESHCONST_OPTSURFACE)
: netgen::MESHCONST_MESHSURFACE);
char *optstr;
char *optstr = 0;
int err = 0;
try
@ -202,7 +217,7 @@ bool NETGENPlugin_Mesher::Compute()
startWith = endWith = netgen::MESHCONST_MESHVOLUME;
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
}
if (!err && netgen::mparam.secondorder > 0)
if (!err && mparams.secondorder > 0)
{
netgen::OCCRefinementSurfaces ref (occgeo);
ref.MakeSecondOrder (*ngMesh);

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_Mesher_HXX_
#define _NETGENPlugin_Mesher_HXX_
#include "NETGENPlugin_Defs.hxx"
class SMESHDS_Mesh;
class TopoDS_Shape;
class NETGENPlugin_Hypothesis;
@ -37,7 +39,7 @@ class NETGENPlugin_Hypothesis;
* \brief This class calls the NETGEN mesher of OCC geometry
*/
class NETGENPlugin_Mesher
class NETGENPLUGIN_EXPORT NETGENPlugin_Mesher
{
public:
// ---------- PUBLIC METHODS ----------

View File

@ -25,8 +25,6 @@
// Project : SALOME
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_NETGEN_2D.hxx"
#include "NETGENPlugin_Hypothesis_2D.hxx"
#include "NETGENPlugin_Mesher.hxx"
@ -39,6 +37,8 @@ using namespace std;
#include <list>
using namespace std;
//=============================================================================
/*!
*

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_NETGEN_2D_HXX_
#define _NETGENPlugin_NETGEN_2D_HXX_
#include "NETGENPlugin_Defs.hxx"
#include "SMESH_2D_Algo.hxx"
#include "SMESH_Mesh.hxx"
#include "StdMeshers_MaxElementVolume.hxx"
@ -36,7 +38,7 @@
class NETGENPlugin_Hypothesis_2D;
class NETGENPlugin_NETGEN_2D: public SMESH_2D_Algo
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D: public SMESH_2D_Algo
{
public:
NETGENPlugin_NETGEN_2D(int hypId, int studyId, SMESH_Gen* gen);

View File

@ -25,8 +25,6 @@
// Project : SALOME
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_NETGEN_2D3D.hxx"
#include "NETGENPlugin_Hypothesis.hxx"
#include "NETGENPlugin_Mesher.hxx"
@ -39,6 +37,8 @@ using namespace std;
#include <list>
using namespace std;
//=============================================================================
/*!
*

View File

@ -29,6 +29,8 @@
#ifndef _NETGENPlugin_NETGEN_2D3D_HXX_
#define _NETGENPlugin_NETGEN_2D3D_HXX_
#include "NETGENPlugin_Defs.hxx"
#include "SMESH_3D_Algo.hxx"
#include "SMESH_Mesh.hxx"
#include "StdMeshers_MaxElementVolume.hxx"
@ -36,7 +38,7 @@
class NETGENPlugin_Hypothesis;
class NETGENPlugin_NETGEN_2D3D: public SMESH_3D_Algo
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D3D: public SMESH_3D_Algo
{
public:
NETGENPlugin_NETGEN_2D3D(int hypId, int studyId, SMESH_Gen* gen);

View File

@ -24,13 +24,14 @@
// Module : NETGENPlugin
// $Header$
using namespace std;
#include "NETGENPlugin_NETGEN_2D3D_i.hxx"
#include "SMESH_Gen.hxx"
#include "Utils_CorbaException.hxx"
#include "utilities.h"
using namespace std;
//=============================================================================
/*!
* NETGENPlugin_NETGEN_2D3D_i::NETGENPlugin_NETGEN_2D3D_i

View File

@ -27,6 +27,8 @@
#ifndef _NETGENPlugin_NETGEN_2D3D_I_HXX_
#define _NETGENPlugin_NETGEN_2D3D_I_HXX_
#include "NETGENPlugin_Defs.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@ -36,7 +38,7 @@
// ======================================================
// NETGEN 3d algorithm
// ======================================================
class NETGENPlugin_NETGEN_2D3D_i:
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D3D_i:
public virtual POA_NETGENPlugin::NETGENPlugin_NETGEN_2D3D,
public virtual SMESH_3D_Algo_i
{

View File

@ -24,13 +24,14 @@
// Module : NETGENPlugin
// $Header$
using namespace std;
#include "NETGENPlugin_NETGEN_2D_i.hxx"
#include "SMESH_Gen.hxx"
#include "Utils_CorbaException.hxx"
#include "utilities.h"
using namespace std;
//=============================================================================
/*!
* NETGENPlugin_NETGEN_2D_i::NETGENPlugin_NETGEN_2D_i

View File

@ -27,6 +27,8 @@
#ifndef _NETGENPlugin_NETGEN_2D_I_HXX_
#define _NETGENPlugin_NETGEN_2D_I_HXX_
#include "NETGENPlugin_Defs.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@ -36,7 +38,7 @@
// ======================================================
// NETGEN 3d algorithm
// ======================================================
class NETGENPlugin_NETGEN_2D_i:
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D_i:
public virtual POA_NETGENPlugin::NETGENPlugin_NETGEN_2D,
public virtual SMESH_2D_Algo_i
{

View File

@ -26,8 +26,6 @@
// Copyright : CEA 2003
// $Header$
//=============================================================================
using namespace std;
#include "NETGENPlugin_NETGEN_3D.hxx"
#include "SMESH_Gen.hxx"

View File

@ -23,19 +23,20 @@
// Created : lundi 27 Janvier 2003
// Author : Nadir BOUHAMOU (CEA)
// Project : SALOME
// Copyright : CEA 2003
// $Header$
//=============================================================================
#ifndef _NETGENPlugin_NETGEN_3D_HXX_
#define _NETGENPlugin_NETGEN_3D_HXX_
#include "NETGENPlugin_Defs.hxx"
#include "SMESH_3D_Algo.hxx"
#include "SMESH_Mesh.hxx"
#include "StdMeshers_MaxElementVolume.hxx"
#include "Utils_SALOME_Exception.hxx"
class NETGENPlugin_NETGEN_3D: public SMESH_3D_Algo
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_3D: public SMESH_3D_Algo
{
public:
NETGENPlugin_NETGEN_3D(int hypId, int studyId, SMESH_Gen* gen);

View File

@ -27,13 +27,14 @@
// Module : SMESH
// $Header$
using namespace std;
#include "NETGENPlugin_NETGEN_3D_i.hxx"
#include "SMESH_Gen.hxx"
#include "Utils_CorbaException.hxx"
#include "utilities.h"
using namespace std;
//=============================================================================
/*!
* NETGENPlugin_NETGEN_3D_i::NETGENPlugin_NETGEN_3D_i

View File

@ -30,6 +30,8 @@
#ifndef _NETGENPlugin_NETGEN_3D_I_HXX_
#define _NETGENPlugin_NETGEN_3D_I_HXX_
#include "NETGENPlugin_Defs.hxx"
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@ -39,7 +41,7 @@
// ======================================================
// NETGEN 3d algorithm
// ======================================================
class NETGENPlugin_NETGEN_3D_i:
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_3D_i:
public virtual POA_NETGENPlugin::NETGENPlugin_NETGEN_3D,
public virtual SMESH_3D_Algo_i
{

View File

@ -26,7 +26,6 @@
// Module : SMESH
// $Header$
using namespace std;
#include "utilities.h"
#include "NETGENPlugin_NETGEN_3D_i.hxx"
@ -49,6 +48,7 @@ template <class T> class NETGENPlugin_Creator_i:public HypothesisCreator_i<T>
extern "C"
{
NETGENPLUGIN_EXPORT
GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName)
{
MESSAGE("GetHypothesisCreator " << aHypName);

View File

@ -0,0 +1,20 @@
# This is a Qt message file in .po format. Each msgid starts with
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
# would be translated to "Pub", not "Foo::Pub".
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
"PO-Revision-Date: YYYY-MM-DD\n"
"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
#-----------------------------------------------------------
# ObjectBrowser
#-----------------------------------------------------------
#mesh_tree_algo_netgen
msgid "ICON_SMESH_TREE_ALGO_NETGEN_3D"
msgstr "mesh_tree_algo_tetra.png"
#msgstr "mesh_tree_algo_netgen.png"