// VISU OBJECT : interactive object for VISU entities implementation
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
//
//
// File : VISU_PrsObject_i.cxx
// Author : Alexey PETROV
// Module : VISU
-#include "VISU_MeshPL.hxx"
-#include "VISU_Result_i.hh"
#include "VISU_Mesh_i.hh"
+
+#include "VISU_Result_i.hh"
+#include "VISU_ViewManager_i.hh"
+
+#include "VISU_MeshPL.hxx"
#include "VISU_MeshAct.h"
using namespace VISU;
#ifdef _DEBUG_
static int MYDEBUG = 0;
-static int MYDEBUGWITHFILES = 0;
#else
static int MYDEBUG = 0;
-static int MYDEBUGWITHFILES = 0;
#endif
static int INCMEMORY = 4;
const char* VISU::Mesh_i::GetComment() const { return myComment.c_str();}
-VISU::Mesh_i::Mesh_i(Result_i* theResult, SALOMEDS::SObject_ptr theSObject) :
- PrsObject_i(theResult->GetStudyDocument()),
- Prs3d_i(theResult,theSObject)
+VISU::Mesh_i::
+Mesh_i(Result_i* theResult) :
+ PrsObject_i(theResult->GetStudyDocument()),
+ Prs3d_i(theResult,false),
+ myMeshPL(VISU_MeshPL::New())
+{
+ myPipeLine = myMeshPL;
+}
+
+
+VISU::Mesh_i::
+Mesh_i(Result_i* theResult,
+ SALOMEDS::SObject_ptr theSObject) :
+ PrsObject_i(theResult->GetStudyDocument()),
+ Prs3d_i(theResult,theSObject),
+ myMeshPL(VISU_MeshPL::New())
{
- myPipeLine = myMeshPL = VISU_MeshPL::New();;
+ myPipeLine = myMeshPL;
}
-void VISU::Mesh_i::RemoveFromStudy(){
+void VISU::Mesh_i::RemoveFromStudy()
+{
+ VISU::DeleteActors(this);
VISU::RemoveFromStudy(mySObject);
}
-void VISU::Mesh_i::SameAs(const Mesh_i* theOrigin){
+void VISU::Mesh_i::SameAs (const Mesh_i* theOrigin)
+{
return; // "SameAs" command for mesh is not valid in current architecture
}
-int VISU::Mesh_i::IsPossible(Result_i* theResult, const char* theMeshName, Entity theEntity, const char* theFamilyName){
+int VISU::Mesh_i::IsPossible (Result_i* theResult, const char* theMeshName,
+ Entity theEntity, const char* theFamilyName)
+{
try{
- INFOS("Mesh_i::IsPossible - theMeshName = '"<<theMeshName<<"'; theEntity = "<<theEntity<<"; theFamilyName = '"<<theFamilyName<<"'");
+ MESSAGE("Mesh_i::IsPossible - theMeshName = '"<<theMeshName<<"'; theEntity = "<<theEntity<<"; theFamilyName = '"<<theFamilyName<<"'");
float aSize = INCMEMORY*
theResult->GetInput()->GetMeshOnEntitySize(theMeshName,(VISU::TEntity)theEntity,theFamilyName);
bool aResult = VISU_PipeLine::CheckAvailableMemory(aSize);
- INFOS("Mesh_i::IsPossible - CheckAvailableMemory = "<<float(aSize)<<"; aResult = "<<aResult);
+ MESSAGE("Mesh_i::IsPossible - CheckAvailableMemory = "<<float(aSize)<<"; aResult = "<<aResult);
return aResult;
- }catch(std::runtime_error& exc){
- INFOS("Follow exception was accured :\n"<<exc.what());
+ }catch(std::exception& exc){
+ INFOS("Follow exception was occured :\n"<<exc.what());
}catch(...){
- INFOS("Unknown exception was accured!");
+ INFOS("Unknown exception was occured!");
}
return 0;
}
-VISU::Storable* VISU::Mesh_i::Create(const char* theMeshName, Entity theEntity, const char* theFamilyName){
+VISU::Storable* VISU::Mesh_i::Create (const char* theMeshName,
+ Entity theEntity,
+ const char* theFamilyName)
+{
myMeshName = theMeshName;
- myEntity = VISU::TEntity(theEntity);
+ //jfa IPAL9284:myEntity = VISU::TEntity(theEntity);
+ myEntity = int(theEntity);//jfa IPAL9284
mySubMeshName = theFamilyName;
return Build(false);
}
-int VISU::Mesh_i::IsPossible(Result_i* theResult, const char* theMeshName, const char* theGroupName){
+int VISU::Mesh_i::IsPossible (Result_i* theResult, const char* theMeshName, const char* theGroupName)
+{
try{
- INFOS("Mesh_i::IsPossible - theMeshName = '"<<theMeshName<<"'; theGroupName = '"<<theGroupName<<"'");
+ MESSAGE("Mesh_i::IsPossible - theMeshName = '"<<theMeshName<<"'; theGroupName = '"<<theGroupName<<"'");
float aSize = INCMEMORY*
theResult->GetInput()->GetMeshOnGroupSize(theMeshName,theGroupName);
bool aResult = VISU_PipeLine::CheckAvailableMemory(aSize);
INFOS("Mesh_i::IsPossible - CheckAvailableMemory = "<<float(aSize)<<"; aResult = "<<aResult);
return aResult;
- }catch(std::runtime_error& exc){
- INFOS("Follow exception was accured :\n"<<exc.what());
+ }catch(std::exception& exc){
+ INFOS("Follow exception was occured :\n"<<exc.what());
}catch(...){
- INFOS("Unknown exception was accured!");
+ INFOS("Unknown exception was occured!");
}
return 0;
}
-VISU::Storable* VISU::Mesh_i::Create(const char* theMeshName, const char* theGroupName){
+VISU::Storable* VISU::Mesh_i::Create (const char* theMeshName,
+ const char* theGroupName)
+{
myMeshName = theMeshName;
- myEntity = VISU::TEntity(-1);
+ //jfa IPAL9284:myEntity = VISU::TEntity(-1);
+ myEntity = -1;//jfa IPAL9284
mySubMeshName = theGroupName;
return Build(false);
}
VISU::Storable* VISU::Mesh_i::Restore(const Storable::TRestoringMap& theMap)
- throw(std::logic_error&)
{
Prs3d_i::Restore(theMap);
myMeshName = VISU::Storable::FindValue(theMap,"myMeshName").latin1();
- myEntity = (VISU::TEntity)VISU::Storable::FindValue(theMap,"myEntity").toInt();
+ //jfa IPAL9284:myEntity = (VISU::TEntity)VISU::Storable::FindValue(theMap,"myEntity").toInt();
+ myEntity = VISU::Storable::FindValue(theMap,"myEntity").toInt();//jfa IPAL9284
mySubMeshName = VISU::Storable::FindValue(theMap,"mySubMeshName").latin1();
myPresentType = VISU::PresentationType(VISU::Storable::FindValue(theMap,"myPresentType").toInt());
}
-VISU::Storable* VISU::Mesh_i::Build(int theRestoring){
+VISU::Storable* VISU::Mesh_i::Build (int theRestoring)
+{
SALOMEDS::StudyBuilder_var aStudyBuilder = myStudy->NewBuilder();
aStudyBuilder->NewCommand(); // There is a transaction
- try{
- if(myResult->GetInput() == NULL)
+ try {
+ if (myResult->GetInput() == NULL)
throw std::runtime_error("Mesh_i::Build - myResult->GetInput() == NULL !!!");
- if(!theRestoring){
+ if (!theRestoring) {
myPresentType = VISU::SHADED;
myName = GenerateName().latin1();
myCellColor.R = 0.0; myCellColor.G = myCellColor.B = 1.0;
myNodeColor.R = myNodeColor.G = 1.0; myNodeColor.B = 1.0;
myLinkColor.R = myLinkColor.G = myLinkColor.B = 83/255.;
}
- if(int(myEntity) >= 0)
- if(mySubMeshName == "")
- myType = VISU::TENTITY;
- else
+ //jfa IPAL9284:if (int(myEntity) >= 0)
+ if (myEntity >= 0) //jfa IPAL9284
+ if (mySubMeshName == "")
+ myType = VISU::TENTITY;
+ else
myType = VISU::TFAMILY;
- else
+ else
myType = VISU::TGROUP;
if(MYDEBUG) MESSAGE("Mesh_i::Build - myType = "<<myType);
QString aComment;
-
+
VISU_Convertor::TOutput *anOutput;
switch(myType){
- case VISU::TENTITY :
- anOutput = myResult->GetInput()->GetMeshOnEntity(myMeshName,myEntity);
+ case VISU::TENTITY :
+ //jfa IPAL9284:anOutput = myResult->GetInput()->GetMeshOnEntity(myMeshName,myEntity);
+ anOutput = myResult->GetInput()->GetMeshOnEntity(myMeshName,(VISU::TEntity)myEntity);//jfa IPAL9284
aComment.sprintf("myComment=ENTITY;myType=%d;myMeshName=%s;myId=%d",
VISU::TENTITY,myMeshName.c_str(),myEntity);
break;
- case VISU::TFAMILY :
- anOutput = myResult->GetInput()->GetMeshOnEntity(myMeshName,myEntity,mySubMeshName);
+ case VISU::TFAMILY :
+ //jfa IPAL9284:anOutput = myResult->GetInput()->GetMeshOnEntity(myMeshName,myEntity,mySubMeshName);
+ anOutput = myResult->GetInput()->GetMeshOnEntity
+ (myMeshName,(VISU::TEntity)myEntity,mySubMeshName);//jfa IPAL9284
aComment.sprintf("myComment=FAMILY;myType=%d;myMeshName=%s;myEntityId=%d;myName=%s",
VISU::TFAMILY,myMeshName.c_str(),myEntity,mySubMeshName.c_str());
break;
- case VISU::TGROUP :
+ case VISU::TGROUP :
anOutput = myResult->GetInput()->GetMeshOnGroup(myMeshName,mySubMeshName);
aComment.sprintf("myComment=GROUP;myType=%d;myMeshName=%s;myName=%s",
VISU::TGROUP,myMeshName.c_str(),mySubMeshName.c_str());
if(!theRestoring) { //Setting IOR on the label
myMeshPL->Init();
string aResultEntry = myResult->GetEntry();
- string anEntry = FindEntryWithComment(myStudy,aResultEntry.c_str(),aComment.latin1());
+ string anEntry = myResult->GetEntry(aComment.latin1());
if(anEntry == "") throw std::runtime_error("Mesh_i::Build - anEntry was not found !!!");
mySObject = myStudy->FindObjectID(anEntry.c_str());
SALOMEDS::StudyBuilder_var aStudyBuilder = myStudy->NewBuilder();
SALOMEDS::GenericAttribute_var anAttr = aStudyBuilder->FindOrCreateAttribute(mySObject,"AttributeIOR");
SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
CORBA::String_var aString = GetID();
- anIOR->SetValue(aString);
+ anIOR->SetValue(aString);
}
- }catch(std::runtime_error& exc){
- INFOS("Follow exception was accured :\n"<<exc.what());
+ }catch(std::exception& exc){
+ INFOS("Follow exception was occured :\n"<<exc.what());
return NULL;
}catch(...){
- INFOS("Unknown exception was accured!");
+ INFOS("Unknown exception was occured!");
return NULL;
- }
+ }
aStudyBuilder->CommitCommand();
return this;
}
-VISU_Actor* VISU::Mesh_i::CreateActor(const Handle(SALOME_InteractiveObject)& theIO)
- throw (std::runtime_error&)
+VISU_Actor* VISU::Mesh_i::CreateActor(const Handle(SALOME_InteractiveObject)& theIO)
{
VISU_MeshAct* anActor = VISU_MeshAct::New();
try{
VISU::Prs3d_i::CreateActor(anActor,theIO);
UpdateActor(anActor);
- }catch(std::runtime_error& exc){
+ }catch (...) {
anActor->Delete();
- throw exc;
+ throw ;
}
return anActor;
}
-
-void VISU::Mesh_i::UpdateActor(VISU_Actor* theActor) throw(std::runtime_error&){
+
+void VISU::Mesh_i::UpdateActor(VISU_Actor* theActor) {
if(VISU_MeshAct* anActor = dynamic_cast<VISU_MeshAct*>(theActor)){
if(MYDEBUG) MESSAGE("Mesh_i::UpdateActor");
VISU::Prs3d_i::UpdateActor(anActor);
anActor->SetRepresentation(myPresentType);
- anActor->GetProperty()->SetColor(myCellColor.R, myCellColor.G, myCellColor.B);
+ anActor->GetSurfaceProperty()->SetColor(myCellColor.R, myCellColor.G, myCellColor.B);
anActor->GetEdgeProperty()->SetColor(myLinkColor.R, myLinkColor.G, myLinkColor.B);
anActor->GetNodeProperty()->SetColor(myNodeColor.R, myNodeColor.G, myNodeColor.B);
}