pyfast 4.12.0__cp36-abi3-win_amd64.whl → 4.13.1__cp36-abi3-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
fast/__init__.py CHANGED
@@ -3,8 +3,17 @@ import threading
3
3
  if threading.current_thread() != threading.main_thread():
4
4
  raise ImportError('FAST must be imported in main thread (import fast)!')
5
5
 
6
- import os
6
+ # Check that PySide2 is not included before fast
7
7
  import sys
8
+ #if 'fast' not in sys.modules and 'PySide2.QtCore' in sys.modules:
9
+ # raise RuntimeError('You have to import fast before PySide2!\n\n'
10
+ # 'Import FAST before PySide2 in the following way:\n'
11
+ # 'if platform.system() != \'Windows\':\n'
12
+ # ' import PySide2.QtSvg # Must import this before fast due to conflicting symbols\n'
13
+ # 'import fast # Must import FAST before rest of pyside2\n'
14
+ # 'from PySide2.QtWidgets import *')
15
+
16
+ import os
8
17
  is_windows = sys.platform.startswith('win')
9
18
  # Set base path in config to be two directories up from where the python module is
10
19
  bin_path = path = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'bin'))
fast/bin/FAST.dll CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
fast/bin/UFFviewer.exe CHANGED
Binary file
fast/bin/_fast.pyd CHANGED
Binary file
fast/bin/concrt140.dll ADDED
Binary file
fast/bin/msvcp140.dll ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
fast/bin/runPipeline.exe CHANGED
Binary file
fast/bin/systemCheck.exe CHANGED
Binary file
fast/bin/vcomp140.dll ADDED
Binary file
Binary file
Binary file
fast/fast.py CHANGED
@@ -2739,6 +2739,135 @@ _data_type_to_str = {
2739
2739
  }
2740
2740
  _str_to_data_type = {value : key for (key, value) in _data_type_to_str.items()}
2741
2741
 
2742
+ class RuntimeMeasurement(object):
2743
+ r"""
2744
+ A class for runtime measurement
2745
+
2746
+ Collect multiple runtimes over time, and calculates running average, running standard deviation,
2747
+ sum, max, min etc.
2748
+
2749
+ All measurements are in milliseconds
2750
+ """
2751
+
2752
+ thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2753
+ __repr__ = _swig_repr
2754
+
2755
+ def __init__(self, name: "std::string", warmupRounds: "int"=0, maximumSamples: "int"=-1):
2756
+ _fast.RuntimeMeasurement_swiginit(self, _fast.new_RuntimeMeasurement(name, warmupRounds, maximumSamples))
2757
+
2758
+ def addSample(self, runtime: "double") -> "void":
2759
+ return _fast.RuntimeMeasurement_addSample(self, runtime)
2760
+
2761
+ def getSum(self) -> "double":
2762
+ return _fast.RuntimeMeasurement_getSum(self)
2763
+
2764
+ def getAverage(self) -> "double":
2765
+ return _fast.RuntimeMeasurement_getAverage(self)
2766
+
2767
+ def getSamples(self) -> "unsigned int":
2768
+ return _fast.RuntimeMeasurement_getSamples(self)
2769
+
2770
+ def getMax(self) -> "double":
2771
+ return _fast.RuntimeMeasurement_getMax(self)
2772
+
2773
+ def getMin(self) -> "double":
2774
+ return _fast.RuntimeMeasurement_getMin(self)
2775
+
2776
+ def getStdDeviation(self) -> "double":
2777
+ return _fast.RuntimeMeasurement_getStdDeviation(self)
2778
+
2779
+ def _print(self) -> "std::string":
2780
+ return _fast.RuntimeMeasurement__print(self)
2781
+
2782
+ def reset(self) -> "void":
2783
+ return _fast.RuntimeMeasurement_reset(self)
2784
+ __swig_destroy__ = _fast.delete_RuntimeMeasurement
2785
+
2786
+ # Register RuntimeMeasurement in _fast:
2787
+ _fast.RuntimeMeasurement_swigregister(RuntimeMeasurement)
2788
+
2789
+ class RuntimeMeasurementsManager(object):
2790
+ r"""
2791
+ Manages multiple runtime measurements
2792
+
2793
+ See also: RuntimeMeasurement
2794
+ """
2795
+
2796
+ thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2797
+
2798
+ def __init__(self, *args, **kwargs):
2799
+ raise AttributeError("No constructor defined")
2800
+ __repr__ = _swig_repr
2801
+
2802
+ @staticmethod
2803
+ def New() -> "std::shared_ptr< fast::RuntimeMeasurementsManager >":
2804
+ return _fast.RuntimeMeasurementsManager_New()
2805
+
2806
+ def getNameOfClass(self) -> "std::string":
2807
+ return _fast.RuntimeMeasurementsManager_getNameOfClass(self)
2808
+
2809
+ @staticmethod
2810
+ def getStaticNameOfClass() -> "std::string":
2811
+ return _fast.RuntimeMeasurementsManager_getStaticNameOfClass()
2812
+
2813
+ def setWarmupRounds(self, rounds: "int") -> "void":
2814
+ return _fast.RuntimeMeasurementsManager_setWarmupRounds(self, rounds)
2815
+
2816
+ def getWarmupRounds(self) -> "int":
2817
+ return _fast.RuntimeMeasurementsManager_getWarmupRounds(self)
2818
+
2819
+ def enable(self) -> "void":
2820
+ return _fast.RuntimeMeasurementsManager_enable(self)
2821
+
2822
+ def disable(self) -> "void":
2823
+ return _fast.RuntimeMeasurementsManager_disable(self)
2824
+
2825
+ def isEnabled(self) -> "bool":
2826
+ return _fast.RuntimeMeasurementsManager_isEnabled(self)
2827
+
2828
+ def startCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
2829
+ return _fast.RuntimeMeasurementsManager_startCLTimer(self, name, queue)
2830
+
2831
+ def stopCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
2832
+ return _fast.RuntimeMeasurementsManager_stopCLTimer(self, name, queue)
2833
+
2834
+ def startRegularTimer(self, name: "std::string") -> "void":
2835
+ return _fast.RuntimeMeasurementsManager_startRegularTimer(self, name)
2836
+
2837
+ def stopRegularTimer(self, name: "std::string") -> "void":
2838
+ return _fast.RuntimeMeasurementsManager_stopRegularTimer(self, name)
2839
+
2840
+ def startNumberedCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
2841
+ return _fast.RuntimeMeasurementsManager_startNumberedCLTimer(self, name, queue)
2842
+
2843
+ def stopNumberedCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
2844
+ return _fast.RuntimeMeasurementsManager_stopNumberedCLTimer(self, name, queue)
2845
+
2846
+ def startNumberedRegularTimer(self, name: "std::string") -> "void":
2847
+ return _fast.RuntimeMeasurementsManager_startNumberedRegularTimer(self, name)
2848
+
2849
+ def stopNumberedRegularTimer(self, name: "std::string") -> "void":
2850
+ return _fast.RuntimeMeasurementsManager_stopNumberedRegularTimer(self, name)
2851
+
2852
+ def getTiming(self, name: "std::string") -> "fast::RuntimeMeasurement::pointer":
2853
+ return _fast.RuntimeMeasurementsManager_getTiming(self, name)
2854
+
2855
+ def _print(self, name: "std::string") -> "void":
2856
+ return _fast.RuntimeMeasurementsManager__print(self, name)
2857
+
2858
+ def printAll(self) -> "void":
2859
+ return _fast.RuntimeMeasurementsManager_printAll(self)
2860
+ __swig_destroy__ = _fast.delete_RuntimeMeasurementsManager
2861
+
2862
+ # Register RuntimeMeasurementsManager in _fast:
2863
+ _fast.RuntimeMeasurementsManager_swigregister(RuntimeMeasurementsManager)
2864
+
2865
+ def RuntimeMeasurementsManager_New() -> "std::shared_ptr< fast::RuntimeMeasurementsManager >":
2866
+ return _fast.RuntimeMeasurementsManager_New()
2867
+
2868
+ def RuntimeMeasurementsManager_getStaticNameOfClass() -> "std::string":
2869
+ return _fast.RuntimeMeasurementsManager_getStaticNameOfClass()
2870
+
2742
2871
  class ReporterEnd(object):
2743
2872
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2744
2873
  __repr__ = _swig_repr
@@ -2839,6 +2968,21 @@ class Object(object):
2839
2968
  def getReporter(self) -> "fast::Reporter &":
2840
2969
  return _fast.Object_getReporter(self)
2841
2970
 
2971
+ def getRuntime(self, *args) -> "fast::RuntimeMeasurement::pointer":
2972
+ return _fast.Object_getRuntime(self, *args)
2973
+
2974
+ def getAllRuntimes(self) -> "fast::RuntimeMeasurementsManager::pointer":
2975
+ return _fast.Object_getAllRuntimes(self)
2976
+
2977
+ def getRuntimeManager(self) -> "fast::RuntimeMeasurementsManager::pointer":
2978
+ return _fast.Object_getRuntimeManager(self)
2979
+
2980
+ def enableRuntimeMeasurements(self) -> "void":
2981
+ return _fast.Object_enableRuntimeMeasurements(self)
2982
+
2983
+ def disableRuntimeMeasurements(self) -> "void":
2984
+ return _fast.Object_disableRuntimeMeasurements(self)
2985
+
2842
2986
  # Register Object in _fast:
2843
2987
  _fast.Object_swigregister(Object)
2844
2988
 
@@ -3076,135 +3220,6 @@ class DeviceCriteria(object):
3076
3220
  # Register DeviceCriteria in _fast:
3077
3221
  _fast.DeviceCriteria_swigregister(DeviceCriteria)
3078
3222
 
3079
- class RuntimeMeasurement(Object):
3080
- r"""
3081
- A class for runtime measurement
3082
-
3083
- Collect multiple runtimes over time, and calculates running average, running standard deviation,
3084
- sum, max, min etc.
3085
-
3086
- All measurements are in milliseconds
3087
- """
3088
-
3089
- thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3090
- __repr__ = _swig_repr
3091
-
3092
- def __init__(self, name: "std::string", warmupRounds: "int"=0, maximumSamples: "int"=-1):
3093
- _fast.RuntimeMeasurement_swiginit(self, _fast.new_RuntimeMeasurement(name, warmupRounds, maximumSamples))
3094
-
3095
- def addSample(self, runtime: "double") -> "void":
3096
- return _fast.RuntimeMeasurement_addSample(self, runtime)
3097
-
3098
- def getSum(self) -> "double":
3099
- return _fast.RuntimeMeasurement_getSum(self)
3100
-
3101
- def getAverage(self) -> "double":
3102
- return _fast.RuntimeMeasurement_getAverage(self)
3103
-
3104
- def getSamples(self) -> "unsigned int":
3105
- return _fast.RuntimeMeasurement_getSamples(self)
3106
-
3107
- def getMax(self) -> "double":
3108
- return _fast.RuntimeMeasurement_getMax(self)
3109
-
3110
- def getMin(self) -> "double":
3111
- return _fast.RuntimeMeasurement_getMin(self)
3112
-
3113
- def getStdDeviation(self) -> "double":
3114
- return _fast.RuntimeMeasurement_getStdDeviation(self)
3115
-
3116
- def _print(self) -> "std::string":
3117
- return _fast.RuntimeMeasurement__print(self)
3118
-
3119
- def reset(self) -> "void":
3120
- return _fast.RuntimeMeasurement_reset(self)
3121
- __swig_destroy__ = _fast.delete_RuntimeMeasurement
3122
-
3123
- # Register RuntimeMeasurement in _fast:
3124
- _fast.RuntimeMeasurement_swigregister(RuntimeMeasurement)
3125
-
3126
- class RuntimeMeasurementsManager(Object):
3127
- r"""
3128
- Manages multiple runtime measurements
3129
-
3130
- See also: RuntimeMeasurement
3131
- """
3132
-
3133
- thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3134
-
3135
- def __init__(self, *args, **kwargs):
3136
- raise AttributeError("No constructor defined")
3137
- __repr__ = _swig_repr
3138
-
3139
- @staticmethod
3140
- def New() -> "std::shared_ptr< fast::RuntimeMeasurementsManager >":
3141
- return _fast.RuntimeMeasurementsManager_New()
3142
-
3143
- def getNameOfClass(self) -> "std::string":
3144
- return _fast.RuntimeMeasurementsManager_getNameOfClass(self)
3145
-
3146
- @staticmethod
3147
- def getStaticNameOfClass() -> "std::string":
3148
- return _fast.RuntimeMeasurementsManager_getStaticNameOfClass()
3149
-
3150
- def setWarmupRounds(self, rounds: "int") -> "void":
3151
- return _fast.RuntimeMeasurementsManager_setWarmupRounds(self, rounds)
3152
-
3153
- def getWarmupRounds(self) -> "int":
3154
- return _fast.RuntimeMeasurementsManager_getWarmupRounds(self)
3155
-
3156
- def enable(self) -> "void":
3157
- return _fast.RuntimeMeasurementsManager_enable(self)
3158
-
3159
- def disable(self) -> "void":
3160
- return _fast.RuntimeMeasurementsManager_disable(self)
3161
-
3162
- def isEnabled(self) -> "bool":
3163
- return _fast.RuntimeMeasurementsManager_isEnabled(self)
3164
-
3165
- def startCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
3166
- return _fast.RuntimeMeasurementsManager_startCLTimer(self, name, queue)
3167
-
3168
- def stopCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
3169
- return _fast.RuntimeMeasurementsManager_stopCLTimer(self, name, queue)
3170
-
3171
- def startRegularTimer(self, name: "std::string") -> "void":
3172
- return _fast.RuntimeMeasurementsManager_startRegularTimer(self, name)
3173
-
3174
- def stopRegularTimer(self, name: "std::string") -> "void":
3175
- return _fast.RuntimeMeasurementsManager_stopRegularTimer(self, name)
3176
-
3177
- def startNumberedCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
3178
- return _fast.RuntimeMeasurementsManager_startNumberedCLTimer(self, name, queue)
3179
-
3180
- def stopNumberedCLTimer(self, name: "std::string", queue: "cl::CommandQueue") -> "void":
3181
- return _fast.RuntimeMeasurementsManager_stopNumberedCLTimer(self, name, queue)
3182
-
3183
- def startNumberedRegularTimer(self, name: "std::string") -> "void":
3184
- return _fast.RuntimeMeasurementsManager_startNumberedRegularTimer(self, name)
3185
-
3186
- def stopNumberedRegularTimer(self, name: "std::string") -> "void":
3187
- return _fast.RuntimeMeasurementsManager_stopNumberedRegularTimer(self, name)
3188
-
3189
- def getTiming(self, name: "std::string") -> "fast::RuntimeMeasurement::pointer":
3190
- return _fast.RuntimeMeasurementsManager_getTiming(self, name)
3191
-
3192
- def _print(self, name: "std::string") -> "void":
3193
- return _fast.RuntimeMeasurementsManager__print(self, name)
3194
-
3195
- def printAll(self) -> "void":
3196
- return _fast.RuntimeMeasurementsManager_printAll(self)
3197
- __swig_destroy__ = _fast.delete_RuntimeMeasurementsManager
3198
-
3199
- # Register RuntimeMeasurementsManager in _fast:
3200
- _fast.RuntimeMeasurementsManager_swigregister(RuntimeMeasurementsManager)
3201
-
3202
- def RuntimeMeasurementsManager_New() -> "std::shared_ptr< fast::RuntimeMeasurementsManager >":
3203
- return _fast.RuntimeMeasurementsManager_New()
3204
-
3205
- def RuntimeMeasurementsManager_getStaticNameOfClass() -> "std::string":
3206
- return _fast.RuntimeMeasurementsManager_getStaticNameOfClass()
3207
-
3208
3223
  class ExecutionDevice(Object):
3209
3224
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3210
3225
  __repr__ = _swig_repr
@@ -3471,21 +3486,6 @@ class ProcessObject(AttributeObject):
3471
3486
  """
3472
3487
  return _fast.ProcessObject_update(self, executeToken)
3473
3488
 
3474
- def getRuntime(self, *args) -> "fast::RuntimeMeasurement::pointer":
3475
- return _fast.ProcessObject_getRuntime(self, *args)
3476
-
3477
- def getAllRuntimes(self) -> "fast::RuntimeMeasurementsManager::pointer":
3478
- return _fast.ProcessObject_getAllRuntimes(self)
3479
-
3480
- def getRuntimeManager(self) -> "fast::RuntimeMeasurementsManager::pointer":
3481
- return _fast.ProcessObject_getRuntimeManager(self)
3482
-
3483
- def enableRuntimeMeasurements(self) -> "void":
3484
- return _fast.ProcessObject_enableRuntimeMeasurements(self)
3485
-
3486
- def disableRuntimeMeasurements(self) -> "void":
3487
- return _fast.ProcessObject_disableRuntimeMeasurements(self)
3488
-
3489
3489
  def setMainDevice(self, device: "fast::ExecutionDevice::pointer") -> "void":
3490
3490
  return _fast.ProcessObject_setMainDevice(self, device)
3491
3491
 
@@ -4007,6 +4007,8 @@ def SpatialDataObject_getStaticNameOfClass() -> "std::string":
4007
4007
  return _fast.SpatialDataObject_getStaticNameOfClass()
4008
4008
 
4009
4009
  class OpenCLImageAccess(object):
4010
+ r"""OpenCL image access to Image"""
4011
+
4010
4012
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4011
4013
  __repr__ = _swig_repr
4012
4014
 
@@ -4030,6 +4032,8 @@ class OpenCLImageAccess(object):
4030
4032
  _fast.OpenCLImageAccess_swigregister(OpenCLImageAccess)
4031
4033
 
4032
4034
  class OpenCLBufferAccess(object):
4035
+ r"""OpenCL buffer access to Image"""
4036
+
4033
4037
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4034
4038
  __repr__ = _swig_repr
4035
4039
 
@@ -4047,6 +4051,8 @@ class OpenCLBufferAccess(object):
4047
4051
  _fast.OpenCLBufferAccess_swigregister(OpenCLBufferAccess)
4048
4052
 
4049
4053
  class ImageAccess(object):
4054
+ r"""CPU access to Image data"""
4055
+
4050
4056
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4051
4057
  __repr__ = _swig_repr
4052
4058
 
@@ -4076,6 +4082,8 @@ class ImageAccess(object):
4076
4082
  _fast.ImageAccess_swigregister(ImageAccess)
4077
4083
 
4078
4084
  class BoundingBoxSetAccess(object):
4085
+ r"""CPU access to BoundingBoxSet"""
4086
+
4079
4087
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4080
4088
  __repr__ = _swig_repr
4081
4089
 
@@ -4131,6 +4139,8 @@ class BoundingBoxSetOpenGLAccess(object):
4131
4139
  _fast.BoundingBoxSetOpenGLAccess_swigregister(BoundingBoxSetOpenGLAccess)
4132
4140
 
4133
4141
  class OpenGLTextureAccess(object):
4142
+ r"""OpenGL texture access to Image"""
4143
+
4134
4144
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4135
4145
  __repr__ = _swig_repr
4136
4146
 
@@ -12028,8 +12038,15 @@ class RegionProperties(ProcessObject):
12028
12038
  return _fast.RegionProperties_connect(self, *args)
12029
12039
 
12030
12040
  @staticmethod
12031
- def create() -> "std::shared_ptr< fast::RegionProperties >":
12032
- return _fast.RegionProperties_create()
12041
+ def create(extractContours: "bool"=True) -> "std::shared_ptr< fast::RegionProperties >":
12042
+ r"""
12043
+ Create instance
12044
+ :type extractContours: boolean
12045
+ :param extractContours: Whether to extract contours of each region or not
12046
+ :rtype: :py:class:`RegionProperties`
12047
+ :return: instance
12048
+ """
12049
+ return _fast.RegionProperties_create(extractContours)
12033
12050
  __swig_destroy__ = _fast.delete_RegionProperties
12034
12051
 
12035
12052
  # Register RegionProperties in _fast:
@@ -12041,8 +12058,15 @@ def RegionProperties_New() -> "std::shared_ptr< fast::RegionProperties >":
12041
12058
  def RegionProperties_getStaticNameOfClass() -> "std::string":
12042
12059
  return _fast.RegionProperties_getStaticNameOfClass()
12043
12060
 
12044
- def RegionProperties_create() -> "std::shared_ptr< fast::RegionProperties >":
12045
- return _fast.RegionProperties_create()
12061
+ def RegionProperties_create(extractContours: "bool"=True) -> "std::shared_ptr< fast::RegionProperties >":
12062
+ r"""
12063
+ Create instance
12064
+ :type extractContours: boolean
12065
+ :param extractContours: Whether to extract contours of each region or not
12066
+ :rtype: :py:class:`RegionProperties`
12067
+ :return: instance
12068
+ """
12069
+ return _fast.RegionProperties_create(extractContours)
12046
12070
 
12047
12071
  class RunUntilFinished(ProcessObject):
12048
12072
  r"""
@@ -13508,6 +13532,11 @@ class MeshTriangle(MeshConnection):
13508
13532
  _fast.MeshTriangle_swigregister(MeshTriangle)
13509
13533
 
13510
13534
  class MeshAccess(object):
13535
+ r"""
13536
+ CPU access to Mesh data
13537
+ See also: Mesh
13538
+ """
13539
+
13511
13540
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13512
13541
  __repr__ = _swig_repr
13513
13542
 
@@ -13515,14 +13544,31 @@ class MeshAccess(object):
13515
13544
  _fast.MeshAccess_swiginit(self, _fast.new_MeshAccess(mCoordinates, mNormals, mColors, mLines, mTriangles, mesh))
13516
13545
 
13517
13546
  def getVertex(self, i: "uint") -> "fast::MeshVertex":
13547
+ r"""
13548
+ Get vertex at position i
13549
+ :type i: int
13550
+ :param i: index
13551
+ """
13518
13552
  return _fast.MeshAccess_getVertex(self, i)
13519
13553
 
13520
- def setVertex(self, i: "uint", arg3: "MeshVertex") -> "void":
13521
- return _fast.MeshAccess_setVertex(self, i, arg3)
13554
+ def setVertex(self, i: "uint", vertex: "MeshVertex", updateBoundingBox: "bool"=True) -> "void":
13555
+ r"""
13556
+ Set vertex at given index
13557
+ :type i: int
13558
+ :param i: index
13559
+ :type vertex: :py:class:`MeshVertex`
13560
+ :param vertex: Vertex
13561
+ :type updateBoundingBox: boolean
13562
+ :param updateBoundingBox: Whether to update the Mesh bounding box or not
13563
+ """
13564
+ return _fast.MeshAccess_setVertex(self, i, vertex, updateBoundingBox)
13522
13565
 
13523
13566
  def addVertex(self, v: "MeshVertex") -> "void":
13524
13567
  return _fast.MeshAccess_addVertex(self, v)
13525
13568
 
13569
+ def addVertices(self, vertices: "vectormeshvertex") -> "void":
13570
+ return _fast.MeshAccess_addVertices(self, vertices)
13571
+
13526
13572
  def getTriangle(self, i: "uint") -> "fast::MeshTriangle":
13527
13573
  return _fast.MeshAccess_getTriangle(self, i)
13528
13574
 
@@ -13558,6 +13604,8 @@ class MeshAccess(object):
13558
13604
  _fast.MeshAccess_swigregister(MeshAccess)
13559
13605
 
13560
13606
  class MeshOpenCLAccess(object):
13607
+ r"""OpenCL buffer access to Mesh"""
13608
+
13561
13609
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13562
13610
  __repr__ = _swig_repr
13563
13611
 
@@ -13581,6 +13629,8 @@ class MeshOpenCLAccess(object):
13581
13629
  _fast.MeshOpenCLAccess_swigregister(MeshOpenCLAccess)
13582
13630
 
13583
13631
  class VertexBufferObjectAccess(object):
13632
+ r"""Vertex Buffer Object (VBO) access to Mesh"""
13633
+
13584
13634
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13585
13635
  __repr__ = _swig_repr
13586
13636
 
@@ -13619,6 +13669,8 @@ class VertexBufferObjectAccess(object):
13619
13669
  _fast.VertexBufferObjectAccess_swigregister(VertexBufferObjectAccess)
13620
13670
 
13621
13671
  class TensorAccess(object):
13672
+ r"""CPU access to Tensor"""
13673
+
13622
13674
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13623
13675
  __repr__ = _swig_repr
13624
13676
 
@@ -13647,11 +13699,13 @@ ImageCompression_LZW = _fast.ImageCompression_LZW
13647
13699
  ImageCompression_NEURAL_NETWORK = _fast.ImageCompression_NEURAL_NETWORK
13648
13700
  ImageCompression_DEFLATE = _fast.ImageCompression_DEFLATE
13649
13701
  class ImagePyramidAccess(object):
13702
+ r"""CPU access to ImagePyramid"""
13703
+
13650
13704
  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13651
13705
  __repr__ = _swig_repr
13652
13706
 
13653
- def __init__(self, levels: "std::vector< fast::ImagePyramidLevel,std::allocator< fast::ImagePyramidLevel > >", fileHandle: "openslide_t *", tiffHandle: "TIFF *", imagePyramid: "std::shared_ptr< fast::ImagePyramid >", writeAccess: "bool", initializedPatchList: "std::unordered_set< std::string > &", readMutex: "std::mutex &", compressionFormat: "fast::ImageCompression"):
13654
- _fast.ImagePyramidAccess_swiginit(self, _fast.new_ImagePyramidAccess(levels, fileHandle, tiffHandle, imagePyramid, writeAccess, initializedPatchList, readMutex, compressionFormat))
13707
+ def __init__(self, levels: "std::vector< fast::ImagePyramidLevel,std::allocator< fast::ImagePyramidLevel > >", fileHandle: "openslide_t *", tiffHandle: "TIFF *", imagePyramid: "std::shared_ptr< fast::ImagePyramid >", writeAccess: "bool", initializedPatchList: "std::unordered_set< std::string > &", readMutex: "std::mutex &", compressionFormat: "fast::ImageCompression", useCache: "bool"=False, cacheLimit: "int"=-1):
13708
+ _fast.ImagePyramidAccess_swiginit(self, _fast.new_ImagePyramidAccess(levels, fileHandle, tiffHandle, imagePyramid, writeAccess, initializedPatchList, readMutex, compressionFormat, useCache, cacheLimit))
13655
13709
 
13656
13710
  def setPatch(self, level: "int", x: "int", y: "int", patch: "std::shared_ptr< fast::Image >", propagate: "bool"=True) -> "void":
13657
13711
  r"""
@@ -13685,9 +13739,52 @@ class ImagePyramidAccess(object):
13685
13739
  return _fast.ImagePyramidAccess_isPatchInitialized(self, level, x, y)
13686
13740
 
13687
13741
  def getLevelAsImage(self, level: "int") -> "std::shared_ptr< fast::Image >":
13742
+ r"""
13743
+ Get a specific level in an ImagePyramid as an Image object.
13744
+ If requesting a level with a width or height higher than 16384 pixels this will throw an exception.
13745
+ :type level: int
13746
+ :param level:
13747
+ :rtype: :py:class:`Image`
13748
+ :return:
13749
+ """
13688
13750
  return _fast.ImagePyramidAccess_getLevelAsImage(self, level)
13689
13751
 
13690
13752
  def getPatchAsImage(self, *args) -> "std::shared_ptr< fast::Image >":
13753
+ r"""
13754
+ *Overload 1:*
13755
+
13756
+ Extract a patch from the image pyramid and return it as an Image
13757
+ :type level: int
13758
+ :param level: Level to extract patch from
13759
+ :type offsetX: int
13760
+ :param offsetX: X offset
13761
+ :type offsetY: int
13762
+ :param offsetY: Y offset
13763
+ :type width: int
13764
+ :param width: Width of patch
13765
+ :type height: int
13766
+ :param height: Height of patch
13767
+ :type convertToRGB: boolean
13768
+ :param convertToRGB: convert to RGB when using OpenSlide, since it will return BGRA data
13769
+ :rtype: :py:class:`Image`
13770
+ :return: Patch as Image
13771
+
13772
+ |
13773
+
13774
+ *Overload 2:*
13775
+
13776
+ Extract a tile from the Image Pyramid
13777
+ :type level: int
13778
+ :param level: Level to extract tile from
13779
+ :type patchIdX: int
13780
+ :param patchIdX: Tile X id
13781
+ :type patchIdY: int
13782
+ :param patchIdY: Tile Y id
13783
+ :type convertToRGB: boolean
13784
+ :param convertToRGB: convert to RGB when using OpenSlide, since it will return BGRA data
13785
+ :rtype: :py:class:`Image`
13786
+ :return: Tile as Image
13787
+ """
13691
13788
  return _fast.ImagePyramidAccess_getPatchAsImage(self, *args)
13692
13789
 
13693
13790
  def getPatchAsImageForMagnification(self, magnification: "float", offsetX: "float", offsetY: "float", width: "int", height: "int", convertToRGB: "bool"=True) -> "std::shared_ptr< fast::Image >":
@@ -13704,7 +13801,7 @@ class ImagePyramidAccess(object):
13704
13801
  :type height: int
13705
13802
  :param height: Height of patch in pixels
13706
13803
  :type convertToRGB: boolean
13707
- :param convertToRGB: Convert from BGR to RGB if needed
13804
+ :param convertToRGB: convert to RGB when using OpenSlide, since it will return BGRA data
13708
13805
  :rtype: :py:class:`Image`
13709
13806
  :return: patch as Image object
13710
13807
  """
@@ -13714,6 +13811,9 @@ class ImagePyramidAccess(object):
13714
13811
  return _fast.ImagePyramidAccess_release(self)
13715
13812
  __swig_destroy__ = _fast.delete_ImagePyramidAccess
13716
13813
 
13814
+ def setJPEGTables(self, tableCount: "uint32_t", tableData: "void *") -> "void":
13815
+ return _fast.ImagePyramidAccess_setJPEGTables(self, tableCount, tableData)
13816
+
13717
13817
  # Register ImagePyramidAccess in _fast:
13718
13818
  _fast.ImagePyramidAccess_swigregister(ImagePyramidAccess)
13719
13819
 
@@ -14931,8 +15031,8 @@ class ImagePyramid(SpatialDataObject):
14931
15031
  def getSpacing(self) -> "Vector3f":
14932
15032
  return _fast.ImagePyramid_getSpacing(self)
14933
15033
 
14934
- def getAccess(self, type: "accessType") -> "fast::ImagePyramidAccess::pointer":
14935
- return _fast.ImagePyramid_getAccess(self, type)
15034
+ def getAccess(self, type: "accessType", useTileCache: "bool"=False, tileCacheSize: "int"=-1) -> "fast::ImagePyramidAccess::pointer":
15035
+ return _fast.ImagePyramid_getAccess(self, type, useTileCache, tileCacheSize)
14936
15036
 
14937
15037
  def getDirtyPatches(self) -> "std::unordered_set< std::string >":
14938
15038
  return _fast.ImagePyramid_getDirtyPatches(self)
@@ -18776,11 +18876,17 @@ class VertexRenderer(Renderer):
18776
18876
  r"""
18777
18877
  Create instance
18778
18878
  :type size: float
18779
- :param size: Vertex point size
18879
+ :param size: Vertex point size (can be in pixels or millimeters, see sizeIsInPixels parameter)
18880
+ :type sizeIsInPixels: boolean
18881
+ :param sizeIsInPixels: Whether size is given in pixels or millimeters
18882
+ :type minSize: int
18883
+ :param minSize: Minimum size in pixels, used when sizeInPixels = false
18780
18884
  :type color: :py:class:`Color`
18781
- :param color:
18885
+ :param color: Override color stored for each vertex
18886
+ :type opacity: float
18887
+ :param opacity: Opacity of vertices: 1 = no transparency, 0 = fully transparent
18782
18888
  :type drawOnTop: boolean
18783
- :param drawOnTop:
18889
+ :param drawOnTop: Disable depth testing and always draw vertices on top
18784
18890
  :rtype: :py:class:`VertexRenderer`
18785
18891
  :return: instance
18786
18892
  """
@@ -18810,6 +18916,9 @@ class VertexRenderer(Renderer):
18810
18916
  def setSize(self, inputNr: "uint", size: "float") -> "void":
18811
18917
  return _fast.VertexRenderer_setSize(self, inputNr, size)
18812
18918
 
18919
+ def setOpacity(self, opacity: "float") -> "void":
18920
+ return _fast.VertexRenderer_setOpacity(self, opacity)
18921
+
18813
18922
  def draw(self, perspectiveMatrix: "Matrix4f", viewingMatrix: "Matrix4f", zNear: "float", zFar: "float", mode2D: "bool", viewWidth: "int", viewHeight: "int") -> "void":
18814
18923
  return _fast.VertexRenderer_draw(self, perspectiveMatrix, viewingMatrix, zNear, zFar, mode2D, viewWidth, viewHeight)
18815
18924
  __swig_destroy__ = _fast.delete_VertexRenderer
@@ -18827,11 +18936,17 @@ def VertexRenderer_create(*args, **kwargs) -> "std::shared_ptr< fast::VertexRend
18827
18936
  r"""
18828
18937
  Create instance
18829
18938
  :type size: float
18830
- :param size: Vertex point size
18939
+ :param size: Vertex point size (can be in pixels or millimeters, see sizeIsInPixels parameter)
18940
+ :type sizeIsInPixels: boolean
18941
+ :param sizeIsInPixels: Whether size is given in pixels or millimeters
18942
+ :type minSize: int
18943
+ :param minSize: Minimum size in pixels, used when sizeInPixels = false
18831
18944
  :type color: :py:class:`Color`
18832
- :param color:
18945
+ :param color: Override color stored for each vertex
18946
+ :type opacity: float
18947
+ :param opacity: Opacity of vertices: 1 = no transparency, 0 = fully transparent
18833
18948
  :type drawOnTop: boolean
18834
- :param drawOnTop:
18949
+ :param drawOnTop: Disable depth testing and always draw vertices on top
18835
18950
  :rtype: :py:class:`VertexRenderer`
18836
18951
  :return: instance
18837
18952
  """
@@ -19256,6 +19371,62 @@ class SliderWidget(object):
19256
19371
  # Register SliderWidget in _fast:
19257
19372
  _fast.SliderWidget_swigregister(SliderWidget)
19258
19373
 
19374
+ class TextWidget(object):
19375
+ r"""A text widget"""
19376
+
19377
+ thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
19378
+ __repr__ = _swig_repr
19379
+
19380
+ def __init__(self, text: "std::string", parent: "QWidget *"=None):
19381
+ r"""
19382
+ Create a text widget
19383
+ :type text: string
19384
+ :param text: The text to display. Can contain HTML and also variables, e.g. {this_var}.
19385
+ The values of the variables can be set with TextWidget::setVariable("this_var", "value");
19386
+ :type parent: QWidget
19387
+ :param parent:
19388
+ """
19389
+ _fast.TextWidget_swiginit(self, _fast.new_TextWidget(text, parent))
19390
+
19391
+ def setText(self, text: "std::string") -> "void":
19392
+ r"""
19393
+ Set text
19394
+ :type text: string
19395
+ :param text: The text to display. Can contain HTML and also variables, e.g. {this_var}.
19396
+ The values of the variables can be set with TextWidget::setVariable("this_var", "value");
19397
+ :type text: string
19398
+ :param text:
19399
+ """
19400
+ return _fast.TextWidget_setText(self, text)
19401
+
19402
+ def getText(self) -> "std::string":
19403
+ return _fast.TextWidget_getText(self)
19404
+
19405
+ def setVariable(self, name: "std::string", value: "std::string") -> "void":
19406
+ r"""
19407
+ Set a variable
19408
+ :type name: string
19409
+ :param name: Name of variable, should exist as {<name>} in the text, and will be replaced with <value>
19410
+ :type value: string
19411
+ :param value: Value of variable
19412
+ """
19413
+ return _fast.TextWidget_setVariable(self, name, value)
19414
+
19415
+ def setVariables(self, variables: "StringMap") -> "void":
19416
+ r"""
19417
+ Set multiple variables
19418
+ :type variables: std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > >
19419
+ :param variables: map of name and values of the variables
19420
+ """
19421
+ return _fast.TextWidget_setVariables(self, variables)
19422
+
19423
+ def getVariable(self, name: "std::string") -> "std::string":
19424
+ return _fast.TextWidget_getVariable(self, name)
19425
+ __swig_destroy__ = _fast.delete_TextWidget
19426
+
19427
+ # Register TextWidget in _fast:
19428
+ _fast.TextWidget_swigregister(TextWidget)
19429
+
19259
19430
  class FramerateSynchronizer(ProcessObject):
19260
19431
  r"""
19261
19432
  Synchronize multiple process objects
@@ -19304,6 +19475,106 @@ def FramerateSynchronizer_getStaticNameOfClass() -> "std::string":
19304
19475
  def FramerateSynchronizer_create(priorityPort: "int"=-1) -> "std::shared_ptr< fast::FramerateSynchronizer >":
19305
19476
  return _fast.FramerateSynchronizer_create(priorityPort)
19306
19477
 
19478
+ class DataHubItems(object):
19479
+ thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
19480
+ __repr__ = _swig_repr
19481
+
19482
+ def iterator(self) -> "swig::SwigPyIterator *":
19483
+ return _fast.DataHubItems_iterator(self)
19484
+ def __iter__(self):
19485
+ return self.iterator()
19486
+
19487
+ def __nonzero__(self) -> "bool":
19488
+ return _fast.DataHubItems___nonzero__(self)
19489
+
19490
+ def __bool__(self) -> "bool":
19491
+ return _fast.DataHubItems___bool__(self)
19492
+
19493
+ def __len__(self) -> "std::vector< fast::DataHub::Item >::size_type":
19494
+ return _fast.DataHubItems___len__(self)
19495
+
19496
+ def __getslice__(self, i: "std::vector< fast::DataHub::Item >::difference_type", j: "std::vector< fast::DataHub::Item >::difference_type") -> "std::vector< fast::DataHub::Item,std::allocator< fast::DataHub::Item > > *":
19497
+ return _fast.DataHubItems___getslice__(self, i, j)
19498
+
19499
+ def __setslice__(self, *args) -> "void":
19500
+ return _fast.DataHubItems___setslice__(self, *args)
19501
+
19502
+ def __delslice__(self, i: "std::vector< fast::DataHub::Item >::difference_type", j: "std::vector< fast::DataHub::Item >::difference_type") -> "void":
19503
+ return _fast.DataHubItems___delslice__(self, i, j)
19504
+
19505
+ def __delitem__(self, *args) -> "void":
19506
+ return _fast.DataHubItems___delitem__(self, *args)
19507
+
19508
+ def __getitem__(self, *args) -> "std::vector< fast::DataHub::Item >::value_type const &":
19509
+ return _fast.DataHubItems___getitem__(self, *args)
19510
+
19511
+ def __setitem__(self, *args) -> "void":
19512
+ return _fast.DataHubItems___setitem__(self, *args)
19513
+
19514
+ def append(self, x: "DataHubItem") -> "void":
19515
+ return _fast.DataHubItems_append(self, x)
19516
+
19517
+ def empty(self) -> "bool":
19518
+ return _fast.DataHubItems_empty(self)
19519
+
19520
+ def size(self) -> "std::vector< fast::DataHub::Item >::size_type":
19521
+ return _fast.DataHubItems_size(self)
19522
+
19523
+ def swap(self, v: "DataHubItems") -> "void":
19524
+ return _fast.DataHubItems_swap(self, v)
19525
+
19526
+ def begin(self) -> "std::vector< fast::DataHub::Item >::iterator":
19527
+ return _fast.DataHubItems_begin(self)
19528
+
19529
+ def end(self) -> "std::vector< fast::DataHub::Item >::iterator":
19530
+ return _fast.DataHubItems_end(self)
19531
+
19532
+ def rbegin(self) -> "std::vector< fast::DataHub::Item >::reverse_iterator":
19533
+ return _fast.DataHubItems_rbegin(self)
19534
+
19535
+ def rend(self) -> "std::vector< fast::DataHub::Item >::reverse_iterator":
19536
+ return _fast.DataHubItems_rend(self)
19537
+
19538
+ def clear(self) -> "void":
19539
+ return _fast.DataHubItems_clear(self)
19540
+
19541
+ def get_allocator(self) -> "std::vector< fast::DataHub::Item >::allocator_type":
19542
+ return _fast.DataHubItems_get_allocator(self)
19543
+
19544
+ def pop_back(self) -> "void":
19545
+ return _fast.DataHubItems_pop_back(self)
19546
+
19547
+ def erase(self, *args) -> "std::vector< fast::DataHub::Item >::iterator":
19548
+ return _fast.DataHubItems_erase(self, *args)
19549
+
19550
+ def __init__(self, *args):
19551
+ _fast.DataHubItems_swiginit(self, _fast.new_DataHubItems(*args))
19552
+
19553
+ def push_back(self, x: "DataHubItem") -> "void":
19554
+ return _fast.DataHubItems_push_back(self, x)
19555
+
19556
+ def front(self) -> "std::vector< fast::DataHub::Item >::value_type const &":
19557
+ return _fast.DataHubItems_front(self)
19558
+
19559
+ def back(self) -> "std::vector< fast::DataHub::Item >::value_type const &":
19560
+ return _fast.DataHubItems_back(self)
19561
+
19562
+ def assign(self, n: "std::vector< fast::DataHub::Item >::size_type", x: "DataHubItem") -> "void":
19563
+ return _fast.DataHubItems_assign(self, n, x)
19564
+
19565
+ def insert(self, *args) -> "void":
19566
+ return _fast.DataHubItems_insert(self, *args)
19567
+
19568
+ def reserve(self, n: "std::vector< fast::DataHub::Item >::size_type") -> "void":
19569
+ return _fast.DataHubItems_reserve(self, n)
19570
+
19571
+ def capacity(self) -> "std::vector< fast::DataHub::Item >::size_type":
19572
+ return _fast.DataHubItems_capacity(self)
19573
+ __swig_destroy__ = _fast.delete_DataHubItems
19574
+
19575
+ # Register DataHubItems in _fast:
19576
+ _fast.DataHubItems_swigregister(DataHubItems)
19577
+
19307
19578
  class DataHub(object):
19308
19579
  r"""
19309
19580
  Object uses to browse and download data, models and pipelines from the FAST DataHub
@@ -19412,6 +19683,33 @@ class DataHubItem(object):
19412
19683
  downloads = property(_fast.DataHubItem_downloads_get, _fast.DataHubItem_downloads_set)
19413
19684
  needs = property(_fast.DataHubItem_needs_get, _fast.DataHubItem_needs_set)
19414
19685
 
19686
+ def __init__(self, json: "QJsonObject"):
19687
+ r"""
19688
+ Create Item from JSON
19689
+ :type json: QJsonObject
19690
+ :param json:
19691
+ """
19692
+ _fast.DataHubItem_swiginit(self, _fast.new_DataHubItem(json))
19693
+
19694
+ @staticmethod
19695
+ def fromJSONFile(pathToJSONFile: "std::string const &") -> "fast::DataHub::Item":
19696
+ r"""
19697
+ Create Item from JSON file
19698
+ :type pathToJSONFile: string
19699
+ :param pathToJSONFile:
19700
+ :rtype: :py:class:`Item`
19701
+ :return:
19702
+ """
19703
+ return _fast.DataHubItem_fromJSONFile(pathToJSONFile)
19704
+
19705
+ def toJSON(self) -> "QJsonObject":
19706
+ r"""
19707
+ Return Item as JSON
19708
+ :rtype: QJsonObject
19709
+ :return:
19710
+ """
19711
+ return _fast.DataHubItem_toJSON(self)
19712
+
19415
19713
  def getAllAuthors(self) -> "std::set< std::string >":
19416
19714
  r"""
19417
19715
  Get all authors of this item and dependencies
@@ -19435,14 +19733,21 @@ class DataHubItem(object):
19435
19733
  :return: licenses
19436
19734
  """
19437
19735
  return _fast.DataHubItem_getAllLicences(self)
19438
-
19439
- def __init__(self):
19440
- _fast.DataHubItem_swiginit(self, _fast.new_DataHubItem())
19441
19736
  __swig_destroy__ = _fast.delete_DataHubItem
19442
19737
 
19443
19738
  # Register DataHubItem in _fast:
19444
19739
  _fast.DataHubItem_swigregister(DataHubItem)
19445
19740
 
19741
+ def DataHubItem_fromJSONFile(pathToJSONFile: "std::string const &") -> "fast::DataHub::Item":
19742
+ r"""
19743
+ Create Item from JSON file
19744
+ :type pathToJSONFile: string
19745
+ :param pathToJSONFile:
19746
+ :rtype: :py:class:`Item`
19747
+ :return:
19748
+ """
19749
+ return _fast.DataHubItem_fromJSONFile(pathToJSONFile)
19750
+
19446
19751
  class DataHubDownload(object):
19447
19752
  r"""Download results from DataHub"""
19448
19753
 
@@ -19756,6 +20061,9 @@ class PythonProcessObject(ProcessObject):
19756
20061
 
19757
20062
  def createOutputPort(self, port: "int") -> "void":
19758
20063
  return _fast.PythonProcessObject_createOutputPort(self, port)
20064
+
20065
+ def stopPipeline(self) -> "void":
20066
+ return _fast.PythonProcessObject_stopPipeline(self)
19759
20067
  @classmethod
19760
20068
  def create(cls, *args, **kwargs):
19761
20069
  instance = cls(*args, **kwargs)
@@ -19860,6 +20168,9 @@ class PythonStreamer(Streamer):
19860
20168
 
19861
20169
  def frameAdded(self) -> "void":
19862
20170
  return _fast.PythonStreamer_frameAdded(self)
20171
+
20172
+ def stopPipeline(self) -> "void":
20173
+ return _fast.PythonStreamer_stopPipeline(self)
19863
20174
  @classmethod
19864
20175
  def create(cls, *args, **kwargs):
19865
20176
  instance = cls(*args, **kwargs)
@@ -19991,6 +20302,9 @@ class PythonRandomAccessStreamer(RandomAccessStreamer):
19991
20302
 
19992
20303
  def setFramerate(self, framerate: "int") -> "void":
19993
20304
  return _fast.PythonRandomAccessStreamer_setFramerate(self, framerate)
20305
+
20306
+ def stopPipeline(self) -> "void":
20307
+ return _fast.PythonRandomAccessStreamer_stopPipeline(self)
19994
20308
  @classmethod
19995
20309
  def create(cls, *args, **kwargs):
19996
20310
  instance = cls(*args, **kwargs)
@@ -10,14 +10,15 @@ uniform mat4 perspectiveTransform;
10
10
  uniform float pointSize;
11
11
  uniform bool useGlobalColor;
12
12
  uniform vec3 globalColor;
13
+ uniform float opacity;
13
14
 
14
15
  void main()
15
16
  {
16
17
  gl_PointSize = pointSize;
17
18
  gl_Position = perspectiveTransform * viewTransform * transform * vec4(aPos, 1.0);
18
19
  if(useGlobalColor) {
19
- vertex_color = vec4(globalColor, 1.0);
20
+ vertex_color = vec4(globalColor, opacity);
20
21
  } else {
21
- vertex_color = vec4(aColor, 1.0);
22
+ vertex_color = vec4(aColor, opacity);
22
23
  }
23
24
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyfast
3
- Version: 4.12.0
3
+ Version: 4.13.1
4
4
  Summary: Python bindings of FAST - a framework for high performance medical image computing and visualization on heterogeneous systems utilizing multi-core CPUs and GPUs.
5
5
  Home-page: https://fast-imaging.github.io
6
6
  Author: Erik Smistad
@@ -21,10 +21,11 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
21
21
  Requires-Python: >=3
22
22
  Description-Content-Type: text/markdown
23
23
 
24
- ![](https://github.com/smistad/FAST/wiki/images/fast_logo.png)
24
+ ![](doc/images/fast_logo_wide_background.png)
25
25
 
26
26
  [![GitHub Discussions](https://img.shields.io/github/discussions/smistad/FAST?label=GitHub%20discussions&logo=github)](https://github.com/smistad/FAST/discussions)
27
27
  [![Pip Downloads](https://img.shields.io/pypi/dm/pyfast?label=pip%20downloads&logo=python)](https://fast-imaging.github.io/download-stats.html)
28
+ [![Documentation](https://img.shields.io/badge/Documentation-Online-blue?logo=googledocs&logoColor=white)](https://fast-imaging.github.io)
28
29
 
29
30
  FAST is an open-source framework developed by researchers at the Norwegian University of Science and Technology (NTNU) and SINTEF.
30
31
  The main goal of FAST is to make it easier to do high-performance processing, neural network inference, and visualization of medical images utilizing multi-core CPUs and GPUs. To achieve this, FAST use modern C++, OpenCL and OpenGL, and neural network inference libraries such as TensorRT, OpenVINO, TensorFlow and ONNX Runtime.
@@ -38,7 +39,7 @@ Learn best by example? Check out all the examples for [C++](https://fast-imaging
38
39
 
39
40
  For more examples and documentation, go to [fast-imaging.github.io](https://fast-imaging.github.io).
40
41
 
41
- Need help? Post your questions on the [Discussions](https://github.com/smistad/FAST/discussions/new?category=q-a) page or use the [Gitter Chat](https://gitter.im/smistad/FAST).
42
+ Need help? Post your questions on the [Discussions](https://github.com/smistad/FAST/discussions/) page.
42
43
 
43
44
  ### Main features
44
45
 
@@ -74,8 +75,14 @@ To setup and build the framework, see the instructions for your operating system
74
75
  * [macOS](https://fast-imaging.github.io/building-on-mac.html)
75
76
 
76
77
 
77
- ![Surface mesh extracted from a large abdominal CT scan.](https://github.com/smistad/FAST/wiki/images/surface_extraction.png) ![Alpha blending ray casting rendering of a thorax CT image.](https://github.com/smistad/FAST/wiki/images/volume_renderer.jpg)
78
+ [<img src="https://fast-imaging.github.io/alpha_blending_volume_renderer_CT.jpg" height="300">](https://fast-imaging.github.io/python-tutorial-mri-ct.html#autotoc_md116)
79
+ [<img src="https://fast-imaging.github.io/rotating_3D.gif" height="300">](https://fast-imaging.github.io/create_rotating_3D_gif_8py-example.html)
80
+
81
+ [<img src="https://fast-imaging.github.io/real_time_line_plotter.jpg" width="570">](https://fast-imaging.github.io/real_time_line_plotter_8py-example.html)
82
+
83
+ [<img src="https://fast-imaging.github.io/nuclei_segmentation.jpg" height="300">](https://fast-imaging.github.io/python-tutorial-wsi.html#autotoc_md172)
84
+ [<img src="https://fast-imaging.github.io/open_wsi.jpg" height="300">](https://fast-imaging.github.io/load_and_display_wsi_8py-example.html)
85
+
78
86
 
79
- ![Ultrasound image segmentation using neural netwoks.](https://github.com/smistad/FAST/wiki/images/ultrasound_segmentation.jpg) ![Whole slide microscopy image.](https://github.com/smistad/FAST/wiki/images/wsi.jpg)
80
87
 
81
88
 
@@ -1,13 +1,13 @@
1
1
  fast/README.md,sha256=IAIHnW4u0N5jqL9jJJJIWUEr4NxNiYukgzcAQVi7X7Y,3157
2
- fast/__init__.py,sha256=F8lTSMU9Y8fLtyVc9TRwkxcR-xfYIli6ohWPu-qk3q0,1107
2
+ fast/__init__.py,sha256=7dAN9S8exrVrCIASBenenE9RMl6z2_lqYogH3kerKIA,1697
3
3
  fast/entry_points.py,sha256=-HSZuuewlaohCTgk_RoaZVORN-s6vi1gj40_4oejJPQ,437
4
- fast/fast.py,sha256=TerCOseztv6abekG6Iex7Bx5hHsAxUkD28Ja-7Ygd3E,775242
4
+ fast/fast.py,sha256=CATwuhsuWxWnaEy_Ztr8u-Xq_elm0bvvDATJvI7S3Ts,787109
5
5
  fast/bin/DirectML.dll,sha256=nJ5tgiVhxsQbkOaZSz6IV88dZtv7HgxMeZx8ibTpLaE,18527776
6
- fast/bin/FAST.dll,sha256=hot8jYJ_WAOl1jeq1ptLCi2eNCZcdYaKqbsEcPPiR38,6568960
7
- fast/bin/InferenceEngineONNXRuntime.dll,sha256=Cd3aan_tvSxEdCKq50bVhXaHcWatiVs9LDnIFXWtWxM,68608
8
- fast/bin/InferenceEngineOpenVINO.dll,sha256=UtaqRprO3lfOiq3hB6diSoBdogfwZTB4-Npiq8UBj6U,103424
9
- fast/bin/InferenceEngineTensorFlow.dll,sha256=vMnRiv-aB3Z0Mh0rgrutKSsSnbyXJITM3tauy-C3gfo,84992
10
- fast/bin/InferenceEngineTensorRT.dll,sha256=vYcDdjNizuzmmW9LMaq1LSNV_HFAwr14PMTbgAjVLcQ,183296
6
+ fast/bin/FAST.dll,sha256=TnnAe6MUZYBq8yEsJMjHvxxPFEbMrRWXTEkMJPTukxY,6593024
7
+ fast/bin/InferenceEngineONNXRuntime.dll,sha256=k_FYZZAsSd-TUoVvgBY6dkuxyWlsvcfeG_09Mt4J0PU,68608
8
+ fast/bin/InferenceEngineOpenVINO.dll,sha256=llnCcMVU3qnadkTjfKhGf3nhboj3xFzdoZ1ogwFbarU,103424
9
+ fast/bin/InferenceEngineTensorFlow.dll,sha256=Y_eClOaq0R42ltbaMv75MrMnWdXm0aXtiUxWMcLwfZ8,84992
10
+ fast/bin/InferenceEngineTensorRT.dll,sha256=B0m3ZJSnbUexm54yyZPzPzzp7e9HQA5zMkc9bmfcCMI,183296
11
11
  fast/bin/JKQTCommonSharedLib_Release.dll,sha256=-J899O0jWoErkmad0Gpz3yUOsOzaasZ1KH7qfRztlWY,594944
12
12
  fast/bin/JKQTFastPlotterSharedLib_Release.dll,sha256=ihj_GGUTxtRMxcWwE5gcninxk71OAD3ZcrJfFQKkcl0,275968
13
13
  fast/bin/JKQTMathTextSharedLib_Release.dll,sha256=LciFx8sPLuhY8neWSSnuJOl95wn4UC6TjbQQsk8wKws,1854464
@@ -29,12 +29,13 @@ fast/bin/Qt5Svg.dll,sha256=aj02zjM0_dLEts0WBtgFg1IkoC9TiZlljTR_Sn89w2c,323584
29
29
  fast/bin/Qt5Test.dll,sha256=Q8N0_CAf2zm5qmDKIhyDZF6OMQo50ioqBXECQDKQaF8,238080
30
30
  fast/bin/Qt5Widgets.dll,sha256=7QO8QbvCqLonnGokcye5bEy_aEmYvGNC-r4SA2Aixvk,5486592
31
31
  fast/bin/Qt5Xml.dll,sha256=3LNjwTIY4zSIOpjak8zO882n24aB6R6HC2BYxr_r0CE,206848
32
- fast/bin/UFFviewer.exe,sha256=3OfM7n6qt2lqN52UamYvL-dkv1GE8Q9XHa5sgi0k6sA,351232
33
- fast/bin/_fast.pyd,sha256=eqJibZyEIOiGHq-Fk-NqxXjIXl48jw_G4mLRsAWi1-8,6593024
32
+ fast/bin/UFFviewer.exe,sha256=lgxkAgo-oT9_HRpPLxIaJHGamWsh48u44oFCRsuKhVA,351232
33
+ fast/bin/_fast.pyd,sha256=4ga6x9LUGOWbfDC6Kw6YDbFbUQ970C3khJ6LfIYN1Cc,6685184
34
34
  fast/bin/brotlicommon.dll,sha256=eqau-BNwoZqjP-UehjE2TtJ3OUgHM1aFih_QPKO0q_0,141824
35
35
  fast/bin/brotlidec.dll,sha256=4VtxgcvsGSOeczeJg8mj-jvnEgoKAYamP_jL5U6I5rA,49152
36
36
  fast/bin/brotlienc.dll,sha256=mEPxzSRy_5f5rF1b-njjzWnp7VUXYvFl828J_CSgOoc,666112
37
37
  fast/bin/cache.json,sha256=G1D17VUxd1mczt2nGk7Rvt-Up1x4pUvf8M6gMnaNR6w,8872422
38
+ fast/bin/concrt140.dll,sha256=JAU1XwpYBnslj43zPDJ-Oj1xbqrFo6Wuu3V4Qthb03Y,324208
38
39
  fast/bin/dcmdata.dll,sha256=J5BIPXn9H-f_ve57xUgycqHK9zlCDmFkZiAve9pifx4,1864704
39
40
  fast/bin/dcmimage.dll,sha256=yGRN_4EMo3chsKKf7Q_xQSHpnaLd0xGdZzx_fB2R2zo,560640
40
41
  fast/bin/dcmimgle.dll,sha256=5Qw8Yyy8dGUsqSj8QcFKrMhhOEUP4vEtKwEpVkBBXwk,2213888
@@ -51,6 +52,11 @@ fast/bin/libcrypto-1_1-x64.dll,sha256=kWp0waUKjEfHA8y429FUHTvKShPNxdGEmvyUEkxNmj
51
52
  fast/bin/libjpeg.dll,sha256=qiY0bpjHAzd4bz-MAet6ohb1DfcbLcTp272Q3P53wlg,271360
52
53
  fast/bin/libopenslide-1.dll,sha256=IOH0OO7ZOMkV8pIq5oru9kb6fG5Y8iwlyaBRkl-ueVM,9540115
53
54
  fast/bin/libssl-1_1-x64.dll,sha256=WEFxofN9iwRTmJiQrqoYd5rOkktHeLpisIZZEnAuaLA,654848
55
+ fast/bin/msvcp140.dll,sha256=D4hbUJpoXSu_plL-0mtfsx2I-9qwqXjGQdHHuKpGCqk,557728
56
+ fast/bin/msvcp140_1.dll,sha256=v61a70xjpmnjwUBlXN_fOVtsl5tACkR71dy2XtiCbD0,35952
57
+ fast/bin/msvcp140_2.dll,sha256=PqBvDuCYtII8t5WZ3zeA5_I8zlLBmqwx0qDUfv4zpek,280200
58
+ fast/bin/msvcp140_atomic_wait.dll,sha256=ZAsq787UhNA2jupb3Qat3QZYo6cKSSVuVg1pI7QEpHk,50304
59
+ fast/bin/msvcp140_codecvt_ids.dll,sha256=8gaaUogOyIXufwURGGEA63-toEEaK0lI-v6nc1uHihg,31872
54
60
  fast/bin/oflog.dll,sha256=pfgzt6X0LOvG9kAGimWOcrB65zo0XOvsAUWyENZDewA,334848
55
61
  fast/bin/ofstd.dll,sha256=7SgTboLfZmp5KckgU5YSKsRw0OnOa_mfLF322FGEKI0,261632
56
62
  fast/bin/onnxruntime.dll,sha256=9yLdkaMRufpLfyNB0iw3mnL7e8W2Od8Ytkgh8jzd4Us,16468024
@@ -69,14 +75,17 @@ fast/bin/openvino_onnx_frontend.dll,sha256=1GaigbrSMXXhdP8VxFN3MdCmqeLp18wUTXe9-
69
75
  fast/bin/openvino_paddle_frontend.dll,sha256=LTyHVbydnalMlmJ5KErufxpjzM-KduT8AndQRAfQ0oM,1291784
70
76
  fast/bin/plugins.xml,sha256=cxXE2Y4pocbjloTNLYfh4_Wlc2Z6tQbM3hnrCzQraCU,938
71
77
  fast/bin/realsense2.dll,sha256=GOPlz5ppiWk5GjhoOE6VX7XANiwZ_Tlvc1VNHp-1Vd0,6607360
72
- fast/bin/runPipeline.exe,sha256=ZyTJL9Fb887Bdu2FLh3XD5tldbNiuz-EV_OEy9c4O-g,87552
73
- fast/bin/systemCheck.exe,sha256=b-mfR13-G3KR0gH3qw6xQXIbU-4q9VYV5ua3lpQYQnY,70144
78
+ fast/bin/runPipeline.exe,sha256=DglzbLmpNdiQithzPMu66lBjDeKIn86TG9FOYz6DUAc,87552
79
+ fast/bin/systemCheck.exe,sha256=c2cF24p88Hh_JMM3NEct_h0dc-2ADUrNQrgdF6cuKDY,70144
74
80
  fast/bin/tbb.dll,sha256=fUbSAXWHDJaUzfw6Yua2DUSq1aKaVEAKhij6kuW_BOw,230416
75
81
  fast/bin/tbb_preview.dll,sha256=9sertnzn8ooqT9uRGi-4kcov7lvJLeZNCcPw5tBHDAk,419344
76
82
  fast/bin/tbbbind.dll,sha256=Mt-8NTbjPbpYQbnJptpGygUI8_EXn6gge4DNt2jWvN0,76304
77
83
  fast/bin/tbbmalloc.dll,sha256=Pr-fy4yl8BmnNQnA65QWZ-MZBsRPYgMg6vIAZqs6lFs,108048
78
84
  fast/bin/tbbmalloc_proxy.dll,sha256=iWkg1k_yBAQBMGpcdLOcNxJDrOlfNeU4RIB-VOLZWzM,46608
79
85
  fast/bin/tiff.dll,sha256=UcE9pQ-iE9dkTBDgbZc0UbfNU2r2y9LxRaEjePJHJp0,440320
86
+ fast/bin/vcomp140.dll,sha256=VauiPNzWSE-7BvQVW4ynWt_OeogfEK_QxJRXFl5ncWQ,193152
87
+ fast/bin/vcruntime140.dll,sha256=1eTZo-g1-meUUBRdan2U42VzpQkxcRGQTZs3EsMNkGY,124544
88
+ fast/bin/vcruntime140_1.dll,sha256=Hy1BxKpdsLwz6_e2bXKUOoF9fObL6IBQKpQDgjYzCT8,49792
80
89
  fast/bin/zlib.dll,sha256=7iG2aUtUgkiDa_fpF75YKu5y2ELekJAwZcUvoNMdJro,86016
81
90
  fast/doc/bright-plotting-style.ini,sha256=2CiNPwGgCRi-lWXZ9XEIPVCw8o7gTLl_IxexqGPh79M,2363
82
91
  fast/doc/dark-plotting-style.ini,sha256=eVCvvpKexDv0ER7TYbIo6GpYNnzyTbKETZd0EsPynZ0,2362
@@ -190,12 +199,10 @@ fast/kernels/Visualization/TriangleRenderer/TriangleRenderer.frag,sha256=3Rpi-Hz
190
199
  fast/kernels/Visualization/TriangleRenderer/TriangleRenderer.vert,sha256=VKzvCtusfPfM5WAPjFtoOk2sRRRtVhNHMtP5lwktVfw,951
191
200
  fast/kernels/Visualization/VectorFieldRenderer/VectorFieldColorRenderer.cl,sha256=seBxqKJIpn29IkK8mHATx_3ZQK9l2ohdjOWin9P1d30,1089
192
201
  fast/kernels/Visualization/VertexRenderer/VertexRenderer.frag,sha256=8e6GOBAB56pnp4tz2JWsJDoi8rvNih18geEUrmtjzRw,258
193
- fast/kernels/Visualization/VertexRenderer/VertexRenderer.vert,sha256=x0W4Ysnn0C2bnh50S0TbEKkbt6pFCff1W6SZHUTpoyg,573
202
+ fast/kernels/Visualization/VertexRenderer/VertexRenderer.vert,sha256=mTKcYEoDBWHLXUqY6RThMcPEc-rJAvzaIiTG9yI2WzM,605
194
203
  fast/kernels/Visualization/VolumeRenderer/AlphaBlendingVolumeRenderer.cl,sha256=uFGD5e7uEVStF_y2xTzA2Wui1PidZFY-IMRRG4y-EBo,8552
195
204
  fast/kernels/Visualization/VolumeRenderer/MaximumIntensityProjection.cl,sha256=22EcYv5aCnWBsrRlfktAx41B-ZX4NMjRzShMopcZJS8,5542
196
205
  fast/kernels/Visualization/VolumeRenderer/ThresholdVolumeRenderer.cl,sha256=-cEcFczK9ceHifOgj-5ymzJpKOchjoqRNuMS7km9R-A,7472
197
- fast/licenses/LICENSE,sha256=N9vtWaau8IA_JKfawUZnlJHEYPqovDg0l014as9WpA8,11419
198
- fast/licenses/THIRD_PARTY_TF_C_LICENSES,sha256=yO2KAHKO9o4jdkuE8ZMcCtdXeDO6dAQDUyDoSwVDewc,396929
199
206
  fast/licenses/MSVC/MSVC_redis_files_license.txt,sha256=Yz3FQ9XEXUiUDo8zwMkCrFTPQZUPb6baRotcRlUoMuo,23461
200
207
  fast/licenses/OpenIGTLink/LICENSE.txt,sha256=saHYEMRsPgBc6HlzMcnNBsmTC3cphA9aDX4rKtcgyGo,1536
201
208
  fast/licenses/OpenJPEG/LICENSE,sha256=pq8Tbz4VA4pma2HzdmEqB9mk5Iy3wBrb8-M7PxSrSbY,2112
@@ -265,6 +272,8 @@ fast/licenses/qt5/LICENSE.QT-LICENSE-AGREEMENT,sha256=Nn6AJcc7h-41TKWE6F6GpqS6qA
265
272
  fast/licenses/realsense/LICENSE,sha256=x6of3w44xIJ_7xeFndv6yAC4mV8-yHWgbdI8eRNflW0,11352
266
273
  fast/licenses/realsense/NOTICE,sha256=ZxN870sQleBHHnOodssveJtWG1otnQn6UHlR5TlVqMM,50297
267
274
  fast/licenses/semaphore/Semaphore_LICENSE.txt,sha256=EmC2K2cPukP2YVKKXqkUW6Sd7ogJ9_j7U-KC7UuSM9s,868
275
+ fast/licenses/tensorflow/LICENSE,sha256=N9vtWaau8IA_JKfawUZnlJHEYPqovDg0l014as9WpA8,11419
276
+ fast/licenses/tensorflow/THIRD_PARTY_TF_C_LICENSES,sha256=yO2KAHKO9o4jdkuE8ZMcCtdXeDO6dAQDUyDoSwVDewc,396929
268
277
  fast/licenses/tiff/COPYRIGHT,sha256=-9b-15OFQdLICcCCYiX8heVR_b-ocysQ8Mh-CEesr9c,1146
269
278
  fast/licenses/uthash/LICENSE,sha256=6bmqyEIbbSkXbG8j9vepBxlCReNe-ZrOEIOXNJYc-qI,1141
270
279
  fast/licenses/zip/UNLICENSE,sha256=aocudJUvjzMvyO7Ah78IraYcTvXKtSZt46bfs-DuMJ4,1257
@@ -300,8 +309,8 @@ fast/plugins/printsupport/windowsprintersupport.dll,sha256=kBurf1mttxzy_MVu0Ms0Y
300
309
  fast/plugins/sqldrivers/qsqlite.dll,sha256=Xt-Rep35Kmij0H1p3oupOIB0uJHjMQeA9dqXQbZF760,1404928
301
310
  fast/plugins/sqldrivers/qsqlodbc.dll,sha256=yTfiiHzR9BooTeU7fKM2T7wD1F22R_YU-jrdt_tAkrM,91136
302
311
  fast/plugins/styles/qwindowsvistastyle.dll,sha256=GjdUPMzOTyhIq7OOMC6yoV4TFGAYZEqskATVB-Vt9s4,137216
303
- pyfast-4.12.0.dist-info/METADATA,sha256=F6U9NioytPuo1l1YsZveD9j0pJhkQ7WvKf712o3UwIA,6679
304
- pyfast-4.12.0.dist-info/WHEEL,sha256=NhJjJj0zvJjNUIc1BgT18k2IYq2O0dIE45IEYKXKXn0,100
305
- pyfast-4.12.0.dist-info/entry_points.txt,sha256=R8uLUxXQR4QRSOK02qMJusiCmeiCJarHWpvN8BLG8Js,152
306
- pyfast-4.12.0.dist-info/top_level.txt,sha256=8QJk2-edYNobGXP5cFnggvdAmRsO4HxRmobqpf6Uxuo,5
307
- pyfast-4.12.0.dist-info/RECORD,,
312
+ pyfast-4.13.1.dist-info/METADATA,sha256=_tJUhQqXQSyPbWVLdrBRoOJ7UjWDQfLyFudjAsFjyrM,7036
313
+ pyfast-4.13.1.dist-info/WHEEL,sha256=NhJjJj0zvJjNUIc1BgT18k2IYq2O0dIE45IEYKXKXn0,100
314
+ pyfast-4.13.1.dist-info/entry_points.txt,sha256=R8uLUxXQR4QRSOK02qMJusiCmeiCJarHWpvN8BLG8Js,152
315
+ pyfast-4.13.1.dist-info/top_level.txt,sha256=8QJk2-edYNobGXP5cFnggvdAmRsO4HxRmobqpf6Uxuo,5
316
+ pyfast-4.13.1.dist-info/RECORD,,
File without changes