X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISU_I%2FVISU_Mesh_i.cc;h=6d8851026cffc5f8d9b7b9b16bb237ee8807cdaf;hb=a7e9d108adf9283e24d85357125a07022f409d3a;hp=d5f6e584e4ed548df1b391f3d2e388811e7871e0;hpb=55d716c5e69656916a6070607a89fb446144fea8;p=modules%2Fvisu.git diff --git a/src/VISU_I/VISU_Mesh_i.cc b/src/VISU_I/VISU_Mesh_i.cc index d5f6e584..6d885102 100644 --- a/src/VISU_I/VISU_Mesh_i.cc +++ b/src/VISU_I/VISU_Mesh_i.cc @@ -1,32 +1,35 @@ // 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; @@ -34,10 +37,8 @@ using namespace std; #ifdef _DEBUG_ static int MYDEBUG = 0; -static int MYDEBUGWITHFILES = 0; #else static int MYDEBUG = 0; -static int MYDEBUGWITHFILES = 0; #endif static int INCMEMORY = 4; @@ -50,26 +51,44 @@ const string VISU::Mesh_i::myComment = "MESH"; 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{ MESSAGE("Mesh_i::IsPossible - theMeshName = '"<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 = "<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()); @@ -219,28 +252,28 @@ VISU::Storable* VISU::Mesh_i::Build(int theRestoring){ 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::exception& exc){ - // INFOS("Follow exception was occured :\n"<CommitCommand(); return this; } -VISU_Actor* VISU::Mesh_i::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) +VISU_Actor* VISU::Mesh_i::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) { VISU_MeshAct* anActor = VISU_MeshAct::New(); try{ @@ -252,7 +285,7 @@ VISU_Actor* VISU::Mesh_i::CreateActor(const Handle(SALOME_InteractiveObject)& th } return anActor; } - + void VISU::Mesh_i::UpdateActor(VISU_Actor* theActor) { if(VISU_MeshAct* anActor = dynamic_cast(theActor)){