mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-25 08:50:35 +05:00
[Bug PAL7444] display mesh takes a lot of more memory in 2.1.0 than in 2.0.0.
This commit is contained in:
parent
1eea5485d1
commit
c111d3b520
@ -45,7 +45,7 @@ EXPORT_HEADERS= \
|
|||||||
SMESH_subMesh_i.hxx \
|
SMESH_subMesh_i.hxx \
|
||||||
SMESH_Mesh_i.hxx \
|
SMESH_Mesh_i.hxx \
|
||||||
SMESH_Hypothesis_i.hxx \
|
SMESH_Hypothesis_i.hxx \
|
||||||
SMESH.hxx
|
SMESH.hxx SMESH_Base.hxx SMESH_Factory.hxx
|
||||||
|
|
||||||
EXPORT_PYSCRIPTS = smeshpy.py
|
EXPORT_PYSCRIPTS = smeshpy.py
|
||||||
|
|
||||||
@ -69,7 +69,8 @@ LIB_SRC = \
|
|||||||
SMESH_3D_Algo_i.cxx \
|
SMESH_3D_Algo_i.cxx \
|
||||||
SMESH_Filter_i.cxx \
|
SMESH_Filter_i.cxx \
|
||||||
SMESH_Group_i.cxx \
|
SMESH_Group_i.cxx \
|
||||||
SMESH_Pattern_i.cxx
|
SMESH_Pattern_i.cxx \
|
||||||
|
SMESH_DumpPython.cxx
|
||||||
|
|
||||||
LIB_SERVER_IDL = SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Mesh.idl \
|
LIB_SERVER_IDL = SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Mesh.idl \
|
||||||
SALOME_Component.idl SALOME_Exception.idl \
|
SALOME_Component.idl SALOME_Exception.idl \
|
||||||
|
@ -418,6 +418,7 @@ void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
|
|||||||
if ( myStudyContextMap.find( studyId ) == myStudyContextMap.end() ) {
|
if ( myStudyContextMap.find( studyId ) == myStudyContextMap.end() ) {
|
||||||
myStudyContextMap[ studyId ] = new StudyContext;
|
myStudyContextMap[ studyId ] = new StudyContext;
|
||||||
}
|
}
|
||||||
|
SetStudyID(studyId);
|
||||||
// set current study for geom engine
|
// set current study for geom engine
|
||||||
/*
|
/*
|
||||||
if ( !CORBA::is_nil( GetGeomEngine() ) )
|
if ( !CORBA::is_nil( GetGeomEngine() ) )
|
||||||
@ -490,6 +491,9 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMesh( GEOM::GEOM_Object_ptr theShapeObj
|
|||||||
throw ( SALOME::SALOME_Exception )
|
throw ( SALOME::SALOME_Exception )
|
||||||
{
|
{
|
||||||
Unexpect aCatch(SALOME_SalomeException);
|
Unexpect aCatch(SALOME_SalomeException);
|
||||||
|
using namespace SMESH;
|
||||||
|
FactoryHandler aFactory;
|
||||||
|
|
||||||
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
|
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
|
||||||
// create mesh
|
// create mesh
|
||||||
SMESH::SMESH_Mesh_var mesh = this->createMesh();
|
SMESH::SMESH_Mesh_var mesh = this->createMesh();
|
||||||
@ -500,6 +504,15 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMesh( GEOM::GEOM_Object_ptr theShapeObj
|
|||||||
// publish mesh in the study
|
// publish mesh in the study
|
||||||
if ( CanPublishInStudy( mesh ) )
|
if ( CanPublishInStudy( mesh ) )
|
||||||
PublishMesh( myCurrentStudy, mesh.in() );
|
PublishMesh( myCurrentStudy, mesh.in() );
|
||||||
|
|
||||||
|
CORBA::String_var anEntry = theShapeObject->GetEntry();
|
||||||
|
aFactory->Register(TInvocationID(TResultCont(1,meshServant->GetID()),
|
||||||
|
GetID(),
|
||||||
|
"SMESH_Mesh",
|
||||||
|
"CreateMesh",
|
||||||
|
TArgumentCont(),
|
||||||
|
anEntry.in()));
|
||||||
|
|
||||||
return mesh._retn();
|
return mesh._retn();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,6 +555,9 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
|
|||||||
throw ( SALOME::SALOME_Exception )
|
throw ( SALOME::SALOME_Exception )
|
||||||
{
|
{
|
||||||
Unexpect aCatch(SALOME_SalomeException);
|
Unexpect aCatch(SALOME_SalomeException);
|
||||||
|
using namespace SMESH;
|
||||||
|
FactoryHandler aFactory;
|
||||||
|
|
||||||
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
|
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
|
||||||
|
|
||||||
// Retrieve mesh names from the file
|
// Retrieve mesh names from the file
|
||||||
@ -554,6 +570,7 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
|
|||||||
theStatus = (SMESH::DriverMED_ReadStatus)aStatus;
|
theStatus = (SMESH::DriverMED_ReadStatus)aStatus;
|
||||||
if(theStatus == SMESH::DRS_OK){
|
if(theStatus == SMESH::DRS_OK){
|
||||||
aResult->length( aNames.size() );
|
aResult->length( aNames.size() );
|
||||||
|
TResultCont aResultCont;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
// Iterate through all meshes and create mesh objects
|
// Iterate through all meshes and create mesh objects
|
||||||
@ -574,7 +591,15 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
|
|||||||
theStatus = status1;
|
theStatus = status1;
|
||||||
|
|
||||||
aResult[i++] = SMESH::SMESH_Mesh::_duplicate( mesh );
|
aResult[i++] = SMESH::SMESH_Mesh::_duplicate( mesh );
|
||||||
|
|
||||||
|
aResultCont.push_back(meshServant->GetID());
|
||||||
}
|
}
|
||||||
|
aFactory->Register(TInvocationID(aResultCont,
|
||||||
|
GetID(),
|
||||||
|
"SMESH_Mesh",
|
||||||
|
"CreateMeshesFromMED",
|
||||||
|
TArgumentCont(1,std::string(theFileName)),
|
||||||
|
""));
|
||||||
}
|
}
|
||||||
return aResult._retn();
|
return aResult._retn();
|
||||||
}
|
}
|
||||||
@ -778,6 +803,10 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
|
|||||||
{
|
{
|
||||||
INFOS( "SMESH_Gen_i::Save" );
|
INFOS( "SMESH_Gen_i::Save" );
|
||||||
|
|
||||||
|
CORBA::Boolean anIsValidScript;
|
||||||
|
SALOMEDS::Study_var aStudy = theComponent->GetStudy();
|
||||||
|
SALOMEDS::TMPFile_var aDump = DumpPython(aStudy,false,anIsValidScript);
|
||||||
|
|
||||||
// ASSERT( theComponent->GetStudy()->StudyId() == myCurrentStudy->StudyId() )
|
// ASSERT( theComponent->GetStudy()->StudyId() == myCurrentStudy->StudyId() )
|
||||||
// san -- in case <myCurrentStudy> differs from theComponent's study,
|
// san -- in case <myCurrentStudy> differs from theComponent's study,
|
||||||
// use that of the component
|
// use that of the component
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
|
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
#include "GEOM_Client.hxx"
|
#include "GEOM_Client.hxx"
|
||||||
|
#include "SMESH_Factory.hxx"
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
@ -119,7 +120,8 @@ private:
|
|||||||
// ==========================================================
|
// ==========================================================
|
||||||
class SMESH_Gen_i:
|
class SMESH_Gen_i:
|
||||||
public virtual POA_SMESH::SMESH_Gen,
|
public virtual POA_SMESH::SMESH_Gen,
|
||||||
public virtual Engines_Component_i
|
public virtual Engines_Component_i,
|
||||||
|
public virtual SMESH::Factory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Get last created instance of the class
|
// Get last created instance of the class
|
||||||
@ -207,6 +209,11 @@ public:
|
|||||||
// ****************************************************
|
// ****************************************************
|
||||||
// Interface inherited methods (from SALOMEDS::Driver)
|
// Interface inherited methods (from SALOMEDS::Driver)
|
||||||
// ****************************************************
|
// ****************************************************
|
||||||
|
virtual
|
||||||
|
SALOMEDS::TMPFile*
|
||||||
|
DumpPython(CORBA::Object_ptr theStudy,
|
||||||
|
CORBA::Boolean theIsPublished,
|
||||||
|
CORBA::Boolean& theIsValidScript);
|
||||||
|
|
||||||
// Save SMESH data
|
// Save SMESH data
|
||||||
SALOMEDS::TMPFile* Save( SALOMEDS::SComponent_ptr theComponent,
|
SALOMEDS::TMPFile* Save( SALOMEDS::SComponent_ptr theComponent,
|
||||||
@ -371,4 +378,5 @@ private:
|
|||||||
SALOMEDS::Study_var myCurrentStudy; // Current study
|
SALOMEDS::Study_var myCurrentStudy; // Current study
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "SMESH_subMesh.hxx"
|
#include "SMESH_subMesh.hxx"
|
||||||
|
|
||||||
#include "SALOME_GenericObj_i.hh"
|
#include "SALOME_GenericObj_i.hh"
|
||||||
|
#include "SMESH_Factory.hxx"
|
||||||
|
|
||||||
class SMESH_Gen_i;
|
class SMESH_Gen_i;
|
||||||
class SMESH_GroupBase_i;
|
class SMESH_GroupBase_i;
|
||||||
@ -50,7 +51,8 @@ class SMESH_GroupBase_i;
|
|||||||
|
|
||||||
class SMESH_Mesh_i:
|
class SMESH_Mesh_i:
|
||||||
public virtual POA_SMESH::SMESH_Mesh,
|
public virtual POA_SMESH::SMESH_Mesh,
|
||||||
public virtual SALOME::GenericObj_i
|
public virtual SALOME::GenericObj_i,
|
||||||
|
public virtual SMESH::Base
|
||||||
{
|
{
|
||||||
SMESH_Mesh_i();
|
SMESH_Mesh_i();
|
||||||
SMESH_Mesh_i(const SMESH_Mesh_i&);
|
SMESH_Mesh_i(const SMESH_Mesh_i&);
|
||||||
|
Loading…
Reference in New Issue
Block a user