Join modifications from branch OCC_development_for_3_2_0a2
This commit is contained in:
parent
f197df9d7c
commit
14f4b7bcf8
@ -14,7 +14,7 @@ VPATH=.:@srcdir@:@top_srcdir@/bin:@top_srcdir@/resources:./bin:@top_srcdir@/idl
|
|||||||
|
|
||||||
@COMMENCE@
|
@COMMENCE@
|
||||||
|
|
||||||
SUBDIRS = idl src
|
SUBDIRS = idl src adm_local
|
||||||
|
|
||||||
RESOURCES_FILES = NETGENPlugin.xml
|
RESOURCES_FILES = NETGENPlugin.xml
|
||||||
|
|
||||||
|
41
adm_local/Makefile.in
Normal file
41
adm_local/Makefile.in
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# source path
|
||||||
|
top_srcdir=@top_srcdir@
|
||||||
|
top_builddir=..
|
||||||
|
srcdir=@srcdir@
|
||||||
|
VPATH=.:$(srcdir)/adm_local
|
||||||
|
|
||||||
|
|
||||||
|
all: resources
|
||||||
|
|
||||||
|
install:
|
||||||
|
cp -rf @top_srcdir@/adm_local @prefix@
|
||||||
|
|
||||||
|
bin:
|
||||||
|
|
||||||
|
resources :
|
||||||
|
cp -rf @top_srcdir@/adm_local $(top_builddir)
|
||||||
|
|
||||||
|
inc:
|
||||||
|
|
||||||
|
lib:
|
||||||
|
|
||||||
|
depend:
|
||||||
|
|
||||||
|
depend_idl:
|
||||||
|
|
||||||
|
install-end:
|
||||||
|
|
||||||
|
install-include:
|
||||||
|
|
||||||
|
install-bin:
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
uninstall-idl:
|
||||||
|
|
||||||
|
distclean:
|
||||||
|
|
||||||
|
clean:
|
||||||
|
|
||||||
|
distclean-other:
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
@ -250,18 +250,32 @@ $(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
|
|||||||
|
|
||||||
|
|
||||||
ACLOCAL_SRC = \
|
ACLOCAL_SRC = \
|
||||||
ac_cxx_bool.m4 check_corba.m4 check_vtk.m4 \
|
ac_cxx_bool.m4 check_corba.m4 \
|
||||||
ac_cxx_depend_flag.m4 check_hdf5.m4 enable_pthreads.m4 \
|
ac_cxx_depend_flag.m4 check_hdf5.m4 enable_pthreads.m4 \
|
||||||
ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \
|
ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \
|
||||||
ac_cxx_namespaces.m4 check_omniorb.m4 pyembed.m4 \
|
ac_cxx_namespaces.m4 check_omniorb.m4 pyembed.m4 \
|
||||||
ac_cxx_partial_specialization.m4 check_opengl.m4 python.m4 \
|
ac_cxx_partial_specialization.m4 python.m4 \
|
||||||
ac_cxx_typename.m4 check_pthreads.m4 check_cas.m4 \
|
ac_cxx_typename.m4 check_pthreads.m4 check_cas.m4 \
|
||||||
ac_cc_warnings.m4 check_qt.m4 check_swig.m4 \
|
ac_cc_warnings.m4 check_swig.m4 check_boost.m4
|
||||||
check_boost.m4
|
|
||||||
|
|
||||||
#ifeq (@WITHNETGEN@,yes)
|
#ifeq (@WITHNETGEN@,yes)
|
||||||
# ACLOCAL_SRC += check_Netgen.m4
|
# ACLOCAL_SRC += check_Netgen.m4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%)
|
ACLOCAL_GUI = \
|
||||||
cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files
|
check_vtk.m4 check_opengl.m4 check_qt.m4 \
|
||||||
|
check_GUI.m4 check_corba_in_GUI.m4
|
||||||
|
|
||||||
|
ACLOCAL_GEOM = check_GEOM.m4
|
||||||
|
|
||||||
|
ACLOCAL_SMESH = check_SMESH.m4
|
||||||
|
|
||||||
|
$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
|
||||||
|
$(ACLOCAL_GUI:%=@GUI_ROOT_DIR@/adm_local/unix/config_files/%) \
|
||||||
|
$(ACLOCAL_GEOM:%=@GEOM_ROOT_DIR@/adm_local/unix/config_files/%) \
|
||||||
|
$(ACLOCAL_SMESH:%=@SMESH_ROOT_DIR@/adm_local/unix/config_files/%)
|
||||||
|
cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
|
||||||
|
-I @GUI_ROOT_DIR@/adm_local/unix/config_files \
|
||||||
|
-I @GEOM_ROOT_DIR@/adm_local/unix/config_files \
|
||||||
|
-I @SMESH_ROOT_DIR@/adm_local/unix/config_files
|
||||||
|
|
||||||
|
@ -26,6 +26,38 @@ fi
|
|||||||
# echo "failed : KERNEL_SRC variable is not correct !"
|
# echo "failed : KERNEL_SRC variable is not correct !"
|
||||||
# exit
|
# exit
|
||||||
#fi
|
#fi
|
||||||
|
########################################################################
|
||||||
|
# Test if the GUI_ROOT_DIR is set correctly
|
||||||
|
|
||||||
|
if test ! -d "${GUI_ROOT_DIR}"; then
|
||||||
|
echo "failed : GUI_ROOT_DIR variable is not correct !"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Test if the MED_ROOT_DIR is set correctly
|
||||||
|
|
||||||
|
if test ! -d "${MED_ROOT_DIR}"; then
|
||||||
|
echo "failed : MED_ROOT_DIR variable is not correct !"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Test if the GEOM_ROOT_DIR is set correctly
|
||||||
|
|
||||||
|
if test ! -d "${GEOM_ROOT_DIR}"; then
|
||||||
|
echo "failed : GEOM_ROOT_DIR variable is not correct !"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Test if the SMESH_ROOT_DIR is set correctly
|
||||||
|
|
||||||
|
if test ! -d "${SMESH_ROOT_DIR}"; then
|
||||||
|
echo "failed : SMESH_ROOT_DIR variable is not correct !"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# find_in - utility function
|
# find_in - utility function
|
||||||
#
|
#
|
||||||
@ -203,7 +235,11 @@ else
|
|||||||
echo -n "Creating 'configure' script ... "
|
echo -n "Creating 'configure' script ... "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
aclocal --acdir=adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
|
aclocal -I adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
|
||||||
|
-I ${GUI_ROOT_DIR}/adm_local/unix/config_files \
|
||||||
|
-I ${MED_ROOT_DIR}/adm_local/unix/config_files \
|
||||||
|
-I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
|
||||||
|
-I ${SMESH_ROOT_DIR}/adm_local/unix/config_files
|
||||||
if autoconf
|
if autoconf
|
||||||
then
|
then
|
||||||
echo "done"
|
echo "done"
|
||||||
|
@ -257,6 +257,26 @@ echo
|
|||||||
|
|
||||||
CHECK_HTML_GENERATORS
|
CHECK_HTML_GENERATORS
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo ---------------------------------------------
|
||||||
|
echo Testing GUI
|
||||||
|
echo ---------------------------------------------
|
||||||
|
echo
|
||||||
|
|
||||||
|
CHECK_SALOME_GUI
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo ---------------------------------------------
|
||||||
|
echo Testing full GUI
|
||||||
|
echo ---------------------------------------------
|
||||||
|
echo
|
||||||
|
|
||||||
|
CHECK_CORBA_IN_GUI
|
||||||
|
if test "x${CORBA_IN_GUI}" != "xyes"; then
|
||||||
|
echo "failed : For configure NETGENPLUGIN module necessary full GUI !"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo ---------------------------------------------
|
echo ---------------------------------------------
|
||||||
echo Testing Kernel
|
echo Testing Kernel
|
||||||
|
@ -17,6 +17,7 @@ using namespace std;
|
|||||||
#include "SMESHDS_Mesh.hxx"
|
#include "SMESHDS_Mesh.hxx"
|
||||||
#include "SMDS_MeshElement.hxx"
|
#include "SMDS_MeshElement.hxx"
|
||||||
#include "SMDS_MeshNode.hxx"
|
#include "SMDS_MeshNode.hxx"
|
||||||
|
#include "StdMeshers_Helper.hxx"
|
||||||
|
|
||||||
#include <BRep_Tool.hxx>
|
#include <BRep_Tool.hxx>
|
||||||
#include <TopExp.hxx>
|
#include <TopExp.hxx>
|
||||||
@ -137,6 +138,9 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
// get triangles on aShell and make a map of nodes to Netgen node IDs
|
// get triangles on aShell and make a map of nodes to Netgen node IDs
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
|
|
||||||
|
StdMeshers_Helper* myTool = new StdMeshers_Helper(aMesh);
|
||||||
|
bool _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
|
||||||
|
|
||||||
typedef map< const SMDS_MeshNode*, int> TNodeToIDMap;
|
typedef map< const SMDS_MeshNode*, int> TNodeToIDMap;
|
||||||
TNodeToIDMap nodeToNetgenID;
|
TNodeToIDMap nodeToNetgenID;
|
||||||
list< const SMDS_MeshElement* > triangles;
|
list< const SMDS_MeshElement* > triangles;
|
||||||
@ -161,8 +165,10 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
{
|
{
|
||||||
// check element
|
// check element
|
||||||
const SMDS_MeshElement* elem = iteratorElem->next();
|
const SMDS_MeshElement* elem = iteratorElem->next();
|
||||||
if ( !elem || elem->NbNodes() != 3 ) {
|
if ( !elem ||
|
||||||
|
!( elem->NbNodes()==3 || ( _quadraticMesh && elem->NbNodes()==6) ) ) {
|
||||||
INFOS( "NETGENPlugin_NETGEN_3D::Compute(), bad mesh");
|
INFOS( "NETGENPlugin_NETGEN_3D::Compute(), bad mesh");
|
||||||
|
delete myTool; myTool = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// keep a triangle
|
// keep a triangle
|
||||||
@ -173,6 +179,8 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
while ( triangleNodesIt->more() ) {
|
while ( triangleNodesIt->more() ) {
|
||||||
const SMDS_MeshNode * node =
|
const SMDS_MeshNode * node =
|
||||||
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
||||||
|
if(myTool->IsMedium(node))
|
||||||
|
continue;
|
||||||
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
||||||
}
|
}
|
||||||
#ifdef _DEBUG_
|
#ifdef _DEBUG_
|
||||||
@ -245,6 +253,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
if ( isDegen ) // all nodes on a degen edge get one netgen ID
|
if ( isDegen ) // all nodes on a degen edge get one netgen ID
|
||||||
*(shId_ngId->second) = n_id->second;
|
*(shId_ngId->second) = n_id->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set triangles
|
// set triangles
|
||||||
list< const SMDS_MeshElement* >::iterator tria = triangles.begin();
|
list< const SMDS_MeshElement* >::iterator tria = triangles.begin();
|
||||||
list< bool >::iterator reverse = isReversed.begin();
|
list< bool >::iterator reverse = isReversed.begin();
|
||||||
@ -255,6 +264,8 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
while ( triangleNodesIt->more() ) {
|
while ( triangleNodesIt->more() ) {
|
||||||
const SMDS_MeshNode * node =
|
const SMDS_MeshNode * node =
|
||||||
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
||||||
|
if(myTool->IsMedium(node))
|
||||||
|
continue;
|
||||||
Netgen_triangle[ *reverse ? 2 - i : i ] = nodeToNetgenID[ node ];
|
Netgen_triangle[ *reverse ? 2 - i : i ] = nodeToNetgenID[ node ];
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
@ -280,7 +291,8 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
status = Ng_GenerateVolumeMesh(Netgen_mesh, &Netgen_param);
|
status = Ng_GenerateVolumeMesh(Netgen_mesh, &Netgen_param);
|
||||||
} catch (...) {
|
}
|
||||||
|
catch (...) {
|
||||||
MESSAGE("An exception has been caught during the Volume Mesh Generation ...");
|
MESSAGE("An exception has been caught during the Volume Mesh Generation ...");
|
||||||
status = NG_VOLUME_FAILURE;
|
status = NG_VOLUME_FAILURE;
|
||||||
}
|
}
|
||||||
@ -303,8 +315,9 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
// vector of nodes in which node index == netgen ID
|
// vector of nodes in which node index == netgen ID
|
||||||
vector< const SMDS_MeshNode* > nodeVec ( Netgen_NbOfNodesNew + 1 );
|
vector< const SMDS_MeshNode* > nodeVec ( Netgen_NbOfNodesNew + 1 );
|
||||||
// insert old nodes into nodeVec
|
// insert old nodes into nodeVec
|
||||||
for ( n_id = nodeToNetgenID.begin(); n_id != nodeToNetgenID.end(); ++n_id )
|
for ( n_id = nodeToNetgenID.begin(); n_id != nodeToNetgenID.end(); ++n_id ) {
|
||||||
nodeVec.at( n_id->second ) = n_id->first;
|
nodeVec.at( n_id->second ) = n_id->first;
|
||||||
|
}
|
||||||
// create and insert new nodes into nodeVec
|
// create and insert new nodes into nodeVec
|
||||||
int nodeIndex = Netgen_NbOfNodes + 1;
|
int nodeIndex = Netgen_NbOfNodes + 1;
|
||||||
int shapeID = meshDS->ShapeToIndex( aShape );
|
int shapeID = meshDS->ShapeToIndex( aShape );
|
||||||
@ -322,7 +335,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
for ( int elemIndex = 1; elemIndex <= Netgen_NbOfTetra; ++elemIndex )
|
for ( int elemIndex = 1; elemIndex <= Netgen_NbOfTetra; ++elemIndex )
|
||||||
{
|
{
|
||||||
Ng_GetVolumeElement(Netgen_mesh, elemIndex, Netgen_tetrahedron);
|
Ng_GetVolumeElement(Netgen_mesh, elemIndex, Netgen_tetrahedron);
|
||||||
SMDS_MeshVolume * elt = meshDS->AddVolume (nodeVec.at( Netgen_tetrahedron[0] ),
|
SMDS_MeshVolume * elt = myTool->AddVolume (nodeVec.at( Netgen_tetrahedron[0] ),
|
||||||
nodeVec.at( Netgen_tetrahedron[1] ),
|
nodeVec.at( Netgen_tetrahedron[1] ),
|
||||||
nodeVec.at( Netgen_tetrahedron[2] ),
|
nodeVec.at( Netgen_tetrahedron[2] ),
|
||||||
nodeVec.at( Netgen_tetrahedron[3] ));
|
nodeVec.at( Netgen_tetrahedron[3] ));
|
||||||
@ -333,6 +346,8 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
Ng_DeleteMesh(Netgen_mesh);
|
Ng_DeleteMesh(Netgen_mesh);
|
||||||
Ng_Exit();
|
Ng_Exit();
|
||||||
|
|
||||||
|
delete myTool; myTool = 0;
|
||||||
|
|
||||||
return isOK;
|
return isOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user