X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISU_SWIG%2Fvisu.py;h=c287e79aa922c4abff22e41042e8bdd24826b940;hb=3f4152dedc1ae968267cfb8a079f261ec0088ed0;hp=73af65e1a91fdccd6bdba2829881b223b6b6297b;hpb=e0a7fdcd537cce743ae448ed0ce842a8bfeca3a6;p=modules%2Fvisu.git diff --git a/src/VISU_SWIG/visu.py b/src/VISU_SWIG/visu.py index 73af65e1..c287e79a 100644 --- a/src/VISU_SWIG/visu.py +++ b/src/VISU_SWIG/visu.py @@ -12,6 +12,8 @@ import re from time import sleep import VISU +import SALOME +import SALOME_Session_idl import SALOMEDS import SALOME_MED from omniORB import CORBA @@ -36,15 +38,56 @@ def Initialize(theORB, theNamingService, theLifeCycleCORBA, theStudyManager, the myNamingService = theNamingService myLifeCycleCORBA = theLifeCycleCORBA myLocalStudyManager = theStudyManager - mySession = myNamingService.Resolve("/Kernel/Session") + while mySession == None: + mySession = myNamingService.Resolve("/Kernel/Session") + mySession = mySession._narrow(SALOME.Session) mySession.GetInterface() myDelay = theDelay sleep(myDelay) - myLocalVisu = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "Visu") + myLocalVisu = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "VISU") myLocalStudy = theStudy myLocalVisu.SetCurrentStudy(myLocalStudy) return myLocalVisu + +def PublishComponent(theStudyDocument): + aComponentDataType = myLocalVisu.ComponentDataType() + aSComponent = theStudyDocument.FindComponent(aComponentDataType) + if aSComponent == None: + aStudyBuilder = theStudyDocument.NewBuilder() + aStudyBuilder.NewCommand() + aLocked = theStudyDocument.GetProperties().IsLocked() + if aLocked: + theStudyDocument.GetProperties().SetLocked(0) + pass + + aSComponent = aStudyBuilder.NewComponent(aComponentDataType); + aName = aStudyBuilder.FindOrCreateAttribute(aSComponent,"AttributeName") + aModuleCatalog = myNamingService.Resolve("/Kernel/ModulCatalog"); + aComponent = aModuleCatalog.GetComponent(aComponentDataType); + if aComponent != None: + aComponentUserName = aComponent._get_componentusername() + aName.SetValue(aComponentUserName) + pass + + aPixMap = aStudyBuilder.FindOrCreateAttribute(aSComponent,"AttributePixMap") + aPixMap.SetPixMap("ICON_OBJBROWSER_Visu") + + aStudyBuilder.DefineComponentInstance(aSComponent,myLocalVisu); + if aLocked: + theStudyDocument.GetProperties().SetLocked(1); + pass + + aStudyBuilder.CommitCommand(); + pass + return aSComponent; + +def SetName(theObj, theName): + anIOR = myORB.object_to_string(theObj) + aSObj = myLocalStudy.FindObjectIOR(anIOR) + anAttr = aSObj.FindAttribute("AttributeName")[1] + anAttr.SetValue(theName) + def StrToMap(theString) : aPairList = split(theString,";") aMap = {} @@ -74,10 +117,10 @@ def HasValue(theList, theValue) : def CreateStudyForMed(theVisu, theFileName) : print "CreateStudyForMed ", theFileName, if os.path.isfile(theFileName) : - if os.path.splitext(theFileName)[1] == '.med' : + if re.search("\.med$", theFileName) is not None : print "OK" aStudyName = os.path.basename(theFileName) - aStudyName = os.path.splitext(aStudyName)[0] + aStudyName = re.sub(r'\.med', "", aStudyName) aStudyName = generateName(aStudyName) print "myLocalStudyManager.NewStudy -", aStudyName, "...", aStudy = myLocalStudyManager.NewStudy(aStudyName) @@ -96,17 +139,20 @@ def CreateStudyForMed(theVisu, theFileName) : return [aStudy, myViewManager, myView] raise RuntimeError, "Error: There is no shuch file." -def getMedObjectFromStudy(theStudy = myLocalStudy): +def getMedSObject(theStudy = myLocalStudy ): if theStudy is None: theStudy = myLocalStudy - mySO = theStudy.FindObject("Objet MED") - anAttr = mySO.FindAttribute("AttributeIOR")[1] - obj = myORB.string_to_object(anAttr.Value()) - myObj = obj._narrow(SALOME_MED.MED) - return myObj + aSO = theStudy.FindObject("Med") + anIsPresetn, aSObject = aSO.FindSubObject(1) + return aSObject -def getMedSObject(theStudy = myLocalStudy ): - return theStudy.FindObject("Objet MED") +def getMedObjectFromStudy(theStudy = myLocalStudy): + aSObject = getMedSObject(theStudy) + if aSObject: + anAttr = aSObject.FindAttribute("AttributeIOR")[1] + anObj = myORB.string_to_object(anAttr.Value()) + return anObj._narrow(SALOME_MED.MED) + return None def getFieldObjectFromStudy(number, subnumber, theStudy = myLocalStudy): if theStudy is None: @@ -144,11 +190,11 @@ def SObjectToObject(theSObject) : print "SObjectToObject - IOR = ''" return anObj; -def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt) : +def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete = 0) : # try: global myLifeCycleCORBA print "lcc.FindOrLoadComponent...", - aMedComp = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "Med") + aMedComp = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "MED") if aMedComp is None : print "Error" else : print "OK" @@ -164,10 +210,14 @@ def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePict aResult = theVisu.ImportMed(aMedSObj) if aResult is None : raise RuntimeError, "Error" else : print "OK" - aVISUObjList.append(aResult) - aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt)) + + aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete)) + if theIsAutoDelete : + aResult.RemoveFromStudy() + else : + aVISUObjList.append(aResult) - aFolderIter = myLocalStudy.NewChildIterator(aMedSObj); + aFolderIter = myLocalStudy.NewChildIterator(aMedSObj.GetFather()); while aFolderIter.More() : aFolderSObj = aFolderIter.Value() aFolderIter.Next() @@ -209,8 +259,12 @@ def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePict aResult = theVisu.ImportMed(aFieldSObj) if aResult is None : raise RuntimeError, "Error" else : print "OK" - aVISUObjList.append(aResult) - aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt)) + + aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete)) + if theIsAutoDelete : + aResult.RemoveFromStudy() + else : + aVISUObjList.append(aResult) aTimeStampIter = myLocalStudy.NewChildIterator(aFieldSObj); if aTimeStampIter.More() : @@ -225,37 +279,51 @@ def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePict print "theVisu.ImportMed...", aMedField = SObjectToObject(aTimeStampSObj) - aResult = theVisu.ImportMedFiled(aMedField) + aResult = theVisu.ImportMedField(aMedField) if aResult is None : raise RuntimeError, "Error" else : print "OK" - aVISUObjList.append(aResult) - aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt)) + + aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete)) + if theIsAutoDelete : + aResult.RemoveFromStudy() + else : + aVISUObjList.append(aResult) return aVISUObjList # except Exception, e: # print str(e) -def CreatePrsForFile(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt) : +def CreatePrsForFile(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete = 0) : # try: aVISUObjList = [myLocalStudy, myViewManager, myView] = CreateStudyForMed(theVisu, theFileName) - print "theVisu.ImportMed..." + print "theVisu.ImportMed...", aResult = theVisu.ImportFile(theFileName) if aResult is None : raise RuntimeError, "Error" else : print "OK" - aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt)) - + aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete)) + + if theIsAutoDelete : + aResult.RemoveFromStudy() + else : + aVISUObjList.append(aResult) + return aVISUObjList # except Exception, e: # print str(e) -def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDir, thePictureExt) : - aVISUObjList = [] +def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDir, thePictureExt, theIsAutoDelete = 0) : + aVISUObjList = None + if theIsAutoDelete is not None : + aVISUObjList = [] + pass + print "CreatePrsForResult - myLocalStudy.FindObjectIOR...", myLocalStudy = theVisu.GetCurrentStudy() + aSObj = myLocalStudy.FindObjectIOR(theResult.GetID()) if aSObj is None : raise RuntimeError, "Error" else : print "OK" @@ -270,13 +338,16 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi anAttr = aMeshSObj.FindAttribute("AttributeName")[1] anAttr = anAttr._narrow(SALOMEDS.AttributeName); aMeshName = anAttr.Value() + aMeshNamePic = re.sub(".","_",aMeshName) print " ", aMeshName aFolderIter = myLocalStudy.NewChildIterator(aMeshSObj); while aFolderIter.More() : aFolderSObj = aFolderIter.Value() aFolderIter.Next() - anAttr = aFolderSObj.FindAttribute("AttributeName")[1] + anIsFound, anAttr = aFolderSObj.FindAttribute("AttributeName") + if not anIsFound : + continue anAttr = anAttr._narrow(SALOMEDS.AttributeName); aFolderName = anAttr.Value() print " ", aFolderName @@ -305,16 +376,20 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi anEntityId = "3" if HasValue(thePrsTypeList,VISU.TMESH) : - print " ", anEntityName, + print " ", anEntityName, aMeshName, aMesh = theVisu.MeshOnEntity(theResult,aMeshName,anEntity) if aMesh is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aMesh) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName); - theView.SavePicture(aPictureName) - aVISUObjList.append(aMesh) + else : + print ",OK" + theView.DisplayOnly(aMesh) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName); + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aMesh.RemoveFromStudy() + else : + aVISUObjList.append(aMesh) anFamilyIter = myLocalStudy.NewChildIterator(anEntitySObj); while anFamilyIter.More() : @@ -327,13 +402,17 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi print " ", anFamilyName, aMesh = theVisu.FamilyMeshOnEntity(theResult,aMeshName,anEntity,anFamilyName) if aMesh is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aMesh) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + anFamilyName + "." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName); - theView.SavePicture(aPictureName) - aVISUObjList.append(aMesh) + else : + print ",OK" + theView.DisplayOnly(aMesh) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + anFamilyName + "." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName); + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aMesh.RemoveFromStudy() + else : + aVISUObjList.append(aMesh) if aFolderName == 'Groups' : aGroupIter = myLocalStudy.NewChildIterator(aFolderSObj); @@ -347,13 +426,17 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi print " ", aGroupName, aMesh = theVisu.GroupMesh(theResult,aMeshName,aGroupName) if aMesh is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aMesh) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + aGroupName + "." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName); - theView.SavePicture(aPictureName) - aVISUObjList.append(aMesh) + else : + print ",OK" + theView.DisplayOnly(aMesh) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + aGroupName + "." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName); + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aMesh.RemoveFromStudy() + else : + aVISUObjList.append(aMesh) if aFolderName == 'Fields' : aFieldIter = myLocalStudy.NewChildIterator(aFolderSObj); @@ -395,52 +478,88 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi print " Creating ScalarMapOnField", aPrsObj = theVisu.ScalarMapOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSCALARMAP." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName); - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) - + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSCALARMAP." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName); + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) + if HasValue(thePrsTypeList,VISU.TISOSURFACE) : print " Creating IsoSurfacesOnField", aPrsObj = theVisu.IsoSurfacesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TISOSURFACE." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName); - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TISOSURFACE." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName); + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) if HasValue(thePrsTypeList,VISU.TCUTPLANES) : print " Creating CutPlanesOnField", aPrsObj = theVisu.CutPlanesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - aPrsObj.SetOrientationType(VISU.CutPlanes.ZX) - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTPLANES." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName) - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) + else : + print ",OK" + aPrsObj.SetOrientation(VISU.CutPlanes.ZX,aPrsObj.GetRotateX(),aPrsObj.GetRotateY()) + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTPLANES." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) if HasValue(thePrsTypeList,VISU.TCUTLINES) : print " Creating CutLinesOnField", aPrsObj = theVisu.CutLinesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - aPrsObj.SetOrientationType(VISU.CutPlanes.XY) - aPrsObj.SetOrientationType2(VISU.CutPlanes.ZX) - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTLINES." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName) - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) + else : + print ",OK" + aPrsObj.SetOrientation(VISU.CutPlanes.XY,aPrsObj.GetRotateX(),aPrsObj.GetRotateY()) + aPrsObj.SetOrientation2(VISU.CutPlanes.ZX,aPrsObj.GetRotateX2(),aPrsObj.GetRotateY2()) + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTLINES." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) + + if HasValue(thePrsTypeList,VISU.TPLOT3D) : + print " Creating Plot3DOnField", + aPrsObj = theVisu.Plot3DOnField(theResult,aMeshName,anEntity, + aFieldName,aTimeStampId) + if aPrsObj is None : print "Error" + else : + print ",OK" + #aPrsObj.SetOrientation(VISU.CutPlanes.ZX, + # aPrsObj.GetRotateX(), + # aPrsObj.GetRotateY()) + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TPLOT3D." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) aNumComponent = atoi(aMap["myNumComponent"]) if aNumComponent > 1 : @@ -448,38 +567,66 @@ def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDi print " Creating DeformedShapeOnField", aPrsObj = theVisu.DeformedShapeOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TDEFORMEDSHAPE." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName) - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TDEFORMEDSHAPE." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) if HasValue(thePrsTypeList,VISU.TVECTORS) : print " Creating VectorsOnField", aPrsObj = theVisu.VectorsOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TVECTORS." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName) - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TVECTORS." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) if HasValue(thePrsTypeList,VISU.TSTREAMLINES) : print " Creating StreamLinesOnField", aPrsObj = theVisu.StreamLinesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) if aPrsObj is None : print "Error" - else : print ",OK" - theView.DisplayOnly(aPrsObj) - theView.FitAll() - aPictureName = thePictureDir + aMeshName + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSTREAMLINES." + thePictureExt - aPictureName = re.sub("\s+","_", aPictureName) - theView.SavePicture(aPictureName) - aVISUObjList.append(aPrsObj) - + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSTREAMLINES." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) + + if HasValue(thePrsTypeList,VISU.TSCALARMAPONDEFORMEDSHAPE) : + print " Creating ScalarMapOnDeformedShapeOnField", + aPrsObj = theVisu.ScalarMapOnDeformedShapeOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId) + if aPrsObj is None : print "Error" + else : + print ",OK" + theView.DisplayOnly(aPrsObj) + theView.FitAll() + aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSCALARMAPONDEFORMEDSHAPE." + thePictureExt + aPictureName = re.sub("\s+","_", aPictureName) + theView.SavePicture(aPictureName) + if theIsAutoDelete : + aPrsObj.RemoveFromStudy() + else : + aVISUObjList.append(aPrsObj) + return aVISUObjList @@ -490,3 +637,372 @@ def generateName(prefix = None): return "Study" + str(int) else : return prefix + str(int) + + + +# ---------------------- +# MESH +# ---------------------- +def try_mesh_parameters(theMeshPattern): + aResult = [] + if theMeshPattern is None : return aResult ; + theMeshPattern = theMeshPattern._narrow(VISU.Mesh) + if theMeshPattern is None : return aResult ; + + aTYPES = [VISU.POINT, VISU.WIREFRAME, VISU.SHADED, VISU.INSIDEFRAME, VISU.SHRINK] + import copy; import os; + for ind in aTYPES: + aNewMesh = copy.deepcopy(theMeshPattern); + aNewMesh.SetPresentationType(ind) + aResult.append(aNewMesh) + + return aResult + + +# ---------------------------- +# SCALAR MAP +# ---------------------------- +ind=1 #try safe way +def try_scalarmap_parameters(thePattern, dump = 0): + + if thePattern is None : return None + + SCALING = [VISU.LINEAR, VISU.LOGARITHMIC] + import copy + import random + + anObj = thePattern#copy.deepcopy(thePattern); + #ind = random.randint(1,2) + if ind%2 : + #try incorrect value deliberately (but allowed by idl description) + #try SetScalarMode(long) + mode = random.randint(-100000,100000); #incorrect value deliberately + else: + #correct value of ScalarMode + mode = random.randint(0, 3) + + if dump : print "\tSetScalarMode(" + str(mode) +")" + anObj.SetScalarMode(mode) + + # --- SCALING --- + scal = random.randint(0,1) + if dump : print "\tSetScaling(" + str(SCALING[scal]) +")" + anObj.SetScaling(SCALING[scal]) + + # --- BOUNDARIES --- + if ind%2 : + alfa = random.random()*random.randint(-100000,100000) + betta = random.random()*random.randint(-100000,100000) + aMin = alfa; aMax = betta + else: + #more correct set + aPMin = thePattern.GetMin() + aPMax = thePattern.GetMax() + aLen = aPMax - aPMin + alfa = random.random()%0.5 + betta = random.random()%0.5 + aMin = alfa*aLen*random.randint(-1,1) + aPMin + aMax = betta*aLen*random.randint(-1,1) + aPMax + if dump : print "\tSetRange(" + str(aMin) + ", " + str(aMax) + ")" + anObj.SetRange(aMin, aMax) + + # --- POSITION --- + if ind%2: + X=random.random()*random.randint(-100000,100000) + Y=random.random()*random.randint(-100000,100000) + else : + X=random.random() + Y=random.random() + if dump : print "SetPosition("+ str(X) + ", " + str(Y) + " )" + anObj.SetPosition(X, Y) + + # --- SCALAR BAR SIZE --- + if ind%2: + aWidth=random.random()*random.randint(-100000,100000) + aHeight=random.random()*random.randint(-100000,100000) + else : + aWidth=random.random() + aHeight=random.random() + if dump : print " SCALAR BAR Width = " + str(aWidth) + " Height = ", str(aHeight) + anObj.SetSize(aWidth, aHeight) + + return anObj + + +def dump_scalarmap_parameters(anObj): + + print "\tGetScalarMode() = " + str(anObj.GetScalarMode()) + print "\tGetScaling() = " + str(anObj.GetScaling()) + print "\tGetMin() = " + str(anObj.GetMin()) + " GetMax() = " + str (anObj.GetMax()) + print "\tGetOrientation() = " + str(anObj.GetOrientation()) + print "\tGetPosX() = ", str(anObj.GetPosX()) + " GetPosY() = ", str(anObj.GetPosY()) + print "\tGetWidth() = ", str ( anObj.GetWidth()) + " GetHeight() = " + str(anObj.GetHeight()) + +# ---------------------- +# DEFORMED SHAPE +# ---------------------- +def try_deformedshape_parameters(thePattern) : + + if thePattern is None : return None + import copy + import random + + anObj = try_scalarmap_parameters(thePattern) + + # --- SCALING --- + if ind%2: + anObj.SetScale( random.random()*random.randint(-100000, 100000)) + else : + anObj.SetScale( anObj.GetScale()*random.random()) + + return anObj + + +def dump_deformedshape_parameters(theObject): + dump_scalarmap_parameters(theObject) + print "GetScale() = ", theObject.GetScale() + +# ---------------------- +# CUT PLANES +# ---------------------- +def try_cutplanes_parameters(thePattern) : + + if thePattern is None : return None + import copy + import random + + ORIENT = [VISU.CutPlanes.XY, VISU.CutPlanes.YZ, VISU.CutPlanes.ZX] + + ind = random.randint(1,2) + anObj = try_scalarmap_parameters(thePattern) + + if ind%2 : anObj.SetNbPlanes(random.randint(-40,40)) + else : anObj.SetNbPlanes(random.randint(0,10)) #try behaivor if NbPlanes=0 + + # --- DISPLACEMENT --- + anObj.SetDisplacement(random.randint(-100000,100000)) + + # --- PLANE POSITION --- + if ind%2: + PlaneNb = random.randint(-100000,100000) #incorrect value is possible + else : PlaneNb = random.randint(0, anObj.GetNbPlanes()) + + anObj.SetPlanePosition(PlaneNb, random.random()*random.randint(-100000,100000)) + + # --- SET DEFAULT --- + anObj.SetDefault(PlaneNb) + + # --- SET X,Y,Z ROTATION --- + if ind%2 : + angle1 = random.random()*random.randint(-100000,100000) + angle2 = random.random()*random.randint(-100000,100000) + else : + angle1 = random.random()*3.14 + angle2 = random.random()*3.14 + + # --- ORIENTATION --- + anObj.SetOrientation(ORIENT[random.randint(0,2)],angle1,angle2) + + return anObj + +def dump_cutplanes_parameters(theObject): + dump_saclarmap_parameters(theObject) + + print "GetOrientationType = " + str(theObject.GetOrientationType()) + PlanesNb = theObject.GetNbPlanes() + print "GetNbPlanes() = ", str(PlanesNb) + for i in range(0,PlanesNb+1): + if theObject.IsDefault(i) : + print "Default plane : "+str(i); break + print "GetPlanePosition(" + str(i) + ") = ", theObject.GetPlanePosition(i) + print "GetDisplacement() = ", str(theObject.GetDisplacement()) + print "GetRotateX() = ", str(theObject.GetRotateX()) + print "GetRotateY() = ", str(theObject.GetRotateY()) + print "GetRotateZ() = ", str(theObject.GetRotateZ()) + +# ---------------------- +# CUT LINES +# ---------------------- +def try_cutlines_parameters(thePattern): + + if thePattern is None : return None + import copy + import random + + ORIENT = [VISU.CutPlanes.XY, VISU.CutPlanes.YZ, VISU.CutPlanes.ZX] + ind = random.randint(1,2) + anObj = try_scalarmap_parameters(thePattern) + + # --- ORIENTATION --- + anObj.SetOrientation(ORIENT[random.randint(0,2)], + random.randint(-100,100)*random.random(), + random.randint(-100,100)*random.random()) + anObj.SetOrientation2(ORIENT[random.randint(0,2)], + random.randint(-100,100)*random.random(), + random.randint(-100,100)*random.random()) + + # --- Base Plane Position --- + anObj.SetBasePlanePosition( random.random()*random.randint(-100000,100000)) + + # --- NUMBER OF LINES --- + if ind%2: + anObj.SetNbLines(random.randint(-5, 50)) + + return anObj + +def dump_cutlines_parameters(theObject): + dump_scalarmap_parameters(theObject) + + print "GetOrientationType() = " + str(theObject.GetOrientationType()) + print "GetOrientationType2() = " + str(theObject.GetOrientationType2()) + print "GetBasePlanePosition() = "+ str(theObject.GetBasePlanePosition()) + print "GetNbLines() = " + str(theObject.GetNbLines()) + print "GetRotateX() = ", str(theObject.GetRotateX()) + print "GetRotateX2() = ", str(theObject.GetRotateX2()) + print "GetRotateY() = ", str(theObject.GetRotateY()) + print "GetRotateY2() = ", str(theObject.GetRotateY2()) + +# ---------------------- +# STREAM LINES +# ---------------------- +def try_streamlines_parameters(thePattern): + + if thePattern is None : return None + import copy + import random + + DIRECTION = [VISU.StreamLines.FORWARD, VISU.StreamLines.BACKWARD, VISU.StreamLines.BOTH] + + ind = random.randint(1,2) + anObj = (try_deformedshape_parameters(thePattern))[0] + + # --- DIREACTION --- + anObj.SetDirection(DIRECTION[random.randint(0,2)]) + + # --- STEP LENGTH --- + if ind%2 : anObj.SetStepLength(random.random()*random.randint(-1000,1000)) + else : + aLen = anObj.GetMax() - anObj.GetMin() + anObj.SetStepLength(aLen/random.randint(1,100)) + + # --- PROPAGATION TIME --- + anObj.SetPropagationTime(random.random()*random.randint(1,100)) + + # --- INTEGRATION STEP --- + if ind%2 : + anObj.SetIntegrationStep(random.random()*random.randint(-1000,1000)) + else: + anObj.SetIntegrationStep(random.random()) + + # --- USED POINT --- + anObj.SetUsedPoints(random.random()*random.randint(-10000,10000)) + + return anObj + +def dump_streamlines_parameters(theObject): + + dump_deformedshape_parameters(theObject) + + print "GetDirection() = " + str(theObject.GetDirection()) + print "GetStepLength() = " + str(theObject.GetStepLength()) + print "GetPropagationTime() =" + str(theObject.GetPropagationTime()) + print "GetIntegrationStep() =" + str(theObject.GetIntegrationStep()) + print "GetUsedPoints() =" + str(theObject.GetUsedPoints()) + +# ---------------------- +# VECTORS +# ---------------------- +def try_vectors_parameters(thePattern, theNum): + + if thePattern is None : return None + import copy + import random + GLIPH_TYPE = [VISU.Vectors.ARROW, VISU.Vectors.CONE2, VISU.Vectors.CONE6, VISU.Vectors.NONE] + GLIPH_POS = [VISU.Vectors.CENTER, VISU.Vectors.TAIL, VISU.Vectors.HEAD] + ind = random.randint(1,2) + anObj = (try_deformedshape_parameters(thePattern))[0] + + # --- LINE WIDTH --- + if ind%2 : + anObj.SetLineWidth(random.random()*random.randint(-10000,10000)) + else : + anObj.SetLineWidth(random.randint(1, 10)) + + # --- GLIPH TYPE --- + anObj.SetGlyphType(GLIPH_TYPE[random.randint(0, len(GLIPH_TYPE)-1)]) + + # --- GLIPH POS --- + anObj.SetGlyphPos(GLIPH_POS[random.randint(0, len(GLIPH_POS)-1)]) + + return anObj + +def dump_vetctors_parameters(theObject): + + dump_deformedshape_parameters(theObject) + + print "GetLineWidth() = " +str(theObject.GetLineWidth()) + print "GetGlyphType() = " +str(theObject.GetGlyphType()) + print "GetGlyphPos() = " +str(theObject.GetGlyphPos()) + + +# ---------------------- +# ISO SURFACES +# ---------------------- + +def try_isosurfaces_parameters(thePattern) : + if thePattern is None : return None + import copy + import random + + anObj = try_scalarmap_parameters(thePattern) + ind = random.randint(1,2) + # --- SURFACES NUMBER --- + if ind%2 : + anObj.SetNbSurfaces(random.randint(-100000,100000)) + else: + anObj.SetNbSurfaces(random.randint(1, 50)) + + return anObj + +def dump_isosurfaces_parameters(theObject): + + dump_scalarmap_parameters(theObject) + print "GetNbSurfaces() = "+ str(theObject.GetNbSurfaces()) + + +# ---------------------- +# TABLES AND CURVES +# ---------------------- + +def FillTable( theTable, theValues, theRows, theColumns, theRowTitles, theRowUnits, theColumnTitles ): + if theTable is None: return + if len(theRows) != len(theColumns): return + if len(theRows) != len(theValues): return + i = 0 + for value in theValues: + theTable.PutValue( value, theRows[ i ], theColumns[ i ]) + i = i + 1 + pass + i = 1 + for title in theRowTitles: + theTable.SetRowTitle( i, title ) + theTable.SetRowUnit( i, theRowUnits[ i - 1 ]) + i = i + 1 + pass + i = 1 + for title in theColumnTitles: + theTable.SetColumnTitle( i, title ) + i = i + 1 + pass + pass + +def CreateCurve( theTable, theHRow, theVRow, theTitle, theColor, theMarker, theLineType, theLineWidth ): + if theTitle is None: return + curve = myLocalVisu.CreateCurve( theTable, theHRow, theVRow ); + if curve: + curve.SetTitle( theTitle ) + curve.SetColor( theColor ) + curve.SetMarker( theMarker ) + curve.SetLine( theLineType, theLineWidth ) + pass + return curve