Skip to content

Commit

Permalink
Fix incorrect use of nonexistent vector.mag(); re-implement setters f…
Browse files Browse the repository at this point in the history
…or mag and mag2; pip 0.2.0b2
  • Loading branch information
BruceSherwood committed Jan 19, 2016
1 parent da028cf commit 7b5857d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 46 deletions.
4 changes: 2 additions & 2 deletions vpython-packaging/setup.py
Expand Up @@ -10,7 +10,7 @@
name='vpython',
#packages=['vpython','vpnotebook'],
packages=['vpython'],
version='0.2.0b1',
version='0.2.0b2',
description='VPython for Jupyter Notebook',
long_description=open('README.txt').read(),
author='John Coady / Ruth Chabay / Bruce Sherwood',
Expand All @@ -29,7 +29,7 @@
'Topic :: Multimedia :: Graphics :: 3D Rendering',
'Topic :: Scientific/Engineering :: Visualization',
],
install_requires=['vpython'],
install_requires=['jupyter', 'vpython'],
#cmdclass=cmdclass('vpnotebook/data'),
#package_data={'vpython': ['data/*'], 'vpnotebook': ['data/kernel.json']},
package_data={'vpython': ['data/*']},
Expand Down
39 changes: 17 additions & 22 deletions vpython-packaging/vpython/vpython.py
Expand Up @@ -583,33 +583,28 @@ def z(self,value):
self._z = value
self.on_change()

def mag(self):
return math.sqrt(self._x**2+self._y**2+self._z**2)
##### need to look at the details of v.mag and v.mag2 in GS; also, do we want setters here?

@property
def mag(self):
return math.sqrt(self._x**2+self._y**2+self._z**2)

# @mag.setter
# def mag(self,value):
# normA = self.norm()
# self._value[0] = value * normA.x
# self._value[1] = value * normA.y
# self._value[2] = value * normA.z
# self.on_change()
@mag.setter
def mag(self,value):
normA = self.norm()
self._x = value * normA._x
self._y = value * normA._y
self._z = value * normA._z
self.on_change()

@property
def mag2(self):
return self._x**2+self._y**2+self._z**2

# @mag2.setter
# def mag2(self,value):
# normA = self.norm()
# self._value[0] = math.sqrt(value) * normA.x
# self._value[1] = math.sqrt(value) * normA.y
# self._value[2] = math.sqrt(value) * normA.z
# self.on_change()
@mag2.setter
def mag2(self,value):
normA = self.norm()
v = math.sqrt(value)
self._x = v * normA._x
self._y = v * normA._y
self._z = v * normA._z
self.on_change()

def on_change(self):
pass
Expand Down Expand Up @@ -907,7 +902,7 @@ def axis(self):
@axis.setter
def axis(self,other):
self._axis.value = other
self._size.x = mag(other)
self._size.x = other.mag
if not self._constructing:
self.addattr('axis')

Expand Down Expand Up @@ -940,7 +935,7 @@ def width(self,value):
self.addattr('size')

def _on_size_change(self):
self._axis.value = self._axis.norm() * self._size.x # update axis length when box.size.x is changed
self._axis.value = self._axis.norm() * self._size.x # update axis length when box.size.x is changed
self.addattr('size')

def _on_pos_change(self):
Expand Down
39 changes: 17 additions & 22 deletions vpython.py
Expand Up @@ -583,33 +583,28 @@ def z(self,value):
self._z = value
self.on_change()

def mag(self):
return math.sqrt(self._x**2+self._y**2+self._z**2)
##### need to look at the details of v.mag and v.mag2 in GS; also, do we want setters here?

@property
def mag(self):
return math.sqrt(self._x**2+self._y**2+self._z**2)

# @mag.setter
# def mag(self,value):
# normA = self.norm()
# self._value[0] = value * normA.x
# self._value[1] = value * normA.y
# self._value[2] = value * normA.z
# self.on_change()
@mag.setter
def mag(self,value):
normA = self.norm()
self._x = value * normA._x
self._y = value * normA._y
self._z = value * normA._z
self.on_change()

@property
def mag2(self):
return self._x**2+self._y**2+self._z**2

# @mag2.setter
# def mag2(self,value):
# normA = self.norm()
# self._value[0] = math.sqrt(value) * normA.x
# self._value[1] = math.sqrt(value) * normA.y
# self._value[2] = math.sqrt(value) * normA.z
# self.on_change()
@mag2.setter
def mag2(self,value):
normA = self.norm()
v = math.sqrt(value)
self._x = v * normA._x
self._y = v * normA._y
self._z = v * normA._z
self.on_change()

def on_change(self):
pass
Expand Down Expand Up @@ -907,7 +902,7 @@ def axis(self):
@axis.setter
def axis(self,other):
self._axis.value = other
self._size.x = mag(other)
self._size.x = other.mag
if not self._constructing:
self.addattr('axis')

Expand Down Expand Up @@ -940,7 +935,7 @@ def width(self,value):
self.addattr('size')

def _on_size_change(self):
self._axis.value = self._axis.norm() * self._size.x # update axis length when box.size.x is changed
self._axis.value = self._axis.norm() * self._size.x # update axis length when box.size.x is changed
self.addattr('size')

def _on_pos_change(self):
Expand Down

0 comments on commit 7b5857d

Please sign in to comment.