Skip to content

Commit 242e4d6

Browse files
Merge pull request #225 from vpython/sign
fix sign and pixel_to_world
2 parents 7ebccec + 4fbc874 commit 242e4d6

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

vpython/vpython.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
# vpython provides clock in its namespace
1111
clock = time.perf_counter
1212

13+
def sign(x): # for compatibility with Web VPython
14+
if x > 0: return 1
15+
if x < 0: return -1
16+
return 0
17+
1318
import sys
1419
from . import __version__, __gs_version__
1520
from ._notebook_helpers import _isnotebook
@@ -1851,9 +1856,12 @@ def process_args(self, *args1, **args):
18511856
col = c
18521857
rad = r
18531858
vi = vis
1859+
opaq = None
18541860
cp = {'pos':pt['pos'].value}
18551861
if 'color' in pt:
18561862
col = pt['color']
1863+
if 'opacity' in pt:
1864+
opaq = pt['opacity']
18571865
if 'radius' in pt:
18581866
rad = pt['radius']
18591867
if 'visible' in pt:
@@ -1867,6 +1875,9 @@ def process_args(self, *args1, **args):
18671875
if vi is not None:
18681876
pt['visible'] = vi
18691877
cp['visible'] = vi
1878+
if opaq is not None:
1879+
pt['opacity'] = opaq
1880+
cp['opacity'] = opaq
18701881
pts.append(pt)
18711882
cps.append(cp)
18721883
return [pts, cps]
@@ -2059,7 +2070,7 @@ def __init__(self,*args1, **args):
20592070
if 'pos' in args:
20602071
tpos = args['pos']
20612072
del args['pos']
2062-
2073+
20632074
super(curveMethods, self).setup(args)
20642075

20652076
if tpos is not None:
@@ -3206,7 +3217,14 @@ def lights(self, value):
32063217

32073218
@property
32083219
def pixel_to_world(self):
3209-
return self._pixel_to_world
3220+
# Convert number of pixels into distance in real-world coordinates
3221+
w = self._width
3222+
h = self._height
3223+
d = 2*self._range
3224+
if w >= h:
3225+
return d/h
3226+
else:
3227+
return d/w
32103228
@pixel_to_world.setter
32113229
def pixel_to_world(self, value):
32123230
raise AttributeError('pixel_to_world is read-only')

0 commit comments

Comments
 (0)