Browse Source

Merge branch 'release/1.10.x'

rdb 2 years ago
parent
commit
5d63c7e898

+ 1 - 1
direct/src/cluster/ClusterServer.py

@@ -158,7 +158,7 @@ class ClusterServer(DirectObject.DirectObject):
             self.controlPriorities[objectName] = priority
             self.redoSortedPriorities()
         else:
-            self.notify.debug('attempt to add duplicate controlled object: '+name)
+            self.notify.debug('attempt to add duplicate controlled object: ' + objectName)
 
     def setControlMappingOffset(self, objectName, offset):
         if objectName in self.controlMappings:

+ 1 - 1
direct/src/directdevices/DirectDeviceManager.py

@@ -176,7 +176,7 @@ class DirectAnalogs(AnalogNode, DirectObject):
 
     def normalizeChannel(self, chan, minVal = -1, maxVal = 1, sf = 1.0):
         try:
-            return self.normalize(self[chan], minVal, maxVal, sfx)
+            return self.normalize(self[chan], minVal, maxVal, sf)
         except IndexError:
             return 0.0
 

+ 2 - 0
direct/src/dist/FreezeTool.py

@@ -83,7 +83,9 @@ defaultHiddenImports = {
     'plyer': ['plyer.platforms'],
     'scipy.linalg': ['scipy.linalg.cython_blas', 'scipy.linalg.cython_lapack'],
     'scipy.sparse.csgraph': ['scipy.sparse.csgraph._validation'],
+    'scipy.spatial.qhull': ['scipy._lib.messagestream'],
     'scipy.spatial._qhull': ['scipy._lib.messagestream'],
+    'scipy.spatial.transform.rotation': ['scipy.spatial.transform._rotation_groups'],
     'scipy.spatial.transform._rotation': ['scipy.spatial.transform._rotation_groups'],
     'scipy.special._ufuncs': ['scipy.special._ufuncs_cxx'],
     'scipy.stats._stats': ['scipy.special.cython_special'],

+ 1 - 1
direct/src/dist/commands.py

@@ -1121,7 +1121,7 @@ class build_apps(setuptools.Command):
 
                 # Remove python version string
                 parts = basename.split('.')
-                if len(parts) >= 3 and '-' in parts[-2]:
+                if len(parts) >= 3 and ('-' in parts[-2] or parts[-2] == 'abi' + str(sys.version_info[0])):
                     parts = parts[:-2] + parts[-1:]
                     basename = '.'.join(parts)
 

+ 0 - 3
direct/src/dist/icon.py

@@ -114,9 +114,6 @@ class Icon:
                 for x in range(size):
                     pixel = image2.get_pixel(x, size - y - 1)
                     index = colors.index(pixel)
-                    if index >= 256:
-                        # Find closest pixel instead.
-                        index = closest_indices[index - 256]
                     fp.write(struct.pack('<B', index))
                 fp.write(rowalign)
         else:

+ 2 - 2
direct/src/leveleditor/ObjectPaletteUI.py

@@ -64,11 +64,11 @@ class ObjectPaletteUI(wx.Panel):
         data1 = self.tree.GetItemText(item1)
         data2 = self.tree.GetItemText(item2)
         if self.opSort == self.opSortAlpha:
-            return cmp(data1, data2)
+            return (data1 > data2) - (data1 < data2)
         else:
             index1 = self.palette.dataKeys.index(data1)
             index2 = self.palette.dataKeys.index(data2)
-        return cmp(index1, index2)
+            return (index1 > index2) - (index1 < index2)
 
     def getSelected(self):
         return self.tree.GetItemData(self.tree.GetSelection())

+ 2 - 2
direct/src/leveleditor/ProtoPaletteUI.py

@@ -200,9 +200,9 @@ class ProtoPaletteUI(wx.Panel):
         data1 = self.tree.GetItemText(item1)
         data2 = self.tree.GetItemText(item2)
         if self.opSort == self.opSortAlpha:
-            return cmp(data1, data2)
+            return (data1 > data2) - (data1 < data2)
         else:
             items = list(self.palette.data.keys())
             index1 = items.index(data1)
             index2 = items.index(data2)
-        return cmp(index1, index2)
+            return (index1 > index2) - (index1 < index2)

+ 1 - 1
direct/src/particles/ParticleFloorTest.py

@@ -1,5 +1,5 @@
 
-from panda3d.core import NodePath
+from panda3d.core import NodePath, Vec3
 from panda3d.physics import LinearVectorForce
 from direct.particles import ParticleEffect
 from direct.particles import Particles

+ 1 - 1
direct/src/showbase/ProfileSession.py

@@ -28,7 +28,7 @@ class PercentStats(pstats.Stats):
             print()
         indent = ' ' * 8
         for func in self.top_level:
-            print(indent, func_get_function_name(func))
+            print(indent, pstats.func_get_function_name(func))
 
         print(indent, self.total_calls, "function calls", end=' ')
         if self.total_calls != self.prim_calls:

+ 1 - 3
direct/src/tkpanels/AnimPanel.py

@@ -458,10 +458,8 @@ class ActorControl(Pmw.MegaWidget):
         playRateList = ['1/24.0', '0.1', '0.5', '1.0', '2.0', '5.0', '10.0']
         playRate = '%0.1f' % self['actor'].getPlayRate(self['active'])
         if playRate not in playRateList:
-            def strCmp(a, b):
-                return cmp(eval(a), eval(b))
             playRateList.append(playRate)
-            playRateList.sort(strCmp)
+            playRateList.sort(key=lambda s:eval(s))
         playRateMenu = self.createcomponent(
             'playRateMenu', (), None,
             Pmw.ComboBox, (interior,),

+ 114 - 0
tests/gobj/test_geom_vertex_format.py

@@ -0,0 +1,114 @@
+from panda3d.core import GeomVertexArrayFormat, GeomVertexFormat, Geom
+
+
+def test_format_arrays():
+    array1 = GeomVertexArrayFormat("vertex", 3, Geom.NT_float32, Geom.C_point)
+    array2 = GeomVertexArrayFormat("normal", 3, Geom.NT_float32, Geom.C_normal)
+    array3 = GeomVertexArrayFormat("color", 4, Geom.NT_float32, Geom.C_color)
+    array4 = GeomVertexArrayFormat("texcoord", 2, Geom.NT_float32, Geom.C_texcoord)
+
+    # Verify initial refcounts
+    assert array1.get_ref_count() == 1
+    assert array2.get_ref_count() == 1
+    assert array3.get_ref_count() == 1
+    assert array4.get_ref_count() == 1
+
+    format = GeomVertexFormat()
+
+    def expect_arrays(*args):
+        assert format.get_num_arrays() == len(args)
+        assert len(format.arrays) == len(args)
+        assert tuple(format.arrays) == args
+        arrays = format.get_arrays()
+        assert tuple(arrays) == args
+
+        assert array1.get_ref_count() == 1 + arrays.count(array1) * 2
+        assert array2.get_ref_count() == 1 + arrays.count(array2) * 2
+        assert array3.get_ref_count() == 1 + arrays.count(array3) * 2
+        assert array4.get_ref_count() == 1 + arrays.count(array4) * 2
+
+    # Verify empty state
+    expect_arrays()
+
+    # Append to end
+    format.add_array(array1)
+    expect_arrays(array1,)
+    format.add_array(array2)
+    expect_arrays(array1, array2)
+    format.add_array(array3)
+    expect_arrays(array1, array2, array3)
+    format.add_array(array4)
+    expect_arrays(array1, array2, array3, array4)
+
+    # Verify other accessors
+    assert format.get_num_arrays() == 4
+    assert len(format.arrays) == 4
+    assert tuple(format.get_arrays()) == (array1, array2, array3, array4)
+
+    # Remove from beginning
+    format.remove_array(0)
+    expect_arrays(array2, array3, array4)
+    format.remove_array(0)
+    expect_arrays(array3, array4)
+    format.remove_array(0)
+    expect_arrays(array4,)
+    format.remove_array(0)
+    expect_arrays()
+
+    # Insert at end
+    format.insert_array(0, array1)
+    expect_arrays(array1,)
+    format.insert_array(1, array2)
+    expect_arrays(array1, array2)
+    format.insert_array(2, array3)
+    expect_arrays(array1, array2, array3)
+    format.insert_array(3, array4)
+    expect_arrays(array1, array2, array3, array4)
+
+    # Remove from end
+    format.remove_array(3)
+    expect_arrays(array1, array2, array3)
+    format.remove_array(2)
+    expect_arrays(array1, array2)
+    format.remove_array(1)
+    expect_arrays(array1,)
+    format.remove_array(0)
+    expect_arrays()
+
+    # Insert at beginning
+    format.insert_array(0, array4)
+    expect_arrays(array4,)
+    format.insert_array(0, array3)
+    expect_arrays(array3, array4)
+    format.insert_array(0, array2)
+    expect_arrays(array2, array3, array4)
+    format.insert_array(0, array1)
+    expect_arrays(array1, array2, array3, array4)
+
+    # Remove from middle and insert back in middle
+    format.remove_array(2)
+    expect_arrays(array1, array2, array4)
+    format.insert_array(2, array3)
+    expect_arrays(array1, array2, array3, array4)
+    format.remove_array(1)
+    expect_arrays(array1, array3, array4)
+    format.remove_array(1)
+    expect_arrays(array1, array4)
+    format.insert_array(1, array2)
+    expect_arrays(array1, array2, array4)
+    format.insert_array(2, array3)
+    expect_arrays(array1, array2, array3, array4)
+
+    # Clear
+    format.clear_arrays()
+    expect_arrays()
+
+    # Add to end but with very high index
+    format.insert_array(0xffffffff, array1)
+    expect_arrays(array1,)
+    format.insert_array(0xffffffff, array2)
+    expect_arrays(array1, array2)
+    format.insert_array(0xffffffff, array3)
+    expect_arrays(array1, array2, array3)
+    format.insert_array(0xffffffff, array4)
+    expect_arrays(array1, array2, array3, array4)