Salome HOME
GlobalNodeIds in MEDReader in // context.
[modules/paravis.git] / src / PV_SWIG / presentations.py
index 766f89784d7fab8b25c6900737a85e83533f870f..c8802d0cd65056dd2a3ae09297d6465823737fdb 100644 (file)
@@ -955,7 +955,12 @@ def get_lookup_table(field_name, nb_components, vector_mode='Magnitude'):
 
     lookup_table.Discretize = 0
     lookup_table.ColorSpace = 'HSV'
-    lookup_table.LockScalarRange = 0
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 0
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 0
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
 
     return lookup_table
 
@@ -1109,7 +1114,13 @@ def ScalarMapOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
     # Set properties
     scalarmap.ColorArrayName = (EntityType.get_pvtype(entity), field_name)
@@ -1192,7 +1203,14 @@ def CutPlanesOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1333,7 +1351,13 @@ def CutLinesOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1406,7 +1430,13 @@ def CutSegmentOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1522,7 +1552,13 @@ def VectorsOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+    
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1620,7 +1656,13 @@ def DeformedShapeOnField(proxy, entity, field_name,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1738,7 +1780,13 @@ def DeformedShapeAndScalarMapOnField(proxy, entity, field_name,
     # Set field range if necessary
     data_range = get_data_range(proxy, scalar_field_entity,
                                 scalar_field, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -1907,7 +1955,13 @@ def Plot3DOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -2008,7 +2062,13 @@ def IsoSurfacesOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set display properties
@@ -2131,7 +2191,13 @@ def GaussPointsOnField(proxy, entity, field_name,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set display properties
@@ -2181,7 +2247,7 @@ def GaussPointsOnField(proxy, entity, field_name,
 
     if is_proportional:
         mult = multiplier
-        if mult is None:
+        if mult is None and data_range[1] != 0:
             mult = abs(0.1 / data_range[1])
 
         gausspnt.RadiusScalarRange = data_range
@@ -2194,8 +2260,9 @@ def GaussPointsOnField(proxy, entity, field_name,
         gausspnt.RadiusTransferFunctionMode = 'Table'
         gausspnt.RadiusScalarRange = data_range
         gausspnt.RadiusUseScalarRange = 1
-        gausspnt.RadiusIsProportional = 1
-        gausspnt.RadiusProportionalFactor = mult
+        if mult is not None:
+            gausspnt.RadiusIsProportional = 1
+            gausspnt.RadiusProportionalFactor = mult
     else:
         gausspnt.RadiusTransferFunctionEnabled = 0
         gausspnt.RadiusMode = 'Constant'
@@ -2262,7 +2329,13 @@ def GaussPointsOnField1(proxy, entity, field_name,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set display properties
@@ -2312,7 +2385,7 @@ def GaussPointsOnField1(proxy, entity, field_name,
 
     if is_proportional:
         mult = multiplier
-        if mult is None:
+        if mult is None and data_range[1] != 0:
             mult = abs(0.1 / data_range[1])
 
         gausspnt.RadiusScalarRange = data_range
@@ -2325,8 +2398,9 @@ def GaussPointsOnField1(proxy, entity, field_name,
         gausspnt.RadiusTransferFunctionMode = 'Table'
         gausspnt.RadiusScalarRange = data_range
         gausspnt.RadiusUseScalarRange = 1
-        gausspnt.RadiusIsProportional = 1
-        gausspnt.RadiusProportionalFactor = mult
+        if mult is not None:
+            gausspnt.RadiusIsProportional = 1
+            gausspnt.RadiusProportionalFactor = mult
     else:
         gausspnt.RadiusTransferFunctionEnabled = 0
         gausspnt.RadiusMode = 'Constant'
@@ -2414,7 +2488,13 @@ def StreamLinesOnField(proxy, entity, field_name, timestamp_nb,
     # Set field range if necessary
     data_range = get_data_range(proxy, entity,
                                 field_name, vector_mode)
-    lookup_table.LockScalarRange = 1
+    if hasattr(lookup_table,"LockDataRange"):
+        lookup_table.LockDataRange = 1
+    elif hasattr(lookup_table,"LockScalarRange"):
+        lookup_table.LockScalarRange = 1
+    else:
+        raise RuntimeError("Object %s has no 'LockDataRange' or 'LockScalarRange' attribute!"%(lookup_table))
+
     lookup_table.RGBPoints = [data_range[0], 0, 0, 1, data_range[1], 1, 0, 0]
 
     # Set properties
@@ -2617,7 +2697,6 @@ def CreatePrsForProxy(proxy, view, prs_types, picture_dir, picture_ext):
         proxy.UpdatePipeline()
 
         # Get timestamps
-        entity_data_info = proxy.GetCellDataInformation()
         timestamps = proxy.TimestepValues.GetData()
 
         for prs_type in prs_types:
@@ -2644,8 +2723,18 @@ def CreatePrsForProxy(proxy, view, prs_types, picture_dir, picture_ext):
                         if (scalar_range[0] == scalar_range[1]):
                             continue
                     print "Creating " + prs_name + " on " + field_name + ", time = " + str(time) + "... "
-                    prs = create_prs(prs_type, proxy,
-                                     field_entity, field_name, timestamp_nb)
+                    try:
+                        prs = create_prs(prs_type, proxy,
+                                         field_entity, field_name, timestamp_nb)
+                    except ValueError:
+                        """ This exception comes from get_nb_components(...) function.
+                            The reason of exception is an implementation of MEDReader
+                            activating the first leaf when reading MED file (refer to
+                            MEDFileFieldRepresentationTree::activateTheFirst() and
+                            MEDFileFieldRepresentationTree::getTheSingleActivated(...) methods).
+                        """
+                        print "ValueError exception is catched"
+                        continue
                     if prs is None:
                         print "FAILED"
                         continue