1 # VISU VISU_SWIG : binding of C++ implementation and Python
3 # Copyright (C) 2003 CEA/DEN, EDF R&D
12 from time import sleep
16 import SALOME_Session_idl
19 from omniORB import CORBA
21 from time import sleep
24 myNamingService = None
25 myLifeCycleCORBA = None
26 myNamingService = None
27 myLocalStudyManager = None
33 def Initialize(theORB, theNamingService, theLifeCycleCORBA, theStudyManager, theStudy, theDelay) :
34 global myORB, myNamingService, myLifeCycleCORBA, myLocalStudyManager, myLocalStudy
35 global mySession, myLocalVisu, myDelay
38 myNamingService = theNamingService
39 myLifeCycleCORBA = theLifeCycleCORBA
40 myLocalStudyManager = theStudyManager
41 while mySession == None:
42 mySession = myNamingService.Resolve("/Kernel/Session")
43 mySession = mySession._narrow(SALOME.Session)
44 mySession.GetInterface()
47 myLocalVisu = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "VISU")
48 myLocalStudy = theStudy
49 myLocalVisu.SetCurrentStudy(myLocalStudy)
52 def PublishComponent(theStudyDocument):
53 aComponentDataType = myLocalVisu.ComponentDataType()
54 aSComponent = theStudyDocument.FindComponent(aComponentDataType)
55 if aSComponent == None:
56 aStudyBuilder = theStudyDocument.NewBuilder()
57 aStudyBuilder.NewCommand()
58 aLocked = theStudyDocument.GetProperties().IsLocked()
60 theStudyDocument.GetProperties().SetLocked(0)
63 aSComponent = aStudyBuilder.NewComponent(aComponentDataType);
64 aName = aStudyBuilder.FindOrCreateAttribute(aSComponent,"AttributeName")
65 aModuleCatalog = myNamingService.Resolve("/Kernel/ModulCatalog");
66 aComponent = aModuleCatalog.GetComponent(aComponentDataType);
67 if aComponent != None:
68 aComponentUserName = aComponent._get_componentusername()
69 aName.SetValue(aComponentUserName)
72 aPixMap = aStudyBuilder.FindOrCreateAttribute(aSComponent,"AttributePixMap")
73 aPixMap.SetPixMap("ICON_OBJBROWSER_Visu")
75 aStudyBuilder.DefineComponentInstance(aSComponent,myLocalVisu);
77 theStudyDocument.GetProperties().SetLocked(1);
80 aStudyBuilder.CommitCommand();
85 def StrToMap(theString) :
86 aPairList = split(theString,";")
89 for i in range(iEnd) :
90 aPair = split(aPairList[i],"=")
91 aMap[aPair[0]] = aPair[1]
94 def IntToEntity(theInt) :
105 def HasValue(theList, theValue) :
107 return theList.index(theValue) + 1
108 except StandardError, e :
111 def CreateStudyForMed(theVisu, theFileName) :
112 print "CreateStudyForMed ", theFileName,
113 if os.path.isfile(theFileName) :
114 if re.search("\.med$", theFileName) is not None :
116 aStudyName = os.path.basename(theFileName)
117 aStudyName = re.sub(r'\.med', "", aStudyName)
118 aStudyName = generateName(aStudyName)
119 print "myLocalStudyManager.NewStudy -", aStudyName, "...",
120 aStudy = myLocalStudyManager.NewStudy(aStudyName)
121 if aStudy is None : raise RuntimeError, "Error"
124 print "CreateStudyForMed - Creating a 3D viewer...",
125 theVisu.SetCurrentStudy(aStudy)
126 myViewManager = theVisu.GetViewManager()
127 if myViewManager is None : raise RuntimeError, "Error - theVisu.GetViewManager"
128 myView = myViewManager.Create3DView()
129 if myView is None : raise RuntimeError, "Error - myViewManager.Create3DView"
133 return [aStudy, myViewManager, myView]
134 raise RuntimeError, "Error: There is no shuch file."
136 def getMedSObject(theStudy = myLocalStudy ):
138 theStudy = myLocalStudy
139 aSO = theStudy.FindObject("Med")
140 anIsPresetn, aSObject = aSO.FindSubObject(1)
143 def getMedObjectFromStudy(theStudy = myLocalStudy):
144 aSObject = getMedSObject(theStudy)
146 anAttr = aSObject.FindAttribute("AttributeIOR")[1]
147 anObj = myORB.string_to_object(anAttr.Value())
148 return anObj._narrow(SALOME_MED.MED)
151 def getFieldObjectFromStudy(number, subnumber, theStudy = myLocalStudy):
153 theStudy = myLocalStudy
154 mySO = theStudy.FindObject("MEDFIELD")
156 raise Runtime, "getFieldObjectFromStudy mySO is None"
157 mysub = mySO.FindSubObject(number)[1]
159 mysubsub = mysub.FindSubObject(subnumber)[1]
161 Builder = theStudy.NewBuilder()
162 anAttr = Builder.FindOrCreateAttribute(mysubsub, "AttributeIOR")
163 obj = myORB.string_to_object(anAttr.Value())
164 myObj = obj._narrow(SALOME_MED.FIELDINT)
166 myObj = obj._narrow(SALOME_MED.FIELDDOUBLE)
169 print "ERROR: No Field Object stored in this Study"
172 def SObjectToObject(theSObject) :
174 if theSObject is None :
175 print "SObjectToObject : argument is None"
177 res,Attr = theSObject.FindAttribute("AttributeIOR")
178 if (res != 0) and (Attr is not None) :
179 anIOR = Attr._narrow(SALOMEDS.AttributeIOR);
180 aValue = anIOR.Value();
181 if(len(aValue) != 0) :
182 anObj = myORB.string_to_object(aValue);
184 print "SObjectToObject - IOR = ''"
187 def CreatePrsForMed(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt) :
189 global myLifeCycleCORBA
190 print "lcc.FindOrLoadComponent...",
191 aMedComp = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "MED")
192 if aMedComp is None : print "Error"
195 aVISUObjList = [myLocalStudy, myViewManager, myView] = CreateStudyForMed(theVisu, theFileName)
197 print "aMedComp.readStructFileWithFieldType...",
198 aMedComp.readStructFileWithFieldType(theFileName,myLocalStudy._get_Name())
199 aMedSObj = getMedSObject(myLocalStudy)
200 if aMedSObj is None : raise RuntimeError, "Error"
203 print "theVisu.ImportMed...",
204 aResult = theVisu.ImportMed(aMedSObj)
205 if aResult is None : raise RuntimeError, "Error"
207 aVISUObjList.append(aResult)
208 aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt))
210 aFolderIter = myLocalStudy.NewChildIterator(aMedSObj.GetFather());
211 while aFolderIter.More() :
212 aFolderSObj = aFolderIter.Value()
214 anAttr = aFolderSObj.FindAttribute("AttributeName")[1]
215 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
216 aFolderName = anAttr.Value()
217 print " ", aFolderName
219 if aFolderName == 'MEDMESH' :
220 aMeshIter = myLocalStudy.NewChildIterator(aFolderSObj);
221 while aMeshIter.More() :
222 aMeshSObj = aMeshIter.Value()
224 anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
225 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
226 aMeshName = anAttr.Value()
229 aSupportIter = myLocalStudy.NewChildIterator(aMeshSObj);
230 while aSupportIter.More() :
231 aSupportSObj = aSupportIter.Value()
233 anAttr = aSupportSObj.FindAttribute("AttributeName")[1]
234 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
235 aSupportName = anAttr.Value()
236 print " ", aSupportName
238 if aFolderName == 'MEDFIELD' :
239 aFieldIter = myLocalStudy.NewChildIterator(aFolderSObj);
240 while aFieldIter.More() :
241 aFieldSObj = aFieldIter.Value()
243 anAttr = aFieldSObj.FindAttribute("AttributeName")[1]
244 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
245 aFieldName = anAttr.Value()
246 print " ", aFieldName
248 print "theVisu.ImportMed...",
249 aResult = theVisu.ImportMed(aFieldSObj)
250 if aResult is None : raise RuntimeError, "Error"
252 aVISUObjList.append(aResult)
253 aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt))
255 aTimeStampIter = myLocalStudy.NewChildIterator(aFieldSObj);
256 if aTimeStampIter.More() :
257 aTimeStampIter.Next()
258 while aTimeStampIter.More() :
259 aTimeStampSObj = aTimeStampIter.Value()
260 aTimeStampIter.Next()
261 anAttr = aTimeStampSObj.FindAttribute("AttributeName")[1]
262 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
263 aTimeStampName = anAttr.Value()
264 print " ", aTimeStampName
266 print "theVisu.ImportMed...",
267 aMedField = SObjectToObject(aTimeStampSObj)
268 aResult = theVisu.ImportMedField(aMedField)
269 if aResult is None : raise RuntimeError, "Error"
271 aVISUObjList.append(aResult)
272 aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt))
276 # except Exception, e:
279 def CreatePrsForFile(theVisu, theFileName, thePrsTypeList, thePictureDir, thePictureExt) :
281 aVISUObjList = [myLocalStudy, myViewManager, myView] = CreateStudyForMed(theVisu, theFileName)
283 print "theVisu.ImportMed...",
284 aResult = theVisu.ImportFile(theFileName)
285 if aResult is None : raise RuntimeError, "Error"
288 aVISUObjList.extend(CreatePrsForResult(theVisu, aResult, myView, thePrsTypeList, thePictureDir, thePictureExt))
292 # except Exception, e:
295 def CreatePrsForResult(theVisu, theResult, theView, thePrsTypeList, thePictureDir, thePictureExt) :
297 print "CreatePrsForResult - myLocalStudy.FindObjectIOR...",
298 myLocalStudy = theVisu.GetCurrentStudy()
299 aSObj = myLocalStudy.FindObjectIOR(theResult.GetID())
300 if aSObj is None : raise RuntimeError, "Error"
302 aMeshIter = myLocalStudy.NewChildIterator(aSObj);
303 while aMeshIter.More() :
304 aMeshSObj = aMeshIter.Value()
306 anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
308 aMeshSObj = aMeshIter.Value()
310 anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
311 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
312 aMeshName = anAttr.Value()
313 aMeshNamePic = re.sub(".","_",aMeshName)
316 aFolderIter = myLocalStudy.NewChildIterator(aMeshSObj);
317 while aFolderIter.More() :
318 aFolderSObj = aFolderIter.Value()
320 anAttr = aFolderSObj.FindAttribute("AttributeName")[1]
321 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
322 aFolderName = anAttr.Value()
323 print " ", aFolderName
325 if aFolderName == 'Families' :
326 anEntityIter = myLocalStudy.NewChildIterator(aFolderSObj);
327 while anEntityIter.More() :
328 anEntitySObj = anEntityIter.Value()
330 anAttr = anEntitySObj.FindAttribute("AttributeName")[1]
331 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
332 anEntityName = anAttr.Value()
335 if anEntityName == 'onNodes' :
338 if anEntityName == 'onEdges' :
341 if anEntityName == 'onFaces' :
344 if anEntityName == 'onCells' :
348 if HasValue(thePrsTypeList,VISU.TMESH) :
349 print " ", anEntityName, aMeshName,
350 aMesh = theVisu.MeshOnEntity(theResult,aMeshName,anEntity)
351 if aMesh is None : print "Error"
354 theView.DisplayOnly(aMesh)
356 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "." + thePictureExt
357 aPictureName = re.sub("\s+","_", aPictureName);
358 theView.SavePicture(aPictureName)
359 aVISUObjList.append(aMesh)
361 anFamilyIter = myLocalStudy.NewChildIterator(anEntitySObj);
362 while anFamilyIter.More() :
363 aFamilySObj = anFamilyIter.Value()
365 anAttr = aFamilySObj.FindAttribute("AttributeName")[1]
366 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
367 anFamilyName = anAttr.Value()
368 if HasValue(thePrsTypeList,VISU.TMESH) :
369 print " ", anFamilyName,
370 aMesh = theVisu.FamilyMeshOnEntity(theResult,aMeshName,anEntity,anFamilyName)
371 if aMesh is None : print "Error"
374 theView.DisplayOnly(aMesh)
376 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + anFamilyName + "." + thePictureExt
377 aPictureName = re.sub("\s+","_", aPictureName);
378 theView.SavePicture(aPictureName)
379 aVISUObjList.append(aMesh)
381 if aFolderName == 'Groups' :
382 aGroupIter = myLocalStudy.NewChildIterator(aFolderSObj);
383 while aGroupIter.More() :
384 aGroupSObj = aGroupIter.Value()
386 anAttr = aGroupSObj.FindAttribute("AttributeName")[1]
387 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
388 aGroupName = anAttr.Value()
389 if HasValue(thePrsTypeList,VISU.TMESH) :
390 print " ", aGroupName,
391 aMesh = theVisu.GroupMesh(theResult,aMeshName,aGroupName)
392 if aMesh is None : print "Error"
395 theView.DisplayOnly(aMesh)
397 aPictureName = thePictureDir + aMeshNamePic + "_" + aGroupName + "." + thePictureExt
398 aPictureName = re.sub("\s+","_", aPictureName);
399 theView.SavePicture(aPictureName)
400 aVISUObjList.append(aMesh)
402 if aFolderName == 'Fields' :
403 aFieldIter = myLocalStudy.NewChildIterator(aFolderSObj);
404 while aFieldIter.More() :
405 aFieldSObj = aFieldIter.Value()
407 anAttr = aFieldSObj.FindAttribute("AttributeName")[1]
408 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
409 aFieldName = anAttr.Value()
410 print " ", aFieldName
412 anAttr = aFieldSObj.FindAttribute("AttributeComment")[1]
413 anAttr = anAttr._narrow(SALOMEDS.AttributeComment);
414 aFieldComment = anAttr.Value()
415 aMap = StrToMap(aFieldComment)
417 aTimeStampIter = myLocalStudy.NewChildIterator(aFieldSObj);
418 if aTimeStampIter.More() :
419 aTimeStampIter.Next()
420 while aTimeStampIter.More() :
421 aTimeStampSObj = aTimeStampIter.Value()
422 aTimeStampIter.Next()
423 anAttr = aTimeStampSObj.FindAttribute("AttributeName")[1]
424 anAttr = anAttr._narrow(SALOMEDS.AttributeName);
425 aTimeStampName = anAttr.Value()
426 print " ", aTimeStampName
428 anAttr = aTimeStampSObj.FindAttribute("AttributeComment")[1]
429 anAttr = anAttr._narrow(SALOMEDS.AttributeComment);
430 aTimeStampComment = anAttr.Value()
431 aMap = StrToMap(aTimeStampComment)
432 aMeshName = aMap["myMeshName"]
433 aFieldName = aMap["myFieldName"]
434 aTimeStampId = atoi(aMap["myTimeStampId"])
435 anEntity = IntToEntity(aMap["myEntityId"])
436 anEntityId = str(aMap["myEntityId"]);
437 #print aMeshName, aFieldName, anEntity, aTimeStampId
438 if HasValue(thePrsTypeList,VISU.TSCALARMAP) :
439 print " Creating ScalarMapOnField",
440 aPrsObj = theVisu.ScalarMapOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
441 if aPrsObj is None : print "Error"
444 theView.DisplayOnly(aPrsObj)
446 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSCALARMAP." + thePictureExt
447 aPictureName = re.sub("\s+","_", aPictureName);
448 theView.SavePicture(aPictureName)
449 aVISUObjList.append(aPrsObj)
451 if HasValue(thePrsTypeList,VISU.TISOSURFACE) :
452 print " Creating IsoSurfacesOnField",
453 aPrsObj = theVisu.IsoSurfacesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
454 if aPrsObj is None : print "Error"
457 theView.DisplayOnly(aPrsObj)
459 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TISOSURFACE." + thePictureExt
460 aPictureName = re.sub("\s+","_", aPictureName);
461 theView.SavePicture(aPictureName)
462 aVISUObjList.append(aPrsObj)
464 if HasValue(thePrsTypeList,VISU.TCUTPLANES) :
465 print " Creating CutPlanesOnField",
466 aPrsObj = theVisu.CutPlanesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
467 if aPrsObj is None : print "Error"
470 aPrsObj.SetOrientation(VISU.CutPlanes.ZX,aPrsObj.GetRotateX(),aPrsObj.GetRotateY())
471 theView.DisplayOnly(aPrsObj)
473 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTPLANES." + thePictureExt
474 aPictureName = re.sub("\s+","_", aPictureName)
475 theView.SavePicture(aPictureName)
476 aVISUObjList.append(aPrsObj)
478 if HasValue(thePrsTypeList,VISU.TCUTLINES) :
479 print " Creating CutLinesOnField",
480 aPrsObj = theVisu.CutLinesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
481 if aPrsObj is None : print "Error"
484 aPrsObj.SetOrientation(VISU.CutPlanes.XY,aPrsObj.GetRotateX(),aPrsObj.GetRotateY())
485 aPrsObj.SetOrientation2(VISU.CutPlanes.ZX,aPrsObj.GetRotateX2(),aPrsObj.GetRotateY2())
486 theView.DisplayOnly(aPrsObj)
488 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TCUTLINES." + thePictureExt
489 aPictureName = re.sub("\s+","_", aPictureName)
490 theView.SavePicture(aPictureName)
491 aVISUObjList.append(aPrsObj)
493 if HasValue(thePrsTypeList,VISU.TPLOT3D) :
494 print " Creating Plot3DOnField",
495 aPrsObj = theVisu.Plot3DOnField(theResult,aMeshName,anEntity,
496 aFieldName,aTimeStampId)
497 if aPrsObj is None : print "Error"
500 #aPrsObj.SetOrientation(VISU.CutPlanes.ZX,
501 # aPrsObj.GetRotateX(),
502 # aPrsObj.GetRotateY())
503 theView.DisplayOnly(aPrsObj)
505 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TPLOT3D." + thePictureExt
506 aPictureName = re.sub("\s+","_", aPictureName)
507 theView.SavePicture(aPictureName)
508 aVISUObjList.append(aPrsObj)
510 aNumComponent = atoi(aMap["myNumComponent"])
511 if aNumComponent > 1 :
512 if HasValue(thePrsTypeList,VISU.TDEFORMEDSHAPE) :
513 print " Creating DeformedShapeOnField",
514 aPrsObj = theVisu.DeformedShapeOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
515 if aPrsObj is None : print "Error"
518 theView.DisplayOnly(aPrsObj)
520 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TDEFORMEDSHAPE." + thePictureExt
521 aPictureName = re.sub("\s+","_", aPictureName)
522 theView.SavePicture(aPictureName)
523 aVISUObjList.append(aPrsObj)
525 if HasValue(thePrsTypeList,VISU.TVECTORS) :
526 print " Creating VectorsOnField",
527 aPrsObj = theVisu.VectorsOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
528 if aPrsObj is None : print "Error"
531 theView.DisplayOnly(aPrsObj)
533 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TVECTORS." + thePictureExt
534 aPictureName = re.sub("\s+","_", aPictureName)
535 theView.SavePicture(aPictureName)
536 aVISUObjList.append(aPrsObj)
538 if HasValue(thePrsTypeList,VISU.TSTREAMLINES) :
539 print " Creating StreamLinesOnField",
540 aPrsObj = theVisu.StreamLinesOnField(theResult,aMeshName,anEntity,aFieldName,aTimeStampId)
541 if aPrsObj is None : print "Error"
544 theView.DisplayOnly(aPrsObj)
546 aPictureName = thePictureDir + aMeshNamePic + "_" + anEntityId + "_" + aFieldName + "_" + str(aTimeStampId) + "_TSTREAMLINES." + thePictureExt
547 aPictureName = re.sub("\s+","_", aPictureName)
548 theView.SavePicture(aPictureName)
549 aVISUObjList.append(aPrsObj)
554 def generateName(prefix = None):
556 int = whrandom.randint(1,1000);
558 return "Study" + str(int)
560 return prefix + str(int)
564 # ----------------------
566 # ----------------------
567 def try_mesh_parameters(theMeshPattern):
569 if theMeshPattern is None : return aResult ;
570 theMeshPattern = theMeshPattern._narrow(VISU.Mesh)
571 if theMeshPattern is None : return aResult ;
573 aTYPES = [VISU.POINT, VISU.WIREFRAME, VISU.SHADED, VISU.INSIDEFRAME, VISU.SHRINK]
574 import copy; import os;
576 aNewMesh = copy.deepcopy(theMeshPattern);
577 aNewMesh.SetPresentationType(ind)
578 aResult.append(aNewMesh)
583 # ----------------------------
585 # ----------------------------
587 def try_scalarmap_parameters(thePattern, dump = 0):
589 if thePattern is None : return None
591 SCALING = [VISU.LINEAR, VISU.LOGARITHMIC]
595 anObj = thePattern#copy.deepcopy(thePattern);
596 #ind = random.randint(1,2)
598 #try incorrect value deliberately (but allowed by idl description)
599 #try SetScalarMode(long)
600 mode = random.randint(-100000,100000); #incorrect value deliberately
602 #correct value of ScalarMode
603 mode = random.randint(0, 3)
605 if dump : print "\tSetScalarMode(" + str(mode) +")"
606 anObj.SetScalarMode(mode)
609 scal = random.randint(0,1)
610 if dump : print "\tSetScaling(" + str(SCALING[scal]) +")"
611 anObj.SetScaling(SCALING[scal])
615 alfa = random.random()*random.randint(-100000,100000)
616 betta = random.random()*random.randint(-100000,100000)
617 aMin = alfa; aMax = betta
620 aPMin = thePattern.GetMin()
621 aPMax = thePattern.GetMax()
623 alfa = random.random()%0.5
624 betta = random.random()%0.5
625 aMin = alfa*aLen*random.randint(-1,1) + aPMin
626 aMax = betta*aLen*random.randint(-1,1) + aPMax
627 if dump : print "\tSetRange(" + str(aMin) + ", " + str(aMax) + ")"
628 anObj.SetRange(aMin, aMax)
632 X=random.random()*random.randint(-100000,100000)
633 Y=random.random()*random.randint(-100000,100000)
637 if dump : print "SetPosition("+ str(X) + ", " + str(Y) + " )"
638 anObj.SetPosition(X, Y)
640 # --- SCALAR BAR SIZE ---
642 aWidth=random.random()*random.randint(-100000,100000)
643 aHeight=random.random()*random.randint(-100000,100000)
645 aWidth=random.random()
646 aHeight=random.random()
647 if dump : print " SCALAR BAR Width = " + str(aWidth) + " Height = ", str(aHeight)
648 anObj.SetSize(aWidth, aHeight)
653 def dump_scalarmap_parameters(anObj):
655 print "\tGetScalarMode() = " + str(anObj.GetScalarMode())
656 print "\tGetScaling() = " + str(anObj.GetScaling())
657 print "\tGetMin() = " + str(anObj.GetMin()) + " GetMax() = " + str (anObj.GetMax())
658 print "\tGetOrientation() = " + str(anObj.GetOrientation())
659 print "\tGetPosX() = ", str(anObj.GetPosX()) + " GetPosY() = ", str(anObj.GetPosY())
660 print "\tGetWidth() = ", str ( anObj.GetWidth()) + " GetHeight() = " + str(anObj.GetHeight())
662 # ----------------------
664 # ----------------------
665 def try_deformedshape_parameters(thePattern) :
667 if thePattern is None : return None
671 anObj = try_scalarmap_parameters(thePattern)
675 anObj.SetScale( random.random()*random.randint(-100000, 100000))
677 anObj.SetScale( anObj.GetScale()*random.random())
682 def dump_deformedshape_parameters(theObject):
683 dump_scalarmap_parameters(theObject)
684 print "GetScale() = ", theObject.GetScale()
686 # ----------------------
688 # ----------------------
689 def try_cutplanes_parameters(thePattern) :
691 if thePattern is None : return aList
695 ORIENT = [VISU.CutPlanes.XY, VISU.CutPlanes.YZ, VISU.CutPlanes.ZX]
697 ind = random.randint(1,2)
698 anObj = try_scalarmap_parameters(thePattern)
700 if ind%2 : anObj.SetNbPlanes(random.randint(-40,40))
701 else : anObj.SetNbPlanes(random.randint(0,10)) #try behaivor if NbPlanes=0
703 # --- DISPLACEMENT ---
704 anObj.SetDisplacement(random.randint(-100000,100000))
706 # --- PLANE POSITION ---
708 PlaneNb = random.randint(-100000,100000) #incorrect value is possible
709 else : PlaneNb = random.randint(0, anObj.GetNbPlanes())
711 anObj.SetPlanePosition(PlaneNb, random.random()*random.randint(-100000,100000))
713 # --- SET DEFAULT ---
714 anObj.SetDefault(PlaneNb)
716 # --- SET X,Y,Z ROTATION ---
718 angle1 = random.random()*random.randint(-100000,100000)
719 angle2 = random.random()*random.randint(-100000,100000)
721 angle1 = random.random()*3.14
722 angle2 = random.random()*3.14
724 # --- ORIENTATION ---
725 anObj.SetOrientation(ORIENT[random.randint(0,2)],angle1,angle2)
729 def dump_cutplanes_parameters(theObject):
730 dump_saclarmap_parameters(theObject)
732 print "GetOrientationType = " + str(theObject.GetOrientationType())
733 PlanesNb = theObject.GetNbPlanes()
734 print "GetNbPlanes() = ", str(PlanesNb)
735 for i in range(0,PlanesNb+1):
736 if theObject.IsDefault(i) :
737 print "Default plane : "+str(i); break
738 print "GetPlanePosition(" + str(i) + ") = ", theObject.GetPlanePosition(i)
739 print "GetDisplacement() = ", str(theObject.GetDisplacement())
740 print "GetRotateX() = ", str(theObject.GetRotateX())
741 print "GetRotateY() = ", str(theObject.GetRotateY())
742 print "GetRotateZ() = ", str(theObject.GetRotateZ())
744 # ----------------------
746 # ----------------------
747 def try_cutlines_parameters(thePattern):
749 if thePattern is None : return None
753 ORIENT = [VISU.CutPlanes.XY, VISU.CutPlanes.YZ, VISU.CutPlanes.ZX]
754 ind = random.randint(1,2)
755 anObj = try_scalarmap_parameters(thePattern)
757 # --- ORIENTATION ---
758 anObj.SetOrientation(ORIENT[random.randint(0,2)],
759 random.randint(-100,100)*random.random(),
760 random.randint(-100,100)*random.random())
761 anObj.SetOrientation2(ORIENT[random.randint(0,2)],
762 random.randint(-100,100)*random.random(),
763 random.randint(-100,100)*random.random())
765 # --- Base Plane Position ---
766 anObj.SetBasePlanePosition( random.random()*random.randint(-100000,100000))
768 # --- NUMBER OF LINES ---
770 anObj.SetNbLines(random.randint(-5, 50))
774 def dump_cutlines_parameters(theObject):
775 dump_scalarmap_parameters(theObject)
777 print "GetOrientationType() = " + str(theObject.GetOrientationType())
778 print "GetOrientationType2() = " + str(theObject.GetOrientationType2())
779 print "GetBasePlanePosition() = "+ str(theObject.GetBasePlanePosition())
780 print "GetNbLines() = " + str(theObject.GetNbLines())
781 print "GetRotateX() = ", str(theObject.GetRotateX())
782 print "GetRotateX2() = ", str(theObject.GetRotateX2())
783 print "GetRotateY() = ", str(theObject.GetRotateY())
784 print "GetRotateY2() = ", str(theObject.GetRotateY2())
786 # ----------------------
788 # ----------------------
789 def try_streamlines_parameters(thePattern):
791 if thePattern is None : return None
795 DIRECTION = [VISU.StreamLines.FORWARD, VISU.StreamLines.BACKWARD, VISU.StreamLines.BOTH]
797 ind = random.randint(1,2)
798 anObj = (try_deformedshape_parameters(thePattern))[0]
801 anObj.SetDirection(DIRECTION[random.randint(0,2)])
803 # --- STEP LENGTH ---
804 if ind%2 : anObj.SetStepLength(random.random()*random.randint(-1000,1000))
806 aLen = anObj.GetMax() - anObj.GetMin()
807 anObj.SetStepLength(aLen/random.randint(1,100))
809 # --- PROPAGATION TIME ---
810 anObj.SetPropagationTime(random.random()*random.randint(1,100))
812 # --- INTEGRATION STEP ---
814 anObj.SetIntegrationStep(random.random()*random.randint(-1000,1000))
816 anObj.SetIntegrationStep(random.random())
819 anObj.SetUsedPoints(random.random()*random.randint(-10000,10000))
823 def dump_streamlines_parameters(theObject):
825 dump_deformedshape_parameters(theObject)
827 print "GetDirection() = " + str(theObject.GetDirection())
828 print "GetStepLength() = " + str(theObject.GetStepLength())
829 print "GetPropagationTime() =" + str(theObject.GetPropagationTime())
830 print "GetIntegrationStep() =" + str(theObject.GetIntegrationStep())
831 print "GetUsedPoints() =" + str(theObject.GetUsedPoints())
833 # ----------------------
835 # ----------------------
836 def try_vectors_parameters(thePattern, theNum):
838 if thePattern is None : return None
841 GLIPH_TYPE = [VISU.Vectors.ARROW, VISU.Vectors.CONE2, VISU.Vectors.CONE6, VISU.Vectors.NONE]
842 GLIPH_POS = [VISU.Vectors.CENTER, VISU.Vectors.TAIL, VISU.Vectors.HEAD]
843 ind = random.randint(1,2)
844 anObj = (try_deformedshape_parameters(thePattern))[0]
848 anObj.SetLineWidth(random.random()*random.randint(-10000,10000))
850 anObj.SetLineWidth(random.randint(1, 10))
853 anObj.SetGlyphType(GLIPH_TYPE[random.randint(0, len(GLIPH_TYPE)-1)])
856 anObj.SetGlyphPos(GLIPH_POS[random.randint(0, len(GLIPH_POS)-1)])
860 def dump_vetctors_parameters(theObject):
862 dump_deformedshape_parameters(theObject)
864 print "GetLineWidth() = " +str(theObject.GetLineWidth())
865 print "GetGlyphType() = " +str(theObject.GetGlyphType())
866 print "GetGlyphPos() = " +str(theObject.GetGlyphPos())
869 # ----------------------
871 # ----------------------
873 def try_isosurfaces_parameters(thePattern) :
874 if thePattern is None : return None
878 anObj = try_scalarmap_parameters(thePattern)
879 ind = random.randint(1,2)
880 # --- SURFACES NUMBER ---
882 anObj.SetNbSurfaces(random.randint(-100000,100000))
884 anObj.SetNbSurfaces(random.randint(1, 50))
888 def dump_isosurfaces_parameters(theObject):
890 dump_scalarmap_parameters(theObject)
891 print "GetNbSurfaces() = "+ str(theObject.GetNbSurfaces())
894 # ----------------------
896 # ----------------------
898 def FillTable( theTable, theValues, theRows, theColumns, theRowTitles, theRowUnits, theColumnTitles ):
899 if theTable is None: return
900 if len(theRows) != len(theColumns): return
901 if len(theRows) != len(theValues): return
903 for value in theValues:
904 theTable.PutValue( value, theRows[ i ], theColumns[ i ])
908 for title in theRowTitles:
909 theTable.SetRowTitle( i, title )
910 theTable.SetRowUnit( i, theRowUnits[ i - 1 ])
914 for title in theColumnTitles:
915 theTable.SetColumnTitle( i, title )
920 def CreateCurve( theTable, theHRow, theVRow, theTitle, theColor, theMarker, theLineType, theLineWidth ):
921 if theTitle is None: return
922 curve = myLocalVisu.CreateCurve( theTable, theHRow, theVRow );
924 curve.SetTitle( theTitle )
925 curve.SetColor( theColor )
926 curve.SetMarker( theMarker )
927 curve.SetLine( theLineType, theLineWidth )