mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-24 08:20:34 +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_Mesh_i.hxx \
|
||||
SMESH_Hypothesis_i.hxx \
|
||||
SMESH.hxx
|
||||
SMESH.hxx SMESH_Base.hxx SMESH_Factory.hxx
|
||||
|
||||
EXPORT_PYSCRIPTS = smeshpy.py
|
||||
|
||||
@ -69,7 +69,8 @@ LIB_SRC = \
|
||||
SMESH_3D_Algo_i.cxx \
|
||||
SMESH_Filter_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 \
|
||||
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() ) {
|
||||
myStudyContextMap[ studyId ] = new StudyContext;
|
||||
}
|
||||
SetStudyID(studyId);
|
||||
// set current study for geom engine
|
||||
/*
|
||||
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 )
|
||||
{
|
||||
Unexpect aCatch(SALOME_SalomeException);
|
||||
using namespace SMESH;
|
||||
FactoryHandler aFactory;
|
||||
|
||||
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
|
||||
// create mesh
|
||||
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
|
||||
if ( CanPublishInStudy( mesh ) )
|
||||
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();
|
||||
}
|
||||
|
||||
@ -542,6 +555,9 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
|
||||
throw ( SALOME::SALOME_Exception )
|
||||
{
|
||||
Unexpect aCatch(SALOME_SalomeException);
|
||||
using namespace SMESH;
|
||||
FactoryHandler aFactory;
|
||||
|
||||
if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
|
||||
|
||||
// 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;
|
||||
if(theStatus == SMESH::DRS_OK){
|
||||
aResult->length( aNames.size() );
|
||||
TResultCont aResultCont;
|
||||
int i = 0;
|
||||
|
||||
// Iterate through all meshes and create mesh objects
|
||||
@ -574,7 +591,15 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
|
||||
theStatus = status1;
|
||||
|
||||
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();
|
||||
}
|
||||
@ -778,6 +803,10 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
|
||||
{
|
||||
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() )
|
||||
// san -- in case <myCurrentStudy> differs from theComponent's study,
|
||||
// use that of the component
|
||||
|
@ -44,6 +44,7 @@
|
||||
|
||||
#include "SMESH_Gen.hxx"
|
||||
#include "GEOM_Client.hxx"
|
||||
#include "SMESH_Factory.hxx"
|
||||
|
||||
#include <map>
|
||||
|
||||
@ -119,7 +120,8 @@ private:
|
||||
// ==========================================================
|
||||
class SMESH_Gen_i:
|
||||
public virtual POA_SMESH::SMESH_Gen,
|
||||
public virtual Engines_Component_i
|
||||
public virtual Engines_Component_i,
|
||||
public virtual SMESH::Factory
|
||||
{
|
||||
public:
|
||||
// Get last created instance of the class
|
||||
@ -207,6 +209,11 @@ public:
|
||||
// ****************************************************
|
||||
// Interface inherited methods (from SALOMEDS::Driver)
|
||||
// ****************************************************
|
||||
virtual
|
||||
SALOMEDS::TMPFile*
|
||||
DumpPython(CORBA::Object_ptr theStudy,
|
||||
CORBA::Boolean theIsPublished,
|
||||
CORBA::Boolean& theIsValidScript);
|
||||
|
||||
// Save SMESH data
|
||||
SALOMEDS::TMPFile* Save( SALOMEDS::SComponent_ptr theComponent,
|
||||
@ -371,4 +378,5 @@ private:
|
||||
SALOMEDS::Study_var myCurrentStudy; // Current study
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "SMESH_subMesh.hxx"
|
||||
|
||||
#include "SALOME_GenericObj_i.hh"
|
||||
#include "SMESH_Factory.hxx"
|
||||
|
||||
class SMESH_Gen_i;
|
||||
class SMESH_GroupBase_i;
|
||||
@ -50,7 +51,8 @@ class SMESH_GroupBase_i;
|
||||
|
||||
class SMESH_Mesh_i:
|
||||
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(const SMESH_Mesh_i&);
|
||||
|
Loading…
Reference in New Issue
Block a user