* do not cache the cupy so the config option can be set later
* getCupy will always return None if the option is not set
* test of failing behavior
* divorce skip from option; restore option after test
This change makes use of QPointF methods which perform faster than the python
equivalent methods. Furthermore, some tests are added.
* Set __slots__ to empty tuple for pg.Point
* Make Point.angle() behave as Vector.angle()
In a few places in the library, we are doing the conversion from radians
to degrees just so we can call QTransform.rotate(), but there is a
QTransform.rotateRadians() method which would be more suitable, thus
making it so we do not have to handle the conversions ourselves
Various places in the library attempt to check if scalars are finite
via numpy methods, which are intended to be used on numpy arrays. Using
the math module equivalent functions on scalars is significantly faster.
In a few places, I also use numpy methods explicitly (np.all vs. all)
Many places in the library were doing radian to degree conversion
via the manual calculation. Doing timeit benchmarks on my system, I
am able to get a 4x speedup by using math.degrees or math.radians
instead
Significant performance issues have been identified with np.clip
and thus clip_array was created to speed up the operation. In addition
clip_scalar was created to clip a scalar value between two other values
this commit replaces many uses of np.clip from operating on scalars to
using clip_scalar instead
Using numpy methods that are intended for vectorized operations is
substantially slower than using the math module, so when feasible the
math module methods should be used.
* NEW features for HistgramLUTItem
* gradientPosition=('left', 'right')
* only paint if item is visible (is faster)
* link hisogram to other histograms
* fixes to be able to merge
* drop linkHistogram (rgba needs to be better integrated)
* make sure defaults to same as current behavior
* draw connecting lines correctly on each side
* add example use
* Fix the `clickable` property of `PlotDataItem`.
Currently if you attempt to set the `clickable` property of a PlotDataItem,
this property is silently ignored. The expected behavior is to set the
`clickable` property of the underlying PlotCurveItem.
* Use setCurvesClickable and curvesClickable instead
* curve is singular
* ROI.py, getArrayRegion: Fix return mapped coordinates
The *getArrayRegion* method is defined as returning a tuple of the points
in the selected region and the mapped coordinates if the
*returnMappedCoords* keyword argument is set to True in the parent class
*ROI*.
In the *EllipseROI* class, *getArrayRegion* was overriden, however it
ignores the *returnMappedCoords* keyword argument, leading to unintended
bugs because of the change in interface between the parent class and
the subclass.
This patch fixes the above bug.
If *returnMappedCoords* is set to False, then only *arr* containing the
array region is returned. If *returnMappedCoords* is set to True, a
tuple of the array region and the mapped coordinates is returned.
NB: At the time of this commit, the same bug is present in several classes
extending *ROI*. This commit only fixes the issue for the *EllipseROI* class.
* ROI.py, PolyLineROI.getArrayRegion: Fix return mapped coordinats
The *getArrayRegion* method is defined as returning a tuple of the
points in the selected region and the mapped coordinates if the
*returnMappedCoords* keyword argument is set to True in the parent class
*ROI*.
In the *PolyLineROI* class, *getArrayRegion* was overriden, however it
ignores the *returnMappedCoords* keyword argument, leading to unintended
bugs because of the change in interface between the parent class and the
subclass.
This patch fixes the above bug. If *returnMappedCoords* is set to
False, then only *arr* containing the array region is returned. If
*returnMappedCoords* is set to True, a tuple of the array region and the
mapped coordinates is returned.
* remove merge conflict cruft
* lint
Co-authored-by: Malik Olivier Boussejra <malik@boussejra.com>
* Initial implementation of ColorBarItem
* initial commit
* fixed missing indent
* docstring extension and corrections
* Converted example to match others / run as part of tests
* load local color maps instead of importing from colorcet
* clean up window creation code
* horizontal color bar and clean-up
* switched to mkQApp initialization
* cleaned up some comments
* allowed style updates to once again update the style of curve and scatter plot, added tests
* tests interleave assign and assert to guard against delayed assignment
* > > > now 100% more camels < < <
* feature TriangleROI
Added equilateral TriangleROI.
getArrayRegion is not working yet
* show off (and implicitly test) our new TriangleROI
* the PolyLineROI.getArrayRegion can be used by TriangleROI
refactor the actual logic to live on ROI
* refactors for readability
* variable names
* lint
* docstring type and purpose
Co-authored-by: Fekete Imre <feketeimre87@gmail.com>